1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/mac/carbon/drawer.h
3// Purpose:     Drawer child window class.
4//              Drawer windows appear under their parent window and
5//              behave like a drawer, opening and closing to reveal
6//              content that does not need to be visible at all times.
7// Author:      Jason Bagley
8// Modified by:
9// Created:     2004-30-01
10// RCS-ID:      $Id: drawer.h 42077 2006-10-17 14:44:52Z ABX $
11// Copyright:   (c) Jason Bagley; Art & Logic, Inc.
12// Licence:     wxWindows licence
13/////////////////////////////////////////////////////////////////////////////
14
15#ifndef _WX_DRAWERWINDOW_H_
16#define _WX_DRAWERWINDOW_H_
17
18#include "wx/toplevel.h"
19
20//
21// NB:  This is currently a private undocumented class -
22// it is stable, but the API is not and will change in the
23// near future
24//
25
26#if ( MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2 )
27
28class WXDLLEXPORT wxDrawerWindow : public wxTopLevelWindow
29{
30    DECLARE_DYNAMIC_CLASS(wxDrawerWindow)
31
32public:
33
34    wxDrawerWindow();
35
36    wxDrawerWindow(wxWindow* parent,
37                   wxWindowID id,
38                   const wxString& title,
39                   wxSize size = wxDefaultSize,
40                   wxDirection edge = wxLEFT,
41                   const wxString& name = wxT("drawerwindow"))
42    {
43        this->Create(parent, id, title, size, edge, name);
44    }
45
46    virtual ~wxDrawerWindow();
47
48    // Create a drawer window.
49    // If parent is NULL, create as a tool window.
50    // If parent is not NULL, then wxTopLevelWindow::Attach this window to parent.
51    bool Create(wxWindow *parent,
52     wxWindowID id,
53     const wxString& title,
54     wxSize size = wxDefaultSize,
55     wxDirection edge = wxLEFT,
56     const wxString& name = wxFrameNameStr);
57
58    bool Open(bool show = true); // open or close the drawer, possibility for async param, i.e. animate
59    bool Close() { return this->Open(false); }
60    bool IsOpen() const;
61
62    // Set the edge of the parent where the drawer attaches.
63    bool SetPreferredEdge(wxDirection edge);
64    wxDirection GetPreferredEdge() const;
65    wxDirection GetCurrentEdge() const; // not necessarily the preferred, due to screen constraints
66};
67
68#endif // defined( __WXMAC__ ) && TARGET_API_MAC_OSX && ( MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_2 )
69
70#endif
71    // _WX_DRAWERWINDOW_H_
72