clouseau: Finilise save,load bmp file including GUI
Signed-off-by: Aharon Hillel <a.hillel@samsung.com> SVN revision: 72344
This commit is contained in:
parent
77963edfcb
commit
56111ff1bf
|
@ -32,7 +32,8 @@ struct _gui_elements
|
|||
Evas_Object *gl;
|
||||
Evas_Object *lb; /* Label showing backtrace */
|
||||
Evas_Object *prop_list;
|
||||
Evas_Object *inwin;
|
||||
Evas_Object *connect_inwin;
|
||||
Evas_Object *save_inwin;
|
||||
Evas_Object *en;
|
||||
Evas_Object *pb; /* Progress wheel shown when waiting for TREE_DATA */
|
||||
char *address;
|
||||
|
@ -139,22 +140,22 @@ _work_offline_popup(void)
|
|||
{
|
||||
Evas_Object *bxx, *lb, *bt_bx, *bt_ofl, *bt_exit;
|
||||
/* START - Popup asking user to close client or work offline */
|
||||
gui->inwin = elm_win_inwin_add(gui->win);
|
||||
evas_object_show(gui->inwin);
|
||||
gui->connect_inwin = elm_win_inwin_add(gui->win);
|
||||
evas_object_show(gui->connect_inwin);
|
||||
|
||||
bxx = elm_box_add(gui->inwin);
|
||||
elm_object_style_set(gui->inwin, "minimal_vertical");
|
||||
bxx = elm_box_add(gui->connect_inwin);
|
||||
elm_object_style_set(gui->connect_inwin, "minimal_vertical");
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
lb = elm_label_add(gui->inwin);
|
||||
lb = elm_label_add(gui->connect_inwin);
|
||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.0);
|
||||
elm_object_text_set(lb, "Connection to server failed.");
|
||||
elm_box_pack_end(bxx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
bt_bx = elm_box_add(gui->inwin);
|
||||
bt_bx = elm_box_add(gui->connect_inwin);
|
||||
elm_box_horizontal_set(bt_bx, EINA_TRUE);
|
||||
elm_box_homogeneous_set(bt_bx, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bt_bx, 0.5, 0.5);
|
||||
|
@ -163,7 +164,7 @@ _work_offline_popup(void)
|
|||
elm_box_pack_end(bxx, bt_bx);
|
||||
|
||||
/* Add the exit button */
|
||||
bt_exit = elm_button_add(gui->inwin);
|
||||
bt_exit = elm_button_add(gui->connect_inwin);
|
||||
elm_object_text_set(bt_exit, "Exit");
|
||||
evas_object_smart_callback_add(bt_exit, "clicked",
|
||||
_cancel_bt_clicked, (void *) gui);
|
||||
|
@ -171,7 +172,7 @@ _work_offline_popup(void)
|
|||
elm_box_pack_end(bt_bx, bt_exit);
|
||||
evas_object_show(bt_exit);
|
||||
|
||||
bt_ofl = elm_button_add(gui->inwin);
|
||||
bt_ofl = elm_button_add(gui->connect_inwin);
|
||||
elm_object_text_set(bt_ofl, "Work Offline");
|
||||
evas_object_smart_callback_add(bt_ofl, "clicked",
|
||||
_ofl_bt_clicked, (void *) gui);
|
||||
|
@ -179,7 +180,7 @@ _work_offline_popup(void)
|
|||
elm_box_pack_end(bt_bx, bt_ofl);
|
||||
evas_object_show(bt_ofl);
|
||||
|
||||
elm_win_inwin_content_set(gui->inwin, bxx);
|
||||
elm_win_inwin_content_set(gui->connect_inwin, bxx);
|
||||
/* END - Popup asking user to close client or work offline */
|
||||
}
|
||||
|
||||
|
@ -327,7 +328,7 @@ _set_selected_app(void *data, Evas_Object *pobj,
|
|||
}
|
||||
|
||||
if (svr)
|
||||
{ /* Enable/Desable buttons only if we are online */
|
||||
{ /* Enable/Disable buttons only if we are online */
|
||||
elm_object_disabled_set(gui->bt_load, (gui->sel_app == NULL));
|
||||
elm_object_disabled_set(gui->bt_save, (gui->sel_app == NULL));
|
||||
}
|
||||
|
@ -792,10 +793,19 @@ item_icon_get(void *data, Evas_Object *parent, const char *part)
|
|||
"Show App Screenshot", EINA_FALSE);
|
||||
}
|
||||
else
|
||||
{ /* Set to Download */
|
||||
_set_button(parent, bt,
|
||||
"/images/gtk-refresh.png",
|
||||
"Download Screenshot", EINA_FALSE);
|
||||
{ /* Set to Download or not available if offline */
|
||||
if (svr)
|
||||
{
|
||||
_set_button(parent, bt,
|
||||
"/images/gtk-refresh.png",
|
||||
"Download Screenshot", EINA_FALSE);
|
||||
}
|
||||
else
|
||||
{ /* Make button display: screenshot NOT available */
|
||||
_set_button(parent, bt,
|
||||
"/images/gtk-close.png",
|
||||
"Screenshot not available", EINA_TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1098,26 +1108,157 @@ _bt_load_file(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_dismiss_save_dialog(void *data,
|
||||
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{ /* Just close save file save_inwin, do nothing */
|
||||
gui_elements *g = data;
|
||||
evas_object_del(g->save_inwin);
|
||||
g->save_inwin = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_bt_save_file(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
gui_elements *g = data;
|
||||
app_info_st *app = g->sel_app->app->data;
|
||||
tree_data_st *ftd = g->sel_app->td->data;
|
||||
app_info_st *app = gui->sel_app->app->data;
|
||||
tree_data_st *ftd = gui->sel_app->td->data;
|
||||
if (event_info)
|
||||
{
|
||||
/* FIXME: Handle failure. */
|
||||
eet_info_save(event_info, app, ftd);
|
||||
Eina_Bool s;
|
||||
s = eet_info_save(event_info, app, ftd, data);
|
||||
}
|
||||
|
||||
eina_list_free(data);
|
||||
|
||||
if (event_info) /* Dismiss save dialog after saving */
|
||||
_dismiss_save_dialog(gui, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_dismiss_inwin(gui_elements *g)
|
||||
{
|
||||
g->address = (g->en) ? strdup(elm_entry_entry_get(g->en)) : NULL;
|
||||
evas_object_del(g->inwin);
|
||||
evas_object_del(g->connect_inwin);
|
||||
g->en = NULL;
|
||||
g->inwin = NULL;
|
||||
g->connect_inwin = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_save_all(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Evas_Object *ck_bx = data;
|
||||
Evas_Object *ck;
|
||||
Eina_List *l;
|
||||
Eina_List *ck_list = elm_box_children_get(ck_bx);
|
||||
Eina_Bool val = elm_check_state_get(obj);
|
||||
|
||||
EINA_LIST_FOREACH(ck_list, l, ck)
|
||||
{ /* Run through checkoxes, set / unset marks for all */
|
||||
if (!elm_object_disabled_get(ck))
|
||||
elm_check_state_set(ck, val);
|
||||
}
|
||||
|
||||
eina_list_free(ck_list);
|
||||
}
|
||||
|
||||
static void
|
||||
_save_file_dialog(void *data,
|
||||
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{ /* START - Popup to save eet file */
|
||||
gui_elements *g = data;
|
||||
Evas_Object *scr, *bt_bx, *bx, *ck_bx,
|
||||
*lb, *ck, *bt_cancel, *bt_save;
|
||||
g->save_inwin = elm_win_inwin_add(g->win);
|
||||
evas_object_show(g->save_inwin);
|
||||
|
||||
|
||||
bx = elm_box_add(g->save_inwin);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bx);
|
||||
|
||||
lb = elm_label_add(g->save_inwin);
|
||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.0);
|
||||
elm_object_text_set(lb, "Select Screeenshots to save:");
|
||||
elm_box_pack_end(bx, lb);
|
||||
evas_object_show(lb);
|
||||
|
||||
/* Add checkboxes to select screenshots to save */
|
||||
ck_bx = elm_box_add(g->save_inwin);
|
||||
|
||||
Eina_List *l;
|
||||
app_info_st *a = g->sel_app->app->data;
|
||||
tree_data_st *td = g->sel_app->td->data;
|
||||
bmp_info_st *bmp;
|
||||
Tree_Item *treeit;
|
||||
char buf[256];
|
||||
EINA_LIST_FOREACH(td->tree, l, treeit)
|
||||
{ /* First search app->view list if already have the window bmp */
|
||||
Variant_st *v = (Variant_st *)
|
||||
eina_list_search_unsorted(a->view, _bmp_object_ptr_cmp,
|
||||
(void *) (uintptr_t) treeit->ptr);
|
||||
|
||||
bmp = (v) ? v->data : NULL;
|
||||
|
||||
ck = elm_check_add(g->save_inwin);
|
||||
evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 1.0);
|
||||
evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.0);
|
||||
elm_box_pack_end(ck_bx, ck);
|
||||
elm_object_disabled_set(ck, !(bmp && bmp->bmp));
|
||||
evas_object_data_set(ck, BMP_FIELD, bmp); /* Associate ck with bmp */
|
||||
snprintf(buf, sizeof(buf), "%p %s", treeit->ptr, treeit->name);
|
||||
elm_object_text_set(ck, buf);
|
||||
|
||||
evas_object_show(ck);
|
||||
}
|
||||
|
||||
evas_object_show(ck_bx);
|
||||
scr = elm_scroller_add(g->save_inwin);
|
||||
elm_object_content_set(scr, ck_bx);
|
||||
evas_object_size_hint_align_set(scr, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(scr);
|
||||
elm_box_pack_end(bx, scr);
|
||||
|
||||
/* Add the save all checkbox */
|
||||
ck = elm_check_add(g->save_inwin);
|
||||
elm_object_text_set(ck, "Save All");
|
||||
evas_object_smart_callback_add(ck, "changed", _save_all, ck_bx);
|
||||
evas_object_show(ck);
|
||||
elm_box_pack_end(bx, ck);
|
||||
|
||||
bt_bx = elm_box_add(g->save_inwin);
|
||||
elm_box_horizontal_set(bt_bx, EINA_TRUE);
|
||||
elm_box_homogeneous_set(bt_bx, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bt_bx, 0.5, 1.0);
|
||||
evas_object_size_hint_weight_set(bt_bx, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_show(bt_bx);
|
||||
elm_box_pack_end(bx, bt_bx);
|
||||
|
||||
/* Add the cancel button */
|
||||
bt_cancel = elm_button_add(g->save_inwin);
|
||||
elm_object_text_set(bt_cancel, "Cancel");
|
||||
evas_object_smart_callback_add(bt_cancel, "clicked",
|
||||
_dismiss_save_dialog, g);
|
||||
|
||||
elm_box_pack_end(bt_bx, bt_cancel);
|
||||
evas_object_show(bt_cancel);
|
||||
|
||||
/* Add the Save fileselector button */
|
||||
bt_save = elm_fileselector_button_add(g->save_inwin);
|
||||
elm_fileselector_button_is_save_set(bt_save, EINA_TRUE);
|
||||
elm_box_pack_end(bt_bx, bt_save);
|
||||
elm_object_text_set(bt_save, "Save File");
|
||||
elm_fileselector_button_path_set(bt_save, getenv("HOME"));
|
||||
evas_object_smart_callback_add(bt_save, "file,chosen",
|
||||
_bt_save_file, elm_box_children_get(ck_bx));
|
||||
|
||||
elm_box_pack_end(bt_bx, bt_save);
|
||||
evas_object_show(bt_save);
|
||||
|
||||
elm_win_inwin_content_set(g->save_inwin, bx);
|
||||
/* END - Popup to save eet file */
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1171,14 +1312,14 @@ _show_gui(gui_elements *g, Eina_Bool work_offline)
|
|||
elm_object_text_set(g->bt_load, "Load Tree");
|
||||
evas_object_smart_callback_add(g->bt_load, "clicked", _bt_clicked, g);
|
||||
|
||||
/* Add the Save button to open save dialog */
|
||||
g->bt_save = elm_button_add(g->win);
|
||||
elm_object_text_set(g->bt_save, "SAVE");
|
||||
evas_object_smart_callback_add(g->bt_save, "clicked",
|
||||
_save_file_dialog, (void *) gui);
|
||||
|
||||
g->bt_save = elm_fileselector_button_add(g->win);
|
||||
elm_fileselector_button_is_save_set(g->bt_save, EINA_TRUE);
|
||||
elm_box_pack_end(g->hbx, g->bt_save);
|
||||
elm_object_text_set(g->bt_save, "Save File");
|
||||
elm_fileselector_button_path_set(g->bt_save, getenv("HOME"));
|
||||
evas_object_smart_callback_add(g->bt_save, "file,chosen",
|
||||
_bt_save_file, g);
|
||||
evas_object_show(g->bt_save);
|
||||
|
||||
elm_object_disabled_set(g->bt_load, (g->sel_app == NULL));
|
||||
elm_object_disabled_set(g->bt_save, (g->sel_app == NULL));
|
||||
|
@ -1373,14 +1514,14 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
ecore_ipc_init();
|
||||
|
||||
/* START - Popup to get IP, PORT from user */
|
||||
gui->inwin = elm_win_inwin_add(win);
|
||||
evas_object_show(gui->inwin);
|
||||
gui->connect_inwin = elm_win_inwin_add(win);
|
||||
evas_object_show(gui->connect_inwin);
|
||||
|
||||
bxx = elm_box_add(gui->inwin);
|
||||
bxx = elm_box_add(gui->connect_inwin);
|
||||
evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_show(bxx);
|
||||
|
||||
lb = elm_label_add(gui->inwin);
|
||||
lb = elm_label_add(gui->connect_inwin);
|
||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, 0.0);
|
||||
elm_object_text_set(lb, "Enter remote address[:port]");
|
||||
|
@ -1388,12 +1529,12 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
evas_object_show(lb);
|
||||
|
||||
/* Single line selected entry */
|
||||
gui->en = elm_entry_add(gui->inwin);
|
||||
gui->en = elm_entry_add(gui->connect_inwin);
|
||||
elm_entry_scrollable_set(gui->en, EINA_TRUE);
|
||||
evas_object_size_hint_weight_set(gui->en,
|
||||
EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(gui->en, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_style_set(gui->inwin, "minimal_vertical");
|
||||
elm_object_style_set(gui->connect_inwin, "minimal_vertical");
|
||||
elm_entry_scrollbar_policy_set(gui->en, ELM_SCROLLER_POLICY_OFF,
|
||||
ELM_SCROLLER_POLICY_OFF);
|
||||
elm_object_text_set(gui->en, LOCALHOST);
|
||||
|
@ -1402,7 +1543,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
elm_box_pack_end(bxx, gui->en);
|
||||
evas_object_show(gui->en);
|
||||
|
||||
bt_bx = elm_box_add(gui->inwin);
|
||||
bt_bx = elm_box_add(gui->connect_inwin);
|
||||
elm_box_horizontal_set(bt_bx, EINA_TRUE);
|
||||
elm_box_homogeneous_set(bt_bx, EINA_TRUE);
|
||||
evas_object_size_hint_align_set(bt_bx, 0.5, 0.5);
|
||||
|
@ -1411,7 +1552,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
elm_box_pack_end(bxx, bt_bx);
|
||||
|
||||
/* Add the cancel button */
|
||||
bt_cancel = elm_button_add(gui->inwin);
|
||||
bt_cancel = elm_button_add(gui->connect_inwin);
|
||||
elm_object_text_set(bt_cancel, "Cancel");
|
||||
evas_object_smart_callback_add(bt_cancel, "clicked",
|
||||
_cancel_bt_clicked, (void *) gui);
|
||||
|
@ -1420,7 +1561,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
evas_object_show(bt_cancel);
|
||||
|
||||
/* Add the OK button */
|
||||
bt_ok = elm_button_add(gui->inwin);
|
||||
bt_ok = elm_button_add(gui->connect_inwin);
|
||||
elm_object_text_set(bt_ok, "OK");
|
||||
evas_object_smart_callback_add(bt_ok, "clicked",
|
||||
_ok_bt_clicked, (void *) gui);
|
||||
|
@ -1428,7 +1569,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
elm_box_pack_end(bt_bx, bt_ok);
|
||||
evas_object_show(bt_ok);
|
||||
|
||||
bt_ofl = elm_button_add(gui->inwin);
|
||||
bt_ofl = elm_button_add(gui->connect_inwin);
|
||||
elm_object_text_set(bt_ofl, "Work Offline");
|
||||
evas_object_smart_callback_add(bt_ofl, "clicked",
|
||||
_ofl_bt_clicked, (void *) gui);
|
||||
|
@ -1436,7 +1577,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
elm_box_pack_end(bt_bx, bt_ofl);
|
||||
evas_object_show(bt_ofl);
|
||||
|
||||
elm_win_inwin_content_set(gui->inwin, bxx);
|
||||
elm_win_inwin_content_set(gui->connect_inwin, bxx);
|
||||
/* END - Popup to get IP, PORT from user */
|
||||
|
||||
elm_run();
|
||||
|
|
|
@ -207,6 +207,21 @@ bmp_info_desc_make(void)
|
|||
return d;
|
||||
}
|
||||
|
||||
Eet_Data_Descriptor *
|
||||
shot_list_desc_make(void)
|
||||
{
|
||||
Eet_Data_Descriptor *d;
|
||||
|
||||
Eet_Data_Descriptor_Class eddc;
|
||||
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, shot_list_st);
|
||||
d = eet_data_descriptor_stream_new(&eddc);
|
||||
|
||||
EET_DATA_DESCRIPTOR_ADD_LIST (d, shot_list_st,
|
||||
"view", view, desc->bmp_info); /* Carefull - init this first */
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
Eet_Data_Descriptor *
|
||||
tree_data_desc_make(void)
|
||||
{
|
||||
|
@ -318,6 +333,7 @@ data_descriptors_init(void)
|
|||
|
||||
desc->bmp_req = bmp_req_desc_make();
|
||||
desc->bmp_info = bmp_info_desc_make();
|
||||
desc->shot_list = shot_list_desc_make();
|
||||
desc->obj_info = Obj_Information_desc_make();
|
||||
desc->tree = tree_item_desc_make();
|
||||
desc->connect = connect_desc_make();
|
||||
|
@ -388,6 +404,7 @@ data_descriptors_shutdown(void)
|
|||
eet_data_descriptor_free(desc->_variant_unified_descriptor);
|
||||
eet_data_descriptor_free(desc->bmp_req);
|
||||
eet_data_descriptor_free(desc->bmp_info);
|
||||
eet_data_descriptor_free(desc->shot_list);
|
||||
|
||||
free(desc);
|
||||
desc = NULL;
|
||||
|
@ -500,8 +517,9 @@ packet_info_get(void *data, int size)
|
|||
}
|
||||
}
|
||||
|
||||
Eina_Bool eet_info_save(const char *filename,
|
||||
app_info_st *a, tree_data_st *ftd)
|
||||
Eina_Bool
|
||||
eet_info_save(const char *filename,
|
||||
app_info_st *a, tree_data_st *ftd, Eina_List *ck_list)
|
||||
{
|
||||
data_desc *d = data_descriptors_init();
|
||||
Eet_File *fp = eet_open(filename, EET_FILE_MODE_WRITE);
|
||||
|
@ -510,6 +528,31 @@ Eina_Bool eet_info_save(const char *filename,
|
|||
eet_data_write(fp, d->app_add, APP_ADD_ENTRY, a, EINA_TRUE);
|
||||
eet_data_write(fp, d->tree_data, TREE_DATA_ENTRY, ftd, EINA_TRUE);
|
||||
|
||||
/* Build list of (bmp_info_st *) according to user selection */
|
||||
shot_list_st t;
|
||||
Eina_List *l;
|
||||
Evas_Object *ck;
|
||||
t.view = NULL;
|
||||
EINA_LIST_FOREACH(ck_list, l , ck)
|
||||
if (elm_check_state_get(ck) && evas_object_data_get(ck, BMP_FIELD))
|
||||
t.view = eina_list_append(t.view,
|
||||
evas_object_data_get(ck, BMP_FIELD));
|
||||
|
||||
if (t.view)
|
||||
{ /* Write list and bitmaps */
|
||||
char buf[1024];
|
||||
bmp_info_st *st = NULL;
|
||||
eet_data_write(fp, d->shot_list, BMP_LIST_ENTRY, &t, EINA_TRUE);
|
||||
EINA_LIST_FOREACH(t.view, l , st)
|
||||
{
|
||||
sprintf(buf, "%s/%llx", BMP_DATA_ENTRY, st->object);
|
||||
eet_data_image_write(fp, buf,
|
||||
st->bmp, st->w, st->h, 1, 0, 100, 0);
|
||||
}
|
||||
|
||||
eina_list_free(t.view);
|
||||
}
|
||||
|
||||
eet_close(fp);
|
||||
|
||||
return EINA_TRUE;
|
||||
|
@ -527,7 +570,33 @@ Eina_Bool eet_info_read(const char *filename,
|
|||
{
|
||||
*a = eet_data_read(fp, d->app_add, APP_ADD_ENTRY);
|
||||
*ftd = eet_data_read(fp, d->tree_data, TREE_DATA_ENTRY);
|
||||
shot_list_st *t = eet_data_read(fp, d->shot_list, BMP_LIST_ENTRY);
|
||||
if (t->view)
|
||||
{
|
||||
Eina_List *l;
|
||||
bmp_info_st *st = NULL;
|
||||
EINA_LIST_FOREACH(t->view, l , st)
|
||||
{
|
||||
char buf[1024];
|
||||
int alpha;
|
||||
int compress;
|
||||
int quality;
|
||||
int lossy;
|
||||
|
||||
sprintf(buf, "%s/%llx", BMP_DATA_ENTRY, st->object);
|
||||
st->bmp = eet_data_image_read(fp, buf,
|
||||
(unsigned int *) &st->w, (unsigned int *) &st->h,
|
||||
&alpha, &compress, &quality, &lossy);
|
||||
|
||||
/* Add the bitmaps to the actuall app data struct */
|
||||
Variant_st *v = variant_alloc(BMP_DATA, sizeof(*st), st);
|
||||
(*a)->view = eina_list_append((*a)->view, v);
|
||||
}
|
||||
|
||||
eina_list_free(t->view);
|
||||
}
|
||||
|
||||
free(t);
|
||||
eet_close(fp);
|
||||
|
||||
return EINA_TRUE;
|
||||
|
|
|
@ -2,8 +2,11 @@
|
|||
#define EET_DATA_H
|
||||
#include "libclouseau.h"
|
||||
/* Global constants */
|
||||
#define APP_ADD_ENTRY "add_add_entry"
|
||||
#define TREE_DATA_ENTRY "tree_data_entry"
|
||||
#define APP_ADD_ENTRY "/clouseau/app"
|
||||
#define TREE_DATA_ENTRY "/clouseau/app/tree"
|
||||
#define BMP_LIST_ENTRY "/clouseau/app/shot_list"
|
||||
#define BMP_DATA_ENTRY "/clouseau/app/screenshot"
|
||||
#define BMP_FIELD "bmp"
|
||||
|
||||
#define PORT (22522)
|
||||
#define MAX_LINE (1023)
|
||||
|
@ -136,12 +139,18 @@ struct _eet_message_type_mapping
|
|||
};
|
||||
typedef struct _eet_message_type_mapping eet_message_type_mapping;
|
||||
|
||||
struct _shot_list_st
|
||||
{ /* This will be used to write a shot list to eet file */
|
||||
Eina_List *view; /* Screen views eahc is (bmp_info_st *) ptr */
|
||||
};
|
||||
typedef struct _shot_list_st shot_list_st;
|
||||
|
||||
struct _data_desc
|
||||
{
|
||||
Eet_Data_Descriptor *bmp_data;
|
||||
Eet_Data_Descriptor *bmp_req;
|
||||
Eet_Data_Descriptor *bmp_info;
|
||||
Eet_Data_Descriptor *shot_list;
|
||||
Eet_Data_Descriptor *connect;
|
||||
Eet_Data_Descriptor *app_add;
|
||||
Eet_Data_Descriptor *data_req;
|
||||
|
@ -162,6 +171,7 @@ Eet_Data_Descriptor *data_req_desc_make(void);
|
|||
Eet_Data_Descriptor *bmp_req_desc_make(void);
|
||||
Eet_Data_Descriptor *bmp_data_desc_make(void);
|
||||
Eet_Data_Descriptor *bmp_info_desc_make(void);
|
||||
Eet_Data_Descriptor *shot_list_desc_make(void);
|
||||
Eet_Data_Descriptor *tree_data_desc_make(void);
|
||||
Eet_Data_Descriptor *app_closed_desc_make(void);
|
||||
Eet_Data_Descriptor *highlight_desc_make(void);
|
||||
|
@ -180,7 +190,7 @@ message_type packet_mapping_type_get(const char *name);
|
|||
const char *packet_mapping_type_str_get(message_type t);
|
||||
void *packet_compose(message_type t, void *data, int data_size, int *size, void *blob, int blob_size);
|
||||
Variant_st *packet_info_get(void *data, int size);
|
||||
Eina_Bool eet_info_save(const char *filename, app_info_st *app, tree_data_st *ftd);
|
||||
Eina_Bool eet_info_save(const char *filename, app_info_st *a, tree_data_st *ftd, Eina_List *ck_list);
|
||||
Eina_Bool eet_info_read(const char *filename, app_info_st **app, tree_data_st **ftd);
|
||||
|
||||
/* Highlight code, we may choose to move this to other file later */
|
||||
|
|
Loading…
Reference in New Issue