Download

Support

lib/ewl_paned.h

Go to the documentation of this file.
00001 /* vim: set sw=8 ts=8 sts=8 expandtab: */
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  * Internal functions. Override at your risk.
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  * Ewl_Paned_Grabber stuff
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 

Copyright © Enlightenment.org

Enlightened Widget Library Documentation Generated: Sat May 17 16:49:06 2008