- more fixes, might have run into an evas bug, need to talk to raster

SVN revision: 18036
This commit is contained in:
codewarrior 2005-10-27 13:21:38 +00:00 committed by codewarrior
parent a946b3762e
commit 0f30d77f51
3 changed files with 27 additions and 79 deletions

View File

@ -178,6 +178,7 @@ _e_fileman_resize_cb(E_Win *win)
{ {
D(("e_fileman_resize_cb: show (%p)\n", fileman)); D(("e_fileman_resize_cb: show (%p)\n", fileman));
edje_object_part_swallow(fileman->main, "vscrollbar", fileman->vscrollbar); edje_object_part_swallow(fileman->main, "vscrollbar", fileman->vscrollbar);
e_fm_geometry_virtual_get(fileman->smart, &w, &h);
} }
else else
{ {
@ -212,6 +213,7 @@ _e_fileman_reconf_cb(void *data, int type, void *event)
{ {
E_Event_Fm_Reconfigure *ev; E_Event_Fm_Reconfigure *ev;
E_Fileman *fileman; E_Fileman *fileman;
Evas_Coord w, h;
int frozen; int frozen;
if (!data) return 1; if (!data) return 1;
@ -243,6 +245,7 @@ _e_fileman_dir_change_cb(void *data, int type, void *event)
{ {
E_Event_Fm_Directory_Change *ev; E_Event_Fm_Directory_Change *ev;
E_Fileman *fileman; E_Fileman *fileman;
Evas_Coord w, h;
if (!data) return 1; if (!data) return 1;
@ -251,6 +254,7 @@ _e_fileman_dir_change_cb(void *data, int type, void *event)
D(("_e_fileman_dir_change_cb:\n")); D(("_e_fileman_dir_change_cb:\n"));
e_scrollbar_value_set(fileman->vscrollbar, 0.0); e_scrollbar_value_set(fileman->vscrollbar, 0.0);
return 1; return 1;
} }

View File

@ -41,8 +41,6 @@ static void _e_scrollbar_smart_add(Evas_Object *object);
static void _e_scrollbar_smart_del(Evas_Object *object); static void _e_scrollbar_smart_del(Evas_Object *object);
static void _e_scrollbar_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y); static void _e_scrollbar_smart_move(Evas_Object *object, Evas_Coord x, Evas_Coord y);
static void _e_scrollbar_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h); static void _e_scrollbar_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h);
static void _e_scrollbar_smart_show(Evas_Object *object);
static void _e_scrollbar_smart_hide(Evas_Object *object);
static void _e_scrollbar_drag_cb(void *data, Evas_Object *object, const char *emission, const char *source); static void _e_scrollbar_drag_cb(void *data, Evas_Object *object, const char *emission, const char *source);
static void _e_scrollbar_drag_mouse_move_cb(void *data, Evas *evas, Evas_Object *object, void *event_info); static void _e_scrollbar_drag_mouse_move_cb(void *data, Evas *evas, Evas_Object *object, void *event_info);
@ -62,8 +60,8 @@ e_scrollbar_add(Evas *evas)
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
_e_scrollbar_smart_move, /* move */ _e_scrollbar_smart_move, /* move */
_e_scrollbar_smart_resize, /* resize */ _e_scrollbar_smart_resize, /* resize */
_e_scrollbar_smart_show, /* show */ NULL, /* show */
_e_scrollbar_smart_hide, /* hide */ NULL, /* hide */
NULL, /* color_set */ NULL, /* color_set */
NULL, /* clip_set */ NULL, /* clip_set */
NULL, /* clip_unset */ NULL, /* clip_unset */
@ -171,51 +169,25 @@ e_scrollbar_value_get(Evas_Object *object)
} }
void void
e_scrollbar_increments_set(Evas_Object *object, double step, double page) e_scrollbar_drag_resize(Evas_Object *object, int percent)
{ {
E_Scrollbar_Smart_Data *sd; E_Scrollbar_Smart_Data *sd;
Evas_Coord w, h;
int size;
if ((!object) || !(sd = evas_object_smart_data_get(object))) if ((!object) || !(sd = evas_object_smart_data_get(object)))
return; return;
if (sd->direction == E_SCROLLBAR_HORIZONTAL) if(sd->direction == E_SCROLLBAR_HORIZONTAL)
{ sd->drag.w = percent * sd->confine.w / 100;
edje_object_part_drag_step_set(sd->edje.object, "drag", step, 0);
edje_object_part_drag_page_set(sd->edje.object, "drag", page, 0);
}
else else
{ sd->drag.h = percent * sd->confine.h / 100;
edje_object_part_drag_step_set(sd->edje.object, "drag", 0, step);
edje_object_part_drag_page_set(sd->edje.object, "drag", 0, page); printf("drag_resize: %d%% %d px\n", percent, sd->drag.h);
}
evas_object_resize(sd->drag.object, sd->drag.w, sd->drag.h);
} }
void
e_scrollbar_increments_get(Evas_Object *object, double *step, double *page)
{
E_Scrollbar_Smart_Data *sd;
double stepx; double stepy;
double pagex; double pagey;
if ((!object) || !(sd = evas_object_smart_data_get(object)))
return;
edje_object_part_drag_step_get(sd->edje.object, "drag", &stepx, &stepy);
edje_object_part_drag_page_get(sd->edje.object, "drag", &pagex, &pagey);
if (sd->direction == E_SCROLLBAR_HORIZONTAL)
{
if (step) *step = stepx;
if (page) *page = pagex;
}
else
{
if (step) *step = stepy;
if (page) *page = pagey;
}
}
/************************** /**************************
* Private functions * Private functions
**************************/ **************************/
@ -238,14 +210,17 @@ _e_scrollbar_smart_add(Evas_Object *object)
sd->direction = E_SCROLLBAR_HORIZONTAL; sd->direction = E_SCROLLBAR_HORIZONTAL;
sd->edje.object = edje_object_add(evas); sd->edje.object = edje_object_add(evas);
evas_object_smart_member_add(sd->edje.object, object);
sd->edje.x = 0; sd->edje.x = 0;
sd->edje.y = 0; sd->edje.y = 0;
sd->edje.w = 0; sd->edje.w = 0;
sd->edje.h = 0; sd->edje.h = 0;
e_theme_edje_object_set(sd->edje.object, "base/theme/widgets/hscrollbar", e_theme_edje_object_set(sd->edje.object, "base/theme/widgets/hscrollbar",
"widgets/hscrollbar"); "widgets/hscrollbar");
evas_object_show(sd->edje.object);
sd->drag.object = edje_object_add(evas); sd->drag.object = edje_object_add(evas);
evas_object_smart_member_add(sd->drag.object, object);
sd->drag.x = 0; sd->drag.x = 0;
sd->drag.y = 0; sd->drag.y = 0;
sd->drag.w = 0; sd->drag.w = 0;
@ -253,6 +228,7 @@ _e_scrollbar_smart_add(Evas_Object *object)
e_theme_edje_object_set(sd->drag.object, e_theme_edje_object_set(sd->drag.object,
"base/theme/widgets/hscrollbar", "base/theme/widgets/hscrollbar",
"widgets/hscrollbar_drag"); "widgets/hscrollbar_drag");
evas_object_show(sd->drag.object);
edje_object_part_geometry_get(sd->drag.object, "confine", edje_object_part_geometry_get(sd->drag.object, "confine",
&sd->confine.x, &sd->confine.y, &sd->confine.x, &sd->confine.y,
@ -263,13 +239,7 @@ _e_scrollbar_smart_add(Evas_Object *object)
evas_object_event_callback_add(sd->drag.object, EVAS_CALLBACK_MOUSE_DOWN, _e_scrollbar_drag_mouse_down_cb, sd); evas_object_event_callback_add(sd->drag.object, EVAS_CALLBACK_MOUSE_DOWN, _e_scrollbar_drag_mouse_down_cb, sd);
evas_object_data_set(sd->edje.object, "smart", object); evas_object_data_set(sd->edje.object, "smart", object);
evas_object_smart_member_add(sd->edje.object, object);
evas_object_smart_member_add(sd->drag.object, object);
evas_object_smart_data_set(object, sd); evas_object_smart_data_set(object, sd);
evas_object_show(sd->edje.object);
evas_object_show(sd->drag.object);
} }
static void static void
@ -332,31 +302,6 @@ _e_scrollbar_smart_resize(Evas_Object *object, Evas_Coord w, Evas_Coord h)
sd->drag.h = 20; sd->drag.h = 20;
} }
static void
_e_scrollbar_smart_show(Evas_Object *object)
{
E_Scrollbar_Smart_Data *sd;
if ((!object) || !(sd = evas_object_smart_data_get(object)))
return;
evas_object_show(sd->edje.object);
evas_object_show(sd->drag.object);
}
static void
_e_scrollbar_smart_hide(Evas_Object *object)
{
E_Scrollbar_Smart_Data *sd;
if ((!object) || !(sd = evas_object_smart_data_get(object)))
return;
evas_object_hide(sd->edje.object);
evas_object_hide(sd->drag.object);
}
static void static void
_e_scrollbar_drag_cb(void *data, Evas_Object *object, const char *emission, const char *source) _e_scrollbar_drag_cb(void *data, Evas_Object *object, const char *emission, const char *source)
{ {

View File

@ -30,8 +30,7 @@ EAPI E_Scrollbar_Direction e_scrollbar_direction_get(Evas_Object *object);
EAPI void e_scrollbar_callback_drag_add (Evas_Object *object, void (*func)(Evas_Object *obj, double value, void *data), void *data); EAPI void e_scrollbar_callback_drag_add (Evas_Object *object, void (*func)(Evas_Object *obj, double value, void *data), void *data);
EAPI void e_scrollbar_value_set (Evas_Object *object, double value); EAPI void e_scrollbar_value_set (Evas_Object *object, double value);
EAPI double e_scrollbar_value_get (Evas_Object *object); EAPI double e_scrollbar_value_get (Evas_Object *object);
EAPI void e_scrollbar_increments_set (Evas_Object *object, double step, double page); EAPI void e_scrollbar_drag_resize(Evas_Object *object, int percent);
EAPI void e_scrollbar_increments_get (Evas_Object *object, double *step, double *page);
#endif #endif
#endif #endif