lib/ewl_scrollpane.h
Go to the documentation of this file.00001
00002 #ifndef EWL_SCROLLPANE_H
00003 #define EWL_SCROLLPANE_H
00004
00027 #define EWL_SCROLLPANE_TYPE "scrollpane"
00028
00033 #define EWL_SCROLLPANE_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_SCROLLPANE_TYPE))
00034
00038 typedef struct Ewl_Scrollpane_Scroll_Info_Base Ewl_Scrollpane_Scroll_Info_Base;
00039
00044 #define EWL_SCROLLPANE_SCROLL_INFO_BASE(scroll_info) ((Ewl_Scrollpane_Scroll_Info_Base *) scroll_info)
00045
00049 struct Ewl_Scrollpane_Scroll_Info_Base
00050 {
00051 unsigned char clicked:1;
00053 unsigned char active:1;
00054 int fps;
00056 double vmax;
00057 double vmin;
00058 double dampen;
00059 void *extra;
00060 };
00061
00065 typedef struct Ewl_Scrollpane Ewl_Scrollpane;
00066
00071 #define EWL_SCROLLPANE(scrollpane) ((Ewl_Scrollpane *) scrollpane)
00072
00078 struct Ewl_Scrollpane
00079 {
00080 Ewl_Container container;
00082 Ewl_Widget *overlay;
00083 Ewl_Widget *box;
00084 Ewl_Widget *hscrollbar;
00085 Ewl_Widget *vscrollbar;
00086 Ewl_Scrollpane_Flags hflag;
00087 Ewl_Scrollpane_Flags vflag;
00088 Ewl_Scrollpane_Scroll_Info_Base *kinfo;
00090 Ewl_Kinetic_Scroll type;
00092 };
00093
00094 Ewl_Widget *ewl_scrollpane_new(void);
00095 int ewl_scrollpane_init(Ewl_Scrollpane *s);
00096 void ewl_scrollpane_kinetic_scrolling_set(Ewl_Scrollpane *s,
00097 Ewl_Kinetic_Scroll type);
00098 Ewl_Kinetic_Scroll ewl_scrollpane_kinetic_scrolling_get(Ewl_Scrollpane *s);
00099 void ewl_scrollpane_kinetic_max_velocity_set(Ewl_Scrollpane *s,
00100 double v);
00101 double ewl_scrollpane_kinetic_max_velocity_get(Ewl_Scrollpane *s);
00102 void ewl_scrollpane_kinetic_min_velocity_set(Ewl_Scrollpane *s,
00103 double v);
00104 double ewl_scrollpane_kinetic_min_velocity_get(Ewl_Scrollpane *s);
00105 void ewl_scrollpane_kinetic_dampen_set(Ewl_Scrollpane *s,
00106 double d);
00107 double ewl_scrollpane_kinetic_dampen_get(Ewl_Scrollpane *s);
00108 void ewl_scrollpane_kinetic_fps_set(Ewl_Scrollpane *s,
00109 int fps);
00110 int ewl_scrollpane_kinetic_fps_get(Ewl_Scrollpane *s);
00111
00112 void ewl_scrollpane_hscrollbar_flag_set(Ewl_Scrollpane *s,
00113 Ewl_Scrollpane_Flags f);
00114 void ewl_scrollpane_vscrollbar_flag_set(Ewl_Scrollpane *s,
00115 Ewl_Scrollpane_Flags f);
00116
00117 Ewl_Scrollpane_Flags ewl_scrollpane_hscrollbar_flag_get(Ewl_Scrollpane *s);
00118 Ewl_Scrollpane_Flags ewl_scrollpane_vscrollbar_flag_get(Ewl_Scrollpane *s);
00119
00120 double ewl_scrollpane_hscrollbar_value_get(Ewl_Scrollpane *s);
00121 double ewl_scrollpane_vscrollbar_value_get(Ewl_Scrollpane *s);
00122
00123 void ewl_scrollpane_hscrollbar_value_set(Ewl_Scrollpane *s, double val);
00124 void ewl_scrollpane_vscrollbar_value_set(Ewl_Scrollpane *s, double val);
00125
00126 double ewl_scrollpane_hscrollbar_step_get(Ewl_Scrollpane *s);
00127 double ewl_scrollpane_vscrollbar_step_get(Ewl_Scrollpane *s);
00128
00129
00130
00131
00132 void ewl_scrollpane_cb_configure(Ewl_Widget *w, void *ev_data,
00133 void *user_data);
00134 void ewl_scrollpane_cb_focus_jump(Ewl_Widget *w, void *ev_data,
00135 void *user_data);
00136 void ewl_scrollpane_cb_hscroll(Ewl_Widget *w, void *ev_data, void *user_data);
00137 void ewl_scrollpane_cb_vscroll(Ewl_Widget *w, void *ev_data, void *user_data);
00138 void ewl_scrollpane_cb_wheel_scroll(Ewl_Widget *w, void *ev_data,
00139 void *user_data);
00140
00141 void ewl_scrollpane_cb_child_show(Ewl_Container *p, Ewl_Widget *c);
00142 void ewl_scrollpane_cb_child_resize(Ewl_Container *p, Ewl_Widget *c, int size,
00143 Ewl_Orientation o);
00144 void ewl_scrollpane_cb_overlay_child_show(Ewl_Container *p, Ewl_Widget *c);
00145 void ewl_scrollpane_cb_overlay_child_resize(Ewl_Container *p, Ewl_Widget *c,
00146 int size, Ewl_Orientation o);
00147
00152 #endif