X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d139c3a84be966e6989b35ed6fc31e2580352c2b..f525dc35f4b2c07fb7efb53a85779a2f3a3d89f5:/include/wx/cocoa/window.h diff --git a/include/wx/cocoa/window.h b/include/wx/cocoa/window.h index 44865f4d20..30e1a12dda 100644 --- a/include/wx/cocoa/window.h +++ b/include/wx/cocoa/window.h @@ -19,6 +19,7 @@ #endif //def __OBJC__ class wxWindowCocoaHider; +class wxWindowCocoaScroller; // ======================================================================== // wxWindowCocoa @@ -29,6 +30,7 @@ class WXDLLEXPORT wxWindowCocoa: public wxWindowBase, protected wxCocoaNSView DECLARE_NO_COPY_CLASS(wxWindowCocoa) DECLARE_EVENT_TABLE() friend wxWindow *wxWindowBase::GetCapture(); + friend class wxWindowCocoaScroller; // ------------------------------------------------------------------------ // initialization // ------------------------------------------------------------------------ @@ -63,9 +65,21 @@ public: WX_NSView GetNSViewForSuperview() const; // Returns the NSView that may be hidden/is being hidden WX_NSView GetNSViewForHiding() const; + // Returns the NSView for non-client drawing + virtual WX_NSView GetNonClientNSView() { return GetNSViewForSuperview(); } + // Add/remove children void CocoaAddChild(wxWindowCocoa *child); void CocoaRemoveFromParent(void); protected: + // enable==false: disables the control + // enable==true: enables the control IF it should be enabled + bool EnableSelfAndChildren(bool enable); + // actually enable/disable the cocoa control, overridden by subclasses + virtual void CocoaSetEnabled(bool enable) { } + // Reflects the state for THIS window (ignoring disables by parents) + bool m_shouldBeEnabled; + + void CocoaCreateNSScrollView(); void InitMouseEvent(wxMouseEvent &event, WX_NSEvent cocoaEvent); virtual void Cocoa_FrameChanged(void); virtual bool Cocoa_drawRect(const NSRect &rect); @@ -84,6 +98,7 @@ protected: void SetNSView(WX_NSView cocoaNSView); WX_NSView m_cocoaNSView; wxWindowCocoaHider *m_cocoaHider; + wxWindowCocoaScroller *m_cocoaScroller; bool m_isInPaint; static wxWindow *sm_capturedWindow; virtual void CocoaReplaceView(WX_NSView oldView, WX_NSView newView); @@ -128,6 +143,7 @@ public: virtual int GetScrollThumb(int orient) const; virtual int GetScrollRange(int orient) const; virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL); + virtual void DoSetVirtualSize(int x, int y); // Get the private handle (platform-dependent) virtual WXWidget GetHandle() const; // Convert client to screen coordinates @@ -144,6 +160,10 @@ public: // Get/set client (application-useable) size virtual void DoGetClientSize(int *width, int *height) const; virtual void DoSetClientSize(int width, int size); + // Set the size of the wxWindow (the contentView of an NSWindow) + // wxTopLevelWindow will override this and set the NSWindow size + // such that the contentView will be this size + virtual void CocoaSetWxWindowSize(int width, int height); // Set overall size and position virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); virtual void DoMoveWindow(int x, int y, int width, int height); @@ -155,6 +175,7 @@ public: // NOTE: typically Close() is not virtual, but we want this for Cocoa virtual bool Close( bool force = false ); virtual bool Show( bool show = true ); + virtual bool Enable( bool enable = true ); }; #endif // __WX_COCOA_WINDOW_H__