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_hide_ETA_widget(SsdWidget container){ SsdWidget ETA_widget; if (container == NULL) return; ETA_widget = ssd_widget_get(container,"eta container"); if (ETA_widget) ssd_widget_hide(ETA_widget); }
static void on_dialog_closed( int type, void *context) { SsdWidget button; ssd_widget_set_left_softkey_callback(GenericList,NULL); button = ssd_dialog_right_title_button(); if (button) ssd_widget_hide(button); }
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 (); }
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; }
static void add_title (SsdWidget w, int flags) { SsdWidget title, text; int rt_soft_key_flag; int lf_soft_key_flag; int align_flag = SSD_ALIGN_CENTER; #ifdef TOUCH_SCREEN const char *back_buttons[] = {"back_button", "back_button_s"}; #endif if (ssd_widget_rtl (NULL)) { rt_soft_key_flag = SSD_END_ROW; lf_soft_key_flag = SSD_ALIGN_RIGHT; } else{ rt_soft_key_flag = SSD_ALIGN_RIGHT; lf_soft_key_flag = SSD_END_ROW; } if (!((w->flags & SSD_DIALOG_FLOAT) && !(w->flags & SSD_DIALOG_TRANSPARENT))) { int height = ADJ_SCALE( 34 ); #ifdef ANDROID align_flag = 0; #endif //ANDROID #ifndef TOUCH_SCREEN height = 28; #endif title = ssd_container_new ("title_bar", NULL, SSD_MAX_SIZE, height, SSD_END_ROW); ssd_widget_set_click_offsets_ext( title, 0, 0, 0, 10 ); ssd_widget_set_offset(title, 0, 0); title->draw = draw_title; } else{ int height = 28; if ( roadmap_screen_is_hd_screen() ) { height = height*1.8; } title = ssd_container_new ("title_bar", NULL, SSD_MAX_SIZE, height, SSD_END_ROW); } ssd_widget_set_color (title, "#ffffff", "#ff0000000"); text = ssd_text_new ("title_text", "" , 13, SSD_WIDGET_SPACE|SSD_ALIGN_VCENTER|align_flag); ssd_widget_set_color (text, "#ffffff", "#ff0000000"); if ((w->flags & SSD_ROUNDED_CORNERS) && (!(w->flags & SSD_POINTER_MENU))) ssd_widget_set_color (text, "#ffffff", "#ff0000000"); if (w->flags & SSD_CONTAINER_TITLE){ if (w->flags & SSD_ROUNDED_BLACK) ssd_widget_set_color (text, "#ffffff", "#ffffff"); else if (!(w->flags & SSD_DIALOG_FLOAT)) ssd_widget_set_color (text, "#ffffff", "#ff0000000"); else if (flags & SSD_DIALOG_TRANSPARENT) ssd_widget_set_color (text, "#ffffff", "#ff0000000"); else ssd_widget_set_color (text, "#000000", "#ff0000000"); } #if defined(TOUCH_SCREEN) if (!( ((flags & SSD_DIALOG_FLOAT)&& !(flags & SSD_DIALOG_TRANSPARENT)) || (flags & SSD_DIALOG_NO_BACK))){ SsdWidget btn = NULL; #ifndef ANDROID btn = ssd_button_new (SSD_DIALOG_BUTTON_BACK_NAME, "", back_buttons, 2, SSD_ALIGN_VCENTER, button_callback ); #endif if ( ssd_widget_rtl(NULL) ) { SsdWidget btn2 = ssd_button_new ("right_title_button", "", back_buttons, 2, SSD_ALIGN_VCENTER, NULL ); ssd_widget_add( title, btn2 ); ssd_widget_set_click_offsets_ext( btn2, -40, -20, 20, 10 ); ssd_widget_hide(btn2); #ifdef ANDROID ssd_dialog_add_hspace (title, 10, 0); #endif //ANDROID ssd_widget_add (title,text); if ( btn != NULL ) { ssd_widget_set_click_offsets_ext( btn, -20, -20, 70, 10 ); ssd_widget_set_flags( btn, SSD_ALIGN_VCENTER|SSD_ALIGN_RIGHT ); ssd_widget_add( title, btn ); } } else { SsdWidget btn2 = ssd_button_new ("right_title_button", "", back_buttons, 2, SSD_ALIGN_VCENTER|SSD_ALIGN_RIGHT, NULL ); ssd_widget_set_click_offsets_ext( btn2, -40, -20, 20, 10 ); ssd_widget_hide(btn2); if ( btn != NULL ) { ssd_widget_set_click_offsets_ext( btn, -20, -20, 70, 10 ); ssd_widget_add( title, btn ); } #ifdef ANDROID ssd_dialog_add_hspace (title, 10, 0); #endif //ANDROID ssd_widget_add (title,text); ssd_widget_add( title, btn2 ); } } else { ssd_widget_add ( title, text ); } #else ssd_widget_add ( title, text ); #endif ssd_widget_add (w, title); }
SsdWidget ssd_confirmed_entry_new (const char *name, const char *value, int entry_flags, int text_flags, int width, int height, const char *messagebox_text, const char *background_text) { const char *edit_button[] = {"edit_right", "edit_left"}; SsdWidget button; SsdWidget space; SsdWidget bg_text; SsdWidget entry; SsdWidget text_box; int tab_st = 0; int txt_box_height = 40; SsdEntryContext* ctx = (SsdEntryContext*) calloc( 1, sizeof( SsdEntryContext ) ); #ifndef TOUCH_SCREEN txt_box_height = 23; #endif #ifdef OPENGL if ( height > 0 ) txt_box_height = height; #endif entry_ctx_init( ctx ); if (entry_flags & SSD_WS_TABSTOP) { entry_flags &= ~SSD_WS_TABSTOP; tab_st = SSD_WS_TABSTOP; } entry = ssd_container_new (name, NULL, SSD_MIN_SIZE, SSD_MIN_SIZE, entry_flags); text_box = ssd_container_new ("text_box", NULL, width, txt_box_height, SSD_CONTAINER_TXT_BOX|SSD_ALIGN_VCENTER|tab_st); ssd_widget_set_pointer_force_click( text_box ); entry->get_value = get_value; entry->set_value = set_value; entry->bg_color = NULL; text_box->callback = confirmed_edit_callback; text_box->bg_color = NULL; space = ssd_container_new("Space", NULL,5, SSD_MIN_SIZE, SSD_WIDGET_SPACE); ssd_widget_set_color(space, NULL, NULL); ssd_widget_add(text_box, space); ssd_widget_add (text_box, ssd_text_new ("Text", value, -1, text_flags|SSD_ALIGN_VCENTER)); if (background_text == NULL) bg_text = ssd_text_new ("BgText", "", -1, SSD_ALIGN_VCENTER); else bg_text = ssd_text_new ("BgText", background_text, -1, SSD_ALIGN_VCENTER); ssd_widget_set_color(bg_text, "#C0C0C0",NULL); ssd_widget_add (text_box, bg_text); #ifdef TOUCH_SCREEN if (!ssd_widget_rtl(NULL)) button = ssd_button_new ("edit_button", "", &edit_button[0], 1, SSD_ALIGN_VCENTER|SSD_ALIGN_RIGHT, edit_callback); else button = ssd_button_new ("edit_button", "", &edit_button[1], 1, SSD_ALIGN_VCENTER|SSD_ALIGN_RIGHT, edit_callback); if (!ssd_widget_rtl(NULL)) ssd_widget_set_offset(button, 10, 0); else ssd_widget_set_offset(button, -11, 0); #endif ctx->mb_text = (void *)strdup(messagebox_text); entry->context = ctx; if ((value != NULL) && (value[0] != 0)) ssd_widget_hide(bg_text); ssd_widget_add (entry, text_box); /* Default keyboard params */ ssd_entry_set_kb_params( entry, name, NULL, NULL, NULL, 0 ); return entry; }
SsdWidget ssd_entry_new (const char *name, const char *value, int entry_flags, int text_flags, int width, int height, const char *background_text) { SsdWidget space; SsdWidget bg_text; SsdWidget entry; SsdWidget text_box; SsdWidget text; int tab_st = 0; int txt_box_height = ADJ_SCALE(37); SsdEntryContext* ctx = (SsdEntryContext*) calloc( 1, sizeof( SsdEntryContext ) ); #ifndef TOUCH_SCREEN txt_box_height = 23; #endif #ifdef OPENGL if ( height > 0 ) txt_box_height = height; #endif entry_ctx_init( ctx ); if (entry_flags & SSD_WS_TABSTOP) { entry_flags &= ~SSD_WS_TABSTOP; tab_st = SSD_WS_TABSTOP; } entry = ssd_container_new (name, NULL, SSD_MIN_SIZE, SSD_MIN_SIZE, entry_flags); text_box = ssd_container_new ("text_box", NULL, width, txt_box_height, SSD_CONTAINER_TXT_BOX|SSD_ALIGN_VCENTER|tab_st); ssd_widget_set_color(text_box, NULL, NULL); ssd_widget_set_pointer_force_click( text_box ); entry->get_value = get_value; entry->set_value = set_value; entry->bg_color = NULL; text_box->callback = edit_callback; text_box->bg_color = NULL; space = ssd_container_new("Space", NULL,5, SSD_MIN_SIZE, SSD_WIDGET_SPACE); ssd_widget_set_color(space, NULL, NULL); ssd_widget_add(text_box, space); text = ssd_text_new ("Text", value, -1, text_flags|SSD_ALIGN_VCENTER|SSD_TEXT_SINGLE_LINE ); ssd_widget_add (text_box, text); #ifdef TOUCH_SCREEN ssd_widget_set_offset(text, 0, -2); #endif if (background_text == NULL) bg_text = ssd_text_new ("BgText", "", -1, SSD_ALIGN_VCENTER|SSD_TEXT_SINGLE_LINE); else bg_text = ssd_text_new ("BgText", background_text, -1, SSD_ALIGN_VCENTER|SSD_TEXT_SINGLE_LINE); ssd_widget_set_offset(bg_text, 0, -2); ssd_widget_set_color(bg_text, "#C0C0C0",NULL); ssd_widget_add (text_box, bg_text); entry->context = ctx; if ((value != NULL) && (value[0] != 0)) ssd_widget_hide(bg_text); ssd_widget_add (entry, text_box); /* Default keyboard params */ ssd_entry_set_kb_params( entry, background_text, NULL, NULL, NULL, 0 ); return entry; }
static void reminder_add_dlg(PluginStreetProperties *properties, RoadMapPosition *position, BOOL isReminder, BOOL default_reminder){ SsdWidget dialog, dialog_cont; SsdWidget group; SsdWidget text_box; SsdWidget spacer; SsdWidget text; SsdWidget container, box2; static const char *distance_labels[6]; static const char *distance_values[6]; const char * dlg_name; static const char *repeat_labels[2] ; static const char *repeat_values[2] = {"0", "1"}; if (properties) gContext.properties = *properties; else{ gContext.properties.address = ""; gContext.properties.street = ""; gContext.properties.city = ""; } gContext.position = *position; repeat_labels[0] = roadmap_lang_get("Once"); repeat_labels[1] = roadmap_lang_get("Every time"); if (roadmap_math_is_metric()){ distance_values[0] = "100"; distance_values[1] = "500"; distance_values[2] = "1000"; distance_values[3] = "5000"; distance_values[4] = "10000"; distance_values[5] = "20000"; distance_labels[0] = "100 m"; distance_labels[1] = "500 m"; distance_labels[2] = "1 km"; distance_labels[3] = "5 km"; distance_labels[4] = "10 km"; distance_labels[5] = "20 km"; } else{ distance_values[0] = "30"; distance_values[1] = "152"; distance_values[2] = "1609"; distance_values[3] = "8046"; distance_values[4] = "16090"; distance_values[5] = "32186"; distance_labels[0] = "100 ft"; distance_labels[1] = "500 ft"; distance_labels[2] = "1 mi"; distance_labels[3] = "5 mi"; distance_labels[4] = "10 mi"; distance_labels[5] = "20 mi"; } if (default_reminder) dlg_name = roadmap_lang_get(REMINDER_DLG_TITLE); else dlg_name = roadmap_lang_get("Save location"); dialog = ssd_dialog_new (REMINDER_DLG_NAME, dlg_name, NULL, SSD_CONTAINER_TITLE); dialog_cont = ssd_container_new ("Reminder_DLg_Cont", "", SSD_MAX_SIZE, SSD_MAX_SIZE, SSD_END_ROW); ssd_widget_set_color(dialog_cont, NULL, NULL); text = ssd_text_new("AddressTitle", roadmap_lang_get("Address"), 18, SSD_END_ROW); ssd_widget_add(dialog_cont, text); group = ssd_container_new ("Report", NULL, SSD_MAX_SIZE,SSD_MIN_SIZE,SSD_WIDGET_SPACE|SSD_END_ROW|SSD_ROUNDED_CORNERS|SSD_ROUNDED_WHITE|SSD_POINTER_NONE|SSD_CONTAINER_BORDER); if (properties){ if (properties->street){ text = ssd_text_new( "Street Text", properties->street,-1,SSD_END_ROW); ssd_widget_add(group, text); } if (properties->street){ text = ssd_text_new( "city Text", properties->city,-1,SSD_END_ROW); ssd_widget_add(group, text); } } ssd_widget_add(dialog_cont, group); ssd_dialog_add_hspace(dialog_cont, 5, SSD_END_ROW); text = ssd_text_new("Name", roadmap_lang_get("Name"), 18, SSD_END_ROW); ssd_widget_add(dialog_cont, text); group = ssd_container_new ("Report", NULL, SSD_MAX_SIZE,SSD_MIN_SIZE,SSD_WIDGET_SPACE|SSD_END_ROW|SSD_ROUNDED_CORNERS|SSD_ROUNDED_WHITE|SSD_POINTER_NONE|SSD_CONTAINER_BORDER); text_box = ssd_entry_new( "TitleEntry","",SSD_WIDGET_SPACE|SSD_END_ROW|SSD_WS_TABSTOP,0, SSD_MAX_SIZE, SSD_MIN_SIZE,roadmap_lang_get("Name")); ssd_widget_add(group, text_box); ssd_widget_add(dialog_cont, group); ssd_dialog_add_hspace(dialog_cont, 5, SSD_END_ROW); if (roadmap_reminder_feature_enabled()){ text = ssd_text_new("Geo-ReminderTitle", roadmap_lang_get("Reminder"), 18, SSD_END_ROW); ssd_widget_add(dialog_cont, text); group = ssd_container_new ("Report", NULL, SSD_MAX_SIZE,SSD_MIN_SIZE,SSD_WIDGET_SPACE|SSD_END_ROW|SSD_ROUNDED_CORNERS|SSD_ROUNDED_WHITE|SSD_POINTER_NONE|SSD_CONTAINER_BORDER); container = ssd_container_new ("CheckboxContainer", "", SSD_MAX_SIZE, SSD_MIN_SIZE, SSD_END_ROW); ssd_widget_set_color(container, NULL, NULL); ssd_widget_add ( container, ssd_text_new ("Label", roadmap_lang_get ( "Add Geo-Reminder"), 14, SSD_TEXT_LABEL|SSD_WIDGET_SPACE|SSD_ALIGN_VCENTER ) ); ssd_widget_add (container, ssd_checkbox_new ("add_reminder", default_reminder, SSD_ALIGN_RIGHT, on_checkbox_selected,NULL,NULL,CHECKBOX_STYLE_ON_OFF)); ssd_widget_add(group, container); container = ssd_container_new ("Distance", "", SSD_MIN_SIZE, SSD_MIN_SIZE, 0); ssd_widget_set_color(container, NULL, NULL); box2 = ssd_container_new ("box2", NULL, roadmap_canvas_width()/2, SSD_MIN_SIZE, SSD_ALIGN_VCENTER); ssd_widget_set_color (box2, NULL, NULL); text = ssd_text_new( "Distance Text", roadmap_lang_get("Distance to alert"),-1, SSD_ALIGN_VCENTER); ssd_widget_add(box2, text); ssd_widget_add(container, box2); ssd_dialog_add_hspace(container, 5, 0); ssd_widget_add (container, ssd_choice_new ("distance", roadmap_lang_get("Distance to alert"), 5, (const char **)distance_labels, (const void **)distance_values, SSD_ALIGN_VCENTER|SSD_WS_TABSTOP|SSD_END_ROW, NULL)); spacer = ssd_container_new( "space", "", SSD_MIN_SIZE, 1, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( group, spacer ); ssd_widget_add(group, container); container = ssd_container_new ("Repeat", "", SSD_MIN_SIZE, SSD_MIN_SIZE, 0); ssd_widget_set_color(container, NULL, NULL); box2 = ssd_container_new ("box2", NULL, roadmap_canvas_width()/2, SSD_MIN_SIZE, SSD_ALIGN_VCENTER); ssd_widget_set_color (box2, NULL, NULL); text = ssd_text_new( "Repeat Text", roadmap_lang_get("Repeat reminder"),-1, SSD_ALIGN_VCENTER); ssd_widget_add(box2, text); ssd_widget_add(container, box2); ssd_dialog_add_hspace(container, 5, 0); ssd_widget_add (container, ssd_choice_new ("repeat", roadmap_lang_get("Repeat reminder"), 2, (const char **)repeat_labels, (const void **)repeat_values, SSD_ALIGN_VCENTER|SSD_WS_TABSTOP, NULL)); ssd_widget_add(group, container); text_box = ssd_entry_new( "DescriptionEntry","",SSD_WIDGET_SPACE|SSD_END_ROW|SSD_WS_TABSTOP,0, SSD_MAX_SIZE, SSD_MIN_SIZE,roadmap_lang_get("Description")); ssd_widget_add(group, text_box); ssd_widget_add(dialog_cont, group); if (!default_reminder){ ssd_widget_hide(ssd_widget_get(group,"DescriptionEntry")); ssd_widget_hide(ssd_widget_get(group,"Repeat")); ssd_widget_hide(ssd_widget_get(group,"Distance")); } } spacer = ssd_container_new( "space", "", SSD_MIN_SIZE, 5, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( dialog_cont, spacer ); ssd_widget_add (dialog_cont, ssd_button_label ("Save", roadmap_lang_get ("Save"), SSD_WS_TABSTOP|SSD_ALIGN_CENTER|SSD_ALIGN_BOTTOM, reminder_add_dlg_buttons_callback)); ssd_widget_add (dialog_cont, ssd_button_label ("Cancel", roadmap_lang_get ("Cancel"), SSD_WS_TABSTOP|SSD_ALIGN_CENTER|SSD_ALIGN_BOTTOM, reminder_add_dlg_buttons_callback)); ssd_widget_add(dialog, dialog_cont); ssd_dialog_activate(REMINDER_DLG_NAME, NULL); }
/*********************************************************** * Name : ssd_progress_msg_dialog_show_timed * * Purpose : Shows the dialog with the given name, for a given amount of time * * Params : [in] dlg_text - the text to be displayed in message * : [in] seconds - the time to be displayed * Author : Dan Friedman * Returns : void */ void ssd_progress_msg_dialog_show_timed( const char* dlg_text , int seconds) { ssd_progress_msg_dialog_show(dlg_text); roadmap_main_set_periodic (seconds * 1000, hide_timer); ssd_widget_hide(ssd_widget_get(gProgressMsgDlg, "Hide Button" )); }
void show_alert_dialog(){ SsdWidget box; SsdWidget title; SsdWidget bitmap, text; char TextStr[200]; int alertId; BOOL is_cancelable; BOOL can_send_thumbs_up; const char * iconName; alertId = roadmap_alerter_get_active_alert_id(); roadmap_square_set_current(the_active_alert.square); sprintf(TextStr, "%s",roadmap_lang_get((* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->get_string)) (alertId) )); dialog = ssd_popup_new("Alert_Dlg", TextStr, on_popup_close, SSD_MAX_SIZE, SSD_MIN_SIZE,NULL, SSD_PERSISTENT|SSD_ROUNDED_BLACK, DIALOG_ANIMATION_FROM_TOP); title = ssd_widget_get(dialog, "popuup_text"); if (title) ssd_widget_set_color(title,"#f6a201", "#f6a201"); box = ssd_container_new ("box", NULL, SSD_MIN_SIZE,SSD_MIN_SIZE,SSD_WIDGET_SPACE); if (box){ ssd_widget_set_color(box, NULL, NULL); ssd_widget_add (box, space(1)); } if (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->get_additional_string != NULL){ const char *additional_text = (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->get_additional_string)) (alertId); if (additional_text){ text = ssd_text_new ("AdditionalText", additional_text, 16,SSD_END_ROW); ssd_widget_set_color(text, "#ffffff", "#ffffff"); ssd_widget_add (box, text); ssd_widget_add (box, space(1)); } } if ((RoadMapAlertProviders.provider[the_active_alert.alert_provider]->show_distance != NULL) && ((*(RoadMapAlertProviders.provider[the_active_alert.alert_provider]->show_distance))(alertId))) sprintf(TextStr,"%s %d %s", roadmap_lang_get("In"), (the_active_alert.distance_to_alert/10)*10, roadmap_lang_get(roadmap_math_distance_unit())); text = ssd_text_new ("Distance", TextStr, 16,0); ssd_widget_set_color(text, "#ffffff", "#ffffff"); ssd_widget_add (box, text); ssd_widget_add (dialog, box); if (the_active_alert.alert_type == ALERT){ iconName = (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->get_alert_icon)) (alertId); } else { iconName = (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->get_warning_icon)) (alertId); } bitmap = ssd_bitmap_new("alert_Icon",iconName, SSD_ALIGN_RIGHT|SSD_ALIGN_VCENTER); ssd_widget_set_offset(bitmap, 0, -20); ssd_widget_add (box, bitmap); is_cancelable = (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->is_cancelable) && (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->is_cancelable)) (alertId); can_send_thumbs_up = (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->can_send_thumbs_up) && (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->can_send_thumbs_up)) (alertId); #ifdef TOUCH_SCREEN ssd_widget_add (dialog, ssd_button_label ("Close", roadmap_lang_get ("Close"), SSD_WS_TABSTOP|SSD_ALIGN_CENTER, alert_dialog_buttons_callback)); if (can_send_thumbs_up){ char *icon[3]; SsdWidget button; icon[0] = "thumbs_up_button"; icon[1] = "thumbs_up_button_down"; icon[2] = NULL; button = ssd_button_new( "ThumbsUp", "Thumbs up", (const char**) &icon[0], 2, SSD_ALIGN_CENTER, alert_dialog_buttons_callback ); ssd_widget_add(dialog, button); } if (is_cancelable){ ssd_widget_add (dialog, ssd_button_label ("Irrelevant", roadmap_lang_get ("Not there"), SSD_WS_TABSTOP|SSD_ALIGN_CENTER|SSD_END_ROW, alert_dialog_buttons_callback)); } if (can_send_thumbs_up){ SsdWidget text; text = ssd_text_new("ThumbsUpText",roadmap_lang_get("Thanks sent to user"), -1, SSD_ALIGN_CENTER); ssd_text_set_color(text, "#f6a201"); ssd_widget_hide(text); ssd_widget_add(dialog, text); } #else if (is_cancelable) set_softkey(); #endif ssd_dialog_activate ("Alert_Dlg", NULL); if (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->on_alerter_start != NULL) (* (RoadMapAlertProviders.provider[the_active_alert.alert_provider]->on_alerter_start))(the_active_alert.active_alert_id); }