Ok, config_inwin is working, and is updated/can set the project details.
This commit is contained in:
@ -17,6 +17,28 @@ static void _button_cb_begin(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _combo_cb_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static int _update_capacity(void *data, int type, void *ev_data);
|
||||
|
||||
// Config inwin updates
|
||||
static void _joliet_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _rockridge_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _symlinks_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _hidden_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _multi_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _sim_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _underrun_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _apply_clicked(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _proj_name(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
static void _settings_clicked(void *data, Evas_Object *obj, void *event_into);
|
||||
|
||||
// Update on showing to proper values
|
||||
static void _joliet_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _rockridge_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _symlinks_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _hidden_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _multi_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _sim_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _underrun_config(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _proj_config(void *data, Evas_Object *obj, void *event_info);
|
||||
|
||||
static int
|
||||
_update_capacity(void *data, int type, void *ev_data)
|
||||
{
|
||||
@ -209,6 +231,199 @@ _combo_cb_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_joliet_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->use_joliet = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_joliet_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->use_joliet);
|
||||
}
|
||||
|
||||
static void
|
||||
_rockridge_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->use_rockridge = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_rockridge_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->use_rockridge);
|
||||
}
|
||||
|
||||
static void
|
||||
_symlinks_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->follow_symlinks = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_symlinks_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->follow_symlinks);
|
||||
}
|
||||
|
||||
static void
|
||||
_hidden_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->ignore_hidden = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_hidden_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->ignore_hidden);
|
||||
}
|
||||
|
||||
static void
|
||||
_multi_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->multi = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_multi_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->multi);
|
||||
}
|
||||
|
||||
static void
|
||||
_sim_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->simulate = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_sim_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->simulate);
|
||||
}
|
||||
|
||||
static void
|
||||
_underrun_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
int state;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
state = ecdb_check_checked_get(obj);
|
||||
proj->underrun_proof = state;
|
||||
}
|
||||
|
||||
static void
|
||||
_underrun_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
ecdb_check_checked_set(obj, proj->underrun_proof);
|
||||
}
|
||||
|
||||
static void
|
||||
_apply_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
ecdb_config_inwin_hide(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_proj_name(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
const char *name;
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
name = ecdb_entry_text_get(obj);
|
||||
proj->volume_id = strdup(name);
|
||||
}
|
||||
|
||||
static void
|
||||
_proj_config(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Ecdb_Burn_Project *proj;
|
||||
|
||||
proj = data;
|
||||
|
||||
if (proj->volume_id)
|
||||
ecdb_entry_text_set(obj, proj->volume_id);
|
||||
else
|
||||
ecdb_entry_text_set(obj, "Project Name");
|
||||
}
|
||||
|
||||
static void
|
||||
_settings_clicked(void *data, Evas_Object *obj, void *event_into)
|
||||
{
|
||||
Eina_Iterator *it;
|
||||
const Evas_Object *table;
|
||||
Evas_Object *o;
|
||||
|
||||
table = edje_object_part_object_get(data, "ecdb.table");
|
||||
it = evas_object_table_iterator_new(table);
|
||||
|
||||
if (!it)
|
||||
{
|
||||
printf("_settings_clicked: NULL iterator!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
while (eina_iterator_next(it, (void **)&o))
|
||||
evas_object_smart_callback_call(o, "proj_config", NULL);
|
||||
eina_iterator_free(it);
|
||||
|
||||
ecdb_config_inwin_show(data);
|
||||
}
|
||||
|
||||
void
|
||||
ecdb_burn_data_page_show(void)
|
||||
{
|
||||
@ -221,7 +436,7 @@ ecdb_burn_data_page_show(void)
|
||||
|
||||
if (!swallow)
|
||||
{
|
||||
Evas_Object *b, *c1, *c2;
|
||||
Evas_Object *b, *c1, *c2, *t;
|
||||
Eina_List *l;
|
||||
Ecdb_Drive_Info *drive;
|
||||
Evas_Coord x, y, w, h;
|
||||
@ -305,6 +520,7 @@ ecdb_burn_data_page_show(void)
|
||||
b = edje_object_part_swallow_get(swallow, "ecdb/burn_data/filelist");
|
||||
ecdb_widget_focus_callback_add(b, "ecdb/burn_data/filelist");
|
||||
|
||||
// Use focus out callback here, same as below
|
||||
b = ecdb_entry_add(swallow, "ecdb/burn_data/vol_name");
|
||||
ecdb_entry_text_set(b, "Volume Name");
|
||||
evas_object_show(b);
|
||||
@ -318,6 +534,87 @@ ecdb_burn_data_page_show(void)
|
||||
bdd);
|
||||
evas_object_show(b);
|
||||
bdd->capacity = b;
|
||||
|
||||
t = ecdb_config_inwin_add(swallow, NULL);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Use Joliet");
|
||||
evas_object_smart_callback_add(b, "clicked", _joliet_clicked, bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _joliet_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 0, 0, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Use Rockridge");
|
||||
evas_object_smart_callback_add(b, "clicked", _rockridge_clicked,
|
||||
bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _rockridge_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 0, 1, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Follow Symlinks");
|
||||
evas_object_smart_callback_add(b, "clicked", _symlinks_clicked,
|
||||
bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _symlinks_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 0, 2, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Ignore Hidden Files");
|
||||
evas_object_smart_callback_add(b, "clicked", _hidden_clicked, bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _hidden_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 0, 3, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Multi-session");
|
||||
evas_object_smart_callback_add(b, "clicked", _multi_clicked, bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _multi_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 1, 0, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Simulate");
|
||||
evas_object_smart_callback_add(b, "clicked", _sim_clicked, bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _sim_config, bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 1, 1, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_check_add(t, NULL);
|
||||
ecdb_check_label_set(b, "Use Underrun Proof");
|
||||
evas_object_smart_callback_add(b, "clicked", _underrun_clicked,
|
||||
bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _underrun_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 1, 2, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_entry_add(t, NULL);
|
||||
ecdb_entry_text_set(b, "Volume Name");
|
||||
evas_object_event_callback_add(b, EVAS_CALLBACK_FOCUS_OUT,
|
||||
_proj_name, bdd->proj);
|
||||
evas_object_smart_callback_add(b, "proj_config", _proj_config,
|
||||
bdd->proj);
|
||||
ecdb_config_inwin_child_add(t, b, 1, 3, 1, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
b = ecdb_button_add(t, NULL);
|
||||
ecdb_button_label_set(b, "Apply");
|
||||
evas_object_smart_callback_add(b, "clicked", _apply_clicked, t);
|
||||
ecdb_config_inwin_child_add(t, b, 0, 4, 2, 1);
|
||||
evas_object_show(b);
|
||||
|
||||
// At the end so t is a valid pointer
|
||||
b = ecdb_button_add(swallow, "ecdb/burn_data/settings");
|
||||
ecdb_button_label_set(b, "Settings");
|
||||
evas_object_smart_callback_add(b, "clicked", _settings_clicked, t);
|
||||
evas_object_show(b);
|
||||
}
|
||||
else if (edje_object_part_swallow_get(gui, "action_area") != swallow)
|
||||
{
|
||||
|
@ -321,6 +321,9 @@ ecdb_check_checked_set(Evas_Object *c, int state)
|
||||
return;
|
||||
}
|
||||
|
||||
if (cd->checked == state)
|
||||
return;
|
||||
|
||||
if (state)
|
||||
{
|
||||
cd->checked = 1;
|
||||
@ -1086,12 +1089,11 @@ _config_inwin_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
Config_Inwin_Data *iwd;
|
||||
int w, h;
|
||||
|
||||
iwd = evas_object_data_get(data, "iwd");
|
||||
if (!iwd)
|
||||
{
|
||||
printf("_config_inwin_resize: NULL data\n");
|
||||
iwd = data;
|
||||
|
||||
// We get a resize event even though the evas has been destroyed
|
||||
if ((!em) || (!em->main_win_ee))
|
||||
return;
|
||||
}
|
||||
|
||||
ecore_evas_geometry_get(em->main_win_ee, NULL, NULL, &w, &h);
|
||||
evas_object_resize(iwd->popup, w, h);
|
||||
@ -1105,15 +1107,10 @@ _config_inwin_hide(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Config_Inwin_Data *iwd;
|
||||
|
||||
iwd = evas_object_data_get(data, "iwd");
|
||||
if (!iwd)
|
||||
{
|
||||
printf("_config_inwin_hide: NULL data\n");
|
||||
return;
|
||||
}
|
||||
iwd = data;
|
||||
|
||||
ecore_evas_hide(iwd->popup);
|
||||
ecore_evas_hide(iwd->back);
|
||||
evas_object_hide(iwd->popup);
|
||||
evas_object_hide(iwd->back);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1121,18 +1118,13 @@ _config_inwin_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Config_Inwin_Data *iwd;
|
||||
|
||||
iwd = evas_object_data_get(data, "iwd");
|
||||
if (!iwd)
|
||||
{
|
||||
printf("_config_inwin_del: NULL data\n");
|
||||
return;
|
||||
}
|
||||
iwd = data;
|
||||
FREE(iwd);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
ecdb_config_inwin_add(Evas_Object *parent, const char *name)
|
||||
{
|
||||
Evas_Object *iw;
|
||||
Config_Inwin_Data *iwd;
|
||||
|
||||
iwd = calloc(1, sizeof(Config_Inwin_Data));
|
||||
@ -1143,7 +1135,7 @@ ecdb_config_inwin_add(Evas_Object *parent, const char *name)
|
||||
}
|
||||
|
||||
iwd->popup = ecdb_widget_add(parent, NULL);
|
||||
if (!iw)
|
||||
if (!iwd->popup)
|
||||
{
|
||||
printf("ecdb_config_inwin_add: NULL return!\n");
|
||||
return NULL;
|
||||
@ -1154,13 +1146,13 @@ ecdb_config_inwin_add(Evas_Object *parent, const char *name)
|
||||
|
||||
evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE,
|
||||
_config_inwin_resize,
|
||||
iwd->popup);
|
||||
iwd);
|
||||
evas_object_event_callback_add(parent, EVAS_CALLBACK_HIDE,
|
||||
_config_inwin_hide,
|
||||
iwd->popup);
|
||||
iwd);
|
||||
evas_object_event_callback_add(iwd->popup, EVAS_CALLBACK_DEL,
|
||||
_config_inwin_del,
|
||||
iwd->popup);
|
||||
iwd);
|
||||
|
||||
iwd->back = edje_object_add(evas_object_evas_get(parent));
|
||||
edje_object_file_set(iwd->back, em->theme_path,
|
||||
@ -1168,13 +1160,12 @@ ecdb_config_inwin_add(Evas_Object *parent, const char *name)
|
||||
evas_object_pass_events_set(iwd->back, 1);
|
||||
evas_object_show(iwd->back);
|
||||
|
||||
iwd->popup = edje_object_add(evas_object_evas_get(parent));
|
||||
|
||||
iwd->name = eina_stringshare_add(name);
|
||||
evas_object_data_set(iw, "iwd", iwd);
|
||||
iwd->parent = parent;
|
||||
evas_object_data_set(iwd->popup, "iwd", iwd);
|
||||
iwd->visible = 0;
|
||||
|
||||
return iw;
|
||||
return iwd->popup;
|
||||
}
|
||||
|
||||
void
|
||||
@ -1197,14 +1188,13 @@ ecdb_config_inwin_show(Evas_Object *inwin)
|
||||
}
|
||||
|
||||
evas_object_pass_events_set(iwd->back, 0);
|
||||
evas_object_layer_set(iwd->back, evas_object_layer_get(inwin) + 1);
|
||||
evas_object_layer_set(iwd->back, evas_object_layer_get(iwd->parent) + 1);
|
||||
edje_object_signal_emit(iwd->back, "ecdb,config_inwin,back,show", "ecdb");
|
||||
|
||||
evas_object_pass_events_set(iwd->popup, 0);
|
||||
evas_object_layer_set(iwd->popup, evas_object_layer_get(inwin->back) + 1);
|
||||
evas_object_signal_emit(iwd->popup, "ecdb,config_inwin,popup,show",
|
||||
evas_object_layer_set(iwd->popup, evas_object_layer_get(iwd->back) + 1);
|
||||
edje_object_signal_emit(iwd->popup, "ecdb,config_inwin,popup,show",
|
||||
"ecdb");
|
||||
|
||||
iwd->visible = 1;
|
||||
}
|
||||
|
||||
@ -1238,7 +1228,7 @@ ecdb_config_inwin_hide(Evas_Object *inwin)
|
||||
|
||||
void
|
||||
ecdb_config_inwin_child_add(Evas_Object *inwin, Evas_Object *child,
|
||||
int sc, int ec, int sr, int er)
|
||||
int c, int r, int cs, int rs)
|
||||
{
|
||||
if (!inwin)
|
||||
{
|
||||
@ -1248,7 +1238,7 @@ ecdb_config_inwin_child_add(Evas_Object *inwin, Evas_Object *child,
|
||||
if (!child)
|
||||
return;
|
||||
|
||||
if (!edje_object_part_table_pack(inwin, "ecdb.table", child, sc, sr, ec, er))
|
||||
if (!edje_object_part_table_pack(inwin, "ecdb.table", child, c, r, cs, rs))
|
||||
{
|
||||
printf("ecdb_config_inwin_child_add: Couldn't append to table!\n");
|
||||
}
|
||||
|
@ -51,9 +51,9 @@ void ecdb_label_text_set(Evas_Object *l, const char *text);
|
||||
|
||||
Evas_Object *ecdb_config_inwin_add(Evas_Object *parent, const char *name);
|
||||
void ecdb_config_inwin_show(Evas_Object *inwin);
|
||||
void ecbd_config_inwin_hide(Evas_Object *inwin);
|
||||
void ecdb_config_inwin_hide(Evas_Object *inwin);
|
||||
void ecdb_config_inwin_child_add(Evas_Object *inwin, Evas_Object *child,
|
||||
int sc, int ec,
|
||||
int sr, int er);
|
||||
int c, int r,
|
||||
int cs, int rs);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user