5 /* this code actually _does_ something; this way, at least all the IO routines are in one place, so
6 * I know what to replace with something sensible later :)
7 * ... ahh, to have time to make this in C++ as an actual abstract interface...
10 /* staticly cached stuff, for UI
14 IMG_BACKGROUND_800480 = 0,
15 IMG_BACKGROUND_TABMASK,
18 IMG_SELECTED_ALPHAMASK,
39 IMG_MAX, // before this point is loaded; after is generated
47 void /*SDL_Surface*/ *i;
66 unsigned char ui_setup ( void );
67 unsigned char ui_imagecache ( char *basepath );
68 unsigned char ui_pick_skin ( void ); // return >0 if skin has changed
70 void ui_render ( void );
72 void ui_loadscreen ( void ); // show screen while loading the menu
73 void ui_discoverscreen ( unsigned char clearscreen ); // screen to show while scanning for apps
74 void ui_cachescreen ( unsigned char clearscreen, char *filename ); // while caching icons, categories and preview-pics-Now-mode
75 void ui_show_hourglass ( unsigned char updaterect );
76 void ui_post_scan ( void );
77 unsigned char ui_show_info ( char *pndrun, pnd_disco_t *p );
78 void ui_aboutscreen ( char *textpath );
79 void ui_revealscreen ( void );
80 void ui_manage_categories ( void );
81 char *ui_pick_custom_category ( unsigned char mode ); // mode 0 == custom main only; 1 == custom main + FD main; 2 == custom main + FD mains-with-custom-subs
83 /* internal functions follow
86 // show a menu, return when selection made; -1 means no selection. Enter is pick.
87 int ui_modal_single_menu ( char *argv[], unsigned int argc, char *title, char *footer );
89 // run a forked app (ie: not wait for it to return)
90 unsigned char ui_forkexec ( char *argv[] ); // argv[0] is proggy to exec; argv last entry must be NULLptr
92 // create a thread of this guy, and it'll try to load the preview pic in background and then signal the app
93 unsigned char ui_threaded_defered_preview ( pnd_disco_t *p ); // callback
94 unsigned char ui_threaded_defered_icon ( void * ); // callback
95 unsigned char ui_threaded_timer_create ( void );
96 int ui_threaded_timer ( pnd_disco_t *p ); // callback
99 void ui_process_input ( pnd_dbusnotify_handle dbh, pnd_notify_handle nh );
100 void ui_push_left ( unsigned char forcecoil );
101 void ui_push_right ( unsigned char forcecoil );
102 void ui_push_up ( void );
103 void ui_push_down ( void );
104 void ui_push_exec ( void );
105 void ui_push_backup ( void );
106 void ui_push_ltrigger ( void );
107 void ui_push_rtrigger ( void );
108 unsigned char ui_determine_row ( mm_appref_t *a );
109 unsigned char ui_determine_screen_row ( mm_appref_t *a );
110 unsigned char ui_determine_screen_col ( mm_appref_t *a );
112 // detail panel hide/show
113 unsigned char ui_is_detail_hideable ( void ); // returns true if detail pane may be hidden with current skin
114 void ui_toggle_detail_pane ( void ); // toggle it on/off
116 // ui_render() can register tappable-areas which touchscreen code can then figure out if we made a hit
117 void ui_register_reset ( void );
118 void ui_register_tab ( unsigned char catnum, unsigned int x, unsigned int y, unsigned int w, unsigned int h );
119 void ui_register_app ( mm_appref_t *app, unsigned int x, unsigned int y, unsigned int w, unsigned int h );
120 void ui_touch_act ( unsigned int x, unsigned int y );
122 // deferred preview timer
123 void ui_set_selected ( mm_appref_t *r );
124 unsigned int ui_callback_f ( unsigned int t );
126 // 'popup' 'context' menu
127 void ui_menu_context ( mm_appref_t *a );
128 unsigned char ui_menu_oneby ( char *title, char *footer, char *one ); // return 0 (nada) or 1 (one) for they actually picked it
129 unsigned char ui_menu_twoby ( char *title, char *footer, char *one, char *two ); // return 0 (nada), 1 (one), 2 (two)
130 unsigned char ui_menu_get_text_line ( char *title, char *footer, char *initialvalue,
131 char *r_buffer, unsigned char maxlen, unsigned char numbersonlyp ); // populates r_buffer
134 unsigned char ovr_replace_or_add ( mm_appref_t *a, char *keybase, char *newvalue ); // keybase does not include app#