Пример #1
0
void roadmap_reminder_init(void){
   void *history;
   void *prev;
   int count = 0;

   roadmap_config_declare_enumeration ("preferences", &RoadMapConfigFeatureEnabled, NULL, "no",
                                       "yes", NULL);

   ReminderTable.iCount = 0;

   roadmap_history_declare (REMINDER_CATEGORY, reminder_hi__count);

   if (!roadmap_reminder_feature_enabled())
      return;

   history = roadmap_history_latest (REMINDER_CATEGORY);

   while (history && (count < MAX_REMINDER_ENTRIES)) {
      char *argv[reminder_hi__count];
      roadmap_history_get (REMINDER_CATEGORY, history, argv);
      prev = history;
      if (!strcmp(argv[reminder_hi_add_reminder], "1")){
         ReminderTable.reminder[count].position.latitude = atoi(argv[reminder_hi_latitude]);
         ReminderTable.reminder[count].position.longitude = atoi(argv[reminder_hi_longtitude]);
         ReminderTable.reminder[count].distance= atoi(argv[reminder_hi_distance]);
         ReminderTable.reminder[count].history = history;
         ReminderTable.reminder[count].displayed = FALSE;
         ReminderTable.reminder[count].in_use = TRUE;
         ReminderTable.reminder[count].repeat = atoi(argv[reminder_hi_repeat]);
         snprintf (ReminderTable.reminder[count].title, MAX_REMINDER_TITLE, "%s", argv[reminder_hi_title]);
         snprintf (ReminderTable.reminder[count].description, MAX_REMINDER_DESC, "%s", argv[reminder_hi_description]);

         remider_add_pin(count, &ReminderTable.reminder[count].position);

         count++;
      }

      history = roadmap_history_before (REMINDER_CATEGORY, history);
      if (history == prev) break;
   }

   ReminderTable.iCount = count;
   if(count > 0)
      register_gps_listener();
}
Пример #2
0
int on_options(SsdWidget widget, const char *new_value, void *context)
{
   int menu_x;
   BOOL add_cancel = TRUE;
   BOOL b_report_wrong_address = ( get_selected_list_item()== COULDNT_FIND_INDEX ) ;
#ifdef TOUCH_SCREEN
   roadmap_screen_refresh();
#endif

   assert( !s_menu);

   if  (ssd_widget_rtl (NULL))
	   menu_x = SSD_X_SCREEN_RIGHT;
	else
		menu_x = SSD_X_SCREEN_LEFT;

   ssd_contextmenu_show_item( &context_menu,
                              cm_navigate,
                              !generic_search_dlg_is_1st(search_address)&&(!b_report_wrong_address),
                              FALSE);
   ssd_contextmenu_show_item( &context_menu,
                              cm_show,
                              !generic_search_dlg_is_1st(search_address)&&(!b_report_wrong_address),
                              FALSE);
   ssd_contextmenu_show_item( &context_menu,
                              cm_add_to_favorites,

                              !generic_search_dlg_is_1st(search_address)&&(!b_report_wrong_address),
                              FALSE);
   ssd_contextmenu_show_item( &context_menu,
							   cm_add_geo_reminder,
                              !generic_search_dlg_is_1st(search_address)&&(!b_report_wrong_address),
                              FALSE);
   ssd_contextmenu_show_item( &context_menu,
                              cm_add_geo_reminder,

                              !generic_search_dlg_is_1st(search_address)&&(!b_report_wrong_address)&&roadmap_reminder_feature_enabled(),
                              FALSE);
   ssd_contextmenu_show_item( &context_menu,
                              cm_send,
                              b_report_wrong_address,
                              FALSE);

   ssd_contextmenu_show_item( &context_menu,
                              cm_cancel,
                              add_cancel,
                              FALSE);

   ssd_context_menu_show(  menu_x,              // X
                           SSD_Y_SCREEN_BOTTOM, // Y
                           &context_menu,
                           on_option_selected,
                           NULL,
                           dir_default,
                           0,
                           TRUE);


   s_menu = TRUE;

   return 0;
}
Пример #3
0
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);

}