// compiled in - it should only be used when building real wxFoo
#ifdef __WXUNIVERSAL__
#define wxUSE_MENUS_NATIVE 0
-#else // __WXMSW__
+#else // !__WXUNIVERSAL__
#define wxUSE_MENUS_NATIVE wxUSE_MENUS
-#endif // __WXUNIVERSAL__/__WXMSW__
+#endif // __WXUNIVERSAL__/!__WXUNIVERSAL__
// ----------------------------------------------------------------------------
// forward declarations
// global variables
// ----------------------------------------------------------------------------
-WXDLLEXPORT_DATA(extern wxWindowList) wxTopLevelWindows;
+extern WXDLLEXPORT_DATA(wxWindowList) wxTopLevelWindows;
// ----------------------------------------------------------------------------
// wxWindowBase is the base class for all GUI controls/widgets, this is the public
{
DoSetSizeHints(minW, minH, maxW, maxH, incW, incH);
}
-
+
void SetSizeHints( const wxSize& minSize,
const wxSize& maxSize=wxDefaultSize,
const wxSize& incSize=wxDefaultSize)
maxSize.x, maxSize.y,
incSize.x, incSize.y);
}
-
+
virtual void DoSetSizeHints(int minW, int minH,
int maxW = wxDefaultCoord, int maxH = wxDefaultCoord,
int incW = wxDefaultCoord, int incH = wxDefaultCoord );
// Override these methods for windows that have a virtual size
// independent of their client size. eg. the virtual area of a
- // wxScrolledWindow. Default is to alias VirtualSize to ClientSize.
+ // wxScrolledWindow.
virtual void DoSetVirtualSize( int x, int y );
- virtual wxSize DoGetVirtualSize() const; // { return m_virtualSize; }
-
+ virtual wxSize DoGetVirtualSize() const;
+
// Return the largest of ClientSize and BestSize (as determined
// by a sizer, interior children, or other means)
virtual bool Enable( bool enable = true );
bool Disable() { return Enable(false); }
- bool IsShown() const { return m_isShown; }
- bool IsEnabled() const { return m_isEnabled; }
+ virtual bool IsShown() const { return m_isShown; }
+ virtual bool IsEnabled() const { return m_isEnabled; }
// get/set window style (setting style won't update the window and so
// is only useful for internal usage)
// return the window which currently has the focus or NULL
static wxWindow *FindFocus();
-
+
static wxWindow *DoFindFocus() /* = 0: implement in derived classes */;
// can this window have focus?
// find window among the descendants of this one either by id or by
// name (return NULL if not found)
- wxWindow *FindWindow( long winid );
- wxWindow *FindWindow( const wxString& name );
+ wxWindow *FindWindow(long winid) const;
+ wxWindow *FindWindow(const wxString& name) const;
// Find a window among any window (all return NULL if not found)
static wxWindow *FindWindowById( long winid, const wxWindow *parent = NULL );
const wxRect *rect = (const wxRect *) NULL ) = 0;
// a less awkward wrapper for Refresh
- void RefreshRect(const wxRect& rect) { Refresh(true, &rect); }
+ void RefreshRect(const wxRect& rect, bool eraseBackground = true)
+ {
+ Refresh(eraseBackground, &rect);
+ }
// repaint all invalid areas of the window immediately
virtual void Update() { }
}
wxColour GetBackgroundColour() const;
+ // if the window shouldn't inherit its colour from the parent, override
+ // this function to return true
+ //
+ // this is currently only used by wxMSW and wxUniv but should be useful for
+ // the other ports too
+ virtual bool ProvidesBackground() const { return false; }
+
virtual bool SetForegroundColour(const wxColour& colour);
void SetOwnForegroundColour(const wxColour& colour)
{
virtual bool SetBackgroundStyle(wxBackgroundStyle style) { m_backgroundStyle = style; return true; }
virtual wxBackgroundStyle GetBackgroundStyle() const { return m_backgroundStyle; }
+ // returns true if the control has "transparent" areas such as a
+ // wxStaticText and wxCheckBox and the background should be adapted
+ // from a parent window
+ virtual bool HasTransparentBackground() { return false; }
+
// set/retrieve the font for the window (SetFont() returns true if the
// font really changed)
virtual bool SetFont(const wxFont& font) = 0;
// returns the main window of composite control; this is the window
// that FindFocus returns if the focus is in one of composite control's
// windows
- virtual wxWindow *GetMainWindowOfCompositeControl()
+ virtual wxWindow *GetMainWindowOfCompositeControl()
{ return (wxWindow*)this; }
// the window id - a number which uniquely identifies a window among
// ----------------------------------------------------------------------------
// include the declaration of the platform-specific class
-#if defined(__WXMSW__)
+#if defined(__WXPALMOS__)
+ #ifdef __WXUNIVERSAL__
+ #define wxWindowNative wxWindowPalm
+ #else // !wxUniv
+ #define wxWindowPalm wxWindow
+ #endif // wxUniv/!wxUniv
+ #include "wx/palmos/window.h"
+#elif defined(__WXMSW__)
#ifdef __WXUNIVERSAL__
#define wxWindowNative wxWindowMSW
#else // !wxUniv
// Find the wxWindow at the current mouse position, also returning the mouse
// position.
-WXDLLEXPORT extern wxWindow* wxFindWindowAtPointer(wxPoint& pt);
+extern WXDLLEXPORT wxWindow* wxFindWindowAtPointer(wxPoint& pt);
// Get the current mouse position.
-WXDLLEXPORT extern wxPoint wxGetMousePosition();
+extern WXDLLEXPORT wxPoint wxGetMousePosition();
// get the currently active window of this application or NULL
-WXDLLEXPORT extern wxWindow *wxGetActiveWindow();
+extern WXDLLEXPORT wxWindow *wxGetActiveWindow();
// get the (first) top level parent window
WXDLLEXPORT wxWindow* wxGetTopLevelParent(wxWindow *win);
{
public:
wxWindowAccessible(wxWindow* win): wxAccessible(win) { if (win) win->SetAccessible(this); }
- virtual ~wxWindowAccessible() {};
+ virtual ~wxWindowAccessible() {}
// Overridables