#define DEFAULT_WIDTH 720
#define GRID_ITEM_SPACE_W 6
#define GRID_ITEM_SINGLE_W 185
-#define GRID_ITEM_SINGLE_H 161
+#define GRID_ITEM_SINGLE_H 140
#define GRID_ITEM_W (GRID_ITEM_SINGLE_W+(GRID_ITEM_SPACE_W*2))
#define GRID_ITEM_H (GRID_ITEM_SINGLE_H)
#define GRID_IMAGE_LIMIT_W 91
#define GRID_IMAGE_LIMIT_H 113
+#define GRID_IMAGE_INNER 10
+#define GRID_IMAGE_REAL_W (GRID_ITEM_SINGLE_W - (2*GRID_IMAGE_INNER))
+#define GRID_IMAGE_REAL_H (GRID_ITEM_SINGLE_H - (2*GRID_IMAGE_INNER))
static Evas_Object *create_win(ClipdrawerData *cd, const char *name);
static Evas_Object *_grid_content_get(void *data, Evas_Object *obj, const char *part);
while (gitem)
{
- item = elm_gengrid_item_data_get(gitem);
+ item = elm_object_item_data_get(gitem);
if ((item->type_index == ATOM_INDEX_IMAGE) && (item->layout))
{
if (cd->paste_text_only)
edje_object_signal_callback_add(elm_layout_edje_get(cd->main_layout),
"mouse,up,1", "*", clipdrawer_ly_clicked, ad);
+ elm_object_part_text_set(cd->main_layout, "panel_title", "Clipboard");
+ elm_object_part_text_set(cd->main_layout, "panel_function", "Done");
+
cd->gengrid = elm_gengrid_add(cd->main_win);
- elm_layout_content_set(cd->main_layout, "historyitems", cd->gengrid);
- elm_gengrid_item_size_set(cd->gengrid, GRID_ITEM_W+2, GRID_ITEM_H);
- elm_gengrid_align_set(cd->gengrid, 0.5, 0.5);
+ elm_object_part_content_set(cd->main_layout, "historyitems", cd->gengrid);
+ elm_gengrid_item_size_set(cd->gengrid, GRID_ITEM_W, GRID_ITEM_H);
+ elm_gengrid_align_set(cd->gengrid, 0.5, 0.0);
elm_gengrid_horizontal_set(cd->gengrid, EINA_TRUE);
elm_gengrid_bounce_set(cd->gengrid, EINA_TRUE, EINA_FALSE);
elm_gengrid_multi_select_set(cd->gengrid, EINA_FALSE);
elm_gengrid_clear(cd->gengrid);
- cd->gic.item_style = "default_grid";
+ cd->gic.item_style = "clipboard_photo_style";
cd->gic.func.text_get = NULL;
cd->gic.func.content_get = _grid_content_get;
cd->gic.func.state_get = NULL;
cd->keydown_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, keydown_cb, ad);
cd->evas = evas_object_evas_get(cd->main_win);
+ delete_mode = EINA_FALSE;
+
return cd;
}
Elm_Object_Item *gitem = elm_gengrid_first_item_get(cd->gengrid);
while (gitem)
{
- CNP_ITEM *gitem_data = elm_gengrid_item_data_get(gitem);
+ CNP_ITEM *gitem_data = elm_object_item_data_get(gitem);
gitem = elm_gengrid_item_next_get(gitem);
if ((gitem_data->type_index == item->type_index) && (!strcmp(item->data, gitem_data->data)))
{
static Eina_Bool clipdrawer_del_item(AppData *ad, CNP_ITEM *item)
{
if (item->gitem)
- elm_gengrid_item_del(item->gitem);
+ elm_object_item_del(item->gitem);
return EINA_TRUE;
}
AppData *ad = item->ad;
ClipdrawerData *cd = ad->clipdrawer;
- if (strcmp(part, "elm.swallow.icon"))
- return NULL;
- if (item->type_index == ATOM_INDEX_IMAGE) /* text/uri */
+ if (item->type_index == ATOM_INDEX_IMAGE && !strcmp(part, "elm.swallow.icon")) /* text/uri */
{
+ int w, h, iw, ih;
+
Evas_Object *layout = elm_layout_add(obj);
- elm_layout_theme_set(layout, "gengrid", "widestyle", "horizontal_layout");
+ elm_layout_theme_set(layout, "gengrid", "item", "clipboard_style");
edje_object_signal_callback_add(elm_layout_edje_get(layout),
"mouse,up,1", "*", _grid_item_ly_clicked, data);
+
Evas_Object *sicon;
sicon = evas_object_image_add(evas_object_evas_get(obj));
- evas_object_image_load_size_set(sicon, GRID_ITEM_SINGLE_W, GRID_ITEM_SINGLE_H);
+ evas_object_image_load_size_set(sicon, GRID_IMAGE_REAL_W, GRID_IMAGE_REAL_H);
evas_object_image_file_set(sicon, item->data, NULL);
- evas_object_image_fill_set(sicon, 0, 0, GRID_ITEM_SINGLE_W, GRID_ITEM_SINGLE_H);
- evas_object_resize(sicon, GRID_ITEM_SINGLE_W, GRID_ITEM_SINGLE_H);
- elm_layout_content_set(layout, "elm.swallow.icon", sicon);
+ evas_object_image_size_get(sicon, &w, &h);
+
+ if (w > GRID_IMAGE_REAL_W || h > GRID_IMAGE_REAL_H)
+ {
+ if (w >= h)
+ {
+ iw = GRID_IMAGE_REAL_W;
+ ih = (float)GRID_IMAGE_REAL_W / w * h;
+ }
+ else
+ {
+ iw = (float)GRID_IMAGE_REAL_H / h * w;
+ ih = GRID_IMAGE_REAL_H;
+ }
+ }
+ else
+ {
+ iw = w;
+ ih = h;
+ }
+
+ evas_object_image_fill_set(sicon, 0, 0, iw, ih);
+ evas_object_resize(sicon, iw, ih);
+ evas_object_size_hint_min_set(sicon, iw, ih);
+ elm_object_part_content_set(layout, "elm.swallow.icon", sicon);
if (cd->paste_text_only)
edje_object_signal_emit(elm_layout_edje_get(layout), "elm,state,show,dim", "elm");
item->layout = layout;
}
- else
+ else if (item->type_index != ATOM_INDEX_IMAGE && !strcmp(part, "elm.swallow.entry")) /* text/uri */
{
Evas_Object *layout = elm_layout_add(obj);
elm_layout_theme_set(layout, "gengrid", "widestyle", "horizontal_layout");
"mouse,up,1", "*", _grid_item_ly_clicked, data);
Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(obj));
evas_object_resize(rect, GRID_ITEM_W, GRID_ITEM_H);
- evas_object_color_set(rect, 242, 233, 183, 255);
+ evas_object_color_set(rect, 237, 233, 208, 255);
evas_object_show(rect);
- elm_layout_content_set(layout, "elm.swallow.icon", rect);
+ elm_object_part_content_set(layout, "elm.swallow.icon", rect);
Evas_Object *ientry = elm_entry_add(obj);
evas_object_size_hint_weight_set(ientry, 0, 0);
elm_entry_editable_set(ientry, EINA_FALSE);
elm_entry_context_menu_disabled_set(ientry, EINA_TRUE);
evas_object_show(ientry);
- elm_layout_content_set(layout, "elm.swallow.inner", ientry);
+ elm_object_part_content_set(layout, "elm.swallow.inner", ientry);
item->layout = layout;
}
+ else
+ return NULL;
+
+ if (delete_mode)
+ edje_object_signal_emit(elm_layout_edje_get(item->layout), "elm,state,show,delbtn", "elm");
+ else
+ edje_object_signal_emit(elm_layout_edje_get(item->layout), "elm,state,hide,delbtn", "elm");
return item->layout;
}
if (ad->clipdrawer->anim_status != STATUS_NONE)
return;
-#define EDJE_CLOSE_PART_PREFIX "background/close"
+#define EDJE_CLOSE_PART_PREFIX "background/title/close"
+#define EDJE_DELETE_MODE_PREFIX "background/title/delete"
if (!strncmp(source, EDJE_CLOSE_PART_PREFIX, strlen(EDJE_CLOSE_PART_PREFIX)))
{
clipdrawer_lower_view(ad);
}
-}
-
-static void _grid_del_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
- CNP_ITEM *item = data;
- AppData *ad = item->ad;
- ClipdrawerData *cd = ad->clipdrawer;
-
- /* delete popup */
- evas_object_del(obj);
-
- if((int)event_info == ELM_POPUP_RESPONSE_OK)
+ else if (!strncmp(source, EDJE_DELETE_MODE_PREFIX, strlen(EDJE_DELETE_MODE_PREFIX)))
{
- item_delete_by_CNP_ITEM(ad, item);
+ _delete_mode_set(ad, !delete_mode);
}
+
}
static void _grid_item_ly_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
Elm_Object_Item *sgobj = NULL;
sgobj = elm_gengrid_selected_item_get(cd->gengrid);
- item = elm_gengrid_item_data_get(sgobj);
+ item = elm_object_item_data_get(sgobj);
if (!sgobj || !item)
{
{
elm_gengrid_item_selected_set(sgobj, EINA_FALSE);
+ if (delete_mode)
+ return;
+
if (item->type_index != ATOM_INDEX_IMAGE || !cd->paste_text_only)
{
set_selection_owner(ad, ECORE_X_SELECTION_SECONDARY, item);
{
elm_gengrid_item_selected_set(sgobj, EINA_FALSE);
- Evas_Object *popup = elm_popup_add(cd->main_win);
- elm_popup_timeout_set(popup, 5);
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_popup_desc_set(popup, "Are you sure delete this?");
- elm_popup_buttons_add(popup, 2,
- "Yes", ELM_POPUP_RESPONSE_OK,
- "No", ELM_POPUP_RESPONSE_CANCEL,
- NULL);
- evas_object_smart_callback_add(popup, "response", _grid_del_response_cb, item);
- evas_object_show(popup);
+ item_delete_by_CNP_ITEM(ad, item);
}
}
w = 0;
DTRACE("[CBHM] change degree geometry... (%d, %d, %d x %d)\n", x, y, w, h);
- ecore_x_e_illume_sliding_win_geometry_set(zone, x, y, w, h);
- ecore_x_e_illume_sliding_win_state_set(zone, cd->anim_count != 0);
+ int clipboard_state;
+ if (cd->anim_count)
+ clipboard_state = ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
+ else
+ clipboard_state = ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
+ ecore_x_e_illume_clipboard_geometry_set(zone, x, y, w, h);
+ ecore_x_e_illume_clipboard_state_set(zone, clipboard_state);
}
void set_rotation_to_clipdrawer(ClipdrawerData *cd)
elm_win_lower(cd->main_win);
unset_transient_for(cd->x_main_win, ad->x_active_win);
stop_animation(ad);
+ _delete_mode_set(ad, EINA_FALSE);
return EINA_FALSE;
}
_do_anim_delta_pos(cd, anim_start, anim_end, cd->anim_count, &delta);
cd->o_degree = get_active_window_degree(ad->x_active_win);
elm_win_rotation_set(cd->main_win, cd->o_degree);
set_rotation_to_clipdrawer(cd);
- // evas_object_show(cd->main_win);
+ evas_object_show(cd->main_win);
elm_win_activate(cd->main_win);
- // if (clipdrawer_anim_effect(ad, SHOW_ANIM))
clipdrawer_anim_effect(ad, SHOW_ANIM);
}
}
clipdrawer_anim_effect(ad, HIDE_ANIM);
}
}
+
+void _delete_mode_set(AppData* ad, Eina_Bool del_mode)
+{
+ ClipdrawerData *cd = ad->clipdrawer;
+ CNP_ITEM *item = NULL;
+
+ delete_mode = del_mode;
+ if (del_mode)
+ {
+ edje_object_signal_emit(elm_layout_edje_get(cd->main_layout), "elm,state,show,function", "elm");
+ edje_object_signal_emit(elm_layout_edje_get(cd->main_layout), "elm,state,hide,delmode", "elm");
+ }
+ else
+ {
+ edje_object_signal_emit(elm_layout_edje_get(cd->main_layout), "elm,state,hide,function", "elm");
+ edje_object_signal_emit(elm_layout_edje_get(cd->main_layout), "elm,state,show,delmode", "elm");
+ }
+
+ Elm_Object_Item *gitem = elm_gengrid_first_item_get(cd->gengrid);
+ while (gitem)
+ {
+ item = elm_object_item_data_get(gitem);
+ if (del_mode)
+ edje_object_signal_emit(elm_layout_edje_get(item->layout), "elm,state,show,delbtn", "elm");
+ else
+ edje_object_signal_emit(elm_layout_edje_get(item->layout), "elm,state,hide,delbtn", "elm");
+
+ gitem = elm_gengrid_item_next_get(gitem);
+ }
+}