lib/ewl_paned.h
Go to the documentation of this file.00001
00002 #ifndef EWL_PANED_H
00003 #define EWL_PANED_H
00004
00005 #include "ewl_separator.h"
00006
00031 typedef struct Ewl_Paned_Size_Info Ewl_Paned_Size_Info;
00032
00036 struct Ewl_Paned_Size_Info
00037 {
00038 Ewl_Widget *child;
00039 int initial_size;
00040 unsigned char initial_size_has:1;
00041 unsigned char fixed:1;
00042 };
00043
00048 #define EWL_PANED_TYPE "paned"
00049
00054 #define EWL_PANED_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_PANED_TYPE))
00055
00060 #define EWL_PANED(paned) ((Ewl_Paned *) paned)
00061
00065 typedef struct Ewl_Paned Ewl_Paned;
00066
00070 struct Ewl_Paned
00071 {
00072 Ewl_Container container;
00073 Ewl_Orientation orientation;
00075 int last_pos;
00076 int last_size;
00077 Ewl_Widget *last_pane;
00078 Ewl_Paned_Size_Info *info;
00079 int info_size;
00080 unsigned short updating_grabbers:1;
00081 unsigned short new_panes:1;
00082 };
00083
00084 Ewl_Widget *ewl_paned_new(void);
00085 Ewl_Widget *ewl_hpaned_new(void);
00086 Ewl_Widget *ewl_vpaned_new(void);
00087 int ewl_paned_init(Ewl_Paned *p);
00088
00089 void ewl_paned_orientation_set(Ewl_Paned *p, Ewl_Orientation o);
00090 Ewl_Orientation ewl_paned_orientation_get(Ewl_Paned *p);
00091 void ewl_paned_initial_size_set(Ewl_Paned *p, Ewl_Widget *child,
00092 int size);
00093 int ewl_paned_initial_size_get(Ewl_Paned *p, Ewl_Widget *child);
00094
00095 void ewl_paned_fixed_size_set(Ewl_Paned *p, Ewl_Widget *child,
00096 unsigned int fixed);
00097 unsigned int ewl_paned_fixed_size_get(Ewl_Paned *p, Ewl_Widget *child);
00098 void ewl_paned_arrange(Ewl_Paned *p, int pane_num);
00099
00100
00101
00102
00103 Ewl_Paned_Size_Info *ewl_paned_size_info_add(Ewl_Paned *p, Ewl_Widget *w);
00104 Ewl_Paned_Size_Info *ewl_paned_size_info_get(Ewl_Paned *p, Ewl_Widget *w);
00105 void ewl_paned_size_info_del(Ewl_Paned *p, Ewl_Widget *w);
00106
00107 void ewl_paned_cb_child_add(Ewl_Container *c, Ewl_Widget *w);
00108 void ewl_paned_cb_child_remove(Ewl_Container *c, Ewl_Widget *w, int idx);
00109 void ewl_paned_cb_child_show(Ewl_Container *c, Ewl_Widget *w);
00110 void ewl_paned_cb_child_resize(Ewl_Container *c, Ewl_Widget *w, int size,
00111 Ewl_Orientation o);
00112 void ewl_paned_cb_child_hide(Ewl_Container *c, Ewl_Widget *w);
00113
00114 void ewl_paned_cb_configure(Ewl_Widget *w, void *ev, void *data);
00115 void ewl_paned_cb_destroy(Ewl_Widget *w, void *ev, void *data);
00116
00117
00118
00119
00120
00125 #define EWL_PANED_GRABBER_TYPE "paned_grabber"
00126
00131 #define EWL_PANED_GRABBER_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_PANED_GRABBER_TYPE))
00132
00136 typedef struct Ewl_Paned_Grabber Ewl_Paned_Grabber;
00137
00142 #define EWL_PANED_GRABBER(g) ((Ewl_Paned_Grabber *)g)
00143
00147 struct Ewl_Paned_Grabber
00148 {
00149 Ewl_Separator separator;
00150 unsigned int placed:1;
00151 };
00152
00153 Ewl_Widget *ewl_paned_grabber_new(void);
00154 int ewl_paned_grabber_init(Ewl_Paned_Grabber *g);
00155
00156 void ewl_paned_grabber_paned_orientation_set(Ewl_Paned_Grabber *g,
00157 Ewl_Orientation o);
00158 Ewl_Orientation ewl_paned_grabber_orientation_get(Ewl_Paned_Grabber *g);
00159
00160 void ewl_paned_grabber_show_cursor_for(Ewl_Paned_Grabber *g,
00161 unsigned int dir);
00162
00167 #endif
00168