From 14f5d57ee517708ce5abcca1befdb72afb0d2a6b Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 13 Aug 2001 06:35:14 +0000 Subject: [PATCH] work work.. smell smell - scrollbars in and mostly functioning SVN revision: 5135 --- .../default/scrollbars/scroll_base_h.bits.db | Bin 86016 -> 86016 bytes .../default/scrollbars/scroll_base_v.bits.db | Bin 86016 -> 86016 bytes src/scrollbar.c | 177 ++++++++++++++++++ src/scrollbar.h | 4 + src/view.c | 161 ++++++++++++---- src/view.h | 11 +- 6 files changed, 320 insertions(+), 33 deletions(-) diff --git a/data/config/appearance/default/scrollbars/scroll_base_h.bits.db b/data/config/appearance/default/scrollbars/scroll_base_h.bits.db index 0eb9cf4a973da196d15856db57ee367c153b0492..c2c1ace214c28431cc6ecc0f1b6e538ba19cb59e 100644 GIT binary patch literal 86016 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‹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℞)(&^lReq++I=x1mie|^V?QNq zI`C2nzK^vx)f-~2+{3MlcceWg@h2^eq8UVFFbE#}{ z{4_H<^P|jnGhfVnHuKTU2Qz<@$!A_p?@iyAzB|1#y(E1_dTRRY^y%sPc4yh#2U2^P z&Msk9*al-qWi+`ZCp9A{w7k`~T7%izo)i65E&Z=T?du+WU9A0A z{<0yPe{VK-YkLj!M+2>WZRvjac z^}S-Q6z?_AT=)aYy%x~_n$&(5Zyqr)nLOYT7Bw)M#+cO5m6)NIYps=$3cpQoz3sjj z!!iPeF(`W>>BqNX#SG9vjXFpPyEFvf$DSXS8fxzduGG6HmTNpPl*Ocm!LN~5>(db9 zxqAx$jv16gQcbN3%wM3-ePlp_DCNkY2j54CwV}yZ`3HrrMD7Vx1_^S0;DZsnr%Pv$aErZ=bO&2T zZ2z&!g#UE`I=vL!jL`o&N4)rNBLjYAOh-$#7^oh?UxiwYZ9e?)%9xS0?Se1=KQ*=6 A@Bjb+ literal 86016 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 diff --git a/src/scrollbar.c b/src/scrollbar.c index 282aaf49c..f3f2ab216 100644 --- a/src/scrollbar.c +++ b/src/scrollbar.c @@ -3,10 +3,54 @@ static void e_scrollbar_recalc(E_Scrollbar *sb); static void e_scrollbar_setup_bits(E_Scrollbar *sb); +static void e_sb_base_down_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh); +static void e_sb_base_up_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh); +static void e_sb_bar_down_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh); +static void e_sb_bar_up_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh); +static void e_sb_bar_move_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh); + static void e_scrollbar_recalc(E_Scrollbar *sb) { + if (sb->base) + { + double x, y, w, h; + + ebits_get_bit_geometry(sb->base, "Trough_Area", + &x, &y, &w, &h); + sb->bar_area.x = x + sb->x; + sb->bar_area.y = y + sb->y; + sb->bar_area.w = w; + sb->bar_area.h = h; + if (sb->direction) + { + sb->bar_pos.w = sb->bar_area.w; + sb->bar_pos.h = (sb->bar_area.h * sb->range) / sb->max; + sb->bar_pos.x = sb->bar_area.x; + sb->bar_pos.y = sb->bar_area.y + + ((sb->bar_area.h * sb->val) / (sb->max - 1)); + } + else + { + sb->bar_pos.w = (sb->bar_area.w * sb->range) / sb->max; + sb->bar_pos.h = sb->bar_area.h; + sb->bar_pos.x = sb->bar_area.x + + ((sb->bar_area.w * sb->val) / (sb->max - 1)); + sb->bar_pos.y = sb->bar_area.y; + } + } + else + { + sb->bar_area.x = sb->x; + sb->bar_area.y = sb->y; + sb->bar_area.w = sb->w; + sb->bar_area.h = sb->h; + sb->bar_pos.x = sb->bar_area.x; + sb->bar_pos.y = sb->bar_area.y; + sb->bar_pos.w = sb->bar_area.w; + sb->bar_pos.h = sb->bar_area.h; + } UN(sb); } @@ -29,6 +73,137 @@ e_scrollbar_setup_bits(E_Scrollbar *sb) sprintf(buf, "%s/scroll_bar_h.bits.db", e_config_get("scrollbars")); sb->bar = ebits_load(buf); } + if (sb->base) + { + ebits_add_to_evas(sb->base, sb->evas); + ebits_set_bit_callback(sb->base, "Scrollbar_Trough", CALLBACK_MOUSE_DOWN, e_sb_base_down_cb, sb); + ebits_set_bit_callback(sb->base, "Scrollbar_Trough", CALLBACK_MOUSE_UP, e_sb_base_up_cb, sb); + ebits_set_bit_callback(sb->base, "Scrollbar_Arrow1", CALLBACK_MOUSE_DOWN, e_sb_base_down_cb, sb); + ebits_set_bit_callback(sb->base, "Scrollbar_Arrow1", CALLBACK_MOUSE_UP, e_sb_base_up_cb, sb); + ebits_set_bit_callback(sb->base, "Scrollbar_Arrow2", CALLBACK_MOUSE_DOWN, e_sb_base_down_cb, sb); + ebits_set_bit_callback(sb->base, "Scrollbar_Arrow2", CALLBACK_MOUSE_UP, e_sb_base_up_cb, sb); + } + if (sb->bar) + { + ebits_add_to_evas(sb->bar, sb->evas); + ebits_set_bit_callback(sb->bar, "Scrollbar_Bar", CALLBACK_MOUSE_DOWN, e_sb_bar_down_cb, sb); + ebits_set_bit_callback(sb->bar, "Scrollbar_Bar", CALLBACK_MOUSE_UP, e_sb_bar_up_cb, sb); + ebits_set_bit_callback(sb->bar, "Scrollbar_Bar", CALLBACK_MOUSE_MOVE, e_sb_bar_move_cb, sb); + } +} + +static void +e_sb_base_down_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh) +{ + E_Scrollbar *sb; + double prev; + + sb = data; + if (sb->mouse_down) return; + sb->mouse_down = bt; + if (!class) return; + prev = sb->val; + if (!strcmp(class, "Scrollbar_Arrow1")) + { + sb->val -= 16; + if (sb->val < 0) sb->val = 0; + } + else if (!strcmp(class, "Scrollbar_Arrow2")) + { + sb->val += 16; + if ((sb->val + sb->range) > sb->max) sb->val = sb->max - sb->range; + } + else if (!strcmp(class, "Scrollbar_Trough")) + { + } + e_scrollbar_recalc(sb); + if (sb->bar) ebits_move(sb->bar, sb->bar_pos.x, sb->bar_pos.y); + if (sb->bar) ebits_resize(sb->bar, sb->bar_pos.w, sb->bar_pos.h); + if (prev != sb->val) + { + if (sb->func_change) sb->func_change(sb->func_data, sb, sb->val); + } +} + +static void +e_sb_base_up_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh) +{ + E_Scrollbar *sb; + + sb = data; + if (bt == sb->mouse_down) sb->mouse_down = 0; + else return; + if (!class) return; + if (!strcmp(class, "Scrollbar_Arrow1")) + { + } + else if (!strcmp(class, "Scrollbar_Arrow2")) + { + } + else if (!strcmp(class, "Scrollbar_Trough")) + { + } +} + +static void +e_sb_bar_down_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh) +{ + E_Scrollbar *sb; + + sb = data; + if (sb->mouse_down) return; + sb->mouse_down = bt; + sb->down_x = x; + sb->down_y = y; + sb->mouse_x = x; + sb->mouse_y = y; +} + +static void +e_sb_bar_up_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh) +{ + E_Scrollbar *sb; + + sb = data; + if (bt == sb->mouse_down) sb->mouse_down = 0; + else return; +} + +static void +e_sb_bar_move_cb(void *data, Ebits_Object o, char *class, int bt, int x, int y, int ox, int oy, int ow, int oh) +{ + E_Scrollbar *sb; + int dx, dy; + double prev; + + sb = data; + if (!sb->mouse_down) return; + dx = x - sb->mouse_x; + dy = y - sb->mouse_y; + sb->mouse_x = x; + sb->mouse_y = y; + prev = sb->val; + if (sb->direction) + { + if (sb->bar_area.h > sb->bar_pos.h) sb->val += + ((double)dy * sb->max) / sb->bar_area.h; + else sb->val = 0; + } + else + { + if (sb->bar_area.w > sb->bar_pos.w) sb->val += + ((double)dx * sb->max) / sb->bar_area.w; + else sb->val = 0; + } + if (sb->val < 0) sb->val = 0; + if ((sb->val + sb->range) > sb->max) sb->val = sb->max - sb->range; + if (prev != sb->val) + { + e_scrollbar_recalc(sb); + if (sb->bar) ebits_move(sb->bar, sb->bar_pos.x, sb->bar_pos.y); + if (sb->bar) ebits_resize(sb->bar, sb->bar_pos.w, sb->bar_pos.h); + if (sb->func_change) sb->func_change(sb->func_data, sb, sb->val); + } } E_Scrollbar * @@ -128,6 +303,7 @@ void e_scrollbar_set_direction(E_Scrollbar *sb, int d) { if (d == sb->direction) return; + sb->direction = d; if (sb->evas) { Evas evas; @@ -176,6 +352,7 @@ void e_scrollbar_set_value(E_Scrollbar *sb, double val) { if (sb->val == val) return; + if (val > sb->max - sb->range) val = sb->max - sb->range; sb->val = val; e_scrollbar_recalc(sb); if (sb->bar) ebits_move(sb->bar, sb->bar_pos.x, sb->bar_pos.y); diff --git a/src/scrollbar.h b/src/scrollbar.h index c79670523..4a3ff713a 100644 --- a/src/scrollbar.h +++ b/src/scrollbar.h @@ -19,6 +19,10 @@ struct _E_Scrollbar int direction; double x, y, w, h; + int mouse_down; + int down_x, down_y; + int mouse_x, mouse_y; + struct { double x, y, w, h; } bar_area; diff --git a/src/view.c b/src/view.c index 481d4eba5..9f798ac8a 100644 --- a/src/view.c +++ b/src/view.c @@ -44,6 +44,8 @@ static void e_view_handle_fs_restart(void *data); static void e_view_resort_timeout(int val, void *data); static int e_view_restart_alphabetical_qsort_cb(const void *data1, const void *data2); static void e_view_geometry_record_timeout(int val, void *data); +static void e_view_scrollbar_v_change_cb(void *_data, E_Scrollbar *sb, double val); +static void e_view_scrollbar_h_change_cb(void *_data, E_Scrollbar *sb, double val); void e_view_selection_update(E_View *v) @@ -213,6 +215,26 @@ e_view_selection_update(E_View *v) evas_show(v->evas, v->select.obj.clip); } +static void +e_view_scrollbar_v_change_cb(void *_data, E_Scrollbar *sb, double val) +{ + E_View *v; + + v = _data; + e_view_scroll_to(v, v->scroll.x, v->spacing.window.t - sb->val); + UN(val); +} + +static void +e_view_scrollbar_h_change_cb(void *_data, E_Scrollbar *sb, double val) +{ + E_View *v; + + v = _data; + e_view_scroll_to(v, v->spacing.window.l - sb->val, v->scroll.y); + UN(val); +} + static void e_bg_down_cb(void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y) { @@ -573,28 +595,40 @@ e_view_icons_get_extents(E_View *v, int *min_x, int *min_y, int *max_x, int *max Evas_List l; int x1, x2, y1, y2; - x1 = 999999999; - x2 = -999999999; - y1 = 999999999; - y2 = -999999999; - if (!v->icons) + x1 = v->extents.x1; + x2 = v->extents.x2; + y1 = v->extents.y1; + y2 = v->extents.y2; + if (!v->extents.valid) { - if (min_x) *min_x = 0; - if (min_y) *min_y = 0; - if (max_x) *max_x = 1; - if (max_y) *max_y = 1; - return; - } - for (l = v->icons; l; l = l->next) - { - E_Icon *ic; - - ic = l->data; - if (ic->geom.x < x1) x1 = ic->geom.x; - if (ic->geom.y < y1) y1 = ic->geom.y; - if (ic->geom.x + ic->geom.w > x2) x2 = ic->geom.x + ic->geom.w; - if (ic->geom.y + ic->geom.h > y2) y2 = ic->geom.y + ic->geom.h; + x1 = 999999999; + x2 = -999999999; + y1 = 999999999; + y2 = -999999999; + if (!v->icons) + { + if (min_x) *min_x = 0; + if (min_y) *min_y = 0; + if (max_x) *max_x = 1; + if (max_y) *max_y = 1; + return; + } + for (l = v->icons; l; l = l->next) + { + E_Icon *ic; + + ic = l->data; + if (ic->geom.x < x1) x1 = ic->geom.x; + if (ic->geom.y < y1) y1 = ic->geom.y; + if (ic->geom.x + ic->geom.w > x2) x2 = ic->geom.x + ic->geom.w; + if (ic->geom.y + ic->geom.h > y2) y2 = ic->geom.y + ic->geom.h; + } + v->extents.x1 = x1; + v->extents.y1 = y1; + v->extents.x2 = x2; + v->extents.y2 = y2; } + v->extents.valid = 1; if (x1 > 0) x1 = 0; if (y1 > 0) y1 = 0; if (min_x) *min_x = x1; @@ -1096,8 +1130,10 @@ e_configure(Eevent * ev) if (e->win == v->win.base) { /* win, root, x, y, w, h, wm_generated */ + printf("configure for view %s\n", v->dir); if (e->wm_generated) { + printf("wm generated %i %i, %ix%i\n", e->x, e->y, e->w, e->h); if ((e->x != v->location.x) || (e->y != v->location.y)) { v->location.x = e->x; @@ -1105,8 +1141,10 @@ e_configure(Eevent * ev) e_view_queue_geometry_record(v); } } + printf("size %ix%i\n", e->w, e->h); if ((e->w != v->size.w) || (e->h != v->size.h)) { + printf("... a new size!\n"); v->size.w = e->w; v->size.h = e->h; if (v->pmap) e_pixmap_free(v->pmap); @@ -1125,11 +1163,16 @@ e_configure(Eevent * ev) { e_background_set_size(v->bg, v->size.w, v->size.h); } + printf("evas_set_output_viewpor(%p)\n", v->evas); evas_set_output_viewport(v->evas, 0, 0, v->size.w, v->size.h); evas_set_output_size(v->evas, v->size.w, v->size.h); e_view_scroll_to(v, v->scroll.x, v->scroll.y); e_view_arrange(v); e_view_queue_geometry_record(v); + e_scrollbar_move(v->scrollbar.v, v->size.w - 12, 0); + e_scrollbar_resize(v->scrollbar.v, 12, v->size.h - 12); + e_scrollbar_move(v->scrollbar.h, 0, v->size.h - 12); + e_scrollbar_resize(v->scrollbar.h, v->size.w - 12, 12); } } } @@ -1280,19 +1323,19 @@ e_key_down(Eevent * ev) { if (!strcmp(e->key, "Up")) { - e_view_scroll_by(v, 0, 8); + e_scrollbar_set_value(v->scrollbar.v, v->scrollbar.v->val - 8); } else if (!strcmp(e->key, "Down")) { - e_view_scroll_by(v, 0, -8); + e_scrollbar_set_value(v->scrollbar.v, v->scrollbar.v->val + 8); } else if (!strcmp(e->key, "Left")) { - e_view_scroll_by(v, 8, 0); + e_scrollbar_set_value(v->scrollbar.h, v->scrollbar.h->val - 8); } else if (!strcmp(e->key, "Right")) { - e_view_scroll_by(v, -8, 0); + e_scrollbar_set_value(v->scrollbar.h, v->scrollbar.h->val + 8); } else if (!strcmp(e->key, "Escape")) { @@ -1606,6 +1649,7 @@ e_view_icon_apply_xy(E_Icon *ic) /* [I] */ /* Ig */ /* [txt] */ + if (ic->geom.text.w > ic->geom.icon.w) ic->geom.w = ic->geom.text.w; else ic->geom.w = ic->geom.icon.w; ic->geom.h = ic->geom.icon.h + ic->geom.text.h + ic->view->spacing.icon.g; @@ -1674,6 +1718,11 @@ e_view_icon_apply_xy(E_Icon *ic) ic->geom.text.w + pl + pr, ic->geom.text.h + pt + pb); ebits_show(ic->obj.sel.over.text); } + if (ic->geom.x != ic->prev_geom.x) ic->view->extents.valid = 0; + else if (ic->geom.y != ic->prev_geom.y) ic->view->extents.valid = 0; + else if (ic->geom.w != ic->prev_geom.w) ic->view->extents.valid = 0; + else if (ic->geom.h != ic->prev_geom.h) ic->view->extents.valid = 0; + ic->prev_geom = ic->geom; } static int @@ -1714,6 +1763,8 @@ e_view_arrange(E_View *v) { Evas_List l; int x, y; + int x1, x2, y1, y2; + double sv, sr, sm; x = v->spacing.window.l; y = v->spacing.window.t; @@ -1732,6 +1783,24 @@ e_view_arrange(E_View *v) e_view_icon_apply_xy(ic); x += ic->geom.w + v->spacing.icon.s; } + + e_view_icons_get_extents(v, &x1, &y1, &x2, &y2); + + sv = - (v->scroll.y - v->spacing.window.t); + sr = v->size.h - v->spacing.window.t - v->spacing.window.b; + sm = y2 - y1; + if (sr > sm) sr = sm; + e_scrollbar_set_value(v->scrollbar.v, sv); + e_scrollbar_set_range(v->scrollbar.v, sr); + e_scrollbar_set_max(v->scrollbar.v, sm); + + sv = - (v->scroll.x - v->spacing.window.l); + sr = v->size.w - v->spacing.window.l - v->spacing.window.r; + sm = x2 - x1; + if (sr > sm) sr = sm; + e_scrollbar_set_value(v->scrollbar.h, sv); + e_scrollbar_set_range(v->scrollbar.h, sr); + e_scrollbar_set_max(v->scrollbar.h, sm); } void @@ -1906,6 +1975,7 @@ e_view_file_added(int id, char *file) ic->obj.icon = evas_add_image_from_file(ic->view->evas, NULL); ic->obj.text = e_text_new(ic->view->evas, ic->file, "filename"); v->icons = evas_list_append(v->icons, ic); + v->extents.valid = 0; } } @@ -1929,6 +1999,7 @@ e_view_file_deleted(int id, char *file) OBJ_UNREF(ic); v->icons = evas_list_remove(v->icons, ic); v->changed = 1; + v->extents.valid = 0; e_view_queue_resort(v); } } @@ -2052,9 +2123,9 @@ _member.r = _r; _member.g = _g; _member.b = _b; _member.a = _a; SETCOL(v->select.config.grad_b, 255, 255, 255, 100); v->spacing.window.l = 3; - v->spacing.window.r = 3; + v->spacing.window.r = 15; v->spacing.window.t = 3; - v->spacing.window.b = 3; + v->spacing.window.b = 15; v->spacing.icon.s = 7; v->spacing.icon.g = 7; v->spacing.icon.b = 7; @@ -2130,6 +2201,12 @@ e_view_realize(E_View *v) v->win.main = evas_get_window(v->evas); evas_event_move(v->evas, -999999, -999999); e_add_child(v->win.base, v->win.main); + e_window_set_events(v->win.base, + XEV_VISIBILITY | XEV_CONFIGURE | + XEV_PROPERTY | XEV_FOCUS); + e_window_set_events(v->win.main, + XEV_EXPOSE | XEV_MOUSE_MOVE | + XEV_BUTTON | XEV_IN_OUT | XEV_KEY); if (v->options.back_pixmap) { v->pmap = e_pixmap_new(v->win.main, v->size.w, v->size.h, 0); @@ -2153,12 +2230,32 @@ e_view_realize(E_View *v) evas_set_color(v->evas, v->obj_bg, 0, 0, 0, 0); evas_show(v->evas, v->obj_bg); - e_window_set_events(v->win.base, - XEV_VISIBILITY | XEV_CONFIGURE | - XEV_PROPERTY | XEV_FOCUS); - e_window_set_events(v->win.main, - XEV_EXPOSE | XEV_MOUSE_MOVE | - XEV_BUTTON | XEV_IN_OUT | XEV_KEY); + v->scrollbar.v = e_scrollbar_new(); + e_scrollbar_set_change_func(v->scrollbar.v, e_view_scrollbar_v_change_cb, v); + e_scrollbar_set_direction(v->scrollbar.v, 1); + e_scrollbar_add_to_evas(v->scrollbar.v, v->evas); + e_scrollbar_set_layer(v->scrollbar.v, 2000); + e_scrollbar_set_value(v->scrollbar.v, 0.0); + e_scrollbar_set_range(v->scrollbar.v, 1.0); + e_scrollbar_set_max(v->scrollbar.v, 1.0); + + v->scrollbar.h = e_scrollbar_new(); + e_scrollbar_set_change_func(v->scrollbar.h, e_view_scrollbar_h_change_cb, v); + e_scrollbar_set_direction(v->scrollbar.h, 0); + e_scrollbar_add_to_evas(v->scrollbar.h, v->evas); + e_scrollbar_set_layer(v->scrollbar.h, 2000); + e_scrollbar_set_value(v->scrollbar.h, 0.0); + e_scrollbar_set_range(v->scrollbar.h, 1.0); + e_scrollbar_set_max(v->scrollbar.h, 1.0); + + e_scrollbar_move(v->scrollbar.v, v->size.w - 12, 0); + e_scrollbar_resize(v->scrollbar.v, 12, v->size.h - 12); + e_scrollbar_move(v->scrollbar.h, 0, v->size.h - 12); + e_scrollbar_resize(v->scrollbar.h, v->size.w - 12, 12); + + e_scrollbar_show(v->scrollbar.v); + e_scrollbar_show(v->scrollbar.h); + e_window_show(v->win.main); { diff --git a/src/view.h b/src/view.h index 828e8bc71..2e37870f1 100644 --- a/src/view.h +++ b/src/view.h @@ -3,6 +3,7 @@ #include "e.h" #include "background.h" +#include "scrollbar.h" #include "fs.h" #include "text.h" @@ -98,11 +99,19 @@ struct _E_View } offset; int update; } drag; + struct { + int valid; + double x1, x2, y1, y2; + } extents; Evas_Object obj_bg; E_Background *bg; + struct { + E_Scrollbar *h, *v; + } scrollbar; + int is_listing; int monitor_id; @@ -168,7 +177,7 @@ struct _E_Icon struct { int w, h; } text; - } geom; + } geom, prev_geom; int changed; };