// a better solution should be found later...
#define wxUSE_MOUSEEVENT_HACK 0
-#include "wx/hash.h"
-
-// pseudo-template HWND <-> wxWindow hash table
-WX_DECLARE_HASH(wxWindow, wxWindowList, wxWinHashTable);
-
-extern wxWinHashTable *wxWinHandleHash;
-
// ---------------------------------------------------------------------------
// constants
// ---------------------------------------------------------------------------
-// FIXME does anybody use those? they're unused by wxWindows...
+// FIXME does anybody use those? they're unused by wxWidgets...
enum
{
wxKEY_SHIFT = 1,
class WXDLLEXPORT wxWindowMSW : public wxWindowBase
{
public:
- wxWindowMSW();
+ wxWindowMSW() { Init(); }
wxWindowMSW(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
- const wxString& name = wxPanelNameStr);
+ const wxString& name = wxPanelNameStr)
+ {
+ Init();
+ Create(parent, id, pos, size, style, name);
+ }
virtual ~wxWindowMSW();
WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; }
void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; }
- // return TRUE if the window is of a standard (i.e. not wxWindows') class
+ // return TRUE if the window is of a standard (i.e. not wxWidgets') class
//
// to understand why does it work, look at SubclassWin() code and comments
bool IsOfStandardClass() const { return m_oldWndProc != NULL; }
// MSW only: TRUE if this control is part of the main control
virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; };
- // translate wxWindows style flags for this control into the Windows style
+ // translate wxWidgets style flags for this control into the Windows style
// and optional extended style for the corresponding native control
//
// this is the function that should be overridden in the derived classes,
// but you will mostly use MSWGetCreateWindowFlags() below
virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const ;
- // get the MSW window flags corresponding to wxWindows ones
+ // get the MSW window flags corresponding to wxWidgets ones
//
// the functions returns the flags (WS_XXX) directly and puts the ext
// (WS_EX_XXX) flags into the provided pointer if not NULL
WXDWORD MSWGetCreateWindowFlags(WXDWORD *exflags = NULL) const
{ return MSWGetStyle(GetWindowStyle(), exflags); }
- // translate wxWindows coords into Windows ones suitable to be passed to
+ // translate wxWidgets coords into Windows ones suitable to be passed to
// ::CreateWindow()
//
// returns TRUE if non default coords are returned, FALSE otherwise
bool HandleActivate(int flag, bool minimized, WXHWND activate);
bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
- bool HandleSysCommand(WXWPARAM wParam, WXLPARAM lParam);
bool HandleCtlColor(WXHBRUSH *hBrush,
WXHDC hdc,
bool HandleSetCursor(WXHWND hWnd, short nHitTest, int mouseMsg);
// Window procedure
- virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
// Calls an appropriate default window procedure
- virtual long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXLRESULT MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
// message processing helpers
// list of disabled children before last call to our Disable()
wxWindowList *m_childrenDisabled;
+ // number of calls to Freeze() minus number of calls to Thaw()
+ unsigned int m_frozenness;
+
DECLARE_DYNAMIC_CLASS(wxWindowMSW)
DECLARE_NO_COPY_CLASS(wxWindowMSW)
DECLARE_EVENT_TABLE()
// ---------------------------------------------------------------------------
// kbd code translation
-WXDLLEXPORT int wxCharCodeMSWToWX(int keySym);
+WXDLLEXPORT int wxCharCodeMSWToWX(int keySym, WXLPARAM lParam = 0);
WXDLLEXPORT int wxCharCodeWXToMSW(int id, bool *IsVirtual);
// window creation helper class: before creating a new HWND, instantiate an
~wxWindowCreationHook();
};
+// ----------------------------------------------------------------------------
+// global objects
+// ----------------------------------------------------------------------------
+
+// notice that this hash must be defined after wxWindow declaration as it
+// needs to "see" its dtor and not just forward declaration
+#include "wx/hash.h"
+
+// pseudo-template HWND <-> wxWindow hash table
+#if WXWIN_COMPATIBILITY_2_4
+WX_DECLARE_HASH(wxWindow, wxWindowList, wxWinHashTable);
+#else
+WX_DECLARE_HASH(wxWindowMSW, wxWindowList, wxWinHashTable);
+#endif
+
+extern wxWinHashTable *wxWinHandleHash;
+
#endif
// _WX_WINDOW_H_