forked from enlightenment/efl
parent
831103656c
commit
6c2e9ca180
|
@ -50,7 +50,8 @@ WGT_PREVIEW = \
|
|||
anchorblock:preview-00.png:widget_preview_anchorblock:100:30 \
|
||||
pager:preview-00.png:widget_preview_pager:100:100 \
|
||||
separator:preview-00.png:widget_preview_separator:10:80 \
|
||||
radio:preview-00.png:widget_preview_radio:60:20
|
||||
radio:preview-00.png:widget_preview_radio:60:20 \
|
||||
toggle:preview-00.png:widget_preview_toggle:150:30
|
||||
|
||||
widget-build:
|
||||
@$(MAKE) -C widgets
|
||||
|
|
|
@ -2963,6 +2963,66 @@
|
|||
* @example radio_example_01.c
|
||||
*/
|
||||
|
||||
/**
|
||||
* @page tutorial_toggle Toggle example
|
||||
* @dontinclude toggle_example_01.c
|
||||
*
|
||||
* In this example we'll create 2 toggle widgets. The first will have an icon
|
||||
* and the state names will be the default "on"/"off", it will also change the
|
||||
* value of a variable directly. The second won't have a icon, the state names
|
||||
* will be "Enabled"/"Disabled", it will start "Enabled" and it won't set the
|
||||
* value of a variable.
|
||||
*
|
||||
* We start with the usual includes and prototype for callback which will be
|
||||
* implemented and detailed later on:
|
||||
* @until _cb2
|
||||
*
|
||||
* We then declare a static global variable(the one whose value will be changed
|
||||
* by the first toggle):
|
||||
* @until static
|
||||
*
|
||||
* We now have to create our window and all that usual stuff:
|
||||
* @until show(bx)
|
||||
*
|
||||
* The creation of a toggle is no more complicated than that of any other
|
||||
* widget:
|
||||
* @until add
|
||||
*
|
||||
* For our first toggle we don't set the states labels so they will stay the
|
||||
* default, however we do set a label for the toggle, an icon and the variable
|
||||
* whose value it should change:
|
||||
* @until show
|
||||
*
|
||||
* We also set the callback that will be called when the toggles value changes:
|
||||
* @until smart_callback
|
||||
*
|
||||
* For our second toggle it important to note that we set the states labels,
|
||||
* don't set an icon or variable, but set the initial state to
|
||||
* EINA_TRUE("Enabled"):
|
||||
* @until show
|
||||
*
|
||||
* For the second toggle we will use a different callback:
|
||||
* @until smart_callback
|
||||
*
|
||||
* We then ask the main loop to start:
|
||||
* @until ELM_MAIN
|
||||
*
|
||||
* The callback for our first toggle will look the value of @p val and print it:
|
||||
* @until }
|
||||
*
|
||||
* For our second callback we need to do a little bit more, since the second
|
||||
* toggle doesn't change the value of a variable we have to ask it what its
|
||||
* state is:
|
||||
* @until }
|
||||
*
|
||||
* This example will look like this:
|
||||
*
|
||||
* @image html screenshots/toggle_example_01.png
|
||||
* @image latex screenshots/toggle_example_01.eps width=\textwidth
|
||||
*
|
||||
* @example toggle_example_01.c
|
||||
*/
|
||||
|
||||
/**
|
||||
* @page bg_example_01_c bg_example_01.c
|
||||
* @include bg_example_01.c
|
||||
|
|
|
@ -161,6 +161,9 @@
|
|||
* @li @ref Spinner
|
||||
* @li @ref Thumb
|
||||
* @li @ref Toggle
|
||||
*
|
||||
* @image html img/widget/toggle/preview-00.png
|
||||
* @image latex img/widget/toggle/preview-00.eps
|
||||
* @li @ref Toolbar
|
||||
* @li @ref Tooltips
|
||||
* @li @ref Video
|
||||
|
|
|
@ -65,7 +65,8 @@ widget_preview_anchorblock \
|
|||
widget_preview_flip \
|
||||
widget_preview_pager \
|
||||
widget_preview_separator \
|
||||
widget_preview_radio
|
||||
widget_preview_radio \
|
||||
widget_preview_toggle
|
||||
|
||||
LDADD = $(top_builddir)/src/lib/libelementary.la @ELEMENTARY_EWEATHER_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ @ELEMENTARY_LIBS@ @EIO_LIBS@ @my_libs@
|
||||
|
||||
|
@ -113,5 +114,6 @@ EXTRA_DIST = \
|
|||
widget_preview_pager.c \
|
||||
widget_preview_separator.c \
|
||||
widget_preview_radio.c \
|
||||
widget_preview_toggle.c \
|
||||
widget_preview_tmpl_foot.c \
|
||||
widget_preview_tmpl_head.c
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#include "widget_preview_tmpl_head.c"
|
||||
|
||||
Evas_Object *o = elm_toggle_add(win);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
elm_win_resize_object_add(win, o);
|
||||
evas_object_show(o);
|
||||
|
||||
elm_object_text_set(o, "toggle");
|
||||
elm_toggle_states_labels_set(o, "on", "off");
|
||||
|
||||
#include "widget_preview_tmpl_foot.c"
|
|
@ -148,7 +148,8 @@ pkglib_PROGRAMS += \
|
|||
index_example_02 \
|
||||
pager_example_01 \
|
||||
separator_example_01 \
|
||||
radio_example_01
|
||||
radio_example_01 \
|
||||
toggle_example_01
|
||||
|
||||
# This variable will hold the list of screenshots that will be made
|
||||
# by "make screenshots". Each item in the list is of the form:
|
||||
|
@ -192,7 +193,8 @@ SCREENSHOTS = \
|
|||
ctxpopup_example_01:ctxpopup_example_01.png:0.0 \
|
||||
pager_example_01:pager_example_01.png:0.0 \
|
||||
separator_example_01:separator_example_01.png:0.0 \
|
||||
radio_example_01:radio_example_01.png:0.0
|
||||
radio_example_01:radio_example_01.png:0.0 \
|
||||
toggle_example_01:toggle_example_01.png:0.0
|
||||
|
||||
HTML_SS_DIR=$(top_builddir)/doc/html/screenshots
|
||||
LATEX_SS_DIR=$(top_builddir)/doc/latex/screenshots
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
//Compile with:
|
||||
//gcc -g `pkg-config --cflags --libs elementary` toggle_example_01.c -o toggle_example_01
|
||||
|
||||
#include <Elementary.h>
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "elementary_config.h"
|
||||
#endif
|
||||
|
||||
static void _cb(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _cb2(void *data, Evas_Object *obj, void *event_info);
|
||||
|
||||
static Eina_Bool val = EINA_FALSE;
|
||||
|
||||
EAPI int
|
||||
elm_main(int argc, char **argv)
|
||||
{
|
||||
Evas_Object *win, *bg, *bx, *toggle, *ic;
|
||||
|
||||
win = elm_win_add(NULL, "toggle", ELM_WIN_BASIC);
|
||||
elm_win_title_set(win, "toggle");
|
||||
elm_win_autodel_set(win, EINA_TRUE);
|
||||
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
|
||||
|
||||
bg = elm_bg_add(win);
|
||||
elm_win_resize_object_add(win, bg);
|
||||
evas_object_show(bg);
|
||||
|
||||
bx = elm_box_add(win);
|
||||
elm_box_horizontal_set(bx, EINA_FALSE);
|
||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_win_resize_object_add(win, bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
toggle = elm_toggle_add(win);
|
||||
elm_object_text_set(toggle, "Toggle 1");
|
||||
ic = elm_icon_add(win);
|
||||
elm_icon_standard_set(ic, "home");
|
||||
elm_toggle_icon_set(toggle, ic);
|
||||
elm_toggle_state_pointer_set(toggle, &val);
|
||||
elm_box_pack_end(bx, toggle);
|
||||
evas_object_size_hint_weight_set(toggle, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(toggle, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(toggle);
|
||||
evas_object_smart_callback_add(toggle, "changed", _cb, NULL);
|
||||
|
||||
toggle = elm_toggle_add(win);
|
||||
elm_object_text_set(toggle, "Toggle 2");
|
||||
elm_toggle_states_labels_set(toggle, "Enabled", "Disabled");
|
||||
elm_toggle_state_set(toggle, EINA_TRUE);
|
||||
elm_box_pack_end(bx, toggle);
|
||||
evas_object_size_hint_weight_set(toggle, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(toggle, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
evas_object_show(toggle);
|
||||
evas_object_smart_callback_add(toggle, "changed", _cb2, NULL);
|
||||
|
||||
evas_object_show(win);
|
||||
|
||||
elm_run();
|
||||
|
||||
return 0;
|
||||
}
|
||||
ELM_MAIN()
|
||||
|
||||
static void
|
||||
_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
printf("val is now: %s\n", val ? "true" : "false");
|
||||
}
|
||||
|
||||
static void
|
||||
_cb2(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
printf("toggle2's state is now: %s\n", elm_toggle_state_get(obj) ? "true" : "false");
|
||||
}
|
|
@ -4155,22 +4155,121 @@ extern "C" {
|
|||
* @}
|
||||
*/
|
||||
|
||||
/* toggle */
|
||||
/**
|
||||
* @defgroup Toggle
|
||||
*
|
||||
* @image html img/widget/toggle/preview-00.png
|
||||
* @image latex img/widget/toggle/preview-00.eps
|
||||
*
|
||||
* @brief A toggle is a slider which can be used to toggle between
|
||||
* two values. It has two states: on and off.
|
||||
*
|
||||
* Signals that you can add callbacks for are:
|
||||
* @li "changed" - Whenever the toggle value has been changed. Is not called
|
||||
* until the toggle is released by the cursor (assuming it
|
||||
* has been triggered by the cursor in the first place).
|
||||
*
|
||||
* @ref tutorial_toggle show how to use a toggle.
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @brief Add a toggle to @p parent.
|
||||
*
|
||||
* @param parent The parent object
|
||||
*
|
||||
* @return The toggle object
|
||||
*/
|
||||
EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Sets the label to be displayed with the toggle.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param label The label to be displayed
|
||||
*
|
||||
* @deprecated use elm_object_text_set() instead.
|
||||
*/
|
||||
EINA_DEPRECATED EAPI void elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Gets the label of the toggle
|
||||
*
|
||||
* @param obj toggle object
|
||||
* @return The label of the toggle
|
||||
*
|
||||
* @deprecated use elm_object_text_get() instead.
|
||||
*/
|
||||
EINA_DEPRECATED EAPI const char *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Set the icon used for the toggle
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param icon The icon object for the button
|
||||
*
|
||||
* Once the icon object is set, a previously set one will be deleted
|
||||
* If you want to keep that old content object, use the
|
||||
* elm_toggle_icon_unset() function.
|
||||
*/
|
||||
EAPI void elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Get the icon used for the toggle
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @return The icon object that is being used
|
||||
*
|
||||
* Return the icon object which is set for this widget.
|
||||
*
|
||||
* @see elm_toggle_icon_set()
|
||||
*/
|
||||
EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Unset the icon used for the toggle
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @return The icon object that was being used
|
||||
*
|
||||
* Unparent and return the icon object which was set for this widget.
|
||||
*
|
||||
* @see elm_toggle_icon_set()
|
||||
*/
|
||||
EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Sets the labels to be associated with the on and off states of the toggle.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param onlabel The label displayed when the toggle is in the "on" state
|
||||
* @param offlabel The label displayed when the toggle is in the "off" state
|
||||
*/
|
||||
EAPI void elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Gets the labels associated with the on and off states of the toggle.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param onlabel A char** to place the onlabel of @p obj into
|
||||
* @param offlabel A char** to place the offlabel of @p obj into
|
||||
*/
|
||||
EAPI void elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Sets the state of the toggle to @p state.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param state The state of @p obj
|
||||
*/
|
||||
EAPI void elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Gets the state of the toggle to @p state.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @return The state of @p obj
|
||||
*/
|
||||
EAPI Eina_Bool elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @brief Sets the state pointer of the toggle to @p statep.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param statep The state pointer of @p obj
|
||||
*/
|
||||
EAPI void elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
|
||||
/* smart callbacks called:
|
||||
* "changed" - Whenever the toggle value has been changed. Is not called
|
||||
* until the toggle is released by the cursor (assuming it has been triggered
|
||||
* by the cursor in the first place).
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,19 +1,6 @@
|
|||
#include <Elementary.h>
|
||||
#include "elm_priv.h"
|
||||
|
||||
/**
|
||||
* @defgroup Toggle
|
||||
*
|
||||
* A toggle is a slider which can be used to toggle between
|
||||
* two values. It has two states: on and off.
|
||||
*
|
||||
* Signals that you can add callbacks for are:
|
||||
*
|
||||
* "changed" - Whenever the toggle value has been changed. Is not called until
|
||||
* the toggle is released by the cursor (assuming it has been
|
||||
* triggered by the cursor in the first place).
|
||||
*/
|
||||
|
||||
typedef struct _Widget_Data Widget_Data;
|
||||
|
||||
struct _Widget_Data
|
||||
|
@ -228,15 +215,6 @@ _elm_toggle_label_get(const Evas_Object *obj, const char *item)
|
|||
return wd->label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a toggle to @p parent.
|
||||
*
|
||||
* @param parent The parent object
|
||||
*
|
||||
* @return The toggle object
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
elm_toggle_add(Evas_Object *parent)
|
||||
{
|
||||
|
@ -283,48 +261,18 @@ elm_toggle_add(Evas_Object *parent)
|
|||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the label to be displayed with the toggle.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param label The label to be displayed
|
||||
*
|
||||
* @ingroup Toggle
|
||||
* @deprecate use elm_object_text_* instead.
|
||||
*/
|
||||
EAPI void
|
||||
elm_toggle_label_set(Evas_Object *obj, const char *label)
|
||||
{
|
||||
_elm_toggle_label_set(obj, NULL, label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the label of the toggle
|
||||
*
|
||||
* @param obj toggleeee object
|
||||
* @return The label of the toggle
|
||||
*
|
||||
* @ingroup Toggle
|
||||
* @deprecate use elm_object_text_* instead.
|
||||
*/
|
||||
EAPI const char *
|
||||
elm_toggle_label_get(const Evas_Object *obj)
|
||||
{
|
||||
return _elm_toggle_label_get(obj, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the icon used for the toggle
|
||||
*
|
||||
* Once the icon object is set, a previously set one will be deleted
|
||||
* If you want to keep that old content object, use the
|
||||
* elm_toggle_icon_unset() function.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param icon The icon object for the button
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI void
|
||||
elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon)
|
||||
{
|
||||
|
@ -346,16 +294,6 @@ elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon)
|
|||
_sizing_eval(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the icon used for the toggle
|
||||
*
|
||||
* Return the icon object which is set for this widget.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @return The icon object that is being used
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
elm_toggle_icon_get(const Evas_Object *obj)
|
||||
{
|
||||
|
@ -365,16 +303,6 @@ elm_toggle_icon_get(const Evas_Object *obj)
|
|||
return wd->icon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Unset the icon used for the toggle
|
||||
*
|
||||
* Unparent and return the icon object which was set for this widget.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @return The icon object that was being used
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
elm_toggle_icon_unset(Evas_Object *obj)
|
||||
{
|
||||
|
@ -389,15 +317,6 @@ elm_toggle_icon_unset(Evas_Object *obj)
|
|||
return icon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the labels to be associated with the on and off states of the toggle.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param onlabel The label displayed when the toggle is in the "on" state
|
||||
* @param offlabel The label displayed when the toggle is in the "off" state
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI void
|
||||
elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel)
|
||||
{
|
||||
|
@ -411,16 +330,6 @@ elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *
|
|||
_sizing_eval(obj);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the labels associated with the on and off states of the toggle.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param onlabel A char** to place the onlabel of @p obj into
|
||||
* @param offlabel A char** to place the offlabel of @p obj into
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI void
|
||||
elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel)
|
||||
{
|
||||
|
@ -433,14 +342,6 @@ elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const
|
|||
if (offlabel) *offlabel = wd->offtext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the state of the toggle to @p state.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param state The state of @p obj
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI void
|
||||
elm_toggle_state_set(Evas_Object *obj, Eina_Bool state)
|
||||
{
|
||||
|
@ -458,14 +359,6 @@ elm_toggle_state_set(Evas_Object *obj, Eina_Bool state)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the state of the toggle to @p state.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @return The state of @p obj
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI Eina_Bool
|
||||
elm_toggle_state_get(const Evas_Object *obj)
|
||||
{
|
||||
|
@ -475,14 +368,6 @@ elm_toggle_state_get(const Evas_Object *obj)
|
|||
return wd->state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the state pointer of the toggle to @p statep.
|
||||
*
|
||||
* @param obj The toggle object
|
||||
* @param statep The state pointer of @p obj
|
||||
*
|
||||
* @ingroup Toggle
|
||||
*/
|
||||
EAPI void
|
||||
elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue