int alert_percent;
int dismiss_alert;
int alert_timeout;
+ int force_mode; // 0 == auto, 1 == batget, 2 == hal
};
/* Protos */
battery_config->alert_timeout = cfdata->alert_timeout;
else
battery_config->alert_timeout = 0;
-
+
_battery_config_updated();
e_config_save_queue();
return 1;
_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *of, *ob;
+ E_Radio_Group *rg;
/* Use Sliders for both cfg options */
o = e_widget_list_add(evas, 0, 0);
- of = e_widget_frametable_add(evas, _("Advanced Settings"), 1);
+ of = e_widget_frametable_add(evas, _("Polling (Internal)"), 1);
ob = e_widget_label_add(evas, _("Check battery every:"));
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f ticks"), 1, 1024, 4, 0, NULL, &(cfdata->poll_interval), 256);
e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 0, 1, 0);
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ of = e_widget_frametable_add(evas, _("Alert"), 1);
+
ob = e_widget_check_add(evas, _("Show alert when battery is low"), &(cfdata->show_alert));
- e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 1, 0);
+ e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 0);
ob = e_widget_label_add(evas, _("Alert when battery is down to:"));
- e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 0, 1, 1);
+ e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 0, 1, 1);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 0, 60, 1, 0, NULL, &(cfdata->alert_time), 60);
- e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 1, 0, 1, 0);
+ e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 0, 1, 0);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f percent"), 0, 100, 1, 0, NULL, &(cfdata->alert_percent), 100);
- e_widget_frametable_object_append(of, ob, 0, 5, 1, 1, 1, 0, 1, 0);
+ e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 0, 1, 0);
ob = e_widget_check_add(evas, _("Dismiss alert automatically"), &(cfdata->dismiss_alert));
- e_widget_frametable_object_append(of, ob, 0, 6, 1, 1, 1, 1, 1, 0);
+ e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 1, 1, 1, 0);
ob = e_widget_label_add(evas, _("Dismiss alert after:"));
- e_widget_frametable_object_append(of, ob, 0, 7, 1, 1, 1, 0, 1, 0);
+ e_widget_frametable_object_append(of, ob, 0, 5, 1, 1, 1, 0, 1, 0);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 1, 300, 1, 0, NULL, &(cfdata->alert_timeout), 150);
- e_widget_frametable_object_append(of, ob, 0, 8, 1, 1, 1, 0, 1, 0);
+ e_widget_frametable_object_append(of, ob, 0, 6, 1, 1, 1, 0, 1, 0);
+
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ of = e_widget_framelist_add(evas, _("Hardware Interface"), 0);
+
+ rg = e_widget_radio_group_new(&(cfdata->force_mode));
+ ob = e_widget_radio_add(evas, _("Auto Detect"), 0, rg);
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_radio_add(evas, _("Internal"), 1, rg);
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_radio_add(evas, _("HAL"), 2, rg);
+ e_widget_framelist_object_append(of, ob);
e_widget_list_object_append(o, of, 1, 1, 0.5);
+
return o;
}
else
battery_config->alert_timeout = 0;
+ battery_config->force_mode = cfdata->force_mode;
+
_battery_config_updated();
e_config_save_queue();
return 1;
battery_config->have_hal = NOHAL;
}
- if (battery_config->have_hal == NOHAL)
+ if ((battery_config->have_hal == NOHAL) ||
+ (battery_config->force_mode == 1))
{
if (battery_config->batget_exe)
{
ECORE_EXE_PIPE_READ_LINE_BUFFERED |
ECORE_EXE_NOT_LEADER, NULL);
}
- else if (battery_config->have_hal == UNKNOWN)
+ else if ((battery_config->have_hal == UNKNOWN) ||
+ (battery_config->force_mode == 2))
{
E_DBus_Connection *conn;
DBusPendingCall *call;
inst = data;
e_gadcon_popup_hide(inst->warning);
+ battery_config->alert_timer = NULL;
return 0;
}
static void
_battery_warning_popup_destroy(Instance *inst)
{
+ if (battery_config->alert_timer)
+ {
+ ecore_timer_del(battery_config->alert_timer);
+ battery_config->alert_timer = NULL;
+ }
if ((!inst) || (!inst->warning)) return;
e_object_del(E_OBJECT(inst->warning));
inst->warning = NULL;
_battery_face_level_set(inst->popup_battery, percent);
edje_object_signal_emit(inst->popup_battery, "e,state,discharging", "e");
- if (battery_config->alert_timeout)
+ if ((battery_config->alert_timeout > 0) &&
+ (!battery_config->alert_timer))
{
- ecore_timer_add(battery_config->alert_timeout,
- _battery_cb_warning_popup_timeout, inst);
+ battery_config->alert_timer =
+ ecore_timer_add(battery_config->alert_timeout,
+ _battery_cb_warning_popup_timeout, inst);
}
}
E_CONFIG_VAL(D, T, alert, INT);
E_CONFIG_VAL(D, T, alert_p, INT);
E_CONFIG_VAL(D, T, alert_timeout, INT);
+ E_CONFIG_VAL(D, T, force_mode, INT);
battery_config = e_config_domain_load("module.battery", conf_edd);
if (!battery_config)
battery_config->alert = 30;
battery_config->alert_p = 10;
battery_config->alert_timeout = 0;
+ battery_config->force_mode = 0;
}
E_CONFIG_LIMIT(battery_config->poll_interval, 4, 4096);
E_CONFIG_LIMIT(battery_config->alert, 0, 60);
E_CONFIG_LIMIT(battery_config->alert_p, 0, 100);
E_CONFIG_LIMIT(battery_config->alert_timeout, 0, 300);
+ E_CONFIG_LIMIT(battery_config->force_mode, 0, 2);
battery_config->module = m;
battery_config->full = -2;
e_configure_registry_category_del("advanced");
e_gadcon_provider_unregister(&_gadcon_class);
+ if (battery_config->alert_timer)
+ ecore_timer_del(battery_config->alert_timer);
+
if (battery_config->batget_exe)
{
ecore_exe_terminate(battery_config->batget_exe);