From acf2ea7eb397f35f34abb5c50ba1da7617e58568 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 1 Mar 2009 23:52:13 +0000 Subject: [PATCH] only build quicklaunch on systems that have... fork! SVN revision: 39319 --- legacy/elementary/configure.in | 7 ++- legacy/elementary/data/themes/default.edc | 71 +++++++++++++++++++++++ legacy/elementary/src/bin/Makefile.am | 8 ++- legacy/elementary/src/lib/Elementary.h.in | 5 ++ legacy/elementary/src/lib/Makefile.am | 1 + legacy/elementary/src/lib/elm_pager.c | 38 ++++++++++-- 6 files changed, 121 insertions(+), 9 deletions(-) diff --git a/legacy/elementary/configure.in b/legacy/elementary/configure.in index 6159485d16..cf657c5da5 100644 --- a/legacy/elementary/configure.in +++ b/legacy/elementary/configure.in @@ -77,7 +77,12 @@ dnl managed by evil ;; esac -AC_CHECK_FUNCS(fork, AC_DEFINE(HAVE_FORK)) +have_fork="no" +AC_CHECK_FUNCS(fork, [ + have_fork="yes" + AC_DEFINE(HAVE_FORK) +]) +AM_CONDITIONAL([BUILD_QUICKLAUNCH], [test "x$have_fork" = "xyes"]) AC_SUBST(dlopen_libs) AC_SUBST(lt_enable_auto_import) diff --git a/legacy/elementary/data/themes/default.edc b/legacy/elementary/data/themes/default.edc index 95838c1d0b..5020754386 100644 --- a/legacy/elementary/data/themes/default.edc +++ b/legacy/elementary/data/themes/default.edc @@ -7820,4 +7820,75 @@ collections { } } } + +/////////////////////////////////////////////////////////////////////////////// + group { name: "elm/pager/base/default"; + data.item: "stacking" "above"; + data.item: "selectraise" "on"; + images { + image: "frame_1.png" COMP; + image: "frame_2.png" COMP; + image: "dia_grad.png" COMP; + } + parts { + part { name: "base0"; + mouse_events: 0; + description { state: "default" 0.0; + image.normal: "dia_grad.png"; + rel1.to: "over"; + rel2.to: "over"; + fill { + smooth: 0; + size { + relative: 0.0 1.0; + offset: 64 0; + } + } + } + } + part { name: "base"; + mouse_events: 0; + description { state: "default" 0.0; + image { + normal: "frame_2.png"; + border: 5 5 32 26; + middle: 0; + } + fill.smooth : 0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + description { state: "default" 0.0; + rel1 { + to: "base"; + offset: 8 8; + } + rel2 { + to: "base"; + offset: -9 -9; + } + } + } + part { name: "over"; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + to: "base"; + offset: 4 4; + } + rel2 { + to: "base"; + offset: -5 -5; + } + image { + normal: "frame_1.png"; + border: 2 2 28 22; + middle: 0; + } + fill.smooth : 0; + } + } + } + } } diff --git a/legacy/elementary/src/bin/Makefile.am b/legacy/elementary/src/bin/Makefile.am index efb3cc064f..68bcb9e3da 100644 --- a/legacy/elementary/src/bin/Makefile.am +++ b/legacy/elementary/src/bin/Makefile.am @@ -18,13 +18,16 @@ if ELEMENTARY_WINDOWS_BUILD AM_CPPFLAGS += -DELEMENTARY_BUILD endif -bin_PROGRAMS = elementary_test elementary_quicklaunch elementary_run \ -elementary_testql +bin_PROGRAMS = elementary_test +if BUILD_QUICKLAUNCH +bin_PROGRAMS += elementary_quicklaunch elementary_run elementary_testql +endif elementary_test_SOURCES = test.c elementary_test_LDADD = $(top_builddir)/src/lib/libelementary.la elementary_test_LDFLAGS = +if BUILD_QUICKLAUNCH elementary_quicklaunch_SOURCES = quicklaunch.c elementary_quicklaunch_LDADD = $(top_builddir)/src/lib/libelementary.la elementary_quicklaunch_LDFLAGS = @@ -48,3 +51,4 @@ elementary_testql_SOURCES = test.c elementary_testql_LDADD = $(top_builddir)/src/lib/libelementary.la elementary_testql_CFLAGS = -DELM_LIB_QUICKLAUNCH=1 elementary_testql_LDFLAGS = +endif diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 9d1e2c3b93..5a9b4ea5f3 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -607,6 +607,11 @@ extern "C" { */ EAPI Evas_Object *elm_pager_add(Evas_Object *parent); + EAPI void elm_pager_content_push(Evas_Object *obj, Evas_Object *content); + EAPI void elm_pager_content_pop(Evas_Object *obj); + EAPI void elm_pager_content_promote(Evas_Object *obj, Evas_Object *content); + EAPI Evas_Object *elm_pager_content_bottom_get(Evas_Object *obj); + EAPI Evas_Object *elm_pager_content_top_get(Evas_Object *obj); /* smart callbacks called: */ diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 14cbe7d6ba..958d5831e2 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -51,6 +51,7 @@ elm_slider.c \ elm_genlist.c \ elm_check.c \ elm_radio.c \ +elm_pager.c \ \ elc_notepad.c \ elc_anchorview.c \ diff --git a/legacy/elementary/src/lib/elm_pager.c b/legacy/elementary/src/lib/elm_pager.c index 5a5040ebdc..a189653689 100644 --- a/legacy/elementary/src/lib/elm_pager.c +++ b/legacy/elementary/src/lib/elm_pager.c @@ -5,8 +5,9 @@ typedef struct _Widget_Data Widget_Data; struct _Widget_Data { - Evas_Object *base; + Evas_Object *base[2]; Eina_List *stack; + Evas_Object *top, *oldtop; }; static void _del_hook(Evas_Object *obj); @@ -26,7 +27,8 @@ static void _theme_hook(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); - edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale); + edje_object_scale_set(wd->base[0], elm_widget_scale_get(obj) * _elm_config->scale); + edje_object_scale_set(wd->base[1], elm_widget_scale_get(obj) * _elm_config->scale); _sizing_eval(obj); } @@ -35,8 +37,12 @@ _sizing_eval(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1; + Evas_Coord minw2 = -1, minh2 = -1; - edje_object_size_min_calc(wd->base, &minw, &minh); + edje_object_size_min_calc(wd->base[0], &minw, &minh); + edje_object_size_min_calc(wd->base[1], &minw2, &minh2); + if (minw < minw2) minw = minw2; + if (minh < minh2) minh = minh2; evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_max_set(obj, maxw, maxh); } @@ -55,6 +61,20 @@ _sub_del(void *data, Evas_Object *obj, void *event_info) // FIXME: if sub is top of stack } +static void +_eval_top(Evas_Object *obj) +{ + Widget_Data *wd = elm_widget_data_get(obj); + Evas_Object *stacktop = elm_pager_content_top_get(obj); + if (stacktop != wd->top) + { + wd->oldtop = wd->top; + wd->top = stacktop; + // FIXME: transition from oldtop to top + edje_object_part_swallow(wd->base[1], "elm.swallow.content", wd->top); + } +} + EAPI Evas_Object * elm_pager_add(Evas_Object *parent) { @@ -69,8 +89,14 @@ elm_pager_add(Evas_Object *parent) elm_widget_del_hook_set(obj, _del_hook); elm_widget_theme_hook_set(obj, _theme_hook); - wd->base = edje_object_add(e); - elm_widget_resize_object_set(obj, wd->base); + wd->base[1] = edje_object_add(e); + _elm_theme_set(wd->base[1], "pager", "base", "default"); + elm_widget_resize_object_set(obj, wd->base[1]); + + wd->base[0] = edje_object_add(e); + _elm_theme_set(wd->base[0], "pager", "base", "default"); + // FIXME: only 1 resize obj! + elm_widget_resize_object_set(obj, wd->base[0]); evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj); @@ -93,7 +119,7 @@ elm_pager_content_pop(Evas_Object *obj) // FIXME actuall make pop animated - promote 2nd last in stack then // when anim finished delete 2nd last (which was top). Evas_Object *top = elm_pager_content_top_get(obj); - if (top) evas_object_del(top); + if (wd->top) evas_object_del(wd->top); } EAPI void