]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/include/wx/foldbar/foldpanelitem.h
Full headers, Unicode markup, whitespaces, wxID_ANY, wxDefaultCoord conventions applied.
[wxWidgets.git] / contrib / include / wx / foldbar / foldpanelitem.h
index 623b7b6c68179668175d03fdeaffb9ebc3f4fdac..edc5432bd0982029af3580c7fec5bc3780ff3c57 100644 (file)
@@ -1,8 +1,12 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wxFoldPanelItem.h
-// Author:      XX
-// Created:     Tuesday, June 22, 2004 21:01:02
-// Copyright:   XX
+// Name:        foldpanelitem.h
+// Purpose:     wxFoldPanel
+// Author:      Jorgen Bodde
+// Modified by:
+// Created:     22/06/2004
+// RCS-ID:      $Id$
+// Copyright:   (c) Jorgen Bodde
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __WXFOLDPANELITEM_H__
 class wxFoldWindowItem
 {
 private:
-       wxWindow *_wnd;
-       int _type, _flags;
-       int _leftSpacing,
-               _rightSpacing,
-               _ySpacing;
-       int _lineWidth, _lineY;
-       wxColour _sepLineColour;
+    wxWindow *_wnd;
+    int _type, _flags;
+    int _leftSpacing,
+        _rightSpacing,
+        _ySpacing;
+    int _lineWidth, _lineY;
+    wxColour _sepLineColour;
 
 public:
-       enum 
-       {
-               WINDOW = 0,
-               SEPARATOR
-       };
-       
-       // wxWindow constructor. This initialises the class as a wxWindow type
-       wxFoldWindowItem(wxWindow *wnd, int flags = wxFPB_ALIGN_WIDTH, int ySpacing = wxFPB_DEFAULT_YSPACING, 
-                            int leftSpacing = wxFPB_DEFAULT_LEFTSPACING, int rightSpacing = wxFPB_DEFAULT_RIGHTSPACING) 
-               : _wnd(wnd)
-               , _type(WINDOW)
-               , _ySpacing(ySpacing)
-               , _leftSpacing(leftSpacing)
-               , _rightSpacing(rightSpacing)
-               , _flags(flags)
-               , _lineWidth(0)
-               , _lineY(0)
-       {
-       };
-
-       // separator constructor. This initialises the class as a separator type
-       wxFoldWindowItem(int y, const wxColour &lineColor = *wxBLACK, int ySpacing = wxFPB_DEFAULT_YSPACING, 
-                            int leftSpacing = wxFPB_DEFAULT_LEFTLINESPACING, 
-                                        int rightSpacing = wxFPB_DEFAULT_RIGHTLINESPACING) 
-               : _wnd(0)
-               , _type(SEPARATOR)
-               , _ySpacing(ySpacing)
-               , _leftSpacing(leftSpacing)
-               , _rightSpacing(rightSpacing)
-               , _flags(wxFPB_ALIGN_WIDTH)
-               , _sepLineColour(lineColor)
-               , _lineWidth(0)
-               , _lineY(y)
-       {
-       };
-
-       // TODO: Make a c'tor for a captioned splitter
-
-       int GetType() const {
-               return _type;
-       };
-
-       int GetLineY() const {
-               return _lineY;
-       };
-
-       int GetLineWidth() const {
-               return _lineWidth;
-       };
-
-       const wxColour &GetLineColour() const {
-               return _sepLineColour;
-       };
-
-       int GetLeftSpacing() const {
-               return _leftSpacing;
-       };
-
-       int GetRightSpacing() const {
-               return _rightSpacing;
-       };
-
-       int GetYSpacing() const {
-               return _ySpacing;
-       };
-
-       // returns the window height if type is wxFoldWindowItem::WINDOW
-       // and returns the total size plus the extra spacing
-
-       int GetWindowHeight() const {
-               int value = 0;
-               if(_type == WINDOW)
-               {
-                       wxCHECK(_wnd, 0);
-                       wxSize size = _wnd->GetSize();
-                       value = size.GetHeight() + _ySpacing;
-               }
-               else if(_type == SEPARATOR)
-                       value = 1 + _ySpacing;
-
-               return value;
-       };
-
-       // resize the element, whatever it is. A separator or
-       // line will be always alligned by width
-       
-       void ResizeItem(int width) {
-               if((_flags & wxFPB_ALIGN_WIDTH))
-               {
-                       // allign by taking full width
-                       int myWidth = width - _leftSpacing - _rightSpacing;
-                       
-                       if(myWidth < 0) 
-                               myWidth = 10; // can't have negative width
-                       
-                       if(_type == SEPARATOR)
-                               _lineWidth = myWidth;
-                       else
-                       {
-                               wxCHECK2(_wnd, return);
-                               _wnd->SetSize(wxSize(myWidth, -1));
-                       }
-               }
-       };
+    enum 
+    {
+        WINDOW = 0,
+        SEPARATOR
+    };
+
+    // wxWindow constructor. This initialises the class as a wxWindow type
+    wxFoldWindowItem(wxWindow *wnd, int flags = wxFPB_ALIGN_WIDTH, int ySpacing = wxFPB_DEFAULT_YSPACING, 
+                     int leftSpacing = wxFPB_DEFAULT_LEFTSPACING, int rightSpacing = wxFPB_DEFAULT_RIGHTSPACING) 
+        : _wnd(wnd)
+        , _type(WINDOW)
+        , _ySpacing(ySpacing)
+        , _leftSpacing(leftSpacing)
+        , _rightSpacing(rightSpacing)
+        , _flags(flags)
+        , _lineWidth(0)
+        , _lineY(0)
+    {
+    };
+
+    // separator constructor. This initialises the class as a separator type
+    wxFoldWindowItem(int y, const wxColour &lineColor = *wxBLACK, int ySpacing = wxFPB_DEFAULT_YSPACING, 
+                     int leftSpacing = wxFPB_DEFAULT_LEFTLINESPACING, 
+                     int rightSpacing = wxFPB_DEFAULT_RIGHTLINESPACING) 
+        : _wnd(0)
+        , _type(SEPARATOR)
+        , _ySpacing(ySpacing)
+        , _leftSpacing(leftSpacing)
+        , _rightSpacing(rightSpacing)
+        , _flags(wxFPB_ALIGN_WIDTH)
+        , _sepLineColour(lineColor)
+        , _lineWidth(0)
+        , _lineY(y)
+    {
+    };
+
+    // TODO: Make a c'tor for a captioned splitter
+
+    int GetType() const {
+        return _type;
+    };
+
+    int GetLineY() const {
+        return _lineY;
+    };
+
+    int GetLineWidth() const {
+        return _lineWidth;
+    };
+
+    const wxColour &GetLineColour() const {
+        return _sepLineColour;
+    };
+
+    int GetLeftSpacing() const {
+        return _leftSpacing;
+    };
+
+    int GetRightSpacing() const {
+        return _rightSpacing;
+    };
+
+    int GetYSpacing() const {
+        return _ySpacing;
+    };
+
+    // returns the window height if type is wxFoldWindowItem::WINDOW
+    // and returns the total size plus the extra spacing
+
+    int GetWindowHeight() const {
+        int value = 0;
+        if(_type == WINDOW)
+        {
+            wxCHECK(_wnd, 0);
+            wxSize size = _wnd->GetSize();
+            value = size.GetHeight() + _ySpacing;
+        }
+        else if(_type == SEPARATOR)
+            value = 1 + _ySpacing;
+
+        return value;
+    };
+
+    // resize the element, whatever it is. A separator or
+    // line will be always alligned by width
+
+    void ResizeItem(int width) {
+        if((_flags & wxFPB_ALIGN_WIDTH))
+        {
+            // allign by taking full width
+            int myWidth = width - _leftSpacing - _rightSpacing;
+
+            if(myWidth < 0) 
+                myWidth = 10; // can't have negative width
+
+            if(_type == SEPARATOR)
+                _lineWidth = myWidth;
+            else
+            {
+                wxCHECK2(_wnd, return);
+                _wnd->SetSize(wxSize(myWidth, wxDefaultCoord));
+            }
+        }
+    };
 
 };
 
