static void move_down(){ menu_list_data *data; int i; //div_t n; int relative_index; data = (menu_list_data *) ssd_dialog_get_current_data(); //n = div (data->CurrentIndex, data->num_rows); relative_index = data->CurrentIndex % data->num_rows; if (((data->CurrentIndex == data->num_rows -1) || (relative_index == data->num_rows -1) || (data->CurrentIndex == data->num_items -1)) && (data->num_items > data->num_rows)){ int index; for (i=0; i<data->num_items;i++) ssd_widget_hide(data->MenuWidgets[i]); if (data->CurrentIndex == data->num_items -1) index = 0; else index = data->CurrentIndex +1; for (i=index; i<index+data->num_rows;i++) if (i < data->num_items) ssd_widget_show(data->MenuWidgets[i]); } if (data->CurrentIndex < data->num_items-1) data->CurrentIndex++; else data->CurrentIndex = 0; ssd_dialog_resort_tab_order(); ssd_dialog_set_focus(ssd_widget_get(data->MenuWidgets[data->CurrentIndex],"button")); }
static BOOL on_kb_closed( int exit_code, const char* value, void* context) { SsdWidget w = context; SsdEntryContext* ctx = ( SsdEntryContext* ) w->context; BOOL retVal = TRUE; if( dec_ok == exit_code) { w->set_value( w, value); if( value && value[0]) ssd_widget_hide( ssd_widget_get( w, "BgText")); else ssd_widget_show( ssd_widget_get( w, "BgText")); } if ( ctx->kb_post_done_cb ) { retVal = ctx->kb_post_done_cb( exit_code, value, context ); } return retVal; }
static int set_value (SsdWidget widget, const char *value) { if ((value != NULL) && (value[0] != 0)) ssd_widget_hide(ssd_widget_get(widget, "BgText")); else ssd_widget_show(ssd_widget_get(widget, "BgText")); return ssd_widget_set_value (widget, "Text", value); }
void navigate_res_show_ETA_widget(SsdWidget container){ SsdWidget ETA_widget; if (container == NULL) return; ETA_widget = ssd_widget_get(container,"eta container"); if (ETA_widget) ssd_widget_show(ETA_widget); }
BOOL ssd_dialog_set_dialog_focus( SsdDialog dialog, SsdWidget new_focus) { SsdWidget last_focus; SsdWidget w; if( new_focus && !new_focus->tab_stop) { //assert( 0 && "ssd_dialog_set_dialog_focus() - Invalid input"); return FALSE; } w = ssd_widget_get(new_focus,"focus_image"); if( w != NULL) ssd_widget_show( w->children); // Setting the same one twice... if( dialog->in_focus == new_focus){ if (new_focus && !new_focus->in_focus) ssd_widget_set_focus(new_focus); return TRUE; } if( new_focus && (dialog != new_focus->parent_dialog)) { /*/[BOOKMARK]:[NOTE]:[PAZ] - If 'new_focus->parent_dialog' is NULL: Maybe 'ssd_dialog_sort_tab_order()' was called before 'ssd_dialog_draw'? Note that 'ssd_dialog_draw' will call 'ssd_dialog_sort_tab_order()', thus no need to call it directly. */ assert( 0 && "ssd_dialog_set_dialog_focus() - widget does not belong to this dialog"); return FALSE; } last_focus = dialog->in_focus; if (dialog->in_focus) { ssd_widget_loose_focus(dialog->in_focus); dialog->in_focus = NULL; } if( !new_focus) return TRUE; if( !ssd_widget_set_focus(new_focus)) { assert(0); if( ssd_widget_set_focus( last_focus)) dialog->in_focus = last_focus; return FALSE; } dialog->in_focus = new_focus; ssd_dialog_allign_focus(); return TRUE; }
int on_checkbox_selected (SsdWidget widget, const char *new_value){ SsdWidget container = widget->parent->parent; const char *add_reminder = ssd_dialog_get_data("add_reminder"); if (!container) return 0; if (!strcmp( add_reminder, "no" )){ ssd_widget_hide(ssd_widget_get(container,"DescriptionEntry")); ssd_widget_hide(ssd_widget_get(container,"Repeat")); ssd_widget_hide(ssd_widget_get(container,"Distance")); } else{ ssd_widget_show(ssd_widget_get(container,"DescriptionEntry")); ssd_widget_show(ssd_widget_get(container,"Repeat")); ssd_widget_show(ssd_widget_get(container,"Distance")); } ssd_dialog_draw(); return 1; }
static void move_up(){ menu_list_data *data; int i; int n_quot; int relative_index; data = (menu_list_data *) ssd_dialog_get_current_data(); n_quot = data->CurrentIndex / data->num_rows; relative_index = data->CurrentIndex % data->num_rows; if (((data->CurrentIndex == 0) || (relative_index == 0) || (data->CurrentIndex == data->num_rows )) && (data->num_items > data->num_rows)){ int index; for (i=0; i<data->num_items;i++) ssd_widget_hide(data->MenuWidgets[i]); if (relative_index == 0) if (n_quot == 0){ //div_t n2; int n2_rem = data->num_items % data->num_rows; int n2_quot = data->num_items / data->num_rows; if (n2_rem == 0) index = (n2_quot -1) * data->num_rows; else index = n2_quot * data->num_rows ; } else index = (n_quot -1) * data->num_rows; else index =0; for (i=index; i<index+data->num_rows;i++) if (i < data->num_items) ssd_widget_show(data->MenuWidgets[i]); } if (data->CurrentIndex > 0) data->CurrentIndex--; else data->CurrentIndex = data->num_items -1; ssd_dialog_resort_tab_order(); ssd_dialog_set_focus(ssd_widget_get(data->MenuWidgets[data->CurrentIndex],"button")); }
void ssd_confirm_dialog_custom (const char *title, const char *text, BOOL default_yes, ConfirmDialogCallback callback, void *context,const char *textYes, const char *textNo) { SsdWidget dialog; confirm_dialog_context *data = (confirm_dialog_context *)calloc (1, sizeof(*data)); data->default_yes = default_yes; dialog = ssd_dialog_activate ("confirm_dialog", NULL); title = roadmap_lang_get (title); text = roadmap_lang_get (text); if (!dialog) { create_confirm_dialog (default_yes,textYes,textNo); dialog = ssd_dialog_activate ("confirm_dialog", NULL); } else{ #ifdef TOUCH_SCREEN //set button text & softkeys SsdWidget buttonYes; SsdWidget buttonNo; buttonYes = ssd_widget_get(dialog, roadmap_lang_get ("Yes")); // change the buttons to custom text ssd_button_change_text(buttonYes, textYes); buttonNo = ssd_widget_get(dialog, roadmap_lang_get ("No")); ssd_button_change_text(buttonNo, textNo); #else //Non touch set_soft_keys(dialog, textYes, textNo); // change softkeys text to custom text ssd_dialog_refresh_current_softkeys(); #endif } if (title[0] == 0){ ssd_widget_hide(ssd_widget_get(dialog, "title_bar")); } else{ ssd_widget_show(ssd_widget_get(dialog, "title_bar")); } data->callback = callback; data->context = context; dialog->set_value (dialog, title); ssd_widget_set_value (dialog, "text", text); dialog->context = data; ssd_dialog_draw (); }
/*********************************************************** * Name : ssd_progress_msg_dialog_show * * Purpose : Shows the dialog with the given name. Creates the new one if not exists * * Params : [in] dlg_text - the text to be displayed in message * : * : * Returns : void */ void ssd_progress_msg_dialog_show( const char* dlg_text ) { if ( !gProgressMsgDlg ) { // Create the dialog. Return in case of failure if ( !( gProgressMsgDlg = ssd_progress_msg_dialog_new() ) ) return; } #ifdef TOUCH_SCREEN ssd_widget_show(ssd_widget_get(gProgressMsgDlg, "Hide Button" )); #endif ssd_dialog_activate( SSD_PROGRESS_MSG_DLG_NAME, NULL ); ssd_dialog_set_value( SSD_PROGRESS_MSG_TEXT_FLD, dlg_text ); ssd_dialog_draw(); }
static int alert_dialog_buttons_callback (SsdWidget widget, const char *new_value) { if (!strcmp(widget->name, "Irrelevant")){ hide_alert_dialog(); report_irrelevant(NULL, NULL, NULL); } else if (!strcmp(widget->name, "Close")){ hide_alert_dialog(); } else if (!strcmp(widget->name, "ThumbsUp")){ SsdWidget text; text = ssd_widget_get(widget->parent, "ThumbsUpText"); if (text) ssd_widget_show(text); (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->thumbs_up))(the_active_alert.active_alert_id); ssd_widget_hide(widget); } return 1; }
static void move_to_start(){ menu_list_data *data; int i; int num_items; data = (menu_list_data *) ssd_dialog_get_current_data(); for (i=0; i<data->num_items;i++) ssd_widget_hide(data->MenuWidgets[i]); if (data->num_items < data->num_rows) num_items = data->num_items; else num_items = data->num_rows; for (i=0; i<num_items;i++) ssd_widget_show(data->MenuWidgets[i]); ssd_dialog_resort_tab_order(); ssd_dialog_set_focus(ssd_widget_get(data->MenuWidgets[0],"button")); data->CurrentIndex = 0; }