// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WINDOW_H_
#include "wx/list.h"
#include "wx/region.h"
#include "wx/msw/accel.h"
+#include "wx/intl.h"
#define wxKEY_SHIFT 1
#define wxKEY_CTRL 2
class WXDLLEXPORT wxIcon;
class WXDLLEXPORT wxDC;
class WXDLLEXPORT wxValidator;
+class WXDLLEXPORT wxToolTip;
#if wxUSE_DRAG_AND_DROP
class WXDLLEXPORT wxDropTarget;
wxStringClientData( wxString &data ) { m_data = data; }
void SetData( wxString &data ) { m_data = data; }
wxString GetData() const { return m_data; }
-
+
private:
wxString m_data;
};
wxDropTarget *GetDropTarget() const { return m_pDropTarget; }
#endif
+#if wxUSE_TOOLTIPS
+ // tooltips
+ // create a tooltip with this text
+ void SetToolTip(const wxString &tip);
+ // pointer may be NULL to remove the tooltip
+ void SetToolTip(wxToolTip *tooltip);
+ // get the current tooltip (may return NULL if none)
+ wxToolTip* GetToolTip() const { return m_tooltip; }
+
+#endif // wxUSE_TOOLTIPS
+
// Accept files for dragging
virtual void DragAcceptFiles(bool accept);
// be searched)
void PushEventHandler(wxEvtHandler *handler) ;
wxEvtHandler *PopEventHandler(bool deleteHandler = FALSE) ;
-
+
// Close the window by calling OnClose, posting a deletion
virtual bool Close(bool force = FALSE);
void UpdateWindowUI();
void OnEraseBackground(wxEraseEvent& event);
- void OnChar(wxKeyEvent& event);
void OnKeyDown(wxKeyEvent& event);
void OnKeyUp(wxKeyEvent& event);
void OnPaint(wxPaintEvent& event);
+ void OnChar(wxKeyEvent& event);
void OnIdle(wxIdleEvent& event);
// Does this window want to accept keyboard focus?
public:
////////////////////////////////////////////////////////////////////////
//// IMPLEMENTATION
-
+
// For implementation purposes - sometimes decorations make the client area
// smaller
virtual wxPoint GetClientAreaOrigin() const;
virtual void MSWOnMouseEnter(int x, int y, WXUINT flags);
virtual void MSWOnMouseLeave(int x, int y, WXUINT flags);
- virtual void MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
- virtual void MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
- virtual void MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
+ // These return TRUE if an event handler was found, FALSE otherwise (not processed)
+ virtual bool MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
+ virtual bool MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
+ virtual bool MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE);
virtual bool MSWOnActivate(int flag, bool minimized, WXHWND activate);
virtual long MSWOnMDIActivate(long flag, WXHWND activate, WXHWND deactivate);
// Detach "Window" menu from menu bar so it doesn't get deleted
void MSWDetachWindowMenu();
-
+
inline WXFARPROC MSWGetOldWndProc() const;
inline void MSWSetOldWndProc(WXFARPROC proc);
// Define for each class of dialog and control
virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
- WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
inline void SetShowing(bool show);
inline bool IsUserEnabled() const;
protected:
wxAcceleratorTable m_acceleratorTable;
int m_windowId;
- long m_windowStyle; // Store the window's style
- wxEvtHandler * m_windowEventHandler; // Usually is 'this'
+ long m_windowStyle; // Store the window's style
+ wxEvtHandler * m_windowEventHandler; // Usually is 'this'
wxLayoutConstraints * m_constraints; // Constraints for this window
wxList * m_constraintsInvolvedIn; // List of constraints we're involved in
wxSizer * m_windowSizer; // Window's top-level sizer (if any)
WXFARPROC m_oldWndProc;
bool m_useCtl3D; // Using CTL3D for this control
- bool m_inOnSize; // Protection against OnSize reentry
+ bool m_inOnSize; // Protection against OnSize reentry
#ifndef _WX_WIN32__
// Pointer to global memory, for EDIT controls that need
// special treatment to reduce USER area consumption.
#endif //USE_DRAG_AND_DROP
public:
- WXHWND m_hWnd; // MS Windows window handle
+ WXHWND m_hWnd; // MS Windows window handle
WXUINT m_lastMsg;
WXWPARAM m_lastWParam;
WXLPARAM m_lastLParam;
// common part of all ctors
void Init();
+ // the associated tooltip (may be NULL if none)
+#if wxUSE_TOOLTIPS
+ wxToolTip *m_tooltip;
+#endif // tooltips
+
DECLARE_EVENT_TABLE()
};