Popup
The popup UI component is a small window for notifying the user or requesting user input. For more information, see the Popup API.
This feature is supported in mobile applications only.
Basic Usage
To use a popup component in your application:
-
Add a popup component with the
elm_popup_add()
function:Evas_Object *popup; Evas_Object *parent; /* Create a popup */ popup = elm_popup_add(parent);
-
Set the title text using the
title,text
part name:elm_object_part_text_set(popup, "title,text", "Popup Title");
-
Set the content of the popup:
-
Simple text:
elm_object_text_set(popup, "Popup text");
-
Evas object:
Evas_Object *content; elm_object_content_set(popup, content);
-
-
Set the action area buttons.
In the following example, the OK and Cancel buttons are created:
Evas_Object *button1; Evas_Object *button2; /* Create the 2 buttons */ button1 = elm_button_add(popup); elm_object_text_set(button1, "OK"); button2 = elm_button_add(popup); elm_object_text_set(button2, "Cancel"); /* Set the buttons to the action area */ elm_object_part_content_set(popup, "button1", button1); elm_object_part_content_set(popup, "button2", button2);
-
Register the callback functions.
The following example shows how to define and register a callback for the
dismissed
signal:evas_object_smart_callback_add(popup, "dismissed", dismissed_cb, data); void dismissed_cb(void *data, Evas_Object *obj, void *event_info) { evas_object_del(obj); }
The following example shows a simple use case of the popup component.
Example: Popup use case
Evas_Object *win;
Evas_Object *conf;
Evas_Object *nf;
Evas_Object *popup;
Evas_Object *button;
/* Starting right after the basic EFL UI layout code */
/* (win - conformant - naviframe) */
/* Add a popup and set a size hint to the popup */
popup = elm_popup_add(nf);
elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
/* Set a text to title and content part */
elm_object_part_text_set(popup, "title,text", "Title");
elm_object_text_set(popup, "This Popup has title area, content area and action area set,
action area has two buttons OK and Cancel.");
/* Add an "OK" button to popup */
button = elm_button_add(popup);
elm_object_style_set(button, "popup");
elm_object_text_set(button, "OK");
elm_object_part_content_set(popup, "button1", button);
/* Add a "Cancel" button to popup */
button = elm_button_add(popup);
elm_object_style_set(button, "popup");
elm_object_text_set(button, "Cancel");
elm_object_part_content_set(popup, "button2", button);
/* Add a callback function to popup */
eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
evas_object_smart_callback_add(popup, "block,clicked", popup_block_clicked_cb, NULL);
evas_object_show(popup);
Features
To configure the popup features:
-
Hide the popup after a set time with the
elm_popup_timeout_set()
function.In the following example, the timeout is set to 5 seconds, after which the popup is hidden:
elm_popup_timeout_set(popup, 5.0);
-
Dismiss the popup with a hide effect using the
elm_popup_dismiss()
function:elm_popup_dismiss(popup);
Styles
The following table lists the available component styles.
Table: Popup styles
Style | Sample | Text part | Swallow part |
---|---|---|---|
default |
default title,text subtitle,text |
elm.swallow.content button1 button2 button3 |
|
toast |
default |
elm.swallow.content |
|
theme_bg |
default title,text subtitle,text |
elm.swallow.content button1 button2 button3 |
The theme_bg
style is a unique style for supporting the genlist component’s banded effect.
Callbacks
You can register callback functions connected to the following signals for a popup object.
Table: Popup callback signals
Signal | Description | event_info |
---|---|---|
timeout |
The popup is closed as a result of the timeout. | NULL |
block,clicked |
The user clicks on the blocked event area. The blocked event area is the translucent region around the visible popup region. | NULL |
dismissed |
The popup is dismissed with a hide effect. | NULL |
Note
The signal list in the API reference can be more extensive, but only the above signals are actually supported in Tizen.
Note
Except as noted, this content is licensed under LGPLv2.1+.
Related Information
- Dependencies
- Tizen 2.4 and Higher for Mobile