// Created: 06.08.00
// RCS-ID: $Id$
// Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_UNIV_WINDOW_H_
wxCONTROL_DIRTY = 0x80000000
};
+#ifdef __WXX11__
+#define wxUSE_TWO_WINDOWS 1
+#else
+#define wxUSE_TWO_WINDOWS 0
+#endif
+
// ----------------------------------------------------------------------------
// wxWindow
// ----------------------------------------------------------------------------
#define wxWindowNative wxWindowGTK
#elif defined(__WXMGL__)
#define wxWindowNative wxWindowMGL
+#elif defined(__WXX11__)
+#define wxWindowNative wxWindowX11
+#elif defined(__WXMAC__)
+#define wxWindowNative wxWindowMac
#endif
class WXDLLEXPORT wxWindow : public wxWindowNative
// control (e.g. a button, checkbox, ...)
virtual bool IsContainerWindow() const { return FALSE; }
+ // 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; }
+
+ // to be used with function above: transparent windows get
+ // their background from parents that return TRUE here,
+ // so this is mostly for wxPanel, wxTopLevelWindow etc.
+ virtual bool ProvidesBackground() const { return FALSE; }
+
// return TRUE if this control can be highlighted when the mouse is over
// it (the theme decides itself whether it is really highlighted or not)
virtual bool CanBeHighlighted() const { return FALSE; }
bool UseFgCol() const { return m_hasFgCol; }
bool UseFont() const { return m_hasFont; }
+ // return TRUE if this window serves as a container for the other windows
+ // only and doesn't get any input itself
+ virtual bool IsStaticBox() const { return FALSE; }
+
// returns the (low level) renderer to use for drawing the control by
// querying the current theme
wxRenderer *GetRenderer() const { return m_renderer; }
// erase part of the control
virtual void EraseBackground(wxDC& dc, const wxRect& rect);
-
+
// overridden base class methods
// -----------------------------
// we refresh the window when it is dis/enabled
virtual bool Enable(bool enable = TRUE);
- // remember that the font/colour was changed
- virtual bool SetBackgroundColour(const wxColour& colour);
- virtual bool SetForegroundColour(const wxColour& colour);
- virtual bool SetFont(const wxFont& font);
-
- // our Capture/ReleaseMouse() maintains the stack of windows which had
- // captured the mouse and when ReleaseMouse() is called, the mouse freed
- // only if the stack is empty, otherwise it is captured back by the window
- // on top of the stack
- virtual void CaptureMouse();
- virtual void ReleaseMouse();
-
protected:
// common part of all ctors
void Init();
// the renderer we use
wxRenderer *m_renderer;
-
+
// background bitmap info
wxBitmap m_bitmapBg;
int m_alignBgBitmap;
wxStretch m_stretchBgBitmap;
+
+ // old size
+ wxSize m_oldSize;
- // more flags
- bool m_isCurrent:1; // is the mouse currently inside the window?
- bool m_hasBgCol:1; // was the bg colour explicitly changed by user?
- bool m_hasFgCol:1; // fg
- bool m_hasFont:1; // font
+ // is the mouse currently inside the window?
+ bool m_isCurrent:1;
+
+#ifdef __WXMSW__
+ // override MSWWindowProc() to process WM_NCHITTEST
+ long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+#endif // __WXMSW__
private:
// the window scrollbars
wxScrollBar *m_scrollbarHorz,
*m_scrollbarVert;
- // the stack of windows which have captured the mouse
- static struct WXDLLEXPORT wxWindowNext *ms_winCaptureNext;
-
#if wxUSE_MENUS
// the current modal event loop for the popup menu we show or NULL
static wxEventLoop *ms_evtLoopPopup;