Exemplo n.º 1
0
/*
 * Handle toggle of Show Label checkbox. Disable/enable
 * config options as appropriate.
 */
static void _cb_show_label(void *data, Evas_Object *obj, void *event_info)
{
   E_Config_Dialog_Data *cfdata;

   cfdata = data;
   e_widget_disabled_set(cfdata->gui.o_label_text, !e_widget_check_checked_get(
         cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_time_local_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_time_gmt_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_pos_tl_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_pos_tr_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_pos_bl_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_pos_br_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));
   e_widget_disabled_set(cfdata->gui.o_label_pos_other_toggle,
         !e_widget_check_checked_get(cfdata->gui.o_show_label));

   if (!e_widget_check_checked_get(cfdata->gui.o_show_label))
      e_widget_disabled_set(cfdata->gui.o_label_pos_other_text, 1);

   else _cb_label_pos(cfdata, NULL, NULL);
}
Exemplo n.º 2
0
/*
 * Handle toggle of Set local time checkbox. Disable/enable
 * config options as appropriate.
 */
static void _cb_set_localtime(void *data, Evas_Object *obj, void *event_info)
{
   E_Config_Dialog_Data *cfdata;

   cfdata = data;
   e_widget_disabled_set(cfdata->gui.o_localtime,
         !e_widget_check_checked_get(cfdata->gui.o_use_localtime));
}
Exemplo n.º 3
0
/*
 * Handle change of label position radio group
 */
static void _cb_label_pos(void *data, Evas_Object *obj, void *event_info)
{
   E_Config_Dialog_Data *cfdata;

   cfdata = data;

   // Disable/enable 'Other' text entry box
   e_widget_disabled_set(cfdata->gui.o_label_pos_other_text,
         !e_widget_check_checked_get(cfdata->gui.o_show_label) ||
         cfdata->local_xplanet.label_pos != LABEL_POS_OTHER);
}
Exemplo n.º 4
0
void _custom_fm_click(void *data, Evas_Object *obj)
{
   E_Config_Dialog_Data *cfdata = data;

   if (e_widget_check_checked_get(obj))
     e_widget_disabled_set(cfdata->entry, 0);
   else
     {
        e_widget_disabled_set(cfdata->entry, 1);
        e_widget_entry_text_set(cfdata->entry, "");
     }
}
static void
_e_mod_config_schedule_urgent_cb(void *data, Evas_Object *obj, void *event_info)
{
   E_Config_Dialog_Data *cfdata;

   if(!(cfdata = data)) return;

   cfdata->schedule.urgent = e_widget_check_checked_get(obj);
   productivity_conf->urgent = cfdata->schedule.urgent;
   e_mod_config_schedule_save_config(cfdata);
   e_mod_config_worktools_save(cfdata);
   e_config_save_queue();
}
Exemplo n.º 6
0
/*
 * Validate the entered configuration. Display and error message
 * if required.
 */
