c3e843579800788945c6a6dc4ce3f6bc28265536
[framework/uifw/elementary.git] / src / lib / elm_panel.h
1    /**
2     * @defgroup Panel Panel
3     *
4     * @image html img/widget/panel/preview-00.png
5     * @image latex img/widget/panel/preview-00.eps
6     *
7     * @brief A panel is a type of animated container that contains subobjects.
8     * It can be expanded or contracted by clicking the button on it's edge.
9     *
10     * Orientations are as follows:
11     * @li ELM_PANEL_ORIENT_TOP
12     * @li ELM_PANEL_ORIENT_LEFT
13     * @li ELM_PANEL_ORIENT_RIGHT
14     *
15     * Default contents parts of the panel widget that you can use for are:
16     * @li "default" - A content of the panel
17     *
18     * @ref tutorial_panel shows one way to use this widget.
19     * @{
20     */
21    typedef enum _Elm_Panel_Orient
22      {
23         ELM_PANEL_ORIENT_TOP, /**< Panel (dis)appears from the top */
24         ELM_PANEL_ORIENT_BOTTOM, /**< Not implemented */
25         ELM_PANEL_ORIENT_LEFT, /**< Panel (dis)appears from the left */
26         ELM_PANEL_ORIENT_RIGHT, /**< Panel (dis)appears from the right */
27      } Elm_Panel_Orient;
28
29    /**
30     * @brief Adds a panel object
31     *
32     * @param parent The parent object
33     *
34     * @return The panel object, or NULL on failure
35     */
36    EAPI Evas_Object          *elm_panel_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
37
38    /**
39     * @brief Sets the orientation of the panel
40     *
41     * @param parent The parent object
42     * @param orient The panel orientation. Can be one of the following:
43     * @li ELM_PANEL_ORIENT_TOP
44     * @li ELM_PANEL_ORIENT_LEFT
45     * @li ELM_PANEL_ORIENT_RIGHT
46     *
47     * Sets from where the panel will (dis)appear.
48     */
49    EAPI void                  elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient) EINA_ARG_NONNULL(1);
50
51    /**
52     * @brief Get the orientation of the panel.
53     *
54     * @param obj The panel object
55     * @return The Elm_Panel_Orient, or ELM_PANEL_ORIENT_LEFT on failure.
56     */
57    EAPI Elm_Panel_Orient      elm_panel_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
58
59    /**
60     * @brief Set the content of the panel.
61     *
62     * @param obj The panel object
63     * @param content The panel content
64     *
65     * Once the content object is set, a previously set one will be deleted.
66     * If you want to keep that old content object, use the
67     * elm_panel_content_unset() function.
68     *
69     * @deprecated use elm_object_content_set() instead
70     *
71     */
72    EINA_DEPRECATED EAPI void                  elm_panel_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
73
74    /**
75     * @brief Get the content of the panel.
76     *
77     * @param obj The panel object
78     * @return The content that is being used
79     *
80     * Return the content object which is set for this widget.
81     *
82     * @see elm_panel_content_set()
83     *
84     * @deprecated use elm_object_content_get() instead
85     *
86     */
87    EINA_DEPRECATED EAPI Evas_Object          *elm_panel_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
88
89    /**
90     * @brief Unset the content of the panel.
91     *
92     * @param obj The panel object
93     * @return The content that was being used
94     *
95     * Unparent and return the content object which was set for this widget.
96     *
97     * @see elm_panel_content_set()
98     *
99     * @deprecated use elm_object_content_unset() instead
100     *
101     */
102    EINA_DEPRECATED EAPI Evas_Object          *elm_panel_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
103
104    /**
105     * @brief Set the state of the panel.
106     *
107     * @param obj The panel object
108     * @param hidden If true, the panel will run the animation to contract
109     */
110    EAPI void                  elm_panel_hidden_set(Evas_Object *obj, Eina_Bool hidden) EINA_ARG_NONNULL(1);
111
112    /**
113     * @brief Get the state of the panel.
114     *
115     * @param obj The panel object
116     * @param hidden If true, the panel is in the "hide" state
117     */
118    EAPI Eina_Bool             elm_panel_hidden_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
119
120    /**
121     * @brief Toggle the hidden state of the panel from code
122     *
123     * @param obj The panel object
124     */
125    EAPI void                  elm_panel_toggle(Evas_Object *obj) EINA_ARG_NONNULL(1);
126
127    /**
128     * @}
129     */
130