unsigned char ui_forkexec ( char *argv[] ); // argv[0] is proggy to exec; argv last entry must be NULLptr
// create a thread of this guy, and it'll try to load the preview pic in background and then signal the app
-unsigned char ui_threaded_defered_preview ( pnd_disco_t *p );
-unsigned char ui_threaded_defered_icon ( void * );
+unsigned char ui_threaded_defered_preview ( pnd_disco_t *p ); // callback
+unsigned char ui_threaded_defered_icon ( void * ); // callback
+unsigned char ui_threaded_timer_create ( void );
+int ui_threaded_timer ( pnd_disco_t *p ); // callback
// change the focus
-void ui_process_input ( unsigned char block_p );
+void ui_process_input ( pnd_dbusnotify_handle dbh, pnd_notify_handle nh );
void ui_push_left ( unsigned char forcecoil );
void ui_push_right ( unsigned char forcecoil );
void ui_push_up ( void );
void ui_set_selected ( mm_appref_t *r );
unsigned int ui_callback_f ( unsigned int t );
+// 'popup' 'context' menu
+void ui_menu_context ( mm_appref_t *a );
+unsigned char ui_menu_twoby ( char *title, char *footer, char *one, char *two ); // return 0 (nada), 1 (one), 2 (two)
+unsigned char ui_menu_get_text_line ( char *title, char *footer, char *initialvalue,
+ char *r_buffer, unsigned char maxlen, unsigned char numbersonlyp ); // populates r_buffer
+
+// ovr-file edit
+unsigned char ovr_replace_or_add ( mm_appref_t *a, char *keybase, char *newvalue ); // keybase does not include app#
+
#endif