X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/868a28262c40a7428d3991ca8a034674814bdb0a..ea57084d103187771c0306a6e1684e32244d6101:/include/wx/gtk/window.h diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index a029a5dc16..a1fe81180e 100644 --- a/include/wx/gtk/window.h +++ b/include/wx/gtk/window.h @@ -2,9 +2,8 @@ // Name: window.h // Purpose: // Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -44,8 +43,15 @@ class wxSizer; class wxResourceTable; class wxItemResource; +class wxClientData; +class wxVoidClientData; class wxWindow; -class wxCanvas; + +//----------------------------------------------------------------------------- +// callback definition for inserting a window (internal) +//----------------------------------------------------------------------------- + +typedef void (*wxInsertChildFunction)( wxWindow*, wxWindow* ); //----------------------------------------------------------------------------- // global data @@ -55,22 +61,48 @@ extern const char *wxPanelNameStr; extern const wxSize wxDefaultSize; extern const wxPoint wxDefaultPosition; +//----------------------------------------------------------------------------- +// wxClientData +//----------------------------------------------------------------------------- + +class wxClientData +{ +public: + wxClientData() { } + virtual ~wxClientData() { } +}; + +//----------------------------------------------------------------------------- +// wxStringClientData +//----------------------------------------------------------------------------- + +class wxStringClientData: public wxClientData +{ +public: + wxStringClientData() { } + wxStringClientData( wxString &data ) { m_data = data; } + void SetData( wxString &data ) { m_data = data; } + wxString GetData() const { return m_data; } + +private: + wxString m_data; +}; + //----------------------------------------------------------------------------- // wxWindow //----------------------------------------------------------------------------- class wxWindow: public wxEvtHandler { + DECLARE_DYNAMIC_CLASS(wxWindow) + public: wxWindow(); - inline wxWindow(wxWindow *parent, wxWindowID id, + wxWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = wxPanelNameStr) - { - Create(parent, id, pos, size, style, name); - } + const wxString& name = wxPanelNameStr); bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, @@ -80,7 +112,7 @@ public: virtual bool LoadFromResource( wxWindow *parent, const wxString& resourceName, const wxResourceTable *table = (const wxResourceTable *) NULL); - virtual wxControl *CreateItem( const wxItemResource *childResource, + virtual wxControl *CreateItem(const wxItemResource* childResource, const wxItemResource* parentResource, const wxResourceTable *table = (const wxResourceTable *) NULL); bool Close( bool force = FALSE ); @@ -103,6 +135,14 @@ public: virtual void SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 ); + // Dialog units translations. Implemented in wincmn.cpp. + wxPoint ConvertPixelsToDialog(const wxPoint& pt) ; + wxPoint ConvertDialogToPixels(const wxPoint& pt) ; + inline wxSize ConvertPixelsToDialog(const wxSize& sz) + { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); } + inline wxSize ConvertDialogToPixels(const wxSize& sz) + { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); } + void OnSize( wxSizeEvent &event ); void OnIdle( wxIdleEvent& event ); @@ -110,7 +150,7 @@ public: virtual void Enable( bool enable ); virtual void MakeModal( bool modal ); virtual bool IsEnabled() const { return m_isEnabled; } - inline bool Enabled(void) const { return IsEnabled(); } + inline bool Enabled() const { return IsEnabled(); } virtual void SetFocus(); virtual bool OnClose(); @@ -121,7 +161,7 @@ public: int GetReturnCode(); wxWindow *GetParent() const { return m_parent; } - wxWindow *GetGrandParent(void) const + wxWindow *GetGrandParent() const { return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); } void SetParent( wxWindow *p ) { m_parent = p; } @@ -134,6 +174,12 @@ public: virtual wxValidator *GetValidator(); virtual void SetValidator( const wxValidator &validator ); + virtual void SetClientObject( wxClientData *data ); + virtual wxClientData *GetClientObject(); + + virtual void SetClientData( void *data ); + virtual void *GetClientData(); + virtual void SetAcceleratorTable( const wxAcceleratorTable& accel ); virtual wxAcceleratorTable *GetAcceleratorTable() { return &m_acceleratorTable; } @@ -158,33 +204,28 @@ public: virtual wxColour GetForegroundColour() const; virtual void SetForegroundColour( const wxColour &colour ); - virtual int GetCharHeight(void) const; - virtual int GetCharWidth(void) const; + virtual int GetCharHeight() const; + virtual int GetCharWidth() const; virtual void GetTextExtent( const wxString& string, int *x, int *y, int *descent = (int *) NULL, int *externalLeading = (int *) NULL, const wxFont *theFont = (const wxFont *) NULL, bool use16 = FALSE) const; - virtual void SetDefaultBackgroundColour( const wxColour& col ) - { m_defaultBackgroundColour = col; } - virtual wxColour GetDefaultBackgroundColour() const - { return m_defaultBackgroundColour; } - virtual void SetDefaultForegroundColour( const wxColour& col ) - { m_defaultForegroundColour = col; } - virtual wxColour GetDefaultForegroundColour() const - { return m_defaultForegroundColour; } - virtual void SetFont( const wxFont &font ); virtual wxFont *GetFont(); - // For backward compatibility + + // For backward compatibility inline virtual void SetButtonFont(const wxFont& font) { SetFont(font); } inline virtual void SetLabelFont(const wxFont& font) { SetFont(font); } inline virtual wxFont *GetLabelFont() { return GetFont(); }; inline virtual wxFont *GetButtonFont() { return GetFont(); }; + virtual void SetWindowStyleFlag( long flag ); virtual long GetWindowStyleFlag() const; + virtual void CaptureMouse(); virtual void ReleaseMouse(); + virtual void SetTitle( const wxString &title ); virtual wxString GetTitle() const; virtual void SetName( const wxString &name ); @@ -195,14 +236,16 @@ public: virtual bool IsShown() const; - virtual void Raise(void); - virtual void Lower(void); + virtual void Raise(); + virtual void Lower(); virtual bool IsRetained(); virtual wxWindow *FindWindow( long id ); virtual wxWindow *FindWindow( const wxString& name ); + void AllowDoubleClick( bool WXUNUSED(allow) ) {}; void SetDoubleClick( bool WXUNUSED(allow) ) {}; + virtual void ClientToScreen( int *x, int *y ); virtual void ScreenToClient( int *x, int *y ); @@ -226,19 +269,32 @@ public: virtual void ScrollWindow( int dx, int dy, const wxRect* rect = (wxRect *) NULL ); virtual bool AcceptsFocus() const; + void UpdateWindowUI(); -public: // cannot get private going yet - - virtual GtkWidget* GetConnectWidget(void); - virtual bool IsOwnGtkWindow( GdkWindow *window ); + // implementation + + void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos, + const wxSize &size, long style, const wxString &name ); + void PostCreation(); + virtual GtkWidget *GetConnectWidget(); + virtual bool IsOwnGtkWindow( GdkWindow *window ); + void ConnectWidget( GtkWidget *widget ); + void ConnectDnDWidget( GtkWidget *widget ); + void DisconnectDnDWidget( GtkWidget *widget ); + + bool HasVMT(); + + virtual void ImplementSetSize(); + virtual void ImplementSetPosition(); + + virtual wxPoint GetClientAreaOrigin() const; + virtual void AdjustForParentClientOrigin( int& x, int& y, int sizeFlags ); - void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos, - const wxSize &size, long style, const wxString &name ); - void PostCreation(); - bool HasVMT(); - virtual void ImplementSetSize(); - virtual void ImplementSetPosition(); + GtkStyle *GetWidgetStyle(); + void SetWidgetStyle(); + virtual void ApplyWidgetStyle(); + wxWindow *m_parent; wxList m_children; @@ -249,20 +305,20 @@ public: // cannot get private going yet int m_retCode; wxEvtHandler *m_eventHandler; wxValidator *m_windowValidator; - wxDropTarget *m_pDropTarget; + wxDropTarget *m_dropTarget; wxWindowID m_windowId; wxCursor *m_cursor; wxFont m_font; wxColour m_backgroundColour; - wxColour m_defaultBackgroundColour; wxColour m_foregroundColour ; - wxColour m_defaultForegroundColour; wxRegion m_updateRegion; long m_windowStyle; bool m_isShown; bool m_isEnabled; wxString m_windowName; wxAcceleratorTable m_acceleratorTable; + wxClientData *m_clientObject; + void *m_clientData; GtkWidget *m_widget; GtkWidget *m_wxwindow; @@ -271,10 +327,14 @@ public: // cannot get private going yet float m_oldVerticalPos; bool m_needParent; bool m_hasScrolling; - bool m_hasOwnStyle; + bool m_isScrolling; bool m_hasVMT; bool m_sizeSet; bool m_resizing; + GdkGC *m_scrollGC; + GtkStyle *m_widgetStyle; + + wxInsertChildFunction m_insertCallback; public: @@ -312,7 +372,7 @@ public: virtual void GetClientSizeConstraint(int *w, int *h) const ; virtual void GetPositionConstraint(int *x, int *y) const ; - DECLARE_DYNAMIC_CLASS(wxWindow) +private: DECLARE_EVENT_TABLE() };