wxWINDOW_VARIANT_MAX
};
+#if wxUSE_SYSTEM_OPTIONS
+ #define wxWINDOW_DEFAULT_VARIANT wxT("window-default-variant")
+#endif
+
// ----------------------------------------------------------------------------
// (pseudo)template list classes
// ----------------------------------------------------------------------------
// window id uniquely identifies the window among its siblings unless
- // it is -1 which means "don't care"
+ // it is wxID_ANY which means "don't care"
void SetId( wxWindowID winid ) { m_windowId = winid; }
wxWindowID GetId() const { return m_windowId; }
{ DoSetSize(x, y, width, height, sizeFlags); }
void SetSize( int width, int height )
- { DoSetSize( -1, -1, width, height, wxSIZE_USE_EXISTING ); }
+ { DoSetSize( wxDefaultCoord, wxDefaultCoord, width, height, wxSIZE_USE_EXISTING ); }
void SetSize( const wxSize& size )
{ SetSize( size.x, size.y); }
{ DoSetSize(rect.x, rect.y, rect.width, rect.height, sizeFlags); }
void Move(int x, int y, int flags = wxSIZE_USE_EXISTING)
- { DoSetSize(x, y, -1, -1, flags); }
+ { DoSetSize(x, y, wxDefaultCoord, wxDefaultCoord, flags); }
void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING)
{ Move(pt.x, pt.y, flags); }
void InvalidateBestSize() { m_bestSizeCache = wxDefaultSize; }
void CacheBestSize(const wxSize& size) const
{ wxConstCast(this, wxWindowBase)->m_bestSizeCache = size; }
-
+
// There are times (and windows) where 'Best' size and 'Min' size
// are vastly out of sync. This should be remedied somehow, but in
// the meantime, this method will return the larger of BestSize
// minimum size, giving priority to the min size components, and
// returns the results.
wxSize GetBestFittingSize() const;
-
+
// A 'Smart' SetSize that will fill in default size values with 'best'
// size. Sets the minsize to what was passed in.
void SetBestFittingSize(const wxSize& size=wxDefaultSize);
// set min/max size of the window
virtual void SetSizeHints( int minW, int minH,
- int maxW = -1, int maxH = -1,
- int incW = -1, int incH = -1 );
+ int maxW = wxDefaultCoord, int maxH = wxDefaultCoord,
+ int incW = wxDefaultCoord, int incH = wxDefaultCoord );
void SetSizeHints( const wxSize& minSize,
const wxSize& maxSize=wxDefaultSize,
const wxSize& incSize=wxDefaultSize)
}
virtual void SetVirtualSizeHints( int minW, int minH,
- int maxW = -1, int maxH = -1 );
+ int maxW = wxDefaultCoord, int maxH = wxDefaultCoord );
void SetVirtualSizeHints( const wxSize& minSize,
const wxSize& maxSize=wxDefaultSize)
{
void SetMinSize(const wxSize& minSize) { SetSizeHints(minSize); }
void SetMaxSize(const wxSize& maxSize) { SetSizeHints(GetMinSize(), maxSize); }
-
+
// Methods for accessing the virtual size of a window. For most
// windows this is just the client area of the window, but for
// some like scrolled windows it is more or less independent of
// Returns true if this class should have the background colour
// changed to match the parent window's theme. For example when a
- // page is added to a notebook it and it's children may need to have
+ // page is added to a notebook it and its children may need to have
// the colours adjusted depending on the current theme settings, but
// not all windows/controls can do this without looking wrong.
virtual void ApplyParentThemeBackground(const wxColour& WXUNUSED(bg))
// set this child as temporary default
virtual void SetTmpDefaultItem(wxWindow * WXUNUSED(win)) { }
- // Navigates in the specified direction by sending a wxNavigationKeyEvent
+ // navigates in the specified direction by sending a wxNavigationKeyEvent
virtual bool Navigate(int flags = wxNavigationKeyEvent::IsForward);
+ // move this window just before/after the specified one in tab order
+ // (the other window must be our sibling!)
+ void MoveBeforeInTabOrder(wxWindow *win)
+ { DoMoveInTabOrder(win, MoveBefore); }
+ void MoveAfterInTabOrder(wxWindow *win)
+ { DoMoveInTabOrder(win, MoveAfter); }
+
+
// parent/children relations
// -------------------------
// is this window a top level one?
virtual bool IsTopLevel() const;
- // it doesn't really change parent, use ReParent() instead
+ // it doesn't really change parent, use Reparent() instead
void SetParent( wxWindowBase *parent ) { m_parent = (wxWindow *)parent; }
// change the real parent of this window, return true if the parent
// was changed, false otherwise (error or newParent == oldParent)
// SetDefaultXXX() reset the "m_inheritXXX" flag after setting the
// value to prevent it from being inherited by our children
virtual bool SetBackgroundColour(const wxColour& colour);
- void SetDefaultBackgroundColour(const wxColour& colour)
+ void SetOwnBackgroundColour(const wxColour& colour)
{
if ( SetBackgroundColour(colour) )
m_inheritBgCol = false;
wxColour GetBackgroundColour() const;
virtual bool SetForegroundColour(const wxColour& colour);
- void SetDefaultForegroundColour(const wxColour& colour)
+ void SetOwnForegroundColour(const wxColour& colour)
{
if ( SetForegroundColour(colour) )
m_inheritFgCol = false;
}
wxColour GetForegroundColour() const;
+ // Set/get the background style.
+ // Pass one of wxBG_STYLE_SYSTEM, wxBG_STYLE_COLOUR, wxBG_STYLE_CUSTOM
+ virtual bool SetBackgroundStyle(wxBackgroundStyle style) { m_backgroundStyle = style; return true; }
+ virtual wxBackgroundStyle GetBackgroundStyle() const { return m_backgroundStyle; }
+
// set/retrieve the font for the window (SetFont() returns true if the
// font really changed)
virtual bool SetFont(const wxFont& font) = 0;
- void SetDefaultFont(const wxFont& font)
+ void SetOwnFont(const wxFont& font)
{
if ( SetFont(font) )
m_inheritFont = false;
// get the associated tooltip or NULL if none
wxToolTip* GetToolTip() const { return m_tooltip; }
wxString GetToolTipText() const ;
+#else
+ // make it much easier to compile apps in an environment
+ // that doesn't support tooltips, such as PocketPC
+ inline void SetToolTip( const wxString & WXUNUSED(tip) ) {}
#endif // wxUSE_TOOLTIPS
// drag and drop
virtual bool TryValidator(wxEvent& event);
virtual bool TryParent(wxEvent& event);
+ // common part of MoveBefore/AfterInTabOrder()
+ enum MoveKind
+ {
+ MoveBefore, // insert before the given window
+ MoveAfter // insert after the given window
+ };
+ virtual void DoMoveInTabOrder(wxWindow *win, MoveKind move);
#if wxUSE_CONSTRAINTS
// satisfy the constraints for the windows but don't set the window sizes
void SendDestroyEvent();
// the window id - a number which uniquely identifies a window among
- // its siblings unless it is -1
+ // its siblings unless it is wxID_ANY
wxWindowID m_windowId;
// the parent window of this window (or NULL) and the list of the children
wxWindowList m_children;
// the minimal allowed size for the window (no minimal size if variable(s)
- // contain(s) -1)
+ // contain(s) wxDefaultCoord)
int m_minWidth,
m_minHeight,
m_maxWidth,
bool m_hasBgCol:1;
bool m_hasFgCol:1;
bool m_hasFont:1;
-
+
// and should it be inherited by children?
bool m_inheritBgCol:1;
bool m_inheritFgCol:1;
m_exStyle;
wxString m_windowName;
bool m_themeEnabled;
-
+ wxBackgroundStyle m_backgroundStyle;
#if wxUSE_PALETTE
wxPalette m_palette;
bool m_hasCustomPalette;
// Get the default size for the new window if no explicit size given. TLWs
// have their own default size so this is just for non top-level windows.
- static int WidthDefault(int w) { return w == -1 ? 20 : w; }
- static int HeightDefault(int h) { return h == -1 ? 20 : h; }
+ static int WidthDefault(int w) { return w == wxDefaultCoord ? 20 : w; }
+ static int HeightDefault(int h) { return h == wxDefaultCoord ? 20 : h; }
// Used to save the results of DoGetBestSize so it doesn't need to be
// keep the old name for compatibility, at least until all the internal
// usages of it are changed to SetBestFittingSize
void SetBestSize(const wxSize& size) { SetBestFittingSize(size); }
-
+
// set the initial window size if none is given (i.e. at least one of the
// components of the size passed to ctor/Create() is -1)
//
// can be accurately calculated
virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) {}
-
+
// more pure virtual functions
// ---------------------------