*The icon theme checkbox now works.

*Clean things up a bit.


SVN revision: 25898
This commit is contained in:
David Walter Seikel 2006-09-16 20:59:40 +00:00
parent 4d8bb1d88c
commit be09428b9c
2 changed files with 39 additions and 55 deletions

View File

@ -1355,7 +1355,6 @@ e_app_fields_save(E_App *a)
}
if (desktop)
{
desktop->eap_name = (char *) a->path;
desktop->name = (char *) a->name;
desktop->generic = (char *) a->generic;
desktop->comment = (char *) a->comment;
@ -1670,7 +1669,10 @@ EAPI Evas_Object *
e_app_icon_add(Evas *evas, E_App *a)
{
Evas_Object *o = NULL;
#if DEBUG
printf("e_app_icon_add(%s) %s %s %s\n", a->path, a->icon_class, e_config->icon_theme, a->icon_path);
#endif
if ((a->icon_path) && (a->icon_path[0] != 0))
o = _e_app_icon_path_add(evas, a);
else
@ -1722,6 +1724,9 @@ e_app_icon_add_to_menu_item(E_Menu_Item *mi, E_App *a)
/* e_menu_item_icon_edje_set() just tucks away the params, the actual call to edje_object_file_set() happens later. */
/* e_menu_item_icon_file_set() just tucks away the params, the actual call to e_icon_add() happens later. */
#if DEBUG
printf("e_app_icon_add_to_menu_item(%s) %s %s %s\n", a->path, a->icon_class, e_config->icon_theme, a->icon_path);
#endif
if ((a->icon_path) && (a->icon_path[0] != 0))
_e_app_icon_path_add_to_menu_item(mi, a);
else

View File

@ -26,6 +26,7 @@ struct _E_Config_Dialog_Data
int height;
int icon_theme;
E_App_Edit *editor;
Evas_Object *themed;
};
/* local subsystem functions */
@ -44,6 +45,7 @@ static void _e_eap_edit_change_cb(void *data, Evas_Object *obj);
static void _e_eap_edit_cb_icon_select_del(void *obj);
static void _e_eap_edit_cb_icon_select_ok(void *data, E_Dialog *dia);
static void _e_eap_edit_cb_icon_select_cancel(void *data, E_Dialog *dia);
static void _cb_files_icon_theme_changed(void *data, Evas_Object *obj, void *event_info);
#define IFADD(src, dst) if (src) dst = evas_stringshare_add(src); else dst = NULL
#define IFDEL(src) if (src) evas_stringshare_del(src); src = NULL;
@ -139,12 +141,12 @@ _e_eap_edit_fill_data(E_Config_Dialog_Data *cfdata)
IFDUP(cfdata->editor->eap->image, cfdata->image);
cfdata->height = cfdata->editor->eap->height;
cfdata->width = cfdata->editor->eap->width;
if (cfdata->image) cfdata->editor->img_set = 1;
IFADD(cfdata->editor->eap->path, cfdata->eap.path);
IFADD(cfdata->editor->eap->icon_class, cfdata->eap.icon_class);
IFDEL(cfdata->eap.icon_path);
IFADD(cfdata->editor->eap->icon_path, cfdata->eap.icon_path);
if (!cfdata->eap.icon_path)
cfdata->icon_theme = 1;
}
static void *
@ -205,6 +207,8 @@ _e_eap_edit_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data)
IFDEL(eap->image);
IFADD(data->name, eap->name);
IFADD(data->iclass, eap->icon_class);
IFADD(data->eap.icon_path, eap->icon_path);
if (data->exe)
{
char *exe;
@ -218,11 +222,6 @@ _e_eap_edit_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data)
}
eap->exe = evas_stringshare_add(data->exe);
}
if (data->image)
{
eap->image = evas_stringshare_add(data->image);
eap->icon_class = evas_stringshare_add(""); /* Call this temporary, until I reconsider the icon search order. */
}
eap->startup_notify = data->startup_notify;
eap->wait_exit = data->wait_exit;
@ -256,8 +255,6 @@ _e_eap_edit_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *data
IFADD(data->wclass, eap->win_class);
IFADD(data->wtitle, eap->win_title);
IFADD(data->wrole, eap->win_role);
IFADD(data->iclass, eap->icon_class);
IFADD(data->eap.icon_path, eap->icon_path);
_e_eap_edit_basic_apply_data(cfd, data);
@ -270,7 +267,7 @@ _e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dial
{
E_App_Edit *editor;
E_App *eap;
Evas_Object *ol, *o;
Evas_Object *ol, *o, *mt;
Evas_Object *entry;
editor = data->editor;
@ -288,24 +285,6 @@ _e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dial
}
editor->img = e_app_icon_add(evas, &(data->eap));
#if 0
if ((editor->img_set) && (data->image))
{
if (editor->img) evas_object_del(editor->img);
editor->img = e_icon_add(evas);
e_icon_file_set(editor->img, data->image);
e_icon_fill_inside_set(editor->img, 1);
}
else if (!editor->img)
{
editor->img = e_icon_add(evas);
if (eap->path)
{
e_icon_file_key_set(editor->img, eap->path, "images/0");
e_icon_fill_inside_set(editor->img, 1);
}
}
#endif
if (editor->img_widget) evas_object_del(editor->img_widget);
editor->img_widget = e_widget_button_add(evas, "", NULL,
@ -316,7 +295,10 @@ _e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dial
0, 0, 1, 1,
1, 1, 1, 1);
e_widget_frametable_object_append(o, e_widget_check_add(evas, _("Use Icon Theme"), &(data->icon_theme)),
data->themed = e_widget_check_add(evas, _("Use Icon Theme"), &(data->icon_theme));
evas_object_smart_callback_add(data->themed, "changed",
_cb_files_icon_theme_changed, data);
e_widget_frametable_object_append(o, data->themed,
1, 0, 1, 1,
1, 1, 1, 1);
@ -494,7 +476,7 @@ _e_eap_edit_change_cb(void *data, Evas_Object *obj)
if (!file) return;
IFFREE(cfdata->image);
IFDUP(cfdata->image, file);
IFDUP(file, cfdata->image);
}
static void
@ -505,7 +487,6 @@ _e_eap_edit_cb_icon_select_del(void *obj)
dia = obj;
cfdata = dia->data;
cfdata->editor->img_set = 0;
e_widget_focused_object_clear(cfdata->editor->img_widget);
}
@ -517,28 +498,11 @@ _e_eap_edit_cb_icon_select_ok(void *data, E_Dialog *dia)
cfdata = data;
if (cfdata->image)
{
cfdata->editor->img_set = 1;
if (cfdata->editor->img) evas_object_del(cfdata->editor->img);
IFDEL(cfdata->eap.icon_class);
IFDEL(cfdata->eap.icon_path);
cfdata->eap.icon_path = evas_stringshare_add(cfdata->image);
cfdata->eap.icon_class = NULL;
cfdata->editor->img = e_app_icon_add(cfdata->editor->evas, &(cfdata->eap));
#if 0
cfdata->editor->img = e_icon_add(cfdata->editor->evas);
e_icon_file_set(cfdata->editor->img, cfdata->image);
e_icon_fill_inside_set(cfdata->editor->img, 1);
#endif
e_widget_button_icon_set(cfdata->editor->img_widget, cfdata->editor->img);
e_widget_check_checked_set(cfdata->themed, 0);
_cb_files_icon_theme_changed(cfdata, NULL, NULL);
}
else
cfdata->editor->img_set = 0;
e_widget_focused_object_clear(cfdata->editor->img_widget);
e_object_del_attach_func_set(E_OBJECT(dia), NULL);
e_object_del(E_OBJECT(dia));
_e_eap_edit_cb_icon_select_cancel(data, dia);
}
static void
@ -547,8 +511,23 @@ _e_eap_edit_cb_icon_select_cancel(void *data, E_Dialog *dia)
E_Config_Dialog_Data *cfdata;
cfdata = data;
cfdata->editor->img_set = 0;
e_widget_focused_object_clear(cfdata->editor->img_widget);
e_object_del_attach_func_set(E_OBJECT(dia), NULL);
e_object_del(E_OBJECT(dia));
}
static void
_cb_files_icon_theme_changed(void *data, Evas_Object *obj, void *event_info)
{
E_Config_Dialog_Data *cfdata;
cfdata = data;
IFDEL(cfdata->eap.icon_path);
if (!cfdata->icon_theme)
{
IFADD(cfdata->image, cfdata->eap.icon_path);
}
if (cfdata->editor->img) evas_object_del(cfdata->editor->img);
cfdata->editor->img = e_app_icon_add(cfdata->editor->evas, &(cfdata->eap));
e_widget_button_icon_set(cfdata->editor->img_widget, cfdata->editor->img);
}