Get rid of the theming work I did before... This is better but still needs work on allowing the theme to define custom widgets.

This commit is contained in:
Jaime Thomas
2009-01-27 03:43:17 +00:00
parent ef1494f2e8
commit 3273177453
10 changed files with 379 additions and 898 deletions

View File

@ -40,6 +40,7 @@ struct _Ecdb_Main
Eina_List *ewl_dnd_candidates;
Evas_Object *evas_drop_object;
Ewl_Widget *ewl_drop_object;
double scalef;
};
extern Ecdb_Main *em;

View File

@ -1,15 +1,8 @@
/* vim: set sw=3 ts=3 sts=3 expandtab: */
#include "ecdb.h"
#include <fnmatch.h>
static void ecdb_handle_typebuf(Evas_Object *gui);
static void _button_cb_burn_data(void *data, Evas_Object *o,
const char *emission, const char *source);
static void _button_cb_burn_audio(void *data, Evas_Object *o,
const char *emission, const char *source);
static void _button_cb_burn_image(void *data, Evas_Object *o,
const char *emission, const char *source);
static void _button_cb_erase(void *data, Evas_Object *o,
static void ecdb_cb_welcome_page_buttons_clicked(void *data, Evas_Object *o,
const char *emission, const char *source);
static void ecdb_filelist_show(void);
static void ecdb_page_hide(const char *pname);
@ -190,7 +183,6 @@ ecdb_create_main_gui(void)
Evas_Object *gui;
Evas_Coord mw, mh;
const char *scale, *engine;
float scalef;
engine = getenv("ECDB_ENGINE");
if (engine)
@ -203,7 +195,9 @@ ecdb_create_main_gui(void)
em->main_win_ee = ecore_evas_software_x11_new(0, 0, 0, 0, 255, 255);
}
else
{
em->main_win_ee = ecore_evas_software_x11_new(0, 0, 0, 0, 255, 255);
}
if (!em->main_win_ee)
{
@ -232,16 +226,16 @@ ecdb_create_main_gui(void)
/* Make this configurable at some point */
ecdb_set_main_theme(NULL);
scale = getenv("ECDB_SCALE");
scalef = (scale) ? atof(scale) : 1.0;
edje_scale_set(scalef);
em->scalef = (scale) ? atof(scale) : 1.0;
edje_scale_set(em->scalef);
gui = edje_object_add(ecore_evas_get(em->main_win_ee));
edje_object_file_set(gui, em->theme_path, "ecdb/window");
edje_object_size_min_get(gui, &mw, &mh);
if (mw <= 0) mw = 400;
if (mh <= 0) mh = 300;
mw = (int)((float)mw * scalef);
mh = (int)((float)mh * scalef);
mw = (int)((float)mw * em->scalef);
mh = (int)((float)mh * em->scalef);
evas_object_resize(gui, mw, mh);
ecore_evas_resize(em->main_win_ee, mw, mh);
ecore_evas_size_min_set(em->main_win_ee, mw, mh);
@ -361,41 +355,45 @@ ecdb_handle_typebuf(Evas_Object *gui)
edje_object_part_text_set(gui, "filelist_overlay_text", NULL);
}
static void
_button_cb_burn_data(void *data __UNUSED__, Evas_Object *o,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
edje_object_signal_emit(o, "ecdb,welcome_page,hide", "ecdb");
ecdb_burn_data_page_show();
ecdb_filelist_show();
}
static void
_button_cb_erase(void *data __UNUSED__, Evas_Object *o,
const char *emission __UNUSED__,
const char *source __UNUSED__)
ecdb_cb_welcome_page_buttons_clicked(void *data, Evas_Object *o,
const char *emission, const char *source)
{
edje_object_signal_emit(o, "ecdb,welcome_page,hide", "ecdb");
ecdb_erase_page_show();
}
Evas_Object *swallow, *gui;
static void
_button_cb_burn_image(void *data __UNUSED__, Evas_Object *o,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
edje_object_signal_emit(o, "ecdb,welcome_page,hide", "ecdb");
ecdb_burn_image_page_show();
ecdb_filelist_show();
}
gui = evas_object_name_find(ecore_evas_get(em->main_win_ee), "gui");
swallow = evas_object_name_find(ecore_evas_get(em->main_win_ee),
"main_filelist");
if (!strcmp(source, "ecdb/burn_data"))
{
swallow = evas_object_name_find(ecore_evas_get(em->main_win_ee),
"welcome_page");
edje_object_signal_emit(swallow, "ecdb,welcome_page,hide", "ecdb");
ecdb_burn_data_page_show();
ecdb_filelist_show();
}
else if (!strcmp(source, "ecdb/erase"))
{
swallow = evas_object_name_find(ecore_evas_get(em->main_win_ee),
"welcome_page");
edje_object_signal_emit(swallow, "ecdb,welcome_page,hide", "ecdb");
ecdb_erase_page_show();
}
else if (!strcmp(source, "ecdb/burn_image"))
{
ecdb_filelist_show();
swallow = evas_object_name_find(ecore_evas_get(em->main_win_ee),
"welcome_page");
edje_object_signal_emit(swallow, "ecdb,welcome_page,hide", "ecdb");
ecdb_burn_image_page_show();
}
else if (swallow)
{
edje_object_signal_emit(gui, "ecdb,filelist,hide", "ecdb");
}
static void
_button_cb_burn_audio(void *data __UNUSED__, Evas_Object *o,
const char *emission __UNUSED__,
const char *source)
{
printf("Action: %s\n", source);
}
@ -411,6 +409,7 @@ ecdb_welcome_page_show(void)
if (!swallow)
{
Evas_Object *b;
Evas_Coord x, y, w, h;
swallow = edje_object_add(ecore_evas_get(em->main_win_ee));
@ -420,24 +419,24 @@ ecdb_welcome_page_show(void)
evas_object_move(swallow, x, y);
evas_object_resize(swallow, w, h);
edje_object_part_swallow(gui, "action_area", swallow);
edje_object_signal_callback_add(swallow, "mouse,clicked,1", "ecdb/*",
ecdb_cb_welcome_page_buttons_clicked, NULL);
edje_object_signal_callback_add(swallow, "hide,finished", "welcome_page",
ecdb_page_hide_finished, NULL);
evas_object_show(swallow);
edje_object_part_text_set(swallow, "ecdb/burn_data/text", "Burn Data CD");
edje_object_signal_callback_add(swallow, "ecdb/burn_data,clicked", "*",
_button_cb_burn_data, NULL);
edje_object_part_text_set(swallow, "ecdb/burn_audio/text",
"Burn Audio CD");
edje_object_signal_callback_add(swallow, "ecdb/burn_audio,clicked", "*",
_button_cb_burn_audio, NULL);
edje_object_part_text_set(swallow, "ecdb/burn_image/text", "Burn Image");
edje_object_signal_callback_add(swallow, "ecdb/burn_image,clicked", "*",
_button_cb_burn_image, NULL);
edje_object_part_text_set(swallow, "ecdb/erase/text",
"Erase Re-writable Disc");
edje_object_signal_callback_add(swallow, "ecdb/erase,clicked", "*",
_button_cb_erase, NULL);
int i;
char *labels[] = {"Burn Data CD", "Burn Audio CD", "Burn Image",
"Erase Re-writable Disc"};
char *ids[] = {"ecdb/burn_data", "ecdb/burn_audio", "ecdb/burn_image",
"ecdb/erase"};
for (i = 0; i < 4; i++)
{
b = ecdb_button_add(swallow, ids[i]);
ecdb_button_label_set(b, labels[i]);
evas_object_show(b);
ecdb_button_icon_set(b, ids[i]);
}
}
else if (edje_object_part_swallow_get(gui, "action_area") != swallow)