// 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,
virtual bool Show(bool bShow = TRUE);
virtual bool Enable(bool bEnable = TRUE);
virtual void SetFocus(void);
+ virtual void SetFocusFromKbd(void);
virtual bool Reparent(wxWindow* pNewParent);
virtual void WarpPointer( int x
,int y
virtual void Refresh( bool bEraseBackground = TRUE
,const wxRect* pRect = (const wxRect *)NULL
);
- virtual void Clear(void);
virtual void Freeze(void);
virtual void Update(void);
virtual void Thaw(void);
// Accept files for dragging
virtual void DragAcceptFiles(bool bAccept);
-#if WXWIN_COMPATIBILITY
- // Set/get scroll attributes
- virtual void SetScrollRange( int nOrient
- ,int nRange
- ,bool bRefresh = TRUE
- );
- virtual void SetScrollPage( int nOrient
- ,int nPage
- ,bool bRefresh = TRUE
- );
- virtual int OldGetScrollRange(int nOrient) const;
- virtual int GetScrollPage(int nOrient) const;
-
- //
- // event handlers
- //
- // Handle a control command
- virtual void OnCommand( wxWindow& rWin
- ,wxCommandEvent& rEvent
- );
-
- // Override to define new behaviour for default action (e.g. double
- // clicking on a listbox)
- virtual void OnDefaultAction(wxControl* WXUNUSED(pInitiatingItem)) { }
-#endif // WXWIN_COMPATIBILITY
-
-#if wxUSE_CARET && WXWIN_COMPATIBILITY
- void CreateCaret( int nWidth
- ,int nHeight
- );
- void CreateCaret(const wxBitmap* pBitmap);
- void DestroyCaret(void);
- void ShowCaret(bool bShow);
- void SetCaretPos( int nX
- ,int nY
- );
- void GetCaretPos( int* pX
- ,int* pY
- ) const;
-#endif // wxUSE_CARET
-
#ifndef __WXUNIVERSAL__
// Native resource loading (implemented in src/os2/nativdlg.cpp)
// FIXME: should they really be all virtual?
void OnIdle(wxIdleEvent& rEvent);
public:
+
// For implementation purposes - sometimes decorations make the client area
// smaller
virtual wxPoint GetClientAreaOrigin(void) const;
WXFARPROC OS2GetOldWndProc(void) const { return m_fnOldWndProc; }
void OS2SetOldWndProc(WXFARPROC fnProc) { m_fnOldWndProc = fnProc; }
+ //
+ // Return TRUE if the window is of a standard (i.e. not wxWidgets') class
+ //
+ bool IsOfStandardClass(void) const { return m_fnOldWndProc != NULL; }
wxWindow* FindItem(long lId) const;
wxWindow* FindItemByHWND( WXHWND hWnd
,bool bControlOnly = FALSE
) const;
- // Make a Windows extended style from the given wxWindows window style ?? applicable to OS/2??
+ // Make a Windows extended style from the given wxWidgets window style ?? applicable to OS/2??
static WXDWORD MakeExtendedStyle( long lStyle
,bool bEliminateBorders = TRUE
);
- // Determine whether 3D effects are wanted
- WXDWORD Determine3DEffects( WXDWORD dwDefaultBorderStyle
- ,bool* pbWant3D
- ) const;
// PM 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 PM style
+ // translate wxWidgets style flags for this control into the PM style
// and optional extended style for the corresponding native control
//
// this is the function that should be overridden in the derived classes,
,WXDWORD* pdwExstyle = 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
{ return OS2GetStyle(GetWindowStyle(), pdwExflags); }
+ // get the HWND to be used as parent of this window with CreateWindow()
+ virtual WXHWND OS2GetParent(void) const;
+
// returns TRUE if the window has been created
bool OS2Create( PSZ zClass
,const char* zTitle
,WXWORD nId
);
-#if WXWIN_COMPATIBILITY
- wxObject* GetChild(int nNumber) const;
- virtual void OS2DeviceToLogical( float* pfX
- ,float* pfY
- ) const;
-#endif // WXWIN_COMPATIBILITY
-
#ifndef __WXUNIVERSAL__
// Create an appropriate wxWindow from a HWND
virtual wxWindow* CreateWindowFromHWND( wxWindow* pParent
virtual bool OS2OnDrawItem( int nId
,WXDRAWITEMSTRUCT* pItem
);
- virtual bool OS2OnMeasureItem( int nId
+ virtual long OS2OnMeasureItem( int nId
,WXMEASUREITEMSTRUCT* pItem
);
+ virtual void OnPaint(wxPaintEvent& rEvent);
+
// the rest are not virtual
bool HandleCreate( WXLPCREATESTRUCT vCs
,bool* pMayCreate
bool HandleSysCommand( WXWPARAM wParam
,WXLPARAM lParam
);
- bool HandlePaletteChanged();
+ bool HandlePaletteChanged(void);
+ bool HandleQueryNewPalette(void);
bool HandleSysColorChange(void);
+ bool HandleDisplayChange(void);
+ bool HandleCaptureChanged(WXHWND hBainedCapture);
+
bool HandleCtlColor(WXHBRUSH* hBrush);
bool HandleSetFocus(WXHWND hWnd);
bool HandleKillFocus(WXHWND hWnd);
,int nY
,WXUINT uFlags
);
- bool HandleChar( WXDWORD wParam
+ bool HandleChar( WXWPARAM wParam
,WXLPARAM lParam
,bool bIsASCII = FALSE
);
- bool HandleKeyDown( WXWORD wParam
+ bool HandleKeyDown( WXWPARAM wParam
,WXLPARAM lParam
);
- bool HandleKeyUp( WXDWORD wParam
+ bool HandleKeyUp( WXWPARAM wParam
,WXLPARAM lParam
);
bool HandleQueryDragIcon(WXHICON* phIcon);
,WXLPARAM lParam
);
-#if WXWIN_COMPATIBILITY
- void SetShowing(bool bShow) { (void)Show(show); }
- bool IsUserEnabled(void) const { return IsEnabled(); }
-#endif // WXWIN_COMPATIBILITY
-
// Responds to colour changes: passes event on to children.
void OnSysColourChanged(wxSysColourChangedEvent& rEvent);
bool m_bUseCtl3D:1; // Using CTL3D for this control
bool m_bBackgroundTransparent:1;
bool m_bMouseInWindow:1;
- bool m_bDoubleClickAllowed:1;
+ bool m_bLastKeydownProcessed:1;
bool m_bWinCaptured:1;
WXDWORD m_dwExStyle;
,WXLPARAM* pResult
);
// the helper functions used by HandleChar/KeyXXX methods
- wxKeyEvent CreateKeyEvent(wxEventType evType, int id, WXLPARAM lp) const;
+ wxKeyEvent CreateKeyEvent( wxEventType evType
+ ,int nId
+ ,WXLPARAM lParam = 0
+ ,WXWPARAM wParam = 0
+ ) const;
+ wxWindowList* m_pChildrenDisabled;
+ HWND m_hWndScrollBarHorz;
+ HWND m_hWndScrollBarVert;
+ SWP m_vWinSwp;
DECLARE_DYNAMIC_CLASS(wxWindowOS2);
DECLARE_NO_COPY_CLASS(wxWindowOS2)
DECLARE_EVENT_TABLE()
-private:
- HWND m_hWndScrollBarHorz;
- HWND m_hWndScrollBarVert;
- SWP m_vWinSwp;
-
+ //
// Virtual function hiding supression
+ //
inline virtual bool Reparent(wxWindowBase* pNewParent)
- { return(wxWindowBase::Reparent(pNewParent));};
+ { return(wxWindowBase::Reparent(pNewParent));}
}; // end of wxWindow
class wxWindowCreationHook
WXDLLEXPORT int wxCharCodeWXToOS2( int nId
,bool* pbIsVirtual
);
+
+// ----------------------------------------------------------------------------
+// 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
+WX_DECLARE_HASH(wxWindowOS2, wxWindowList, wxWinHashTable);
+
+extern wxWinHashTable *wxWinHandleHash;
+
#endif
// _WX_WINDOW_H_