faithui/faith/boxlayout.h

Go to the documentation of this file.
00001 #ifndef FAITH__BOXLAYOUT_H
00002 #define FAITH__BOXLAYOUT_H
00003 
00004 #include <faith/layout.h>
00005 #include <faith/sizepolicy.h>
00006 #include <faith/ui.h>
00007 
00008 namespace Faith
00009 {
00010 
00011 class FAITH_UI_EXPORT BoxLayout : public Layout
00012 {
00013         struct BoxLayoutPrivate;
00014         BoxLayoutPrivate *d;
00015 
00016 public:
00017         BoxLayout(Faith::Widget *widget, int margin=0, int spacing=-1);
00018         virtual ~BoxLayout();
00019         
00020         void addWidget(Faith::Widget *w);
00021         void addLayout(Faith::Layout *l);
00022         
00023         void setAutoAdd(bool add);
00024         
00025 protected:
00026         virtual void layout();
00027         
00028         virtual void childAdded(Faith::Widget *w);
00029         
00030         virtual void childRemoved(Faith::Widget *w);
00031         
00032         virtual Faith::Size minimumSize() const;
00033         virtual Faith::Size maximumSize() const;
00034         
00035 protected:
00036         enum Direction { Fixed, Unfixed };
00037         
00038         void setData(
00039                         Direction d,
00040                         int (Size::*readSize)() const, 
00041                         Faith::SizePolicy::Policy (SizePolicy::*readPolicy)() const,
00042                         void (Size::*writeSize)(int)
00043                 );
00044                 
00045         virtual void resize(
00046                         LayoutItem *item,
00047                         int fixedpos, int unfixedpos,
00048                         int fixedsize, int unfixedsize
00049                 )=0;
00050 };
00051 
00052 class FAITH_UI_EXPORT VBoxLayout : public BoxLayout
00053 {
00054 public:
00055         VBoxLayout(Faith::Widget *widget, int margin=0, int spacing=-1);
00056         ~VBoxLayout();
00057         
00058 protected:
00059         virtual void resize(
00060                         LayoutItem *item,
00061                         int fixedpos, int unfixedpos,
00062                         int fixedsize, int unfixedsize
00063                 );
00064         
00065 };
00066 
00067 
00068 class FAITH_UI_EXPORT HBoxLayout : public BoxLayout
00069 {
00070 public:
00071         HBoxLayout(Faith::Widget *widget, int margin=0, int spacing=-1);
00072         ~HBoxLayout();
00073         
00074 protected:
00075         virtual void resize(
00076                         LayoutItem *item,
00077                         int fixedpos, int unfixedpos,
00078                         int fixedsize, int unfixedsize
00079                 );
00080         
00081 };
00082 
00083 
00084 
00085 }
00086 
00087 #endif

Generated on Fri Sep 1 00:23:07 2006 for Faith by  doxygen 1.4.7