static int parse_config_gui(E_Config_Dialog_Data *cfdata)
{
   E_Dialog *error_popup;
   char error_message[1024];
   int config_ok = 1;
   char *end_pointer;
   float parsed_float;
   const char *text_value;
   regex_t *reg_expression;
   int regex_result;
   char *viewpos_file;
   float lat, lon;

   sprintf(error_message, "The configuration you have entered is invalid:<br>");

   if (cfdata->local_xplanet.source_type == SOURCE_ORIGIN)
      cfdata->local_xplanet.origin = strdup(e_widget_ilist_selected_value_get(cfdata->gui.o_source_ilist));
   else
      cfdata->local_xplanet.projection = strdup(e_widget_ilist_selected_value_get(cfdata->gui.o_source_ilist));

   if (cfdata->local_xplanet.source_type == SOURCE_ORIGIN)
   {
      if (strcmp(cfdata->local_xplanet.body, "random") && !strcmp(cfdata->local_xplanet.body, cfdata->local_xplanet.origin))
      {
         sprintf(error_message + strlen(error_message),
            "<br>* Target and origin cannot be the same.");
         config_ok = 0;
      }
   }

   switch (cfdata->local_xplanet.viewpos_type)
   {
   case VIEWPOS_LATLON:
   {
      end_pointer = (char *)e_widget_entry_text_get(cfdata->gui.o_viewpos_lat);
      if (strlen(end_pointer) == 0)
      {
         sprintf(error_message + strlen(error_message),
               "<br>* You must enter a latitude.");
         config_ok = 0;
      }
      else
      {
         parsed_float = strtof(e_widget_entry_text_get(cfdata->gui.o_viewpos_lat),
               &end_pointer);
         if (*end_pointer != '\0' || parsed_float < -90.0 || parsed_float > 90.0)
         {
            sprintf(error_message + strlen(error_message),
                  "<br>* The entered latitude is invalid - must be in the range -90 to 90.");
            config_ok = 0;
         }
         else cfdata->local_xplanet.viewpos_lat = parsed_float;
      }

      end_pointer = (char *)e_widget_entry_text_get(cfdata->gui.o_viewpos_lon);
      if (strlen(end_pointer) == 0)
      {
         sprintf(error_message + strlen(error_message),
               "<br>* You must enter a longitude.");
         config_ok = 0;
      }
      else
      {
         parsed_float = strtof(e_widget_entry_text_get(cfdata->gui.o_viewpos_lon),
               &end_pointer);
         if (*end_pointer != '\0' || parsed_float < -180.0 || parsed_float > 360.0)
         {
            sprintf(error_message + strlen(error_message),
                  "<br>* The entered longitude is invalid - must be in the range 0 to 360 or -180 to 180");
            config_ok = 0;
         }
         else cfdata->local_xplanet.viewpos_lon = parsed_float;
      }
      break;
   }
   case VIEWPOS_FILE:
   {
      lat = INVALID_COORD;
      lon = INVALID_COORD;

      viewpos_file = (char *)e_widget_entry_text_get(cfdata->gui.o_viewpos_file_val);
      switch(read_viewpos_file(viewpos_file, &lat, &lon))
      {
      case VIEWPOS_FILE_NO_PERM:
      {
         sprintf(error_message + strlen(error_message),
               "<br>* No permissions to read viewing position file");
         config_ok = 0;
         break;
      }
      case VIEWPOS_FILE_NOT_FOUND:
      {
         sprintf(error_message + strlen(error_message),
               "<br>* The viewing position file cannot be found");
         config_ok = 0;
         break;
      }
      case VIEWPOS_FILE_IS_DIR:
      {
         sprintf(error_message + strlen(error_message),
               "<br>* The viewing position file is a directory");
         config_ok = 0;
         break;
      }
      case VIEWPOS_FILE_FORMAT_ERROR:
      {
         sprintf(error_message + strlen(error_message),
               "<br>* The viewing position file is in the wrong format (must be 2 numbers, lat then lon)");
         config_ok = 0;
         break;
      }
      case VIEWPOS_FILE_OK:
         cfdata->local_xplanet.viewpos_file = (char *)eina_stringshare_add(viewpos_file);
         break;
      }
      break;
   }
   default:
      break;
   }

   cfdata->local_xplanet.use_localtime = e_widget_check_checked_get(cfdata->gui.o_use_localtime);
   cfdata->local_xplanet.localtime = cfdata->gui.o_localtime;

   cfdata->local_xplanet.show_label = e_widget_check_checked_get(cfdata->gui.o_show_label);
   cfdata->local_xplanet.label_text = strdup(e_widget_entry_text_get(cfdata->gui.o_label_text));

   text_value = strdup(e_widget_entry_text_get(cfdata->gui.o_label_pos_other_text));
   if (!text_value || strlen(text_value) == 0)
   {
      cfdata->local_xplanet.label_pos_other = "";
      if (cfdata->local_xplanet.label_pos == LABEL_POS_OTHER)
      {
         sprintf(error_message + strlen(error_message),
               "<br>* You have not entered a label position");
         config_ok = 0;
      }
   }
   else
   {
      reg_expression = E_NEW(regex_t, 1);
      regcomp(reg_expression, "^[+-][0-9][0-9]*[+-][0-9][0-9]*$", 0);
      regex_result = regexec(reg_expression, text_value, 0, NULL, 0);
      if (regex_result)
      {
         sprintf(error_message + strlen(error_message),
               "<br>* The entered label position is invalid - must be of the form -15+15");
         config_ok = 0;
      }
      else cfdata->local_xplanet.label_pos_other = text_value;

      regfree(reg_expression);
      free(reg_expression);
   }

   cfdata->local_xplanet.use_config = e_widget_check_checked_get(cfdata->gui.o_config_check);
   cfdata->local_xplanet.config_name = strdup(e_widget_entry_text_get(cfdata->gui.o_config_name));

   cfdata->local_xplanet.extra_options = strdup(e_widget_entry_text_get(cfdata->gui.o_extra_options));

   if (!config_ok)
   {
      error_popup = e_dialog_new(e_container_current_get(
            e_manager_current_get()), "eplanet_error", "eplanet/error");
      e_dialog_title_set(error_popup, "Configuration error");
      e_dialog_text_set(error_popup, (const char *) &error_message);
      e_dialog_button_add(error_popup, D_("OK"), NULL, NULL, NULL);
      e_dialog_show(error_popup);
   }

   return config_ok;
}