forked from enlightenment/enlightenment
- more fixes, might have run into an evas bug, need to talk to raster
SVN revision: 18036
This commit is contained in:
parent
a946b3762e
commit
0f30d77f51
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue