Esempio n. 1
0
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();
}
Esempio n. 2
0
void roadmap_mood_dialog (RoadMapCallback callback) {

    char **files;
    const char *cursor;
    char **cursor2;
    char *directory = NULL;
    int count = 0;
    SsdWidget moodDlg;
    SsdWidget list;
    SsdWidget exclusive_list;
    SsdWidget baby_list;
    SsdWidget text;
    int i;
    BOOL only_baby_mood = Realtime_IsNewbie();
    int row_height = ssd_container_get_row_height();
    SsdListCallback exclusive_callback = NULL;

    SsdListCallback regular_mood_callback = roadmap_mood_call_back;
    int flags = 0;
    int width = SSD_MAX_SIZE;

    static roadmap_mood_list_dialog context = {"roadmap_mood", NULL};
    static char *labels[MAX_MOOD_ENTRIES] ;
    static void *values[MAX_MOOD_ENTRIES] ;
    static void *icons[MAX_MOOD_ENTRIES];

    static char *exclusive_labels[MAX_EXCLUSIVE_ICONS] ;
    static void *exclusive_values[MAX_EXCLUSIVE_ICONS] ;
    static void *exclusive_icons[MAX_EXCLUSIVE_ICONS];

    static char *baby_labels[1] ;
    static void *baby_values[1] ;
    static void *baby_icons[1];


    flags |= SSD_ALIGN_CENTER|SSD_CONTAINER_BORDER|SSD_CONTAINER_FLAGS;
    width = ssd_container_get_width();


    moodDlg   = ssd_dialog_new ( "MoodDlg", roadmap_lang_get ("Select your mood"), NULL, SSD_CONTAINER_TITLE);
    moodDlg->context = (void *)callback;
    exclusive_list = ssd_list_new ("list", width, SSD_MAX_SIZE, inputtype_none, flags, NULL);

    ssd_list_resize ( exclusive_list, row_height );

    baby_list = ssd_list_new ("baby_list", width, SSD_MAX_SIZE, inputtype_none, flags, NULL);

    ssd_list_resize ( baby_list, row_height );

    exclusive_labels[0] = (char *)roadmap_lang_get("wazer_gold");
    exclusive_values[0] = "wazer_gold";
    exclusive_icons[0] = "wazer_gold";

    exclusive_labels[1] = (char *)roadmap_lang_get("wazer_silver");
    exclusive_values[1] = "wazer_silver";
    exclusive_icons[1] = "wazer_silver";

    exclusive_labels[2] = (char *)roadmap_lang_get("wazer_bronze");
    exclusive_values[2] = "wazer_bronze";
    exclusive_icons[2] = "wazer_bronze";

    if (roadmap_mood_get_exclusive_moods() > 0){
       exclusive_callback = roadmap_exclusive_mood_call_back;
    }

    ssd_list_populate (exclusive_list, 3, (const char **)exclusive_labels, (const void **)exclusive_values, (const char **)exclusive_icons, NULL, exclusive_callback, NULL, FALSE);

    if (only_baby_mood){
       char msg[150];
       baby_labels[0] = (char *)roadmap_lang_get("Baby");
       baby_values[0] = "wazer_baby";
       baby_icons[0] = "wazer_baby";
       ssd_list_populate (baby_list, 1, (const char **)baby_labels, (const void **)baby_values, (const char **)baby_icons, NULL, NULL, NULL, FALSE);

       ssd_dialog_add_hspace(moodDlg, 20, 0);
       text = ssd_text_new ("Baby Mood Txt", roadmap_lang_get("Waze newbie"), SSD_HEADER_TEXT_SIZE, SSD_TEXT_NORMAL_FONT | SSD_END_ROW);
       ssd_widget_add(moodDlg, text);
       ssd_dialog_add_hspace(moodDlg, 20, 0);
       snprintf(msg, sizeof(msg), roadmap_lang_get("(Gotta drive %d+ %s to access other moods)"), roadmap_mood_get_number_of_newbie_miles(), roadmap_lang_get(roadmap_math_trip_unit()));
       text = ssd_text_new ("Gold Mood Txt", msg, 12, SSD_END_ROW|SSD_TEXT_NORMAL_FONT);
       ssd_widget_add(moodDlg, text);
       ssd_widget_add (moodDlg, baby_list);

    }
    ssd_dialog_add_vspace(moodDlg, ADJ_SCALE(5),0);
    ssd_dialog_add_hspace(moodDlg, 20, 0);
    text = ssd_text_new ("Gold Mood Txt", roadmap_lang_get("Exclusive moods"), SSD_HEADER_TEXT_SIZE, SSD_TEXT_NORMAL_FONT | SSD_END_ROW);
    ssd_widget_add(moodDlg, text);
    ssd_dialog_add_hspace(moodDlg, 20, 0);
    text = ssd_text_new ("Gold Mood Txt", roadmap_lang_get("(Available only to top weekly scoring wazers)"), SSD_FOOTER_TEXT_SIZE, SSD_END_ROW|SSD_TEXT_NORMAL_FONT);
    ssd_widget_add(moodDlg, text);
    ssd_dialog_add_vspace(moodDlg, ADJ_SCALE(3),0);
    ssd_widget_add (moodDlg, exclusive_list);

    for (i = 0; i < (3 - roadmap_mood_get_exclusive_moods()); i++){
           SsdWidget row = ssd_list_get_row(exclusive_list, i);
           if (row){
              SsdWidget label = ssd_widget_get(row,"label");
              if (label)
                 ssd_text_set_color(label,"#999999");
           }
    }



    list = ssd_list_new ("list", width, SSD_MAX_SIZE, inputtype_none, flags, NULL);
    exclusive_list->key_pressed = NULL;
    ssd_dialog_add_vspace(moodDlg, ADJ_SCALE(10), 0);
    ssd_dialog_add_hspace(moodDlg, 20, 0);
    text = ssd_text_new ("Gold Mood Txt", roadmap_lang_get("Everyday moods"), SSD_HEADER_TEXT_SIZE, SSD_TEXT_NORMAL_FONT | SSD_END_ROW);
    ssd_widget_add(moodDlg, text);
    ssd_dialog_add_hspace(moodDlg, 20, 0);
    text = ssd_text_new ("Gold Mood Txt", roadmap_lang_get("(Available to all)"), SSD_FOOTER_TEXT_SIZE, SSD_END_ROW|SSD_TEXT_NORMAL_FONT);
    ssd_widget_add(moodDlg, text);
    ssd_dialog_add_vspace(moodDlg, ADJ_SCALE(3),0);
    ssd_widget_add (moodDlg, list);
    ssd_list_resize ( list, row_height );

    context.callback = callback;
    for (cursor = roadmap_path_first ("skin");
            cursor != NULL;
            cursor = roadmap_path_next ("skin", cursor)) {

       directory = roadmap_path_join (cursor, "moods");

      files = roadmap_path_list (directory, ".png");
      if ( *files == NULL )
      {
         files = roadmap_path_list (directory, NULL);
      }

         for (cursor2 = files; *cursor2 != NULL; ++cursor2) {
               labels[count]  =   (char *)(strtok(*cursor2,"."));
               count++;
         }
   }


    qsort((void *) &labels[0], count, sizeof(void *), cstring_cmp);

    for (i = 0; i< count; i++){
       values[i] = labels[i];
       icons[i]   =   roadmap_path_join("moods", labels[i]);
       labels[i] = (char *)roadmap_lang_get(labels[i]);
    }



    if (only_baby_mood){
       regular_mood_callback = NULL;
    }

    free(directory);
    ssd_list_populate (list, count, (const char **)labels, (const void **)values, (const char **)icons, NULL, regular_mood_callback, NULL, FALSE);

    if (only_baby_mood){
       for (i = 0; i< count; i++){
          SsdWidget row = ssd_list_get_row(list, i);
          if (row){
             SsdWidget label = ssd_widget_get(row,"label");
             if (label)
                ssd_text_set_color(label,"#999999");
          }
       }
    }
//    else{
//       SsdWidget row = ssd_list_get_row(baby_list,0 );
//       if (row){
//          SsdWidget label = ssd_widget_get(row,"label");
//          if (label)
//             ssd_text_set_color(label,"#999999");
//       }
//    }

    exclusive_list->key_pressed = NULL;
    ssd_dialog_activate ("MoodDlg", NULL);
    ssd_dialog_draw ();

}
Esempio n. 3
0
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();

}