]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/drawer.h
wxDrawerWindow - [ 909351 ] Drawer window for OS X Carbon - somewhat heavily modified
[wxWidgets.git] / include / wx / mac / carbon / drawer.h
diff --git a/include/wx/mac/carbon/drawer.h b/include/wx/mac/carbon/drawer.h
new file mode 100644 (file)
index 0000000..11fe425
--- /dev/null
@@ -0,0 +1,68 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        drawer.h
+// Purpose:     Drawer child window class.
+//              Drawer windows appear under their parent window and
+//              behave like a drawer, opening and closing to reveal
+//              content that does not need to be visible at all times.
+// Author:      Jason Bagley
+// Modified by:
+// Created:     2004-30-01
+// RCS-ID:      $Id$
+// Copyright:   (c) Jason Bagley; Art & Logic, Inc.
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_DRAWERWINDOW_H_
+#define _WX_DRAWERWINDOW_H_
+
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+#pragma interface "drawer.h"
+#endif
+
+#include "wx/toplevel.h"
+
+#if ( MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2 )
+
+class WXDLLEXPORT wxDrawerWindow : public wxTopLevelWindow
+{
+    DECLARE_DYNAMIC_CLASS(wxDrawerWindow)
+    
+public:
+
+    wxDrawerWindow();
+    
+    wxDrawerWindow(wxWindow* parent,
+     wxWindowID id,
+     const wxString& title,
+     wxSize size = wxDefaultSize,
+     wxDirection edge = wxLEFT,
+     const wxString& name = "drawerwindow")
+    {
+        this->Create(parent, id, title, size, edge, name);
+    }
+     
+    ~wxDrawerWindow();
+    
+    // Create a drawer window. 
+    // If parent is NULL, create as a tool window.
+    // If parent is not NULL, then wxTopLevelWindow::Attach this window to parent. 
+    bool Create(wxWindow *parent,
+     wxWindowID id,
+     const wxString& title,
+     wxSize size = wxDefaultSize,
+     wxDirection edge = wxLEFT,
+     const wxString& name = wxFrameNameStr);
+
+    bool Open(bool show = true); // open or close the drawer, possibility for async param, i.e. animate
+    bool Close() { return this->Open(false); }
+    bool IsOpen() const;
+    
+    // Set the edge of the parent where the drawer attaches.
+    bool SetPreferredEdge(wxDirection edge);
+    wxDirection GetPreferredEdge() const;
+    wxDirection GetCurrentEdge() const;        // not necessarily the preferred, due to screen constraints
+};
+
+#endif // defined( __WXMAC__ ) && TARGET_API_MAC_OSX && ( MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2 )
+
+#endif // _WX_DRAWERWINDOW_H_