only build quicklaunch on systems that have... fork!

SVN revision: 39319
This commit is contained in:
Carsten Haitzler 2009-03-01 23:52:13 +00:00
parent 69440886fc
commit acf2ea7eb3
6 changed files with 121 additions and 9 deletions

View File

@ -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)

View File

@ -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;
}
}
}
}
}

View File

@ -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

View File

@ -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:
*/

View File

@ -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 \

View File

@ -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