static int on_next (SsdWidget widget, const char *new_value) { static SsdWidget dialog; SsdWidget button; SsdWidget browserCont; SsdSize dlg_size, cnt_size; int browser_cont_flags = 0; ssd_dialog_hide_current(dec_close); if ( dialog != NULL ) { if (ssd_dialog_currently_active_name() && !strcmp(ssd_dialog_currently_active_name(), "BonusBrowserDlg")) ssd_dialog_hide_current(dec_close); ssd_dialog_free( "BonusBrowserDlg", FALSE ); dialog = NULL; } dialog = ssd_dialog_new ( "BonusBrowserDlg", "", on_dialog_close, SSD_CONTAINER_BORDER|SSD_DIALOG_FLOAT|SSD_DIALOG_MODAL| SSD_ALIGN_CENTER|SSD_ROUNDED_CORNERS|SSD_ROUNDED_BLACK); #ifndef TOUCH_SCREEN browser_cont_flags = SSD_ALIGN_VCENTER; ssd_dialog_add_vspace(dialog, 2 ,0); #else ssd_dialog_add_vspace(dialog, 5 ,0); #endif browserCont = ssd_container_new("BonusBrowserDlg.BrowserContainer","", SSD_MAX_SIZE, get_browser_height() , SSD_ALIGN_CENTER|browser_cont_flags); browserCont->context = (void *)widget->context; browserCont->draw = draw_browser_rect; ssd_widget_set_color(browserCont, NULL, NULL); ssd_widget_add(dialog, browserCont); #ifdef TOUCH_SCREEN ssd_dialog_add_vspace(dialog, 5 ,0); button = ssd_button_label("Close_button", roadmap_lang_get("Close"), SSD_ALIGN_CENTER, on_button_close); ssd_widget_add(dialog, button); button = ssd_button_label("Navigate_button", roadmap_lang_get("Navigate"), SSD_ALIGN_CENTER, on_button_navigate); button->context = widget->context; ssd_widget_add(dialog, button); #else ssd_widget_set_left_softkey_callback(dialog, NULL); ssd_widget_set_left_softkey_text(dialog, ""); #endif ssd_dialog_activate ("BonusBrowserDlg", NULL); ssd_dialog_recalculate( "BonusBrowserDlg" ); ssd_widget_get_size( dialog, &dlg_size, NULL ); ssd_widget_get_size( browserCont, &cnt_size, NULL ); return 1; }
static int on_close (SsdWidget widget, const char *new_value) { if (ssd_dialog_is_currently_active () && (!strcmp (ssd_dialog_currently_active_name (), "BonusPopUPDlg"))) ssd_dialog_hide_current (dec_close); return 0; }
static int on_options(SsdWidget widget, const char *new_value, void *context) { int menu_x; if(g_context_menu_is_active) { ssd_dialog_hide_current(dec_ok); g_context_menu_is_active = FALSE; } if (ssd_widget_rtl (NULL)) menu_x = SSD_X_SCREEN_RIGHT; else menu_x = SSD_X_SCREEN_LEFT; ssd_context_menu_show( menu_x, // X SSD_Y_SCREEN_BOTTOM, // Y &context_menu, on_option_selected, NULL, dir_default, 0, TRUE); g_context_menu_is_active = TRUE; return 0; }
static void on_option_selected( BOOL made_selection, ssd_cm_item_ptr item, void* context) { privacy_context_menu_items selection; int exit_code = dec_ok; g_context_menu_is_active = FALSE; if( !made_selection) return; selection = item->id; switch( selection) { case privacy_cm_save: save_changes(); ssd_dialog_hide_current(dec_close); break; case privacy_cm_exit: exit_code = dec_cancel; ssd_dialog_hide_all( exit_code); roadmap_screen_refresh (); break; default: break; } }
static int button_callback (SsdWidget widget, const char *new_value) { set_geo_location_displayed(); ssd_dialog_hide_current(dec_ok); return 1; }
static int on_delete (SsdWidget widget, const char *new_value){ reminder_remove_pin((char *)widget->context); remider_remover_from_history((char *)widget->context); if (ssd_dialog_is_currently_active() && (!strcmp(ssd_dialog_currently_active_name(), REMINDER_POP_DLG_NAME))) ssd_dialog_hide_current(dec_close); return 1; }
static int on_back(SsdWidget widget, const char *new_value, void *context) { if( generic_search_dlg_is_1st(search_address)) ssd_dialog_hide_current( dec_cancel); else generic_search_dlg_switch_gui(); return 0; }
static int way_to_go_button_callback( SsdWidget widget, const char *new_value ) { if ( ( widget != NULL ) && !strcmp( widget->name, "Go" ) ) { ssd_dialog_hide_current( dec_close ); roadmap_welcome_guided_tour(); } return 1; }
static void right_softkey_callback(void){ SsdDialog current = RoadMapDialogCurrent; if (current == NULL) return; if (current->scroll_container && current->scroll_container->right_softkey_callback) (*current->scroll_container->right_softkey_callback)(current->scroll_container, "", current->context); else if (current->container->right_softkey_callback) (*current->container->right_softkey_callback)(current->container, "", current->context); else ssd_dialog_hide_current(dec_cancel); }
static int reminder_add_dlg_buttons_callback (SsdWidget widget, const char *new_value) { SsdWidget container = widget->parent; const char *argv[reminder_hi__count]; char temp[15]; if (!strcmp(widget->name, "Save")){ const char *title_txt = ssd_widget_get_value(ssd_widget_get(container, "TitleEntry"),"TitleEntry"); const char *description = ssd_widget_get_value(ssd_widget_get(container, "DescriptionEntry"),"DescriptionEntry"); const char *distance = (const char *)ssd_dialog_get_data("distance"); const char *repeat = (const char *)ssd_dialog_get_data("repeat"); const char *add_reminder = ssd_dialog_get_data("add_reminder"); ssd_dialog_hide_all(dec_close); argv[reminder_hi_house_number] = strdup(gContext.properties.address); argv[reminder_hi_street] = strdup(gContext.properties.street); argv[reminder_hi_city] = strdup(gContext.properties.city); argv[reminder_state] = ""; //state sprintf(temp, "%d", gContext.position.latitude); argv[reminder_hi_latitude] = strdup(temp); sprintf(temp, "%d", gContext.position.longitude); argv[reminder_hi_longtitude] = strdup(temp); argv[reminder_hi_title] = strdup(title_txt); if (add_reminder && !strcmp( add_reminder, "yes" )){ argv[reminder_hi_add_reminder] = "1"; argv[reminder_hi_distance] = strdup(distance); argv[reminder_hi_description] = strdup(description); argv[reminder_hi_repeat] = strdup(repeat); } else{ argv[reminder_hi_add_reminder] = "0"; argv[reminder_hi_distance] = strdup(""); argv[reminder_hi_description] = strdup(""); argv[reminder_hi_repeat] = strdup(""); } roadmap_reminder_add_entry (argv, add_reminder && !strcmp( add_reminder, "yes" )); free((void *)argv[reminder_hi_house_number]); free((void *)argv[reminder_hi_street]); free((void *)argv[reminder_hi_city]); free((void *)argv[reminder_hi_latitude]); free((void *)argv[reminder_hi_longtitude]); free((void *)argv[reminder_hi_distance]); free((void *)argv[reminder_hi_description]); free((void *)argv[reminder_hi_repeat]); } else{ ssd_dialog_hide_current(dec_close); } return 1; }
static int on_close (SsdWidget widget, const char *new_value){ int id = -1; if (widget->context) id = get_id((char *)widget->context); if ((id != -1) && (!ReminderTable.reminder[id].repeat)){ reminder_remove_pin((char *)widget->context); remider_remover_from_history((char *)widget->context); } if (ssd_dialog_is_currently_active() && (!strcmp(ssd_dialog_currently_active_name(), REMINDER_POP_DLG_NAME))) ssd_dialog_hide_current(dec_close); return 0; }
static int button_callback (SsdWidget widget, const char *new_value) { const char *title; const char *value; if (!strcmp(widget->name, "OK")) { update_range ( ssd_widget_get_value (widget->parent, UPDATE_LEFT), ssd_widget_get_value (widget->parent, UPDATE_RIGHT), ssd_dialog_get_value (CITY_PREFIX), ssd_dialog_get_value (STREET_PREFIX)); ssd_dialog_hide_current (dec_cancel); return 1; } else if (!strcmp(widget->name, "left_button")) { title = roadmap_lang_get (UPDATE_LEFT); value = ssd_widget_get_value (widget->parent, UPDATE_LEFT); } else { title = roadmap_lang_get (UPDATE_RIGHT); value = ssd_widget_get_value (widget->parent, UPDATE_RIGHT); } #if (defined(__SYMBIAN32__) && !defined(TOUCH_SCREEN)) ShowEditbox(title, "", keyboard_callback, (void *)widget, EEditBoxStandard | EEditBoxNumeric ); #else ssd_show_keyboard_dialog( title, NULL, keyboard_callback, widget); #endif return 1; }
static int on_softkey(SsdWidget widget, const char *new_value, void *context){ set_geo_location_displayed(); ssd_dialog_hide_current(dec_ok); return 1; }
int RealtimeBonus_PopUpNext (SsdWidget widget, const char *new_value) { SsdWidget popup, spacer, container, button, text, icon; char msg[512]; RTBonus *pbonus = g_pbonus; const char *title; char *text_color = "#ffffff"; int width; if (!pbonus) return 0; if (ssd_dialog_is_currently_active () && (!strcmp (ssd_dialog_currently_active_name (), "BonusPopUPDlg"))) ssd_dialog_hide_current (dec_cancel); if (pbonus->pBonusTitle){ title = roadmap_lang_get (pbonus->pBonusTitle); } else{ if (pbonus->iType == BONUS_TYPE_TREASURE) title = roadmap_lang_get ("Treasure chest"); } popup = ssd_popup_new ("BonusPopUPDlg", title, NULL, SSD_MAX_SIZE, SSD_MIN_SIZE, &pbonus->position, SSD_POINTER_LOCATION | SSD_ROUNDED_BLACK,DIALOG_ANIMATION_FROM_TOP); spacer = ssd_container_new ("space", "", SSD_MIN_SIZE, 5, SSD_END_ROW); ssd_widget_set_color (spacer, NULL, NULL); ssd_widget_add (popup, spacer); container = ssd_container_new ("IconCon", "", 50, SSD_MIN_SIZE, SSD_ALIGN_RIGHT); ssd_widget_set_color (container, NULL, NULL); icon = ssd_bitmap_new ("bonusIcon", pbonus->pIconName, SSD_ALIGN_VCENTER | SSD_ALIGN_CENTER); ssd_widget_add (container, icon); ssd_widget_add (popup, container); if (pbonus->pBonusText){ snprintf (msg, sizeof(msg), "%s", pbonus->pBonusText); }else if (pbonus->iType == BONUS_TYPE_TREASURE){ if (!Realtime_is_random_user()) snprintf (msg, sizeof(msg), "%s", roadmap_lang_get ("There may be presents in this treasure chest! You'll know when you drive over it.")); else snprintf (msg, sizeof(msg), "%s", roadmap_lang_get ("There may be presents in this treasure chest! You'll know when you drive over it. Note: You need to be a registered user in order to receive the gift inside. Register in 'Settings > Profile'")); } if (roadmap_canvas_width() > roadmap_canvas_height()) width = roadmap_canvas_height() - 90; else width = roadmap_canvas_width() - 90; container = ssd_container_new ("IconCon", "", width, SSD_MIN_SIZE, 0); ssd_widget_set_color (container, NULL, NULL); text = ssd_text_new ("PointsTxt", msg, 16, SSD_END_ROW); if (pbonus->pBonusTextColor) text_color = pbonus->pBonusTextColor; ssd_text_set_color (text,text_color); ssd_widget_add (container, text); ssd_widget_add (popup, container); #ifdef TOUCH_SCREEN spacer = ssd_container_new ("space", "", SSD_MIN_SIZE, 5, SSD_END_ROW); ssd_widget_set_color (spacer, NULL, NULL); ssd_widget_add (popup, spacer); button = ssd_button_label ("Close_button", roadmap_lang_get ("Close"), SSD_ALIGN_CENTER, on_close); ssd_widget_add (popup, button); #endif //TOUCH_SCREEN ssd_dialog_activate ("BonusPopUPDlg", NULL); if (!roadmap_screen_refresh ()) { roadmap_screen_redraw (); } return 1; }
static int editor_segments_apply (SsdWidget widget, const char *new_value) { DialogSelectedLines *selected_lines = (DialogSelectedLines *) ssd_dialog_context (); #else static void editor_segments_apply (const char *name, void *context) { DialogSelectedLines *selected_lines = (DialogSelectedLines *)context; #endif int i; #ifdef SSD long type = (long) ssd_dialog_get_data ("Road type"); int cfcc = type + ROADMAP_ROAD_FIRST; char *street_type = (char *) ssd_dialog_get_value ("Street type"); char *street_name = (char *) ssd_dialog_get_value ("Name"); char *t2s = (char *) ssd_dialog_get_value ("Text to Speech"); char *city = (char *) ssd_dialog_get_value ("City"); #else int type = (int) roadmap_dialog_get_data ("General", "Road type"); int cfcc = type + ROADMAP_ROAD_FIRST; int direction = (int) roadmap_dialog_get_data ("General", "Direction"); char *street_type = (char *) roadmap_dialog_get_data ("General", "Street type"); char *street_name = (char *) roadmap_dialog_get_data ("General", "Name"); char *t2s = (char *) roadmap_dialog_get_data ("General", "Text to Speech"); /* char *street_range = (char *) roadmap_dialog_get_data ("General", "Street range"); */ char *city = (char *) roadmap_dialog_get_data ("General", "City"); char *zip = (char *) roadmap_dialog_get_data ("General", "Zip code"); char *speed_limit_str = (char *) roadmap_dialog_get_data ("General", "Speed Limit"); #endif int street_id = editor_street_create (street_name, street_type, "", "", city, t2s); for (i=0; i<selected_lines->count; i++) { SelectedLine *line = &selected_lines->lines[i]; if (line->line.plugin_id != EditorPluginID) { if (roadmap_square_scale (line->line.square) == 0 && !roadmap_street_line_has_predecessor (&line->line)) { line->line.cfcc = cfcc; editor_line_copy (&line->line, street_id); } roadmap_square_set_current (line->line.square); editor_override_line_set_flag (line->line.line_id, line->line.square, ED_LINE_DELETED); } else { editor_line_modify_properties (line->line.line_id, cfcc, ED_LINE_DIRTY); editor_line_set_street (line->line.line_id, street_id); } } editor_screen_reset_selected (); editor_report_segments (); #ifdef SSD ssd_dialog_hide_current (dec_close); return 1; #else free (context); roadmap_dialog_hide (name); #endif }
static int on_softkey_left_way_to_go(SsdWidget widget, const char *new_value, void *context) { ssd_dialog_hide_current( dec_close ); roadmap_welcome_guided_tour(); return 0; }
/************************************************************************************************* * void roadmap_groups_browser_btn_close_cb( void ) * Custom button callback - Groups browser * */ void roadmap_groups_browser_btn_close_cb( void ) { ssd_dialog_hide_current( dec_ok ); }
static int button_callback (SsdWidget widget, const char *new_value) { ssd_dialog_hide_current (dec_ok); return 1; }
static void OnReminderShortClick (const char *name, const char *sprite, const char *image, const RoadMapGpsPosition *gps_position, const RoadMapGuiPoint *offset, BOOL is_visible, int scale, int opacity, const char *id, const char *text){ SsdWidget button; SsdWidget spacer; SsdWidget txt; SsdWidget bg; RoadMapPosition Pos; Pos.latitude = gps_position->latitude; Pos.longitude = gps_position->longitude; if (ssd_dialog_is_currently_active() && (!strcmp(ssd_dialog_currently_active_name(), REMINDER_POP_DLG_NAME))) ssd_dialog_hide_current(dec_close); bg = create_reminder_dlg(); if (get_id(id) != -1){ char msg[250]; int rem_distance; Reminder reminder; SsdWidget container; container = ssd_container_new( "container_txt", "", SSD_MIN_SIZE, SSD_MIN_SIZE, 0 ); ssd_widget_set_color( container, NULL, NULL ); reminder = ReminderTable.reminder[get_id(id)]; txt = ssd_text_new("reminder_title",&reminder.title[0] ,22, SSD_END_ROW); ssd_text_set_color(txt, "#ab5939"); ssd_widget_set_offset(txt, 25, 0); ssd_widget_add(container, txt); spacer = ssd_container_new( "space", "", SSD_MIN_SIZE, 10, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( container, spacer ); txt = ssd_text_new("reminder_desc",&reminder.description[0] ,18, SSD_END_ROW); ssd_text_set_color(txt, "#ab5939"); ssd_widget_set_offset(txt, 30, 0); ssd_widget_add(container, txt); spacer = ssd_container_new( "space", "", SSD_MIN_SIZE, 10, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( container, spacer ); rem_distance = roadmap_math_to_trip_distance_tenths(reminder.distance); sprintf(msg, roadmap_lang_get("Distance to remind: %.1f %s"),rem_distance/10.0, roadmap_lang_get(roadmap_math_trip_unit()) ); txt = ssd_text_new("reminder_dist",&msg[0] ,14, SSD_END_ROW); ssd_text_set_color(txt, "#ab5939"); ssd_widget_set_offset(txt, 30, 0); ssd_widget_add(container, txt); ssd_widget_add( bg, container ); } #ifdef TOUCH_SCREEN button = create_close_button(); ssd_widget_add(bg, button); button = create_del_button(); ssd_widget_set_offset(button, 0, -20); button->context = strdup(id); ssd_widget_add(bg, button); #endif //TOUCH_SCREEN show_reminder_dlg(); }
static void show_reminder(int id, int distance){ SsdWidget button; SsdWidget spacer; SsdWidget txt; SsdWidget bg; if (ssd_dialog_is_currently_active() && (!strcmp(ssd_dialog_currently_active_name(), REMINDER_POP_DLG_NAME))) ssd_dialog_hide_current(dec_close); bg = create_reminder_dlg(); if (id != -1){ Reminder reminder; SsdWidget container; char msg[250]; int rem_distance; container = ssd_container_new( "container_txt", "", SSD_MIN_SIZE, SSD_MIN_SIZE, 0 ); ssd_widget_set_color( container, NULL, NULL ); reminder = ReminderTable.reminder[id]; txt = ssd_text_new("reminder_title",&reminder.title[0] ,22, SSD_END_ROW); ssd_text_set_color(txt, "#ab5939"); ssd_widget_set_offset(txt, 25, 0); ssd_widget_add(container, txt); spacer = ssd_container_new( "space", "", SSD_MIN_SIZE, 10, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( container, spacer ); txt = ssd_text_new("reminder_desc",&reminder.description[0] ,18, SSD_END_ROW); ssd_text_set_color(txt, "#ab5939"); ssd_widget_set_offset(txt, 30, 0); ssd_widget_add(container, txt); spacer = ssd_container_new( "space", "", SSD_MIN_SIZE, 10, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( container, spacer ); rem_distance = roadmap_math_to_trip_distance_tenths(reminder.distance); sprintf(msg, "%s: %.1f %s",roadmap_lang_get("Distance"), rem_distance/10.0, roadmap_lang_get(roadmap_math_trip_unit()) ); txt = ssd_text_new("reminder_dist",&msg[0] ,14, SSD_END_ROW); ssd_text_set_color(txt, "#ab5939"); ssd_widget_set_offset(txt, 30, 0); ssd_widget_add(container, txt); ssd_widget_add( bg, container ); } #ifdef TOUCH_SCREEN spacer = ssd_container_new( "space", "", 10, 30, SSD_END_ROW ); ssd_widget_set_color( spacer, NULL, NULL ); ssd_widget_add( bg, spacer ); button = create_close_button(); button->context = (void *)roadmap_string_get(generate_id(id)); ssd_widget_add(bg, button); if (ReminderTable.reminder[id].repeat == 1){ button = create_del_button(); button->context = (void *)roadmap_string_get(generate_id(id)); ssd_widget_add(bg, button); } #endif //TOUCH_SCREEN show_reminder_dlg(); }
static int on_ok_softkey(SsdWidget widget, const char *new_value, void *context) { ssd_dialog_hide_current(dec_ok); return 0; }
static BOOL OnKeyPressed( const char* utf8char, uint32_t flags) { BOOL key_handled = TRUE; SsdWidget in_focus = NULL; if( !RoadMapDialogCurrent) return FALSE; // Let the control handle the key: in_focus = RoadMapDialogCurrent->in_focus; if( in_focus && ssd_widget_on_key_pressed (in_focus, utf8char, flags)) { roadmap_screen_redraw(); return TRUE; } // The control did not handle the key... // Supply general handling for virtual keys: if( KEYBOARD_VIRTUAL_KEY & flags) { SsdWidget container = RoadMapDialogCurrent->container; switch( *utf8char) { case VK_Back: ssd_dialog_hide_current(dec_cancel); break; case VK_Arrow_left: if( SSD_TAB_CONTROL & RoadMapDialogCurrent->container->flags) if (RoadMapDialogCurrent->scroll_container) ssd_tabcontrol_move_tab_left( RoadMapDialogCurrent->scroll_container); else ssd_tabcontrol_move_tab_left( RoadMapDialogCurrent->container); else ssd_dialog_move_focus(FOCUS_LEFT); break; case VK_Arrow_up: ssd_dialog_move_focus(FOCUS_UP); break; case VK_Arrow_right: if( SSD_TAB_CONTROL & RoadMapDialogCurrent->container->flags) if (RoadMapDialogCurrent->scroll_container) ssd_tabcontrol_move_tab_right( RoadMapDialogCurrent->scroll_container); else ssd_tabcontrol_move_tab_right( RoadMapDialogCurrent->container); else ssd_dialog_move_focus( FOCUS_RIGHT); break; case VK_Arrow_down: ssd_dialog_move_focus(FOCUS_DOWN); break; case VK_Softkey_right: if (RoadMapDialogCurrent->scroll_container && (RoadMapDialogCurrent->scroll_container->right_softkey_callback != NULL)) RoadMapDialogCurrent->scroll_container->right_softkey_callback(RoadMapDialogCurrent->scroll_container, RoadMapDialogCurrent->scroll_container->name, RoadMapDialogCurrent->scroll_container->context); else if (container->right_softkey_callback != NULL) container->right_softkey_callback(container, container->name, container->context); else #ifdef TOUCH_SCREEN ssd_dialog_hide_current( dec_ok ); #else ssd_dialog_hide_current( dec_cancel ); #endif break; case VK_Softkey_left: if (RoadMapDialogCurrent->scroll_container && (RoadMapDialogCurrent->scroll_container->left_softkey_callback != NULL)) RoadMapDialogCurrent->scroll_container->left_softkey_callback(RoadMapDialogCurrent->scroll_container, RoadMapDialogCurrent->scroll_container->name, RoadMapDialogCurrent->scroll_container->context); else if (container->left_softkey_callback != NULL) container->left_softkey_callback(container, container->name, container->context); else ssd_dialog_hide_all(dec_cancel); break; default: key_handled = FALSE; } } else { assert(utf8char); assert(*utf8char); // Other special keys: if( KEYBOARD_ASCII & flags) { switch(*utf8char) { case ESCAPE_KEY: ssd_dialog_hide_current(dec_cancel); break; case TAB_KEY: ssd_dialog_move_focus(FOCUS_FORWARD); break; default: key_handled = FALSE; } } } if( key_handled) roadmap_screen_redraw (); return key_handled; }