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: "labels" "elm.text";
data.item: "icons" "elm.swallow.icon elm.swallow.end";
data.item: "treesize" "20";
// data.item: "states" "";
images {
image: "bt_sm_base1.png" COMP;
@ -7133,8 +7134,7 @@ collections {
}
}
}
part { name: "elm.swallow.icon";
clip_to: "disclip";
part { name: "elm.swallow.pad";
type: SWALLOW;
description { state: "default" 0.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";
clip_to: "disclip";
type: SWALLOW;
@ -7310,6 +7328,7 @@ collections {
data.item: "selectraise" "on";
data.item: "labels" "elm.text";
data.item: "icons" "elm.swallow.icon elm.swallow.end";
data.item: "treesize" "20";
// data.item: "states" "";
images {
image: "bt_sm_base1.png" COMP;
@ -7364,13 +7383,11 @@ collections {
}
}
}
part {
name: "elm.swallow.icon";
clip_to: "disclip";
type: SWALLOW;
description { state: "default" 0.0;
part { name: "elm.swallow.pad";
type: SWALLOW;
description { state: "default" 0.0;
fixed: 1 0;
align: 0.0 0.5;
align: 0.0 0.5;
rel1 {
relative: 0.0 0.0;
offset: 4 4;
@ -7381,8 +7398,25 @@ collections {
}
}
}
part {
name: "elm.swallow.end";
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";
clip_to: "disclip";
type: SWALLOW;
description { state: "default" 0.0;
@ -7544,6 +7578,7 @@ collections {
data.item: "selectraise" "on";
data.item: "labels" "elm.text";
data.item: "icons" "elm.swallow.icon elm.swallow.end";
data.item: "treesize" "20";
// data.item: "states" "";
images {
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";
clip_to: "disclip";
ignore_flags: ON_HOLD;
@ -7633,12 +7683,14 @@ collections {
align: 0.0 0.5;
aspect: 1.0 1.0;
rel1 {
relative: 0.0 0.0;
offset: 4 4;
to_x: "elm.swallow.pad";
relative: 1.0 0.0;
offset: -1 4;
}
rel2 {
relative: 0.0 1.0;
offset: 4 -5;
to_x: "elm.swallow.pad";
relative: 1.0 1.0;
offset: -1 -5;
}
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_iconified_set(Evas_Object *obj, Evas_Bool iconified);
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 -> window_group (add to ecore_evas)
@ -663,18 +664,15 @@ extern "C" {
// * table doesnt do homogenous properly
//
//// (incomplete - medium priority)
// * entry selection conflicts with finger scroll (make selection start/stop work on signals?)
// * disabled not supported
// * on the fly theme changes - test (should work)
// * need a hold-scroll counter in elm_widget
// * add fullscreen mode on/off for windows
// * 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.
//
//// (more widgets/features - medium priority)
// * 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 copy & paste fixed>
// * <edje selection + copy & paste fixed so it works with scrolling>
// * <evas scale cache>
// * <evas shared cache>
//
@ -701,6 +699,7 @@ extern "C" {
// * generic "tacho" widget (set min/max labels - and up to 3 intermediate labels 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)
// * window frame widget for borderless windows that want the app to do its own frame (move, resize as well etc.)
//
//// (improvements - low priority)
// * test for all bubble styles
@ -729,6 +728,7 @@ extern "C" {
// * emotion widget
// * ewebkit widget
// * flash (gnash) widget
// * menu bar + menu widget
// * need url and path entry modes for vkbd
// * 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

View File

@ -54,6 +54,7 @@ struct _Elm_Genlist_Item
} func;
Evas_Object *base;
Evas_Object *spacer;
Eina_List *labels, *icons, *states;
Eina_List *icon_objs;
@ -293,8 +294,11 @@ _signal_contract(void *data, Evas_Object *obj, const char *emission, const char
static void
_item_realize(Elm_Genlist_Item *it, int in, int calc)
{
Elm_Genlist_Item *it2;
const char *stacking;
const char *treesize;
char buf[1024];
int depth, tsize = 20;
if (it->realized) 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);
}
_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)
{
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;
evas_object_del(it->base);
it->base = NULL;
evas_object_del(it->spacer);
it->spacer = NULL;
_stringlist_free(it->labels);
it->labels = NULL;
_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);
if (!win) return;
ecore_evas_fullscreen_set(win->ee, fullscreen);
_elm_win_xwin_update(win);
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);
_elm_win_xwin_update(win);
break;
}
}
EAPI void
@ -489,6 +498,15 @@ elm_win_layer_set(Evas_Object *obj, int layer)
_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
elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode)
{