@@ -150,104 +154,104 @@ WX_DECLARE_OBJARRAY(wxFoldWindowItem, wxFoldWindowItemArray);
 
 /** \wxFoldPanelItem
     This class is a child sibling of the wxFoldPanelBar class. It will be containing a wxCaptionBar class
-       for receiving of events, and a the rest of the area can be populated by a wxPanel derived class. 
+    for receiving of events, and a the rest of the area can be populated by a wxPanel derived class. 
 */
 
 class wxFoldPanelItem: public wxPanel
 {
 private:
-       wxCaptionBar *_captionBar;
+    wxCaptionBar *_captionBar;
 
-       bool _controlCreated;
-       int _yUserSize,
-               _yPanelSize,
-               _yLastInsertPos;
-       int _yPos;
-       bool _userSized;
+    bool _controlCreated;
+    int _yUserSize,
+        _yPanelSize,
+        _yLastInsertPos;
+    int _yPos;
+    bool _userSized;
 
 private:
     DECLARE_CLASS( wxFoldPanelItem )
     DECLARE_EVENT_TABLE()
     
 private:
-       wxFoldWindowItemArray _items;
+    wxFoldWindowItemArray _items;
 
-       void OnSize(wxSizeEvent &event);
-       void OnPressCaption(wxCaptionBarEvent &event);
-       void OnPaint(wxPaintEvent &event);
+    void OnSize(wxSizeEvent &event);
+    void OnPressCaption(wxCaptionBarEvent &event);
+    void OnPaint(wxPaintEvent &event);
 
 public:
     // constructors and destructors
-       wxFoldPanelItem( wxWindow *parent, const wxString &caption, wxImageList *icons = 0, bool collapsedInitially = false, 
-                            const wxCaptionBarStyle &style = wxEmptyCaptionBarStyle);
+    wxFoldPanelItem( wxWindow *parent, const wxString &caption, wxImageList *icons = 0, bool collapsedInitially = false, 
+                     const wxCaptionBarStyle &style = wxEmptyCaptionBarStyle);
     virtual ~wxFoldPanelItem();
-       
-       /** Add a window item to the list of items on this panel. The flags are wxFPB_ALIGN_LEFT for a non sizing
-           window element, and wxFPB_ALIGN_WIDTH for a width alligned item. The ySpacing parameter reserves a number
-               of pixels before the window element, and leftSpacing is an indent. rightSpacing is only relevant when the
-               style wxFPB_ALIGN_WIDTH is chosen. */
-       void AddWindow(wxWindow *window, int flags, int ySpacing, int leftSpacing, int rightSpacing);
-       
-       void AddSeparator(const wxColour &color, int ySpacing, int leftSpacing, int rightSpacing);
-
-       /** Repositions this wxFoldPanelBar and reports the height occupied for the next wxFoldPanelBar in the 
-           list */
-       int Reposition(int y);
-
-       void ResizePanel();
-
-       /** Return expanded or collapsed status. If the panel is expanded, true is returned */
-       bool IsExpanded() const {
-               return !_captionBar->IsCollapsed();
-       };
-
-       /** Return Y pos */
-
-       int GetY() const {
-               return _yPos;
-       };
-
-       // this should not be called by the user, because it doesn't trigger the parent 
-       // to tell it that we are collapsed or expanded, it only changes visual state
-       void Collapse() {
-               _captionBar->Collapse();
-               ResizePanel();
-       };
-
-       // this should not be called by the user, because it doesn't trigger the parent 
-       // to tell it that we are collapsed or expanded, it only changes visual state
-       void Expand() {
-               _captionBar->Expand();
-               ResizePanel();
-       };
-
-       /* Return size of panel */
-
-       int GetPanelHeight() const {
-               if(_captionBar->IsCollapsed())
-                       return GetCaptionHeight();
-               else if(_userSized)
-                       return _yUserSize;
-               return _yPanelSize;
-       };
-
-       // returns height of caption only. This is for folding calulation
-       // purposes
-
-       int GetCaptionHeight() const {
-               wxSize size = _captionBar->GetSize();
-               return size.GetHeight();
-       };
-
-       void ApplyCaptionStyle(const wxCaptionBarStyle &style) {
-               wxCHECK2(_captionBar, return);
-               _captionBar->SetCaptionStyle(false, style);
-       };
-
-       wxCaptionBarStyle GetCaptionStyle() {
-               wxCHECK(_captionBar, wxEmptyCaptionBarStyle);
-               return _captionBar->GetCaptionStyle();
-       };
+    
+    /** Add a window item to the list of items on this panel. The flags are wxFPB_ALIGN_LEFT for a non sizing
+        window element, and wxFPB_ALIGN_WIDTH for a width alligned item. The ySpacing parameter reserves a number
+        of pixels before the window element, and leftSpacing is an indent. rightSpacing is only relevant when the
+        style wxFPB_ALIGN_WIDTH is chosen. */
+    void AddWindow(wxWindow *window, int flags, int ySpacing, int leftSpacing, int rightSpacing);
+    
+    void AddSeparator(const wxColour &color, int ySpacing, int leftSpacing, int rightSpacing);
+
+    /** Repositions this wxFoldPanelBar and reports the height occupied for the next wxFoldPanelBar in the 
+        list */
+    int Reposition(int y);
+
+    void ResizePanel();
+
+    /** Return expanded or collapsed status. If the panel is expanded, true is returned */
+    bool IsExpanded() const {
+        return !_captionBar->IsCollapsed();
+    };
+
+    /** Return Y pos */
+
+    int GetY() const {
+        return _yPos;
+    };
+
+    // this should not be called by the user, because it doesn't trigger the parent 
+    // to tell it that we are collapsed or expanded, it only changes visual state
+    void Collapse() {
+        _captionBar->Collapse();
+        ResizePanel();
+    };
+
+    // this should not be called by the user, because it doesn't trigger the parent 
+    // to tell it that we are collapsed or expanded, it only changes visual state
+    void Expand() {
+        _captionBar->Expand();
+        ResizePanel();
+    };
+
+    /* Return size of panel */
+
+    int GetPanelHeight() const {
+        if(_captionBar->IsCollapsed())
+            return GetCaptionHeight();
+        else if(_userSized)
+            return _yUserSize;
+        return _yPanelSize;
+    };
+
+    // returns height of caption only. This is for folding calulation
+    // purposes
+
+    int GetCaptionHeight() const {
+        wxSize size = _captionBar->GetSize();
+        return size.GetHeight();
+    };
+
+    void ApplyCaptionStyle(const wxCaptionBarStyle &style) {
+        wxCHECK2(_captionBar, return);
+        _captionBar->SetCaptionStyle(false, style);
+    };
+
+    wxCaptionBarStyle GetCaptionStyle() {
+        wxCHECK(_captionBar, wxEmptyCaptionBarStyle);
+        return _captionBar->GetCaptionStyle();
+    };
 };