X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/957f5ab77abb14c70c60f18196e1e0d39292ee59..6446bbcf31e120f8f4c30b3c1906ca65688d1a0a:/contrib/include/wx/foldbar/captionbar.h diff --git a/contrib/include/wx/foldbar/captionbar.h b/contrib/include/wx/foldbar/captionbar.h index bf54618544..0d276337ea 100644 --- a/contrib/include/wx/foldbar/captionbar.h +++ b/contrib/include/wx/foldbar/captionbar.h @@ -1,227 +1,248 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: captionbar.h +// Purpose: wxFoldPanel +// Author: Jorgen Bodde +// Modified by: ABX - 19/12/2004 : possibility of horizontal orientation +// : wxWidgets coding standards +// Created: 22/06/2004 +// RCS-ID: $Id$ +// Copyright: (c) Jorgen Bodde +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + #ifndef __FOLDPANELBAR_H__ #define __FOLDPANELBAR_H__ +#ifdef WXMAKINGDLL_FOLDBAR + #define WXDLLIMPEXP_FOLDBAR WXEXPORT +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_FOLDBAR WXIMPORT +#else // not making nor using DLL + #define WXDLLIMPEXP_FOLDBAR +#endif + + #define wxFPB_EXTRA_X 10 #define wxFPB_EXTRA_Y 4 -#define wxFPB_BMP_RIGHTSPACE 2 // pixels of the bmp to be alligned from the right filled with space +#define wxFPB_BMP_RIGHTSPACE 2 // pixels of the bmp to be aligned from the right filled with space enum { - /** Specifies the bars as gradient vertical filled caption bars going from top to bottom. The gradient - starts with first colour, and ends with second colour */ - wxCAPTIONBAR_GRADIENT_V = 1, - /** Specifies the gradient going from left to right. The gradient starts with first colour, and - ends with second colour on the right */ - wxCAPTIONBAR_GRADIENT_H, - /** Fills the captionbar with a single colour. The first colour is used for this fill */ - wxCAPTIONBAR_SINGLE, - /** Draws a rectangle only using the second colour. The first colour is not used*/ - wxCAPTIONBAR_RECTANGLE, - /** Fills the captionbar with a single colour (first colour) and draws a rectangle around it - using the second colour. */ - wxCAPTIONBAR_FILLED_RECTANGLE + /** Specifies the bars as gradient vertical filled caption bars going from top to bottom. The gradient + starts with first colour, and ends with second colour */ + wxCAPTIONBAR_GRADIENT_V = 1, + /** Specifies the gradient going from left to right. The gradient starts with first colour, and + ends with second colour on the right */ + wxCAPTIONBAR_GRADIENT_H, + /** Fills the captionbar with a single colour. The first colour is used for this fill */ + wxCAPTIONBAR_SINGLE, + /** Draws a rectangle only using the second colour. The first colour is not used*/ + wxCAPTIONBAR_RECTANGLE, + /** Fills the captionbar with a single colour (first colour) and draws a rectangle around it + using the second colour. */ + wxCAPTIONBAR_FILLED_RECTANGLE }; /** \class wxCaptionBarStyle - This class encapsulates the styles you wish to set for the wxCaptionBar (this is the part of the wxFoldPanel - where the caption is displayed). It can either be applied at creation time be reapplied when styles need to - be changed. - - At construction time, all styles are set to their default transparency. This means none of the styles will be - applied to the wxCaptionBar in question, meaning it will be created using the default internals. When setting i.e - the color, font or panel style, these styles become active to be used. + This class encapsulates the styles you wish to set for the wxCaptionBar (this is the part of the wxFoldPanel + where the caption is displayed). It can either be applied at creation time be reapplied when styles need to + be changed. + + At construction time, all styles are set to their default transparency. This means none of the styles will be + applied to the wxCaptionBar in question, meaning it will be created using the default internals. When setting i.e + the color, font or panel style, these styles become active to be used. */ -class wxCaptionBarStyle +class WXDLLIMPEXP_FOLDBAR wxCaptionBarStyle { private: - // boolean flags for default transparency on styles - bool _firstColourUsed, - _secondColourUsed, - _textColourUsed, - _captionFontUsed, - _captionStyleUsed; + // boolean flags for default transparency on styles + bool m_firstColourUsed, + m_secondColourUsed, + m_textColourUsed, + m_captionFontUsed, + m_captionStyleUsed; - wxFont _captionFont; - wxColour _firstColour, _secondColour, _textColour; + wxFont m_captionFont; + wxColour m_firstColour, m_secondColour, m_textColour; - int _captionStyle; + int m_captionStyle; public: - /** Default constructor for this class */ - wxCaptionBarStyle() { - ResetDefaults(); - }; - - ~wxCaptionBarStyle() { - - }; - - void ResetDefaults() { - _firstColourUsed = false; - _secondColourUsed = false; - _textColourUsed = false; - _captionFontUsed = false; - _captionStyleUsed = false; - _captionStyle = wxCAPTIONBAR_GRADIENT_V; - }; - - /** Copy operator. Only the styles in use in the source object are being copied to the destination object. All other - styles are not copied */ - void operator=(const wxCaptionBarStyle &s) { - if(s._captionStyleUsed) - { - _captionStyleUsed = true; - _captionStyle = s._captionStyle; - } - if(s._captionFontUsed) - { - _captionFontUsed = true; - _captionFont = s._captionFont; - } - if(s._firstColourUsed) - { - _firstColourUsed = true; - _firstColour = s._firstColour; - } - if(s._secondColourUsed) - { - _secondColourUsed = true; - _secondColour = s._secondColour; - } - if(s._textColourUsed) - { - _textColourUsed = true; - _textColour = s._textColour; - } - }; - - // ------- CaptionBar Font ------- - - /** Set font for the caption bar. If this is not set, the font property is undefined - and will not be used. Use CaptionFontUsed() to check if this style is used */ - void SetCaptionFont(const wxFont &font) { - _captionFont = font; - _captionFontUsed = true; - }; - - /** Checks if the caption bar font is set */ - bool CaptionFontUsed() const { - return _captionFontUsed; - }; - - /** Returns the font for the caption bar. Please be warned this will result in an assertion failure when - this property is not previously set - \sa SetCaptionFont(), CaptionFontUsed() */ - wxFont GetCaptionFont() const { - wxASSERT(_captionFontUsed); - return _captionFont; - }; - - // ------- FirstColour ------- - - /** Set first colour for the caption bar. If this is not set, the colour property is - undefined and will not be used. Use FirstColourUsed() to check if this - style is used */ - void SetFirstColour(const wxColour &col) { - _firstColour = col; - _firstColourUsed = true; - }; - - /** Checks if the first colour of the caption bar is set */ - bool FirstColourUsed() const { - return _firstColourUsed; - }; - - /** Returns the first colour for the caption bar. Please be warned this will - result in an assertion failure when this property is not previously set. - \sa SetCaptionFirstColour(), CaptionFirstColourUsed() */ - wxColour GetFirstColour() const { - wxASSERT(_firstColourUsed); - return _firstColour; - }; - - // ------- SecondColour ------- - - /** Set second colour for the caption bar. If this is not set, the colour property is undefined and - will not be used. Use SecondColourUsed() to check if this style is used */ - void SetSecondColour(const wxColour &col) { - _secondColour = col; - _secondColourUsed = true; - }; - - /** Checks if the second colour of the caption bar is set */ - bool SecondColourUsed() const { - return _secondColourUsed; - }; - - /** Returns the second colour for the caption bar. Please be warned this will result in - an assertion failure when this property is not previously set. - \sa SetSecondColour(), SecondColourUsed() */ - wxColour GetSecondColour() const { - wxASSERT(_secondColourUsed); - return _secondColour; - }; - - // ------- Caption Text Colour ------- - - /** Set caption colour for the caption bar. If this is not set, the colour property is - undefined and will not be used. Use CaptionColourUsed() to check if this style is used */ - void SetCaptionColour(const wxColour &col) { - _textColour = col; - _textColourUsed = true; - }; - - /** Checks if the caption colour of the caption bar is set */ - bool CaptionColourUsed() const { - return _textColourUsed; - }; - - /** Returns the caption colour for the caption bar. Please be warned this will - result in an assertion failure when this property is not previously set. - \sa SetCaptionColour(), CaptionColourUsed() */ - wxColour GetCaptionColour() const { - wxASSERT(_textColourUsed); - return _textColour; - }; - - // ------- CaptionStyle ------- - - /** Set caption style for the caption bar. If this is not set, the property is - undefined and will not be used. Use CaptionStyleUsed() to check if this style is used. - The following styles can be applied: - - wxCAPTIONBAR_GRADIENT_V: Draws a vertical gradient from top to bottom - - wxCAPTIONBAR_GRADIENT_H: Draws a horizontal gradient from left to right - - wxCAPTIONBAR_SINGLE: Draws a single filled rectangle to draw the caption - - wxCAPTIONBAR_RECTANGLE: Draws a single colour with a rectangle around the caption - - wxCAPTIONBAR_FILLED_RECTANGLE: Draws a filled rectangle and a border around it - */ - void SetCaptionStyle(int style) { - _captionStyle = style; - _captionStyleUsed = true; - }; - - /** Checks if the caption style of the caption bar is set */ - bool CaptionStyleUsed() const { - return _captionStyleUsed; - }; - - /** Returns the caption style for the caption bar. Please be warned this will - result in an assertion failure when this property is not previously set. - \sa SetCaptionStyle(), CaptionStyleUsed() */ - int GetCaptionStyle() const { - wxASSERT(_captionStyleUsed); - return _captionStyle; - }; + /** Default constructor for this class */ + wxCaptionBarStyle() { + ResetDefaults(); + }; + + ~wxCaptionBarStyle() { + + }; + + void ResetDefaults() { + m_firstColourUsed = false; + m_secondColourUsed = false; + m_textColourUsed = false; + m_captionFontUsed = false; + m_captionStyleUsed = false; + m_captionStyle = wxCAPTIONBAR_GRADIENT_V; + }; + + /** Copy operator. Only the styles in use in the source object are being copied to the destination object. All other + styles are not copied */ + void operator=(const wxCaptionBarStyle &s) { + if(s.m_captionStyleUsed) + { + m_captionStyleUsed = true; + m_captionStyle = s.m_captionStyle; + } + if(s.m_captionFontUsed) + { + m_captionFontUsed = true; + m_captionFont = s.m_captionFont; + } + if(s.m_firstColourUsed) + { + m_firstColourUsed = true; + m_firstColour = s.m_firstColour; + } + if(s.m_secondColourUsed) + { + m_secondColourUsed = true; + m_secondColour = s.m_secondColour; + } + if(s.m_textColourUsed) + { + m_textColourUsed = true; + m_textColour = s.m_textColour; + } + }; + + // ------- CaptionBar Font ------- + + /** Set font for the caption bar. If this is not set, the font property is undefined + and will not be used. Use CaptionFontUsed() to check if this style is used */ + void SetCaptionFont(const wxFont &font) { + m_captionFont = font; + m_captionFontUsed = true; + }; + + /** Checks if the caption bar font is set */ + bool CaptionFontUsed() const { + return m_captionFontUsed; + }; + + /** Returns the font for the caption bar. Please be warned this will result in an assertion failure when + this property is not previously set + \sa SetCaptionFont(), CaptionFontUsed() */ + wxFont GetCaptionFont() const { + wxASSERT(m_captionFontUsed); + return m_captionFont; + }; + + // ------- FirstColour ------- + + /** Set first colour for the caption bar. If this is not set, the colour property is + undefined and will not be used. Use FirstColourUsed() to check if this + style is used */ + void SetFirstColour(const wxColour &col) { + m_firstColour = col; + m_firstColourUsed = true; + }; + + /** Checks if the first colour of the caption bar is set */ + bool FirstColourUsed() const { + return m_firstColourUsed; + }; + + /** Returns the first colour for the caption bar. Please be warned this will + result in an assertion failure when this property is not previously set. + \sa SetCaptionFirstColour(), CaptionFirstColourUsed() */ + wxColour GetFirstColour() const { + wxASSERT(m_firstColourUsed); + return m_firstColour; + }; + + // ------- SecondColour ------- + + /** Set second colour for the caption bar. If this is not set, the colour property is undefined and + will not be used. Use SecondColourUsed() to check if this style is used */ + void SetSecondColour(const wxColour &col) { + m_secondColour = col; + m_secondColourUsed = true; + }; + + /** Checks if the second colour of the caption bar is set */ + bool SecondColourUsed() const { + return m_secondColourUsed; + }; + + /** Returns the second colour for the caption bar. Please be warned this will result in + an assertion failure when this property is not previously set. + \sa SetSecondColour(), SecondColourUsed() */ + wxColour GetSecondColour() const { + wxASSERT(m_secondColourUsed); + return m_secondColour; + }; + + // ------- Caption Text Colour ------- + + /** Set caption colour for the caption bar. If this is not set, the colour property is + undefined and will not be used. Use CaptionColourUsed() to check if this style is used */ + void SetCaptionColour(const wxColour &col) { + m_textColour = col; + m_textColourUsed = true; + }; + + /** Checks if the caption colour of the caption bar is set */ + bool CaptionColourUsed() const { + return m_textColourUsed; + }; + + /** Returns the caption colour for the caption bar. Please be warned this will + result in an assertion failure when this property is not previously set. + \sa SetCaptionColour(), CaptionColourUsed() */ + wxColour GetCaptionColour() const { + wxASSERT(m_textColourUsed); + return m_textColour; + }; + + // ------- CaptionStyle ------- + + /** Set caption style for the caption bar. If this is not set, the property is + undefined and will not be used. Use CaptionStyleUsed() to check if this style is used. + The following styles can be applied: + - wxCAPTIONBAR_GRADIENT_V: Draws a vertical gradient from top to bottom + - wxCAPTIONBAR_GRADIENT_H: Draws a horizontal gradient from left to right + - wxCAPTIONBAR_SINGLE: Draws a single filled rectangle to draw the caption + - wxCAPTIONBAR_RECTANGLE: Draws a single colour with a rectangle around the caption + - wxCAPTIONBAR_FILLED_RECTANGLE: Draws a filled rectangle and a border around it + */ + void SetCaptionStyle(int style) { + m_captionStyle = style; + m_captionStyleUsed = true; + }; + + /** Checks if the caption style of the caption bar is set */ + bool CaptionStyleUsed() const { + return m_captionStyleUsed; + }; + + /** Returns the caption style for the caption bar. Please be warned this will + result in an assertion failure when this property is not previously set. + \sa SetCaptionStyle(), CaptionStyleUsed() */ + int GetCaptionStyle() const { + wxASSERT(m_captionStyleUsed); + return m_captionStyle; + }; }; #ifndef _NO_CAPTIONBAR_ /** \class wxCaptionBar - This class is a graphical caption component that consists of a caption and a clickable arrow. - - The wxCaptionBar fires an event EVT_CAPTIONBAR which is a wxCaptionBarEvent. This event can be caught - and the parent window can act upon the collapsed or expanded state of the bar (which is actually just - the icon which changed). The parent panel can reduce size or expand again. + This class is a graphical caption component that consists of a caption and a clickable arrow. + + The wxCaptionBar fires an event EVT_CAPTIONBAR which is a wxCaptionBarEvent. This event can be caught + and the parent window can act upon the collapsed or expanded state of the bar (which is actually just + the icon which changed). The parent panel can reduce size or expand again. */ #include @@ -229,145 +250,147 @@ public: /** Defines an empty captionbar style */ #define wxEmptyCaptionBarStyle wxCaptionBarStyle() -class wxCaptionBar: public wxWindow +class WXDLLIMPEXP_FOLDBAR wxCaptionBar: public wxWindow { private: - wxString _caption; - wxImageList *_foldIcons; - wxSize _oldSize; - //wxFont _captionFont; - int _rightIndent; - int _iconWidth, _iconHeight; - //int _captionStyle; + wxString m_caption; + wxImageList *m_foldIcons; + wxSize m_oldSize; + //wxFont m_captionFont; + int m_rightIndent; + int m_iconWidth, m_iconHeight; + //int m_captionStyle; - //wxColour _firstColour, _secondColour, _textColour; + //wxColour m_firstColour, m_secondColour, m_textColour; - /** True when the caption is in collapsed state (means at the bottom of the wxFoldPanel */ - bool _collapsed; + /** True when the caption is in collapsed state (means at the bottom of the wxFoldPanel */ + bool m_collapsed; - wxCaptionBarStyle _style; + wxCaptionBarStyle m_captionStyle; - /** Fills the background of the caption with either a gradient, or a solid color */ - void FillCaptionBackground(wxPaintDC &dc); + /** Fills the background of the caption with either a gradient, or a solid color */ + void FillCaptionBackground(wxPaintDC &dc); - /* Draw methods */ - void DrawHorizontalGradient(wxDC &dc, const wxRect &rect ); - void DrawVerticalGradient(wxDC &dc, const wxRect &rect ); - void DrawSingleColour(wxDC &dc, const wxRect &rect ); - void DrawSingleRectangle(wxDC &dc, const wxRect &rect ); + /* Draw methods */ + void DrawHorizontalGradient(wxDC &dc, const wxRect &rect ); + void DrawVerticalGradient(wxDC &dc, const wxRect &rect ); + void DrawSingleColour(wxDC &dc, const wxRect &rect ); + void DrawSingleRectangle(wxDC &dc, const wxRect &rect ); - void RedrawIconBitmap(); + void RedrawIconBitmap(); - void ApplyCaptionStyle(const wxCaptionBarStyle &cbstyle, bool applyDefault); + void ApplyCaptionStyle(const wxCaptionBarStyle &cbstyle, bool applyDefault); public: /** Constructor of wxCaptionBar. To create a wxCaptionBar with the arrow images, simply pass an image list - which contains at least two bitmaps. The bitmaps contain the expanded and collapsed icons needed to - represent it's state. If you don't want images, simply pass a null pointer and the bitmap is disabled. */ - wxCaptionBar(wxWindow* parent, const wxString &caption, wxImageList *images, - wxWindowID id = -1, const wxCaptionBarStyle &cbstyle = wxEmptyCaptionBarStyle, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxNO_BORDER); - - ~wxCaptionBar(); - - /** Set wxCaptionBar styles with wxCapionBarSyle class. All styles that are actually set, are applied. If you - set applyDefault to true, all other (not defined) styles will be set to default. If it is false, - the styles which are not set in the wxCaptionBarStyle will be ignored */ - void SetCaptionStyle(bool applyDefault, wxCaptionBarStyle style = wxEmptyCaptionBarStyle) { - ApplyCaptionStyle(style, applyDefault); - Refresh(); - }; - - /** Returns the current style of the captionbar in a wxCaptionBarStyle class. This can be used to change and set back the - changes. */ - wxCaptionBarStyle GetCaptionStyle() { - return _style; - }; + which contains at least two bitmaps. The bitmaps contain the expanded and collapsed icons needed to + represent it's state. If you don't want images, simply pass a null pointer and the bitmap is disabled. */ + wxCaptionBar(wxWindow* parent, const wxString &caption, wxImageList *images, + wxWindowID id = wxID_ANY, const wxCaptionBarStyle &cbstyle = wxEmptyCaptionBarStyle, + const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxNO_BORDER); + + ~wxCaptionBar(); + + /** Set wxCaptionBar styles with wxCapionBarSyle class. All styles that are actually set, are applied. If you + set applyDefault to true, all other (not defined) styles will be set to default. If it is false, + the styles which are not set in the wxCaptionBarStyle will be ignored */ + void SetCaptionStyle(bool applyDefault, wxCaptionBarStyle style = wxEmptyCaptionBarStyle) { + ApplyCaptionStyle(style, applyDefault); + Refresh(); + }; + + /** Returns the current style of the captionbar in a wxCaptionBarStyle class. This can be used to change and set back the + changes. */ + wxCaptionBarStyle GetCaptionStyle() { + return m_captionStyle; + }; + + bool IsVertical() const; #if 0 - /** Sets a pointer to an image list resource (a non owned pointer) to the collapsed and expand icon bitmap. - The reason why it will be assigned a pointer is that it is very likely that multiple caption bars will - be used and if they all have their own bitmap resources it will eat up more memory then needed. It will - also ease the use of shared icon change, when there is any need to. - - If no wxImageList is assigned, there will be no fold icons and only the doubleclick on the panel - will work to collapse / expand. - - The image list must contain 2 bitmaps. Index 0 will be the expanded state, and index 1 will be the - collapsed state of the bitmap. The size of the bitmap is taken in account when the minimal height and - widht is calculated. - - The bitmaps must be the second thing to be done before using it (SetRightIndent should be the first thing), - make sure if the icons are larger than the font, that the parent of this window gets a Fit call to resize - all the windows accordingly */ - - void SetFoldIcons(wxImageList *images) { - _foldIcons = images; - _iconWidth = _iconHeight = 0; - if(_foldIcons) - _foldIcons->GetSize(0, _iconWidth, _iconHeight); - - Refresh(); - }; + /** Sets a pointer to an image list resource (a non owned pointer) to the collapsed and expand icon bitmap. + The reason why it will be assigned a pointer is that it is very likely that multiple caption bars will + be used and if they all have their own bitmap resources it will eat up more memory then needed. It will + also ease the use of shared icon change, when there is any need to. + + If no wxImageList is assigned, there will be no fold icons and only the doubleclick on the panel + will work to collapse / expand. + + The image list must contain 2 bitmaps. Index 0 will be the expanded state, and index 1 will be the + collapsed state of the bitmap. The size of the bitmap is taken in account when the minimal height and + widht is calculated. + + The bitmaps must be the second thing to be done before using it (SetRightIndent should be the first thing), + make sure if the icons are larger than the font, that the parent of this window gets a Fit call to resize + all the windows accordingly */ + + void SetFoldIcons(wxImageList *images) { + m_foldIcons = images; + m_iconWidth = m_iconHeight = 0; + if(m_foldIcons) + m_foldIcons->GetSize(0, m_iconWidth, m_iconHeight); + + Refresh(); + }; #endif - /** Returns wether the status of the bar is expanded or collapsed */ - bool IsCollapsed() const { - return _collapsed; - }; + /** Returns wether the status of the bar is expanded or collapsed */ + bool IsCollapsed() const { + return m_collapsed; + }; - /** Sets the amount of pixels on the right from which the bitmap is trailing. If this is 0, it will be - drawn all the way to the right, default is equal to wxFPB_BMP_RIGHTSPACE. Assign this before - assigning an image list to prevent a redraw */ + /** Sets the amount of pixels on the right from which the bitmap is trailing. If this is 0, it will be + drawn all the way to the right, default is equal to wxFPB_BMP_RIGHTSPACE. Assign this before + assigning an image list to prevent a redraw */ - void SetRightIndent(int pixels) { - wxCHECK2(pixels >= 0, return); - _rightIndent = pixels; - // issue a refresh (if we have a bmp) - if(_foldIcons) - Refresh(); - }; + void SetRightIndent(int pixels) { + wxCHECK2(pixels >= 0, return); + m_rightIndent = pixels; + // issue a refresh (if we have a bmp) + if(m_foldIcons) + Refresh(); + }; - /** Return the best size for this panel, based upon the font assigned to this window, and the - caption string */ - wxSize DoGetBestSize() const; + /** Return the best size for this panel, based upon the font assigned to this window, and the + caption string */ + wxSize DoGetBestSize() const; - /** This sets the internal state / representation to collapsed. This does not trigger a wxCaptionBarEvent - to be sent to the parent */ - void Collapse() { - _collapsed = true; - RedrawIconBitmap(); - }; + /** This sets the internal state / representation to collapsed. This does not trigger a wxCaptionBarEvent + to be sent to the parent */ + void Collapse() { + m_collapsed = true; + RedrawIconBitmap(); + }; - /** This sets the internal state / representation to expanded. This does not trigger a wxCaptionBarEvent - to be sent to the parent */ - void Expand() { - _collapsed = false; - RedrawIconBitmap(); - }; + /** This sets the internal state / representation to expanded. This does not trigger a wxCaptionBarEvent + to be sent to the parent */ + void Expand() { + m_collapsed = false; + RedrawIconBitmap(); + }; - void SetBoldFont() { - GetFont().SetWeight(wxBOLD); - }; + void SetBoldFont() { + GetFont().SetWeight(wxBOLD); + }; - void SetNormalFont() { - GetFont().SetWeight(wxNORMAL); - }; + void SetNormalFont() { + GetFont().SetWeight(wxNORMAL); + }; private: /** The paint event for flat or gradient fill */ - void OnPaint(wxPaintEvent& event); - + void OnPaint(wxPaintEvent& event); + /** For clicking the icon, the mouse event must be intercepted */ void OnMouseEvent(wxMouseEvent& event); - + /** Maybe when focus (don't know how yet) a cursor left or backspace will collapse or expand */ void OnChar(wxKeyEvent& event); - void OnSize(wxSizeEvent &event); + void OnSize(wxSizeEvent &event); protected: @@ -378,74 +401,73 @@ protected: /***********************************************************************************************************/ /** \class wxCaptionBarEvent - This event will be sent when a EVT_CAPTIONBAR is mapped in the parent. It is to notify the parent - that the bar is now in collapsed or expanded state. The parent should re-arrange the associated - windows accordingly */ + This event will be sent when a EVT_CAPTIONBAR is mapped in the parent. It is to notify the parent + that the bar is now in collapsed or expanded state. The parent should re-arrange the associated + windows accordingly */ -class WXDLLEXPORT wxCaptionBarEvent : public wxCommandEvent +class WXDLLIMPEXP_FOLDBAR wxCaptionBarEvent : public wxCommandEvent { private: - bool _collapsed; - wxCaptionBar *_bar; - void *_tag; + bool m_collapsed; + wxCaptionBar *m_captionBar; + void *m_tag; public: wxCaptionBarEvent(wxEventType commandType = wxEVT_NULL, int id = 0) : wxCommandEvent(commandType, id) - , _collapsed(false) - , _bar(0) - , _tag(0) - { } - - /** Constructor for clone copy */ - wxCaptionBarEvent(const wxCaptionBarEvent &event); - - /** Clone function */ - virtual wxEvent *Clone() const { - return new wxCaptionBarEvent(*this); - }; - - /** Returns wether the bar is expanded or collapsed. True means expanded */ - bool GetFoldStatus() const { - wxCHECK(_bar, false); - return !_bar->IsCollapsed(); - }; - - /** Returns the bar associated with this event */ - wxCaptionBar *GetBar() const { - return _bar; - }; - - void SetTag(void *tag) { - _tag = tag; - }; - - void *GetTag() const { - return _tag; - }; - - /** Sets the bar associated with this event, should not used - by any other then the originator of the event */ - void SetBar(wxCaptionBar *bar) { - _bar = bar; - }; - - DECLARE_DYNAMIC_CLASS(wxCaptionBarEvent) + , m_collapsed(false) + , m_captionBar(NULL) + , m_tag(0) + { } + + /** Constructor for clone copy */ + wxCaptionBarEvent(const wxCaptionBarEvent &event); + + /** Clone function */ + virtual wxEvent *Clone() const { + return new wxCaptionBarEvent(*this); + }; + + /** Returns wether the bar is expanded or collapsed. True means expanded */ + bool GetFoldStatus() const { + wxCHECK(m_captionBar, false); + return !m_captionBar->IsCollapsed(); + }; + + /** Returns the bar associated with this event */ + wxCaptionBar *GetCaptionBar() const { + return m_captionBar; + }; + + void SetTag(void *tag) { + m_tag = tag; + }; + + void *GetTag() const { + return m_tag; + }; + + /** Sets the bar associated with this event, should not used + by any other then the originator of the event */ + void SetCaptionBar(wxCaptionBar *bar) { + m_captionBar = bar; + }; + + DECLARE_DYNAMIC_CLASS(wxCaptionBarEvent) }; BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EVENT_TYPE(wxEVT_CAPTIONBAR, 7777) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_FOLDBAR, wxEVT_CAPTIONBAR, 7777) END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxCaptionBarEventFunction)(wxCaptionBarEvent&); #define EVT_CAPTIONBAR(id, fn) \ DECLARE_EVENT_TABLE_ENTRY( \ - wxEVT_CAPTIONBAR, id, -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxCaptionBarEventFunction) \ - & fn, \ + wxEVT_CAPTIONBAR, id, wxID_ANY, \ + (wxObjectEventFunction)(wxEventFunction) wxStaticCastEvent(wxCaptionBarEventFunction, & fn), \ (wxObject *) NULL \ ),