indent tree items... not perfect... but good

add rotation api call.



SVN revision: 39480
This commit is contained in:
Carsten Haitzler 2009-03-14 18:03:19 +00:00
parent 6e0c99e69f
commit e730cb0364
4 changed files with 104 additions and 20 deletions

View File

@ -7054,6 +7054,7 @@ collections {
data.item: "selectraise" "on"; data.item: "selectraise" "on";
data.item: "labels" "elm.text"; data.item: "labels" "elm.text";
data.item: "icons" "elm.swallow.icon elm.swallow.end"; data.item: "icons" "elm.swallow.icon elm.swallow.end";
data.item: "treesize" "20";
// data.item: "states" ""; // data.item: "states" "";
images { images {
image: "bt_sm_base1.png" COMP; image: "bt_sm_base1.png" COMP;
@ -7133,8 +7134,7 @@ collections {
} }
} }
} }
part { name: "elm.swallow.icon"; part { name: "elm.swallow.pad";
clip_to: "disclip";
type: SWALLOW; type: SWALLOW;
description { state: "default" 0.0; description { state: "default" 0.0;
fixed: 1 0; fixed: 1 0;
@ -7149,6 +7149,24 @@ collections {
} }
} }
} }
part { name: "elm.swallow.icon";
clip_to: "disclip";
type: SWALLOW;
description { state: "default" 0.0;
fixed: 1 0;
align: 0.0 0.5;
rel1 {
to_x: "elm.swallow.pad";
relative: 1.0 0.0;
offset: -1 4;
}
rel2 {
to_x: "elm.swallow.pad";
relative: 1.0 1.0;
offset: -1 -5;
}
}
}
part { name: "elm.swallow.end"; part { name: "elm.swallow.end";
clip_to: "disclip"; clip_to: "disclip";
type: SWALLOW; type: SWALLOW;
@ -7310,6 +7328,7 @@ collections {
data.item: "selectraise" "on"; data.item: "selectraise" "on";
data.item: "labels" "elm.text"; data.item: "labels" "elm.text";
data.item: "icons" "elm.swallow.icon elm.swallow.end"; data.item: "icons" "elm.swallow.icon elm.swallow.end";
data.item: "treesize" "20";
// data.item: "states" ""; // data.item: "states" "";
images { images {
image: "bt_sm_base1.png" COMP; image: "bt_sm_base1.png" COMP;
@ -7364,9 +7383,7 @@ collections {
} }
} }
} }
part { part { name: "elm.swallow.pad";
name: "elm.swallow.icon";
clip_to: "disclip";
type: SWALLOW; type: SWALLOW;
description { state: "default" 0.0; description { state: "default" 0.0;
fixed: 1 0; fixed: 1 0;
@ -7381,8 +7398,25 @@ collections {
} }
} }
} }
part { part { name: "elm.swallow.icon";
name: "elm.swallow.end"; clip_to: "disclip";
type: SWALLOW;
description { state: "default" 0.0;
fixed: 1 0;
align: 0.0 0.5;
rel1 {
to_x: "elm.swallow.pad";
relative: 1.0 0.0;
offset: -1 4;
}
rel2 {
to_x: "elm.swallow.pad";
relative: 1.0 1.0;
offset: -1 -5;
}
}
}
part { name: "elm.swallow.end";
clip_to: "disclip"; clip_to: "disclip";
type: SWALLOW; type: SWALLOW;
description { state: "default" 0.0; description { state: "default" 0.0;
@ -7544,6 +7578,7 @@ collections {
data.item: "selectraise" "on"; data.item: "selectraise" "on";
data.item: "labels" "elm.text"; data.item: "labels" "elm.text";
data.item: "icons" "elm.swallow.icon elm.swallow.end"; data.item: "icons" "elm.swallow.icon elm.swallow.end";
data.item: "treesize" "20";
// data.item: "states" ""; // data.item: "states" "";
images { images {
image: "bt_sm_base1.png" COMP; image: "bt_sm_base1.png" COMP;
@ -7625,6 +7660,21 @@ collections {
} }
} }
} }
part { name: "elm.swallow.pad";
type: SWALLOW;
description { state: "default" 0.0;
fixed: 1 0;
align: 0.0 0.5;
rel1 {
relative: 0.0 0.0;
offset: 4 4;
}
rel2 {
relative: 0.0 1.0;
offset: 4 -5;
}
}
}
part { name: "arrow"; part { name: "arrow";
clip_to: "disclip"; clip_to: "disclip";
ignore_flags: ON_HOLD; ignore_flags: ON_HOLD;
@ -7633,12 +7683,14 @@ collections {
align: 0.0 0.5; align: 0.0 0.5;
aspect: 1.0 1.0; aspect: 1.0 1.0;
rel1 { rel1 {
relative: 0.0 0.0; to_x: "elm.swallow.pad";
offset: 4 4; relative: 1.0 0.0;
offset: -1 4;
} }
rel2 { rel2 {
relative: 0.0 1.0; to_x: "elm.swallow.pad";
offset: 4 -5; relative: 1.0 1.0;
offset: -1 -5;
} }
image.normal: "icon_arrow_right.png"; image.normal: "icon_arrow_right.png";
} }

View File

@ -211,6 +211,7 @@ extern "C" {
EAPI void elm_win_maximized_set(Evas_Object *obj, Evas_Bool maximized); EAPI void elm_win_maximized_set(Evas_Object *obj, Evas_Bool maximized);
EAPI void elm_win_iconified_set(Evas_Object *obj, Evas_Bool iconified); EAPI void elm_win_iconified_set(Evas_Object *obj, Evas_Bool iconified);
EAPI void elm_win_layer_set(Evas_Object *obj, int layer); EAPI void elm_win_layer_set(Evas_Object *obj, int layer);
EAPI void elm_win_rotation_set(Evas_Object *obj, int rotation);
/*... /*...
* ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas) * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
* ecore_x_icccm_hints_set -> window_group (add to ecore_evas) * ecore_x_icccm_hints_set -> window_group (add to ecore_evas)
@ -663,18 +664,15 @@ extern "C" {
// * table doesnt do homogenous properly // * table doesnt do homogenous properly
// //
//// (incomplete - medium priority) //// (incomplete - medium priority)
// * entry selection conflicts with finger scroll (make selection start/stop work on signals?)
// * disabled not supported // * disabled not supported
// * on the fly theme changes - test (should work) // * on the fly theme changes - test (should work)
// * need a hold-scroll counter in elm_widget // * need a hold-scroll counter in elm_widget
// * add fullscreen mode on/off for windows
// * hoversel only vertical right now - make horizontal // * hoversel only vertical right now - make horizontal
// * when entries are in a scroller and change size, the scroller shows scrollbars. fix. same for selecting. for 1 line entries in a scroller should only have scroll arrow indicators. // * when entries are in a scroller and change size, the scroller shows scrollbars. fix. same for selecting. for 1 line entries in a scroller should only have scroll arrow indicators.
// //
//// (more widgets/features - medium priority) //// (more widgets/features - medium priority)
// * tree feature for genlist widget (like biglist - but items can expand to sub-items) // * tree feature for genlist widget (like biglist - but items can expand to sub-items)
// * pager (for pushing/popping pages and going back and forward and flipping) // * <edje selection + copy & paste fixed so it works with scrolling>
// * <edje copy & paste fixed>
// * <evas scale cache> // * <evas scale cache>
// * <evas shared cache> // * <evas shared cache>
// //
@ -701,6 +699,7 @@ extern "C" {
// * generic "tacho" widget (set min/max labels - and up to 3 intermediate labels etc.) // * generic "tacho" widget (set min/max labels - and up to 3 intermediate labels etc.)
// * status widget (busy, stalled, running, etc.) // * status widget (busy, stalled, running, etc.)
// * full window in window widget (so move/resize of window object does as you'd expect a child window to do within the canvas) // * full window in window widget (so move/resize of window object does as you'd expect a child window to do within the canvas)
// * window frame widget for borderless windows that want the app to do its own frame (move, resize as well etc.)
// //
//// (improvements - low priority) //// (improvements - low priority)
// * test for all bubble styles // * test for all bubble styles
@ -729,6 +728,7 @@ extern "C" {
// * emotion widget // * emotion widget
// * ewebkit widget // * ewebkit widget
// * flash (gnash) widget // * flash (gnash) widget
// * menu bar + menu widget
// * need url and path entry modes for vkbd // * need url and path entry modes for vkbd
// * return list of toplevel window objects // * return list of toplevel window objects
// * focus should have an object that is layered above all others (definable layer) that moves + resizes (slides about - animated) from one focused widget to the next for focus. also emit focus/unfocus signals too // * focus should have an object that is layered above all others (definable layer) that moves + resizes (slides about - animated) from one focused widget to the next for focus. also emit focus/unfocus signals too

View File

@ -54,6 +54,7 @@ struct _Elm_Genlist_Item
} func; } func;
Evas_Object *base; Evas_Object *base;
Evas_Object *spacer;
Eina_List *labels, *icons, *states; Eina_List *labels, *icons, *states;
Eina_List *icon_objs; Eina_List *icon_objs;
@ -293,8 +294,11 @@ _signal_contract(void *data, Evas_Object *obj, const char *emission, const char
static void static void
_item_realize(Elm_Genlist_Item *it, int in, int calc) _item_realize(Elm_Genlist_Item *it, int in, int calc)
{ {
Elm_Genlist_Item *it2;
const char *stacking; const char *stacking;
const char *treesize;
char buf[1024]; char buf[1024];
int depth, tsize = 20;
if (it->realized) return; if (it->realized) return;
if (it->delete_me) return; if (it->delete_me) return;
@ -317,6 +321,14 @@ _item_realize(Elm_Genlist_Item *it, int in, int calc)
snprintf(buf, sizeof(buf), "%s/%s", "item", it->itc->item_style); snprintf(buf, sizeof(buf), "%s/%s", "item", it->itc->item_style);
} }
_elm_theme_set(it->base, "genlist", buf, "default"); _elm_theme_set(it->base, "genlist", buf, "default");
it->spacer = evas_object_rectangle_add(evas_object_evas_get(it->wd->obj));
evas_object_color_set(it->spacer, 0, 0, 0, 0);
elm_widget_sub_object_add(it->wd->obj, it->spacer);
for (it2 = it, depth = 0; it2->parent; it2 = it2->parent) depth += 1;
treesize = edje_object_data_get(it->base, "treesize");
if (treesize) tsize = atoi(treesize);
evas_object_size_hint_min_set(it->spacer, (depth * tsize) * _elm_config->scale, 1);
edje_object_part_swallow(it->base, "elm.swallow.pad", it->spacer);
if (!calc) if (!calc)
{ {
edje_object_signal_callback_add(it->base, "elm,action,expand,toggle", "elm", _signal_expand_toggle, it); edje_object_signal_callback_add(it->base, "elm,action,expand,toggle", "elm", _signal_expand_toggle, it);
@ -410,6 +422,8 @@ _item_unrealize(Elm_Genlist_Item *it)
if (!it->realized) return; if (!it->realized) return;
evas_object_del(it->base); evas_object_del(it->base);
it->base = NULL; it->base = NULL;
evas_object_del(it->spacer);
it->spacer = NULL;
_stringlist_free(it->labels); _stringlist_free(it->labels);
it->labels = NULL; it->labels = NULL;
_stringlist_free(it->icons); _stringlist_free(it->icons);

View File

@ -458,8 +458,17 @@ elm_win_fullscreen_set(Evas_Object *obj, Evas_Bool fullscreen)
{ {
Elm_Win *win = elm_widget_data_get(obj); Elm_Win *win = elm_widget_data_get(obj);
if (!win) return; if (!win) return;
switch (_elm_config->engine)
{
case ELM_SOFTWARE_16_WINCE:
case ELM_SOFTWARE_FB:
// these engines... can ONLY be fullscreen
break;
default:
ecore_evas_fullscreen_set(win->ee, fullscreen); ecore_evas_fullscreen_set(win->ee, fullscreen);
_elm_win_xwin_update(win); _elm_win_xwin_update(win);
break;
}
} }
EAPI void EAPI void
@ -489,6 +498,15 @@ elm_win_layer_set(Evas_Object *obj, int layer)
_elm_win_xwin_update(win); _elm_win_xwin_update(win);
} }
EAPI void
elm_win_rotation_set(Evas_Object *obj, int rotation)
{
Elm_Win *win = elm_widget_data_get(obj);
if (!win) return;
ecore_evas_rotation_set(win->ee, rotation);
_elm_win_xwin_update(win);
}
EAPI void EAPI void
elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode) elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode)
{ {