// 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_
#define _WX_UNIV_WINDOW_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "univwindow.h"
#endif
class WXDLLEXPORT wxRenderer;
class WXDLLEXPORT wxScrollBar;
-// ----------------------------------------------------------------------------
-// constants
-// ----------------------------------------------------------------------------
-
-// control state flags used in wxRenderer and wxColourScheme
-enum
-{
- wxCONTROL_DISABLED = 0x00000001, // control is disabled
- wxCONTROL_FOCUSED = 0x00000002, // currently has keyboard focus
- wxCONTROL_PRESSED = 0x00000004, // (button) is pressed
- wxCONTROL_ISDEFAULT = 0x00000008, // only applies to the buttons
- wxCONTROL_ISSUBMENU = wxCONTROL_ISDEFAULT, // only for menu items
- wxCONTROL_CURRENT = 0x00000010, // mouse is currently over the control
- wxCONTROL_SELECTED = 0x00000020, // selected item in e.g. listbox
- wxCONTROL_CHECKED = 0x00000040, // (check/radio button) is checked
- wxCONTROL_CHECKABLE = 0x00000080, // (menu) item can be checked
-
- wxCONTROL_FLAGS_MASK = 0x000000ff,
-
- // this is a pseudo flag not used directly by wxRenderer but rather by some
- // controls internally
- wxCONTROL_DIRTY = 0x80000000
-};
-
#ifdef __WXX11__
#define wxUSE_TWO_WINDOWS 1
#else
// controls only
virtual bool IsCanvasWindow() const { return FALSE; }
- // return TRUE if this a container window which contains the other items:
- // e.g, a listbox, listctrl, treectrl, ... and FALSE if it is a monolithic
- // 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
// 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() { return FALSE; }
+ 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)
// we refresh the window when it is dis/enabled
virtual bool Enable(bool enable = TRUE);
+ // should we use the standard control colours or not?
+ virtual bool ShouldInheritColours() const { return false; }
+
protected:
// common part of all ctors
void Init();
// event handlers
void OnSize(wxSizeEvent& event);
- void OnNcPaint(wxPaintEvent& event);
+ void OnNcPaint(wxNcPaintEvent& event);
void OnPaint(wxPaintEvent& event);
void OnErase(wxEraseEvent& event);
#ifdef __WXMSW__
// override MSWWindowProc() to process WM_NCHITTEST
- long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
#endif // __WXMSW__
private: