2005-10-24 16:08:20 -07:00
|
|
|
#include "e.h"
|
|
|
|
|
|
|
|
/* local subsystem functions */
|
|
|
|
|
|
|
|
static void _e_eap_edit_save_cb(void *data, E_Dialog *dia);
|
|
|
|
static void _e_eap_edit_cancel_cb(void *data, E_Dialog *dia);
|
2005-10-24 18:03:50 -07:00
|
|
|
static void _e_eap_edit_browse_cb(void *data1, void *data2);
|
2005-10-24 16:08:20 -07:00
|
|
|
static void _e_eap_edit_free(E_App_Edit *app);
|
2005-10-25 17:19:52 -07:00
|
|
|
static void _e_eap_edit_selector_cb(E_Fileman *fileman, char *file, void *data);
|
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
#define IFDUP(src, dst) if(src) dst = strdup(src); else dst = NULL
|
2005-10-24 16:08:20 -07:00
|
|
|
|
|
|
|
/* externally accessible functions */
|
|
|
|
E_App_Edit *
|
|
|
|
e_eap_edit_show(E_Container *con, E_App *a)
|
|
|
|
{
|
|
|
|
E_Manager *man;
|
|
|
|
E_App_Edit *app;
|
2005-10-25 17:19:52 -07:00
|
|
|
Evas_Object *o, *ol;
|
2005-10-24 16:08:20 -07:00
|
|
|
|
|
|
|
app = E_OBJECT_ALLOC(E_App_Edit, E_EAP_EDIT_TYPE, _e_eap_edit_free);
|
|
|
|
if (!app) return NULL;
|
|
|
|
app->dia = e_dialog_new(con);
|
|
|
|
if (!app->dia)
|
|
|
|
{
|
|
|
|
free(app);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
app->con = con;
|
|
|
|
e_dialog_title_set(app->dia, _("Eap Editor"));
|
|
|
|
app->evas = e_win_evas_get(app->dia->win);
|
|
|
|
|
|
|
|
app->eap = a;
|
|
|
|
|
|
|
|
ol = e_widget_list_add(app->evas, 0, 0);
|
2005-10-25 15:01:50 -07:00
|
|
|
o = e_widget_table_add(app->evas, _("Eap Info"), 0);
|
|
|
|
|
|
|
|
IFDUP(a->name, app->data.name);
|
|
|
|
IFDUP(a->generic, app->data.generic);
|
|
|
|
IFDUP(a->comment, app->data.comment);
|
|
|
|
IFDUP(a->exe, app->data.exe);
|
|
|
|
IFDUP(a->win_name, app->data.wname);
|
|
|
|
IFDUP(a->win_class, app->data.wclass);
|
|
|
|
IFDUP(a->win_title, app->data.wtitle);
|
|
|
|
IFDUP(a->win_role, app->data.wrole);
|
|
|
|
IFDUP(a->path, app->data.path);
|
|
|
|
|
|
|
|
if(a->path)
|
|
|
|
{
|
2005-10-25 17:19:52 -07:00
|
|
|
app->img = edje_object_add(app->evas);
|
|
|
|
edje_object_file_set(app->img, a->path, "icon");
|
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2005-10-25 17:19:52 -07:00
|
|
|
app->img = edje_object_add(app->evas);
|
|
|
|
e_theme_edje_object_set(app->img, "base/theme/icons/enlightenment/e", "icons/enlightenment/e");
|
2005-10-25 15:01:50 -07:00
|
|
|
}
|
2005-10-25 17:19:52 -07:00
|
|
|
|
|
|
|
app->img_widget = e_widget_image_add_from_object(app->evas, app->img, 48, 48);
|
|
|
|
e_widget_table_object_append(o, app->img_widget,
|
2005-10-25 15:01:50 -07:00
|
|
|
0, 0, 1, 1,
|
|
|
|
1, 1, 1, 1);
|
|
|
|
|
2005-10-24 18:03:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_button_add(app->evas, "Set Icon",
|
|
|
|
NULL, _e_eap_edit_browse_cb,
|
|
|
|
app, NULL),
|
|
|
|
1, 0, 1, 1,
|
|
|
|
0, 0, 0, 0);
|
2005-10-24 16:08:20 -07:00
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "App name"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 1, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
{
|
|
|
|
Evas_Object *entry;
|
2005-10-25 15:01:50 -07:00
|
|
|
entry = e_widget_entry_add(app->evas, &(app->data.name));
|
2005-10-24 16:08:20 -07:00
|
|
|
e_widget_min_size_set(entry, 100, 1);
|
|
|
|
e_widget_table_object_append(o, entry,
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 1, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Generic Info"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 2, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.generic)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 2, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Comment"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 3, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.comment)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 3, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Executable"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 4, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.exe)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 4, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Name"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 5, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wname)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 5, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Class"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 6, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wclass)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 6, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Title"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 7, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wtitle)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 7, 1, 1,
|
2005-10-25 15:01:50 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-24 16:08:20 -07:00
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Window Role"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 8, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.wrole)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 8, 1, 1,
|
2005-10-25 15:01:50 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-24 16:08:20 -07:00
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Icon Class"),
|
2005-10-24 18:03:50 -07:00
|
|
|
0, 9, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
2005-10-25 15:01:50 -07:00
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.iclass)),
|
2005-10-24 18:03:50 -07:00
|
|
|
1, 9, 1, 1,
|
2005-10-25 15:01:50 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Path"),
|
|
|
|
0, 10, 1, 1,
|
|
|
|
1, 1, 1, 1);
|
|
|
|
e_widget_table_object_append(o, e_widget_entry_add(app->evas, &(app->data.path)),
|
|
|
|
1, 10, 1, 1,
|
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Startup notify"),
|
|
|
|
0, 11, 1, 1,
|
|
|
|
1, 1, 1, 1);
|
|
|
|
e_widget_table_object_append(o, e_widget_check_add(app->evas, "", &(app->data.startup_notify)),
|
|
|
|
1, 11, 1, 1,
|
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_table_object_append(o, e_widget_label_add(app->evas, "Wait exit"),
|
|
|
|
0, 12, 1, 1,
|
|
|
|
1, 1, 1, 1);
|
|
|
|
e_widget_table_object_append(o, e_widget_check_add(app->evas, "", &(app->data.wait_exit)),
|
|
|
|
1, 12, 1, 1,
|
2005-10-24 16:08:20 -07:00
|
|
|
1, 1, 1, 1);
|
|
|
|
|
|
|
|
e_widget_list_object_append(ol, o, 1, 1, 0.5);
|
|
|
|
|
|
|
|
{
|
|
|
|
Evas_Coord minw, minh;
|
|
|
|
e_widget_min_size_get(ol, &minw, &minh);
|
|
|
|
e_dialog_content_set(app->dia, ol, minw, minh);
|
|
|
|
}
|
|
|
|
|
|
|
|
e_dialog_button_add(app->dia, _("Cancel"), NULL, _e_eap_edit_cancel_cb, app);
|
|
|
|
e_dialog_button_add(app->dia, _("Save"), NULL, _e_eap_edit_save_cb, app);
|
|
|
|
|
|
|
|
e_dialog_show(app->dia);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* local subsystem functions */
|
|
|
|
|
|
|
|
static void
|
|
|
|
_e_eap_edit_save_cb(void *data, E_Dialog *dia)
|
2005-10-24 18:03:50 -07:00
|
|
|
{
|
2005-10-25 15:01:50 -07:00
|
|
|
E_App_Edit *editor;
|
|
|
|
E_App *eap;
|
|
|
|
|
|
|
|
editor = data;
|
|
|
|
eap = editor->eap;
|
|
|
|
|
|
|
|
if(!(editor->data.path))
|
|
|
|
return;
|
|
|
|
|
|
|
|
printf("path : %s\n", editor->data.path);
|
|
|
|
|
|
|
|
E_FREE(eap->name);
|
|
|
|
E_FREE(eap->generic);
|
|
|
|
E_FREE(eap->comment);
|
|
|
|
E_FREE(eap->exe);
|
|
|
|
E_FREE(eap->win_name);
|
|
|
|
E_FREE(eap->win_class);
|
|
|
|
E_FREE(eap->win_title);
|
|
|
|
E_FREE(eap->win_role);
|
|
|
|
E_FREE(eap->icon_class);
|
|
|
|
E_FREE(eap->path);
|
|
|
|
E_FREE(eap->image);
|
|
|
|
if(editor->data.startup_notify)
|
|
|
|
eap->startup_notify = 1;
|
|
|
|
if(editor->data.wait_exit)
|
|
|
|
eap->wait_exit = 1;
|
|
|
|
|
|
|
|
IFDUP(editor->data.name, eap->name);
|
|
|
|
IFDUP(editor->data.generic, eap->generic);
|
|
|
|
IFDUP(editor->data.comment, eap->comment);
|
|
|
|
IFDUP(editor->data.exe, eap->exe);
|
|
|
|
IFDUP(editor->data.wname, eap->win_name);
|
|
|
|
IFDUP(editor->data.wclass, eap->win_class);
|
|
|
|
IFDUP(editor->data.wtitle, eap->win_title);
|
|
|
|
IFDUP(editor->data.wrole, eap->win_role);
|
|
|
|
IFDUP(editor->data.iclass, eap->icon_class);
|
|
|
|
IFDUP(editor->data.path, eap->path);
|
|
|
|
IFDUP(editor->data.image, eap->image);
|
2005-10-25 17:19:52 -07:00
|
|
|
|
|
|
|
printf("image is: %s\n", eap->image);
|
2005-10-25 15:01:50 -07:00
|
|
|
|
|
|
|
printf("eap path: %s\n", eap->path);
|
|
|
|
|
|
|
|
e_app_fields_save(eap);
|
2005-10-24 18:03:50 -07:00
|
|
|
|
2005-10-25 15:01:50 -07:00
|
|
|
_e_eap_edit_free(editor);
|
2005-10-24 18:03:50 -07:00
|
|
|
}
|
2005-10-24 16:08:20 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_e_eap_edit_cancel_cb(void *data, E_Dialog *dia)
|
|
|
|
{
|
|
|
|
_e_eap_edit_free(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-10-24 18:03:50 -07:00
|
|
|
_e_eap_edit_browse_cb(void *data1, void *data2)
|
2005-10-25 17:19:52 -07:00
|
|
|
{
|
|
|
|
E_Fileman *fileman;
|
|
|
|
E_App_Edit *editor;
|
|
|
|
|
|
|
|
editor = data1;
|
|
|
|
fileman = e_fileman_new (editor->dia->win->container);
|
|
|
|
e_fileman_selector_enable(fileman, _e_eap_edit_selector_cb, editor);
|
|
|
|
e_win_resize(fileman->win, 640, 300);
|
|
|
|
e_fileman_show (fileman);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* need to make sure we can load the image */
|
|
|
|
static void
|
|
|
|
_e_eap_edit_selector_cb(E_Fileman *fileman, char *file, void *data)
|
|
|
|
{
|
|
|
|
E_App_Edit *editor;
|
|
|
|
char *ext;
|
|
|
|
Evas_Object *img;
|
|
|
|
|
|
|
|
ext = strrchr(file, '.');
|
|
|
|
if(!ext)
|
|
|
|
return;
|
|
|
|
if(strcasecmp(ext, ".png") && strcasecmp(ext, ".jpg") &&
|
|
|
|
strcasecmp(ext, ".jpeg"))
|
|
|
|
return;
|
|
|
|
|
|
|
|
editor = data;
|
|
|
|
E_FREE(editor->eap->image);
|
|
|
|
editor->data.image = strdup(file);
|
|
|
|
e_widget_sub_object_del(editor->img_widget, editor->img);
|
|
|
|
evas_object_del(editor->img);
|
|
|
|
editor->img = evas_object_image_add(editor->evas);
|
|
|
|
evas_object_image_file_set(editor->img, file, NULL);
|
|
|
|
evas_object_resize(editor->img, 48, 48);
|
2005-10-25 18:05:56 -07:00
|
|
|
evas_object_image_fill_set(editor->img, 0, 0, 48, 48);
|
2005-10-25 17:19:52 -07:00
|
|
|
evas_object_show(editor->img);
|
|
|
|
e_widget_resize_object_set(editor->img_widget, editor->img);
|
|
|
|
e_widget_sub_object_add(editor->img_widget, editor->img);
|
2005-10-25 18:05:56 -07:00
|
|
|
e_widget_min_size_set(editor->img_widget, 48, 48);
|
|
|
|
evas_object_resize(editor->img, 48, 48); //temp hack
|
|
|
|
|
2005-10-25 17:19:52 -07:00
|
|
|
e_object_del(fileman);
|
|
|
|
}
|
2005-10-24 16:08:20 -07:00
|
|
|
|
|
|
|
static void _e_eap_edit_free(E_App_Edit *app)
|
|
|
|
{
|
|
|
|
e_object_del(E_OBJECT(app->eap));
|
|
|
|
e_object_del(E_OBJECT(app->dia));
|
|
|
|
E_FREE(app);
|
|
|
|
}
|