From 6ba3cdedadb9327e85ec012dcca3ac003d1ece07 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 8 Nov 2010 20:49:11 +0900 Subject: [PATCH] [elm_ctxpopup.c] fixed for landscape mode [changelog] repackaging --- debian/changelog | 8 ++++++++ src/lib/elm_ctxpopup.c | 38 ++++++++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 815448c..5912b95 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +elementary (1.0.0+svn.51480slp2+build51) unstable; urgency=low + + * bugfix ellipsis is_width_over func + * Git: 165.213.180.234:/git/slp/pkgs/elementary + * Tag: elementary_1.0.0+svn.51480slp2+build51 + + -- ChunEon Park Mon, 08 Nov 2010 20:48:30 +0900 + elementary (1.0.0+svn.51480slp2+build50) unstable; urgency=low * bugfix ellipsis is_width_over func diff --git a/src/lib/elm_ctxpopup.c b/src/lib/elm_ctxpopup.c index e827129..4d177dc 100644 --- a/src/lib/elm_ctxpopup.c +++ b/src/lib/elm_ctxpopup.c @@ -31,6 +31,7 @@ struct _Widget_Data { Evas_Object *parent; Evas_Object *base; + Evas_Object *base2; Evas_Object *content; Evas_Object *box; Evas_Object *arrow; @@ -248,6 +249,9 @@ _item_sizing_eval(Elm_Ctxpopup_Item *item) if (!item->separator) elm_coords_finger_size_adjust(1, &min_w, 1, &min_h); + Evas_Coord x, y, w, h; + evas_object_geometry_get(item->base, &x, &y, &w, &h); + edje_object_size_min_restricted_calc(item->base, &min_w, &min_h, min_w, min_h); @@ -498,8 +502,8 @@ _calc_base_geometry(Evas_Object *obj, Evas_Coord_Rectangle *rect) rect->h = base_size.y; if(!wd->content ) { - evas_object_geometry_get( wd->scroller, NULL, NULL, &temp.x, &temp.y); - evas_object_size_hint_min_set(wd->box, temp.x, temp.y + (base_size.y - min_calc_h)); + evas_object_geometry_get( wd->box, NULL, NULL, &temp.x, &temp.y); + evas_object_size_hint_min_set(wd->scroller, temp.x, temp.y + (base_size.y - min_calc_h)); } return arrow; @@ -595,11 +599,25 @@ _sizing_eval(Evas_Object *obj) if ((!wd) || (!wd->parent)) return; + Evas_Coord_Point box_size = { 0, 0 }; + Evas_Coord_Point _box_size = { 0, 0 }; + EINA_LIST_FOREACH(wd->items, elist, item) { + evas_object_size_hint_min_get(item->base, &_box_size.x, &_box_size.y); + if(!wd->horizontal) { + if(_box_size.x > box_size.x) box_size.x = _box_size.x; + if(_box_size.y != -1 ) box_size.y += _box_size.y; + }else { + if(_box_size.x != -1 ) box_size.x += _box_size.x; + if(_box_size.y > box_size.y) box_size.y = _box_size.y; + } _item_sizing_eval(item); } + if( !wd->content) + evas_object_size_hint_min_set(wd->box, box_size.x, box_size.y); + //content if(wd->content) { evas_object_geometry_get(wd->content, NULL, NULL, &rect.w, &rect.h); @@ -976,12 +994,21 @@ elm_ctxpopup_add(Evas_Object *parent) elm_widget_sub_object_add(obj, wd->base); _elm_theme_object_set(obj, wd->base, "ctxpopup", "base", "default"); + //Base2 +/* wd->base2 = edje_object_add(e); + elm_widget_sub_object_add(obj, wd->base2); + _elm_theme_object_set(obj, wd->base2, "ctxpopup", "base", "default2"); + evas_object_size_hint_align_set(wd->base2, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(wd->base2, 1, 1); + evas_object_show(wd->base2); + evas_object_size_hint_min_set(wd->base2, 420, 300); */ + //Scroller wd->scroller = elm_scroller_add(obj); elm_object_style_set(wd->scroller, "ctxpopup"); - elm_scroller_content_min_limit(wd->scroller, EINA_TRUE, EINA_TRUE); + //elm_scroller_content_min_limit(wd->scroller, EINA_TRUE, EINA_TRUE); + evas_object_size_hint_align_set(wd->scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_scroller_bounce_set(wd->scroller, EINA_FALSE, EINA_TRUE); - edje_object_part_swallow(wd->base, "elm.swallow.scroller", wd->scroller); evas_object_event_callback_add(wd->scroller, EVAS_CALLBACK_RESIZE, _ctxpopup_scroller_resize, obj); @@ -990,6 +1017,9 @@ elm_ctxpopup_add(Evas_Object *parent) evas_object_size_hint_weight_set(wd->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_scroller_content_set(wd->scroller, wd->box); + //edje_object_part_swallow(wd->base2, "elm.swallow.content", wd->scroller); + edje_object_part_swallow(wd->base, "elm.swallow.scroller", wd->scroller); + //Arrow wd->arrow = edje_object_add(e); elm_widget_sub_object_add(obj, wd->arrow); -- 2.7.4