// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WINDOW_H_
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;
};
+// Clash with Windows headers
+#ifdef GetCharWidth
+#undef GetCharWidth
+#endif
+
+#ifdef FindWindow
+#undef FindWindow
+#endif
+
class WXDLLEXPORT wxWindow : public wxEvtHandler
{
DECLARE_ABSTRACT_CLASS(wxWindow)
wxDropTarget *GetDropTarget() const { return m_pDropTarget; }
#endif
+ // 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; }
+
// 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 OnEraseBackground(wxEraseEvent& event);
void OnChar(wxKeyEvent& event);
- void OnPaint(wxPaintEvent& event);
void OnIdle(wxIdleEvent& event);
// Does this window want to accept keyboard focus?
virtual bool AcceptsFocus() const;
- virtual void PrepareDC( wxDC &dc ) {};
+ virtual void PrepareDC( wxDC& WXUNUSED(dc) ) {};
public:
////////////////////////////////////////////////////////////////////////
//// IMPLEMENTATION
-
+
// For implementation purposes - sometimes decorations make the client area
// smaller
virtual wxPoint GetClientAreaOrigin() const;
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);
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)
+ wxToolTip *m_tooltip;
+
DECLARE_EVENT_TABLE()
};
inline void wxWindow::SetId(int id) { m_windowId = id; }
inline wxWindow *wxWindow::GetParent() const { return m_windowParent; }
inline void wxWindow::SetParent(wxWindow *p) { m_windowParent = p; }
-inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : NULL); }
+inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : (wxWindow*) NULL); }
inline wxList& wxWindow::GetChildren() const { return (wxList&) *m_children; }
inline wxFont& wxWindow::GetFont() const { return (wxFont&) m_windowFont; }
inline wxString wxWindow::GetName() const { return m_windowName; }