filesdir = $(pkgdatadir)/themes
files_DATA = \
data/themes/default.edj \
-data/themes/default-sd.edj
+data/themes/night.edj
AM_V_EDJ = $(am__v_EDJ_$(V))
am__v_EDJ_ = $(am__v_EDJ_$(AM_DEFAULT_VERBOSITY))
data/themes/images/loading_7.png
THEME_INCLUDES = \
-data/themes/includes/action_answer.edc \
-data/themes/includes/answer_screen.edc \
-data/themes/includes/buttons.edc \
-data/themes/includes/call.edc \
-data/themes/includes/colors.edc \
-data/themes/includes/compose.edc \
-data/themes/includes/contacts-bg.edc \
-data/themes/includes/contacts.edc \
-data/themes/includes/dialer.edc \
-data/themes/includes/history-bg.edc \
-data/themes/includes/history.edc \
-data/themes/includes/keypad.edc \
-data/themes/includes/messages-overview-list.edc \
-data/themes/includes/messages-overview.edc \
-data/themes/includes/messages.edc \
-data/themes/includes/multiparty-list.edc \
-data/themes/includes/popup.edc \
-data/themes/includes/scroller.edc
-
+data/themes/default/action_answer.edc \
+data/themes/default/answer_screen.edc \
+data/themes/default/buttons.edc \
+data/themes/default/call.edc \
+data/themes/default/colors.edc \
+data/themes/default/compose.edc \
+data/themes/default/contacts-bg.edc \
+data/themes/default/contacts.edc \
+data/themes/default/dialer.edc \
+data/themes/default/history-bg.edc \
+data/themes/default/history.edc \
+data/themes/default/include.edc \
+data/themes/default/keypad.edc \
+data/themes/default/messages-overview-list.edc \
+data/themes/default/messages-overview.edc \
+data/themes/default/messages.edc \
+data/themes/default/multiparty-list.edc \
+data/themes/default/popup.edc \
+data/themes/default/scroller.edc
+
+NIGHT_THEME_INCLUDES = \
+data/themes/night/action_answer.edc \
+data/themes/night/answer_screen.edc \
+data/themes/night/buttons.edc \
+data/themes/night/call.edc \
+data/themes/night/colors.edc \
+data/themes/night/compose.edc \
+data/themes/night/contacts-bg.edc \
+data/themes/night/contacts.edc \
+data/themes/night/dialer.edc \
+data/themes/night/history-bg.edc \
+data/themes/night/history.edc \
+data/themes/night/include.edc \
+data/themes/night/keypad.edc \
+data/themes/night/messages-overview-list.edc \
+data/themes/night/messages-overview.edc \
+data/themes/night/messages.edc \
+data/themes/night/multiparty-list.edc \
+data/themes/night/popup.edc \
+data/themes/night/scroller.edc
EXTRA_DIST += \
-data/themes/default-hd.edc \
-data/themes/default-sd.edc \
data/themes/default.edc \
-$(THEME_INCLUDES) $(THEME_IMAGES)
+data/themes/night.edc \
+$(THEME_INCLUDES) \
+$(NIGHT_THEME_INCLUDES) \
+$(THEME_IMAGES)
-data/themes/default.edj: $(top_builddir)/Makefile $(top_srcdir)/data/themes/default.edc $(top_srcdir)/data/themes/default-hd.edc $(THEME_INCLUDES) $(THEME_IMAGES)
+data/themes/default.edj: $(top_builddir)/Makefile $(top_srcdir)/data/themes/default.edc $(THEME_INCLUDES) $(THEME_IMAGES)
$(MKDIR_P) $(top_builddir)/data/themes
$(AM_V_EDJ)$(EDJE_CC) $(EDJE_FLAGS) \
- $(top_srcdir)/data/themes/default-hd.edc \
+ $(top_srcdir)/data/themes/default.edc \
$(top_builddir)/data/themes/default.edj
-data/themes/default-sd.edj: $(top_builddir)/Makefile $(top_srcdir)/data/themes/default.edc $(top_srcdir)/data/themes/default-sd.edc $(THEME_INCLUDES) $(THEME_IMAGES)
+data/themes/night.edj: $(top_builddir)/Makefile $(top_srcdir)/data/themes/night.edc $(NIGHT_THEME_INCLUDES) $(THEME_IMAGES)
$(MKDIR_P) $(top_builddir)/data/themes
$(AM_V_EDJ)$(EDJE_CC) $(EDJE_FLAGS) \
- $(top_srcdir)/data/themes/default-sd.edc \
- $(top_builddir)/data/themes/default-sd.edj
+ $(top_srcdir)/data/themes/night.edc \
+ $(top_builddir)/data/themes/night.edj
clean-local:
rm -f $(top_builddir)/data/themes/default.edj
- rm -f $(top_builddir)/data/themes/default-sd.edj
+ rm -f $(top_builddir)/data/themes/night.edj
examplesdir = $(pkgdatadir)/examples
examples_DATA = \
+++ /dev/null
-#define WIDTH 360
-#define HEIGHT 640
-
-#define ACTION_WIDTH 120
-#define ACTION_HEIGHT 40
-
-#define CALL_HEIGHT 100
-
-#define BORDER_PADDING 23
-#define ITEM_PADDING 8
-
-#define SEPARATOR_HEIGHT 4
-
-#define SCROLLBAR_WIDTH 8
-#define SCROLLBAR_HEIGHT 8
-
-#define LIST_ICON_SIZE 28
-#define LIST_ITEM_HEIGHT 60
-
-#define FONT_NORMAL "Verdana"
-#define FONT_BOLD "Verdana:style=Bold"
-#define SIZE_HUGE 42
-#define SIZE_LARGE 24
-#define SIZE_MEDIUM 18
-#define SIZE_SMALL 10
-#define SIZE_TINY 8
-
-#define CONTACT_PHOTO_SIZE 64
-#define LIST_CONTACT_HEIGHT 90
-
-#define GROUP_HEIGHT 20
-
-#define LOADING_SIZE 64
-
-#ifdef HAVE_TIZEN
-#define NOTIFICATION_BAR_HEIGHT 25
-#else
-#define NOTIFICATION_BAR_HEIGHT 0
-#endif
-
-#define CALL_TEXT_OFFSET 16
-#define CALL_PHOTO_SIZE 90
-
-#define MESSAGE_IMG_SENT_SIZE 16
-
-#define MESSAGE_IMG_SENT_Y_OFFSET 0
-
-#define MESSAGE_SEPARATOR_WIDTH 172
-#define MESSAGE_SEPARATOR_HEIGHT 16
-
-#define MULTI_BUTTON_ENTRY_MAX_SIZE 150
-
-#include "default.edc"
-collections {
-
-#include "includes/colors.edc"
-#include "includes/dialer.edc"
-#include "includes/keypad.edc"
-#include "includes/call.edc"
-#include "includes/contacts-bg.edc"
-#include "includes/contacts.edc"
-#include "includes/multiparty-list.edc"
-#include "includes/history.edc"
-#include "includes/history-bg.edc"
-#include "includes/scroller.edc"
-#include "includes/popup.edc"
-#include "includes/buttons.edc"
-#include "includes/answer_screen.edc"
-#include "includes/action_answer.edc"
-
-#include "includes/messages.edc"
-#include "includes/compose.edc"
-#include "includes/messages-overview.edc"
-#include "includes/messages-overview-list.edc"
-}
+#define WIDTH 600
+#define HEIGHT 720
+
+#define ACTION_WIDTH 240
+#define ACTION_HEIGHT 80
+
+#define CALL_HEIGHT 130
+
+#define BORDER_PADDING 46
+#define ITEM_PADDING 16
+
+#define SEPARATOR_HEIGHT 2
+
+#define SCROLLBAR_WIDTH 16
+#define SCROLLBAR_HEIGHT 16
+
+#define LIST_ICON_SIZE 36
+#define LIST_ITEM_HEIGHT 120
+
+#define FONT_NORMAL "Verdana"
+#define FONT_BOLD "Verdana:style=Bold"
+#define SIZE_HUGE 99
+#define SIZE_LARGE 58
+#define SIZE_MEDIUM 43
+#define SIZE_SMALL 30
+#define SIZE_TINY 16
+
+#define CONTACT_PHOTO_SIZE 64
+#define LIST_CONTACT_HEIGHT 90
+
+#define GROUP_HEIGHT 30
+
+#define LOADING_SIZE 128
+
+#ifdef HAVE_TIZEN
+#define NOTIFICATION_BAR_HEIGHT 50
+#else
+#define NOTIFICATION_BAR_HEIGHT 0
+#endif
+
+#define CALL_TEXT_OFFSET 16
+#define CALL_PHOTO_SIZE 90
+
+#define MESSAGE_IMG_SENT_SIZE 40
+
+#define MESSAGE_IMG_SENT_Y_OFFSET 0
+
+#define MESSAGE_SEPARATOR_WIDTH 344
+#define MESSAGE_SEPARATOR_HEIGHT 32
+
+#define MULTI_BUTTON_ENTRY_MAX_SIZE 300
+
+#include "default/include.edc"
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
min: WIDTH HEIGHT;
image {
normal: "bg_call.jpg";
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
rel1 {
to: "elm.swallow.photo";
relative: 0.0 0.0;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
align: 0.0 0.0;
rel1 {
#define SEPARATOR(id, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
#define SEPARATOR(id, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/call";
+
+ /*
+ * Represents the dialer ongoing voice call(s) screen.
+ *
+ * Parts:
+ * TEXT: elm.text.<CALL>.name
+ * TEXT: elm.text.<CALL>.status
+ * TEXT: elm.text.<CALL>.elapsed
+ * TEXT: elm.text.<CALL>.phone.type
+ * TEXT: elm.text.waiting
+ * SWALLOW: elm.swallow.multiparty-details
+ *
+ * Signals:
+ * Emit (source is "call"):
+ * pressed,<ID>: key <ID> was pressed
+ * released,<ID>: key <ID> was released
+ * clicked,<ID>: key <ID> was clicked (press and release in the key)
+ * Listen (source is "call"):
+ * show,answer: show "answer" action
+ * hide,answer: hide "answer" action
+ * show,waiting: show call waiting popup (hold+answer...)
+ * hide,waiting: hide call waiting popup
+ * show,<CALL>,elapsed: have elapsed (elm.text.<CALL>.elapsed)
+ * hide,<CALL>,elapsed: don't have elapsed and it should be hidden
+ * show,<CALL>,multiparty: call is multiparty
+ * hide,<CALL>,multiparty: call is not multiparty
+ * state,<CALL>,<STATE>: state changed to <STATE>
+ * disable,<ID>: disable action <ID>
+ * enable,<ID>: enable action <ID>
+ * toggle,on,<ID>: mark toggle action <ID> as selected
+ * toggle,off,<ID>: mark toggle action <ID> as unselected
+ * show,multiparty-details: ask the multiparty details to be visible
+ * hide,multiparty-details: ask the multiparty details to be hidden
+ * calls,1 single call mode
+ * calls,2 two calls mode
+ *
+ * Messages:
+ * 1 - FLOAT: speaker volume 0.0-1.0
+ * 2 - FLOAT: microphone volume 0.0-1.0
+ * 11 - FLOAT: elapsed time in seconds (> 0.0) for call #1
+ * 12 - FLOAT: elapsed time in seconds (> 0.0) for call #2
+ *
+ * Where <ID> is: numbers 0 to 9, star, hash, mute, keypad,
+ * speaker, add-call, merge, swap, contacts, answer, hangup,
+ * waiting-hangup, hold-answer, hangup-answer, <CALL>,multiparty,
+ * multiparty-details, actions.
+ *
+ * Where <STATE> is: disconnected, active, held, dialing, alerting,
+ * incoming, waiting.
+ *
+ * Where <CALL> is: 1 or 2.
+ */
+
+ min: WIDTH HEIGHT;
+
+ images {
+ image: "bg_call.jpg" COMP;
+ image: "ico_mute.png" COMP;
+ image: "ico_keypad.png" COMP;
+ image: "ico_speaker.png" COMP;
+ image: "ico_add_call.png" COMP;
+ image: "ico_merge.png" COMP;
+ image: "ico_swap.png" COMP;
+ image: "ico_contacts.png" COMP;
+ image: "ico_arrow_right.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ min: WIDTH HEIGHT;
+ }
+ }
+
+ part {
+ name: "notification.bar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 NOTIFICATION_BAR_HEIGHT;
+ }
+ }
+ }
+
+#define SEPARATOR(id, clip, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+#define CALL(id, offy) \
+ part { \
+ name: "call."##id; \
+ type: RECT; \
+ clip_to: "clipper.multiparty-details-hidden"; \
+ description { \
+ state: "default" 0.0; \
+ rel1 { \
+ to: "notification.bar"; \
+ relative: 0.0 1.0; \
+ offset: 0 (-SEPARATOR_HEIGHT + offy); \
+ } \
+ rel2 { \
+ to: "notification.bar"; \
+ relative: 1.0 1.0; \
+ offset: -1 (CALL_HEIGHT + offy); \
+ } \
+ } \
+ description { \
+ state: "hidden" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ \
+ SEPARATOR("call."##id, "call."##id, 0.0, 0, "call."##id); \
+ \
+ part { \
+ name: "clipper."##id".multiparty"; \
+ type: RECT; \
+ clip_to: "call."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ description { \
+ state: "multiparty" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ visible: 1; \
+ } \
+ } \
+ part { \
+ name: "button."##id".multiparty"; \
+ type: IMAGE; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id".multiparty"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: LIST_ICON_SIZE LIST_ICON_SIZE; \
+ max: LIST_ICON_SIZE LIST_ICON_SIZE; \
+ rel1 { \
+ to: "call."##id; \
+ relative: 1.0 0.0; \
+ offset: (-LIST_ICON_SIZE - BORDER_PADDING) 0; \
+ } \
+ rel2 { \
+ to: "call."##id; \
+ relative: 1.0 1.0; \
+ offset: (-BORDER_PADDING -1) -1; \
+ } \
+ image.normal: "ico_arrow_right.png"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "secondary"; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id".multiparty"; \
+ action: SIGNAL_EMIT "released,"##id",multiparty" "call"; \
+ after: "show_up_"##id"_multiparty"; \
+ api: ""##id"_multiparty_released" \
+ "call #"##id" multiparty was released"; \
+ } \
+ program { \
+ name: "show_up_"##id"_multiparty"; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id".multiparty"; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id".multiparty"; \
+ after: "show_down_"##id"_multiparty"; \
+ action: SIGNAL_EMIT "pressed,"##id",multiparty" "call"; \
+ api: ""##id"_multiparty_pressed" \
+ "call #"##id" multiparty was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id"_multiparty"; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id".multiparty"; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id".multiparty"; \
+ action: SIGNAL_EMIT "clicked,"##id",multiparty" "call"; \
+ api: ""##id"_multiparty_clicked" \
+ "call #"##id" multiparty was clicked"; \
+ } \
+ \
+ program { \
+ signal: "show,"##id",multiparty"; \
+ source: "call"; \
+ action: STATE_SET "multiparty" 0.0; \
+ target: "clipper."##id".multiparty"; \
+ target: "area."##id".name"; \
+ api: ""##id"_multiparty_show" \
+ "call #"##id" make multiparty visible"; \
+ } \
+ program { \
+ signal: "hide,"##id",multiparty"; \
+ source: "call"; \
+ action: STATE_SET "default" 0.0; \
+ target: "clipper."##id".multiparty"; \
+ target: "area."##id".name"; \
+ api: ""##id"_multiparty_hide" \
+ "call #"##id" make multiparty hidden"; \
+ } \
+ } \
+ \
+ part { \
+ name: "area."##id".name"; \
+ type: RECT; \
+ mouse_events: 1; \
+ scale: 1; \
+ clip_to: "call."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ rel1 { \
+ to: "call."##id; \
+ offset: BORDER_PADDING SEPARATOR_HEIGHT; \
+ } \
+ rel2 { \
+ to: "call."##id; \
+ relative: 1.0 0.0; \
+ offset: (-BORDER_PADDING - 1) (ACTION_HEIGHT - 1); \
+ } \
+ } \
+ description { \
+ state: "multiparty" 0.0; \
+ inherit: "default" 0.0; \
+ rel2.offset: (-BORDER_PADDING - ITEM_PADDING -LIST_ICON_SIZE - 1) (ACTION_HEIGHT - 1); \
+ } \
+ } \
+ part { \
+ name: "elm.text."##id".name"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ clip_to: "call."##id; \
+ api: ""##id"_name" "remote party call name (call #"##id")"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ rel1 { \
+ to: "elm.swallow.img."##id; \
+ relative: 1.0 0.0; \
+ offset: ITEM_PADDING 0; \
+ } \
+ rel2 { \
+ to: "area."##id".name"; \
+ relative: 1.0 1.0; \
+ offset: -1 -CALL_TEXT_OFFSET; \
+ } \
+ text { \
+ text: "Gustavo Barbieri"; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ size_range: SIZE_MEDIUM SIZE_MEDIUM; \
+ fit: 1 1; \
+ max: 0 1; \
+ align: 0.0 1.0; \
+ ellipsis: 0.0; \
+ } \
+ } \
+ description { \
+ state: "held" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "secondary"; \
+ } \
+ } \
+ \
+ part { \
+ name: "elm.text."##id".status"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ clip_to: "call."##id; \
+ api: ""##id"_status" "call status (call #"##id")"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "secondary"; \
+ fixed: 1 1; \
+ align: 0.0 0.0; \
+ rel1 { \
+ to_x: "elm.swallow.img."##id; \
+ to_y: "elm.text."##id".name"; \
+ relative: 1.0 1.0; \
+ offset: ITEM_PADDING -SEPARATOR_HEIGHT; \
+ } \
+ rel2 { \
+ to: "elm.swallow.img."##id; \
+ relative: 1.0 1.0; \
+ offset: ITEM_PADDING -1; \
+ } \
+ text { \
+ text: "calling..."; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ min: 1 1; \
+ align: 0.0 0.0; \
+ } \
+ } \
+ } \
+ \
+ part { \
+ name: "elm.text."##id".elapsed"; \
+ type: TEXT; \
+ mouse_events: 0; \
+ scale: 1; \
+ clip_to: "call."##id; \
+ api: "1_elapsed" "call elapsed formatted time (call #"##id")"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "secondary"; \
+ fixed: 1 1; \
+ align: 0.0 0.0; \
+ rel1 { \
+ to: "elm.text."##id".status"; \
+ relative: 1.0 0.0; \
+ offset: ITEM_PADDING 0; \
+ } \
+ rel2 { \
+ to: "elm.text."##id".status"; \
+ relative: 1.0 1.0; \
+ offset: ITEM_PADDING -1; \
+ } \
+ text { \
+ text: "01:23"; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ min: 1 1; \
+ align: 0.0 0.0; \
+ } \
+ } \
+ } \
+ \
+ part { \
+ name: "elm.swallow.border."##id; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: "call."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ rel1 { \
+ to: "elm.swallow.img."##id; \
+ relative: 0.0 0.0; \
+ offset: -1 -1; \
+ } \
+ rel2 { \
+ to: "elm.swallow.img."##id; \
+ relative: 1.0 1.0; \
+ offset: 0 0; \
+ } \
+ } \
+ } \
+ \
+ part { \
+ name: "elm.swallow.img.bg".#id; \
+ type: RECT; \
+ scale: 1; \
+ mouse_events: 0; \
+ clip_to: "call."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ to: "elm.swallow.img."##id; \
+ relative: 0.0 0.0; \
+ offset: 0 0; \
+ } \
+ rel2 { \
+ to: "elm.swallow.img."##id; \
+ relative: 1.0 1.0; \
+ offset: -1 -1; \
+ } \
+ } \
+ } \
+ \
+ part { \
+ name: "elm.swallow.img."##id; \
+ type: SWALLOW; \
+ scale: 1; \
+ clip_to: "call."##id; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ visible: 1; \
+ min: CALL_PHOTO_SIZE CALL_PHOTO_SIZE; \
+ max: CALL_PHOTO_SIZE CALL_PHOTO_SIZE; \
+ rel1 { \
+ to: "area."##id."name"; \
+ relative: 0.0 0.0; \
+ offset: 0 ITEM_PADDING; \
+ } \
+ rel2 { \
+ to: "area."##id."name"; \
+ relative: 0.0 0.0; \
+ offset: CALL_PHOTO_SIZE (CALL_PHOTO_SIZE + ITEM_PADDING); \
+ } \
+ } \
+ } \
+ \
+ programs { \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "area."##id".name"; \
+ action: SIGNAL_EMIT "clicked,swap" "call"; \
+ } \
+ program { \
+ signal: "state,"##id",held"; \
+ source: "call"; \
+ action: STATE_SET "held" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "elm.text."##id".name"; \
+ } \
+ program { \
+ signal: "state,"##id",active"; \
+ source: "call"; \
+ action: STATE_SET "default" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "elm.text."##id".name"; \
+ } \
+ \
+ }
+
+ CALL("1", 0);
+ CALL("2", CALL_HEIGHT + SEPARATOR_HEIGHT);
+
+ programs {
+ program {
+ signal: "calls,1";
+ source: "call";
+ action: STATE_SET "hidden" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "call.2";
+ }
+ program {
+ signal: "calls,2";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "call.2";
+ }
+ }
+
+ SEPARATOR("actions", "clipper.actions", 0.0, -SEPARATOR_HEIGHT, "bg.actions");
+
+ part {
+ name: "bg.actions";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-hidden";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH ACTION_HEIGHT;
+ max: WIDTH 99999; /* keep it tight centered */
+ fixed: 1 1;
+ rel1 {
+ to: "bg.buttons";
+ relative: 0.0 0.0;
+ offset: 0 (-ACTION_HEIGHT - SEPARATOR_HEIGHT);
+ }
+ rel2 {
+ to: "bg.buttons";
+ relative: 1.0 0.0;
+ offset: -1 -SEPARATOR_HEIGHT;
+ }
+ }
+ }
+ part {
+ name: "clipper.actions";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+ programs {
+ program {
+ name: "enable,actions1";
+ signal: "enable,actions";
+ source: "call";
+ action: ACTION_STOP;
+ target: "disable,actions1";
+ target: "disable,actions2";
+ after: "enable,actions2";
+ }
+ program {
+ name: "enable,actions2";
+ action: STATE_SET "visible" 0.0;
+ transition: DECELERATE 0.3;
+ target: "clipper.actions";
+ }
+
+ program {
+ name: "disable,actions1";
+ signal: "disable,actions";
+ source: "call";
+ action: ACTION_STOP;
+ target: "enable,actions1";
+ target: "enable,actions2";
+ after: "disable,actions2";
+ }
+ program {
+ name: "disable,actions2";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.actions";
+ }
+ }
+
+#define ACTION_BUTTON(id, img, r1, r2) \
+ part { \
+ name: "clipper."##id; \
+ type: RECT; \
+ clip_to: "clipper.actions"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "disabled"; \
+ } \
+ description { \
+ state: "hidden" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: r2; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "button.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ image.normal: "ico_"##img".png"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ } \
+ } \
+ part { \
+ name: "blocker."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "call"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "call"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "call"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "disable,"##id; \
+ source: "call"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "blocker."##id; \
+ target: "clipper."##id; \
+ api: id"_disable" "disable "##id; \
+ } \
+ program { \
+ signal: "enable,"##id; \
+ source: "call"; \
+ action: STATE_SET "default" 0.0; \
+ target: "blocker."##id; \
+ target: "clipper."##id; \
+ api: id"_enable" "enable "##id; \
+ } \
+ }
+
+#define ACTION_HIDEABLE(id, img, r1, r2) \
+ part { \
+ name: "clipper."##id; \
+ type: RECT; \
+ clip_to: "clipper.actions"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ } \
+ description { \
+ state: "hidden" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: r2; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "button.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ image.normal: "ico_"##img".png"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "call"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "call"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "call"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ name: "hide_"##id; \
+ signal: "hide,"##id; \
+ source: "call"; \
+ action: STATE_SET "hidden" 0.0; \
+ target: "clipper."##id; \
+ api: id"_hide" "hide "##id; \
+ } \
+ program { \
+ name: "show_"##id; \
+ signal: "show,"##id; \
+ source: "call"; \
+ action: STATE_SET "default" 0.0; \
+ target: "clipper."##id; \
+ api: id"_show" "show "##id; \
+ } \
+ }
+
+#define ACTION_TOGGLE(id, img, r1, r2) \
+ part { \
+ name: "clipper."##id; \
+ type: RECT; \
+ clip_to: "clipper.actions"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "disabled"; \
+ } \
+ description { \
+ state: "hidden" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper.toggle."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: r2; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "button.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ clip_to: "clipper.toggle."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ image.normal: "ico_"##img".png"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ } \
+ } \
+ part { \
+ name: "clipper.toggle."##id; \
+ type: RECT; \
+ clip_to: "clipper."##id; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ visible: 1; \
+ } \
+ description { \
+ state: "on" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "button.toggle."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ visible: 0; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: r2; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "on" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ visible: 1; \
+ } \
+ } \
+ part { \
+ name: "button.toggle.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ visible: 0; \
+ rel1.to: "button.toggle."##id; \
+ rel2.to: "button.toggle."##id; \
+ image.normal: "ico_"##img".png"; \
+ } \
+ description { \
+ state: "on" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ visible: 1; \
+ } \
+ } \
+ part { \
+ name: "blocker."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "call"; \
+ api: id"_released" id" was released"; \
+ after: "show_up_"##id; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "call"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "call"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button.toggle."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "call"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "disable,"##id; \
+ source: "call"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "blocker."##id; \
+ target: "clipper."##id; \
+ api: id"_disable" "disable "##id; \
+ } \
+ program { \
+ signal: "enable,"##id; \
+ source: "call"; \
+ action: STATE_SET "default" 0.0; \
+ target: "blocker."##id; \
+ target: "clipper."##id; \
+ api: id"_enable" "enable "##id; \
+ } \
+ program { \
+ signal: "toggle,on,"##id; \
+ source: "call"; \
+ action: STATE_SET "on" 0.0; \
+ target: "clipper.toggle."##id; \
+ target: "button.toggle."##id; \
+ target: "button.toggle.ico."##id; \
+ api: id"_toggle_on" "toggle on "##id; \
+ } \
+ program { \
+ signal: "toggle,off,"##id; \
+ source: "call"; \
+ action: STATE_SET "default" 0.0; \
+ target: "clipper.toggle."##id; \
+ target: "button.toggle."##id; \
+ target: "button.toggle.ico."##id; \
+ api: id"_toggle_off" "toggle off "##id; \
+ } \
+ }
+
+ ACTION_TOGGLE("mute", "mute", 0.00 0.0, 0.25 1.0);
+ ACTION_TOGGLE("speaker", "speaker", 0.25 0.0, 0.50 1.0);
+ ACTION_BUTTON("keypad", "keypad", 0.50 0.0, 0.75 1.0);
+
+ ACTION_HIDEABLE("merge", "merge", 0.75 0.0, 1.0 1.0);
+ ACTION_HIDEABLE("add-call", "add_call", 0.75 0.0, 1.0 1.0);
+
+#undef ACTION_BUTTON
+#undef ACTION_TOGGLE
+
+ SEPARATOR("answer", "clipper.answer", 0.0, -SEPARATOR_HEIGHT, "button.answer");
+ SEPARATOR("hangup", "clipper.multiparty-details-hidden", 0.0, -SEPARATOR_HEIGHT, "button.hangup");
+
+ programs {
+ program {
+ signal: "enable,merge";
+ source: "call";
+ after: "hide_add-call";
+ after: "show_merge";
+ }
+ program {
+ signal: "disable,merge";
+ source: "call";
+ after: "show_add-call";
+ after: "hide_merge";
+ }
+ }
+
+ part {
+ name: "clipper.keypad-hidden";
+ type: RECT;
+ clip_to: "clipper.multiparty-details-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "clipper.keypad-visible";
+ type: RECT;
+ clip_to: "clipper.multiparty-details-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ rel2.offset: -1 (-ACTION_HEIGHT - SEPARATOR_HEIGHT);
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+
+
+ /* keypad */
+ SEPARATOR("hide-keypad", "clipper.keypad-visible", 0.0, -SEPARATOR_HEIGHT, "button.hide-keypad");
+ SEPARATOR("keypad", "clipper.keypad-visible", 0.0, -SEPARATOR_HEIGHT, "bg.keypad");
+
+ part {
+ name: "bg.keypad";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-visible";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH (HEIGHT - 2 * CALL_HEIGHT - 2 * ACTION_HEIGHT - 4 * SEPARATOR_HEIGHT);
+ max: WIDTH (HEIGHT - 2 * CALL_HEIGHT - 2 * ACTION_HEIGHT - 4 * SEPARATOR_HEIGHT); /* keep it tight centered */
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 (-HEIGHT + 2 * CALL_HEIGHT + 2 * ACTION_HEIGHT + 3 * SEPARATOR_HEIGHT);
+ to_y: "button.hide-keypad";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: 0 (-SEPARATOR_HEIGHT - 1);
+ to_y: "button.hide-keypad";
+ }
+ }
+ }
+#define BUTTON(id, label, sub, ccls, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper.keypad-visible"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.keypad"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.keypad"; \
+ relative: r2; \
+ offset: -2 -2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ clip_to: "clipper.keypad-visible"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ relative: 1.0 0.8; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ color_class: "bg"; \
+ } \
+ } \
+ part { \
+ name: "sub."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ clip_to: "clipper.keypad-visible"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "secondary"; \
+ rel1 { \
+ to: "button."##id; \
+ relative: 0.0 0.5; \
+ offset: 0 2; \
+ } \
+ rel2.to: "button."##id; \
+ text { \
+ text: sub; \
+ font: FONT_BOLD; \
+ size: SIZE_TINY; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ color_class: "bg"; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "call"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ target: "sub."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "call"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.3; \
+ target: "button."##id; \
+ target: "label."##id; \
+ target: "sub."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "call"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("1", "1", "", "action", 0.000 0.0, 0.333 0.25);
+ BUTTON("2", "2", "ABC", "action", 0.333 0.0, 0.666 0.25);
+ BUTTON("3", "3", "DEF", "action", 0.666 0.0, 1.000 0.25);
+
+ BUTTON("4", "4", "GHI", "action", 0.000 0.25, 0.333 0.50);
+ BUTTON("5", "5", "JKL", "action", 0.333 0.25, 0.666 0.50);
+ BUTTON("6", "6", "MNO", "action", 0.666 0.25, 1.000 0.50);
+
+ BUTTON("7", "7", "PQRS", "action", 0.000 0.50, 0.333 0.75);
+ BUTTON("8", "8", "TUV", "action", 0.333 0.50, 0.666 0.75);
+ BUTTON("9", "9", "WXYZ", "action", 0.666 0.50, 1.000 0.75);
+
+ BUTTON("star", "*", "", "secondary", 0.000 0.75, 0.333 1.00);
+ BUTTON("0", "0", "+", "action", 0.333 0.75, 0.666 1.00);
+ BUTTON("hash", "#", "", "secondary", 0.666 0.75, 1.000 1.00);
+#undef BUTTON
+
+ part {
+ name: "area.hide-keypad";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-visible";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1 {
+ to_y: "button.hangup";
+ relative: 0.0 -1.0;
+ offset: 0 (HEIGHT - 2 * CALL_HEIGHT - 2 * ACTION_HEIGHT - 4 * SEPARATOR_HEIGHT);
+ }
+ rel2 {
+ to_y: "button.hangup";
+ relative: 1.0 0.0;
+ offset: -1 (HEIGHT - 2 * CALL_HEIGHT - 2 * ACTION_HEIGHT - 4 * SEPARATOR_HEIGHT - 1);
+ }
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1 {
+ to_y: "button.hangup";
+ relative: 0.0 -1.0;
+ offset: 0 -SEPARATOR_HEIGHT;
+ }
+ rel2 {
+ to_y: "button.hangup";
+ relative: 1.0 0.0;
+ offset: -1 (-SEPARATOR_HEIGHT - 1);
+ }
+ }
+ }
+ part {
+ name: "button.hide-keypad";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "clipper.keypad-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ rel1.to_y: "area.hide-keypad";
+ rel2.to_y: "area.hide-keypad";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "label.hide-keypad";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.to: "button.hide-keypad";
+ rel2.to: "button.hide-keypad";
+ text {
+ text: "Hide Keypad";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ programs {
+ program {
+ signal: "active,disconnected";
+ source: "call";
+ after: "hide_keypad";
+ }
+ program {
+ name: "hide_keypad";
+ signal: "clicked,hangup";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ target: "clipper.keypad-visible";
+ target: "clipper.keypad-hidden";
+ target: "area.hide-keypad";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "button.hide-keypad";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "button.hide-keypad";
+ target: "label.hide-keypad";
+ }
+ program {
+ signal: "mouse,down,1";
+ source: "button.hide-keypad";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.hide-keypad";
+ target: "label.hide-keypad";
+ }
+
+ program {
+ name: "hide-keypad-phase1";
+ signal: "mouse,clicked,1";
+ source: "button.hide-keypad";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.keypad-visible";
+ target: "area.hide-keypad";
+ after: "hide-keypad-phase2";
+ }
+ program {
+ name: "hide-keypad-phase2";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.keypad-hidden";
+ }
+
+ program {
+ name: "show-keypad-phase1";
+ signal: "mouse,clicked,1";
+ source: "button.keypad";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.keypad-hidden";
+ after: "show-keypad-phase2";
+ }
+ program {
+ name: "show-keypad-phase2";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "area.hide-keypad";
+ target: "clipper.keypad-visible";
+ }
+ }
+
+ /* buttons */
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-hidden";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.to: "area.answer";
+ rel2.to: "button.hangup";
+ }
+ }
+
+ part {
+ name: "clipper.answer";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.keypad-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+ part {
+ name: "area.answer";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.answer";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.to_y: "button.hangup";
+ rel2.to_y: "button.hangup";
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1 {
+ to_y: "button.hangup";
+ relative: 0.0 -1.0;
+ offset: 0 -SEPARATOR_HEIGHT;
+ }
+ rel2 {
+ to_y: "button.hangup";
+ relative: 1.0 0.0;
+ offset: -1 (-SEPARATOR_HEIGHT - 1);
+ }
+ }
+ }
+ part {
+ name: "button.answer";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "clipper.answer";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ rel1.to_y: "area.answer";
+ rel2.to_y: "area.answer";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "label.answer";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.answer";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.to: "button.answer";
+ rel2.to: "button.answer";
+ text {
+ text: "Answer";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,up,1";
+ source: "button.answer";
+ action: SIGNAL_EMIT "released,answer" "call";
+ after: "show_up_answer";
+ api: "answer_released" "answer was released";
+ }
+ program {
+ name: "show_up_answer";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "button.answer";
+ target: "label.answer";
+ }
+ program {
+ signal: "mouse,down,1";
+ source: "button.answer";
+ after: "show_down_answer";
+ action: SIGNAL_EMIT "pressed,answer" "call";
+ api: "answer_pressed" "answer was pressed";
+ }
+ program {
+ name: "show_down_answer";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.answer";
+ target: "label.answer";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.answer";
+ action: SIGNAL_EMIT "clicked,answer" "call";
+ api: "answer_clicked" "answer was clicked";
+ }
+
+ program {
+ signal: "show,answer";
+ source: "call";
+ action: STATE_SET "visible" 0.0;
+ target: "area.answer";
+ target: "clipper.answer";
+ api: "answer_show" "make answer button visible";
+ }
+ program {
+ signal: "hide,answer";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ target: "area.answer";
+ target: "clipper.answer";
+ api: "answer_hide" "make answer button hidden";
+ }
+ }
+
+ part {
+ name: "button.hangup";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "clipper.multiparty-details-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "caution";
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -ACTION_HEIGHT;
+ }
+ rel2 {
+ relative: 1 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "label.hangup";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.multiparty-details-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "caution";
+ rel1.to: "button.hangup";
+ rel2.to: "button.hangup";
+ text {
+ text: "Hangup";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,up,1";
+ source: "button.hangup";
+ action: SIGNAL_EMIT "released,hangup" "call";
+ api: "hangup_released" "hangup was released";
+ after: "show_up_hangup";
+ }
+ program {
+ name: "show_up_hangup";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "button.hangup";
+ target: "label.hangup";
+ }
+ program {
+ signal: "mouse,down,1";
+ source: "button.hangup";
+ after: "show_down_hangup";
+ action: SIGNAL_EMIT "pressed,hangup" "call";
+ api: "hangup_pressed" "hangup was pressed";
+ }
+ program {
+ name: "show_down_hangup";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.hangup";
+ target: "label.hangup";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.hangup";
+ action: SIGNAL_EMIT "clicked,hangup" "call";
+ api: "hangup_clicked" "hangup was clicked";
+ }
+ }
+
+ /* multiparty options */
+ part {
+ name: "clipper.multiparty-details-hidden";
+ type: RECT;
+ clip_to: "clipper.waiting-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "clipper.multiparty-details-visible";
+ type: RECT;
+ clip_to: "clipper.waiting-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+ part {
+ name: "label.multiparty";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "clipper.multiparty-details-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ align: 0.0 0.5;
+ rel1.offset: BORDER_PADDING 0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: (-BORDER_PADDING - 1) ACTION_HEIGHT;
+ }
+ text {
+ text: "Conference";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ size_range: SIZE_TINY SIZE_MEDIUM;
+ fit: 1 1;
+ align: 0.5 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+ SEPARATOR("multiparty-details", "clipper.multiparty-details-visible", 0.0, -SEPARATOR_HEIGHT, "elm.swallow.multiparty-details");
+
+ part {
+ name: "elm.swallow.multiparty-details";
+ type: SWALLOW;
+ mouse_events: 1;
+ clip_to: "clipper.multiparty-details-visible";
+ api: "multiparty_details" "swallow to hold the multiparty details";
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ }
+ rel2 {
+ relative: 1.0 2.0;
+ offset: -1 (-ACTION_HEIGHT - SEPARATOR_HEIGHT);
+ }
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 (-ACTION_HEIGHT - SEPARATOR_HEIGHT);
+ }
+ }
+ }
+
+ SEPARATOR("multiparty-details-back", "clipper.multiparty-details-visible", 0.0, -SEPARATOR_HEIGHT, "button.multiparty-details-back");
+ part {
+ name: "button.multiparty-details-back";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "clipper.multiparty-details-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "bg";
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -ACTION_HEIGHT;
+ }
+ rel2 {
+ relative: 1 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "action";
+ }
+ }
+ part {
+ name: "label.multiparty-details-back";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.multiparty-details-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.to: "button.multiparty-details-back";
+ rel2.to: "button.multiparty-details-back";
+ text {
+ text: "Back";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,up,1";
+ source: "button.multiparty-details-back";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "button.multiparty-details-back";
+ target: "label.multiparty-details-back";
+ }
+ program {
+ signal: "mouse,down,1";
+ source: "button.multiparty-details-back";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.multiparty-details-back";
+ target: "label.multiparty-details-back";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.multiparty-details-back";
+ action: SIGNAL_EMIT "hide,multiparty-details" "call";
+ }
+ program {
+ signal: "multiparty,private";
+ source: "call";
+ action: SIGNAL_EMIT "hide,multiparty-details" "call";
+ }
+ }
+
+ programs {
+ program {
+ name: "hide-multiparty-details-phase1";
+ signal: "hide,multiparty-details";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.multiparty-details-visible";
+ target: "elm.swallow.multiparty-details";
+ after: "hide-multiparty-details-phase2";
+ api: "multiparty_details_hide" "make multiparty-details popup hidden";
+ }
+ program {
+ name: "hide-multiparty-details-phase2";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.multiparty-details-hidden";
+ }
+
+ program {
+ signal: "clicked,2,multiparty";
+ source: "call";
+ after: "show-multiparty-details-phase1";
+ }
+
+ program {
+ name: "show-multiparty-details-phase1";
+ signal: "clicked,1,multiparty"; /* just show on user request */
+ source: "call";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.multiparty-details-hidden";
+ after: "show-multiparty-details-phase2";
+ api: "multiparty_details_show" "make multiparty-details popup visible";
+ }
+ program {
+ name: "show-multiparty-details-phase2";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "elm.swallow.multiparty-details";
+ target: "clipper.multiparty-details-visible";
+ }
+ }
+
+ /* waiting popup */
+ part {
+ name: "clipper.waiting-hidden";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "clipper.waiting-visible";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+ part {
+ name: "area.waiting";
+ type: RECT;
+ mouse_events: 1; /* block events going to the call screen below it */
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 2.0;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ }
+ }
+
+#define BUTTON(id, label, colcls, prev) \
+ SEPARATOR(id, "clipper."##id, 0.0, -SEPARATOR_HEIGHT, "button."##id); \
+ part { \
+ name: "clipper."##id; \
+ type: RECT; \
+ clip_to: "clipper.waiting-visible"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { \
+ state: "hidden" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: colcls; \
+ rel1 { \
+ to: prev; \
+ relative: 0.0 0.0; \
+ offset: 0 -ACTION_HEIGHT; \
+ } \
+ rel2 { \
+ to: prev; \
+ relative: 1.0 0.0; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { \
+ state: "hidden" 0.0; \
+ inherit: "default" 0.0; \
+ rel1 { \
+ to: prev; \
+ relative: 0.0 0.0; \
+ offset: 0 SEPARATOR_HEIGHT; \
+ } \
+ rel2 { \
+ to: prev; \
+ relative: 1.0 0.0; \
+ offset: -1 (ACTION_HEIGHT + SEPARATOR_HEIGHT - 1); \
+ } \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: colcls; \
+ rel1 { \
+ to: "button."##id; \
+ offset: BORDER_PADDING 0; \
+ } \
+ rel2 { \
+ to: "button."##id; \
+ offset: (-BORDER_PADDING - 1) -1; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_LARGE; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "call"; \
+ api: id"_released" id" was released"; \
+ after: "show_up_"##id; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "call"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.3; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "call"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("waiting-hangup", "Decline", "action", "separator.primary.hold-answer");
+ BUTTON("hold-answer", "Hold + Answer", "action", "separator.primary.hangup-answer");
+ BUTTON("hangup-answer", "Hangup + Answer", "caution", "separator.primary.waiting-last");
+#undef BUTTON
+
+ SEPARATOR("waiting-last", "clipper.waiting-visible", 1.0, 0, "");
+ SEPARATOR("waiting", "clipper.waiting-visible", 0.0, 0, "area.waiting");
+ part {
+ name: "elm.text.waiting";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "clipper.waiting-visible";
+ api: "waiting" "waiting call name";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "elm.swallow.waiting.photo";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING ACTION_HEIGHT;
+ }
+ text {
+ text: "Someone";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ size_range: SIZE_TINY SIZE_MEDIUM;
+ fit: 1 1;
+ align: 0.0 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "waiting.img.border";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ clip_to: "clipper.waiting-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "elm.swallow.waiting.photo";
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ }
+ rel2 {
+ to: "elm.swallow.waiting.photo";
+ relative: 1.0 1.0;
+ offset: 0 0;
+ }
+ }
+ }
+
+ part {
+ name: "waiting.img.bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ clip_to: "clipper.waiting-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ rel1 {
+ to: "elm.swallow.waiting.photo";
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "elm.swallow.waiting.photo";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.waiting.photo";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "clipper.waiting-visible";
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: CALL_PHOTO_SIZE CALL_PHOTO_SIZE;
+ max: CALL_PHOTO_SIZE CALL_PHOTO_SIZE;
+ rel1 {
+ to: "notification.bar";
+ relative: 0.0 1.0;
+ offset: BORDER_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to: "notification.bar";
+ relative: 0.0 1.0;
+ offset: (CALL_PHOTO_SIZE + BORDER_PADDING) (CALL_PHOTO_SIZE + ITEM_PADDING);
+ }
+ }
+ }
+
+ part {
+ name: "label.waiting";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "clipper.waiting-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 {
+ to: "elm.text.waiting";
+ relative: 0.0 1.0;
+ offset: 0 -20;
+ }
+ rel2 {
+ to: "elm.text.waiting";
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ text {
+ text: "Waiting...";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 1 1;
+ align: 0.0 0.0;
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "hide-waiting-phase1";
+ signal: "hide,waiting";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.waiting-visible";
+ after: "hide-waiting-phase2";
+ api: "waiting_hide" "make waiting popup hidden";
+ }
+ program {
+ name: "hide-waiting-phase2";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "area.waiting";
+ after: "hide-waiting-phase3";
+ }
+ program {
+ name: "hide-waiting-phase3";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.waiting-hidden";
+ }
+
+ program {
+ name: "show-waiting-phase1";
+ signal: "show,waiting";
+ source: "call";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.waiting-hidden";
+ after: "show-waiting-phase2";
+ api: "waiting_show" "make waiting popup visible";
+ }
+ program {
+ name: "show-waiting-phase2";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "area.waiting";
+ after: "show-waiting-phase3";
+ }
+ program {
+ name: "show-waiting-phase3";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "clipper.waiting-visible";
+ }
+
+ program {
+ signal: "enable,merge";
+ source: "call";
+ action: STATE_SET "hidden" 0.0;
+ target: "button.hold-answer";
+ target: "clipper.hold-answer";
+ }
+ program {
+ signal: "disable,merge";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ target: "button.hold-answer";
+ target: "clipper.hold-answer";
+ }
+ }
+
+#undef SEPARATOR
+ }
+
+}
+
+group {
+ name: "elm/layout/ofono-efl/activecall";
+
+ /*
+ * Represents the active call in the other screens (not callscreen)
+ *
+ * Parts:
+ * TEXT: elm.text.name
+ * TEXT: elm.text.phone.type
+ * TEXT: elm.text.status
+ * TEXT: elm.text.elapsed
+ * Signals:
+ * Emit (source is "call"):
+ * clicked:
+ * Listen (source is "call"):
+ * show,multiparty: active call is multiparty
+ * hide,multiparty: active call is not multiparty
+ * state,<STATE>: state changed to <STATE>
+ *
+ * Where <STATE> is: disconnected, active, held, dialing, alerting,
+ * incoming, waiting.
+ */
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ max: 99999 (ACTION_HEIGHT / 2);
+ min: 0 (ACTION_HEIGHT / 2);
+ align: 0.5 0.0;
+ }
+ }
+
+ programs {
+ program {
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "clicked" "call";
+ }
+ }
+
+ part {
+ name: "elm.text.name";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ rel1 {
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ to_y: "bg";
+ to_x: "elm.text.elapsed";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - 1) -1;
+ }
+ text {
+ text: "Gustavo Barbieri";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.elapsed";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: (-BORDER_PADDING - 1) 0;
+ }
+ rel2 {
+ to: "bg";
+ offset: (-BORDER_PADDING - 1) -1;
+ }
+ text {
+ text: "12:34";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 1 0;
+ align: 1.0 0.5;
+ }
+ }
+ }
+ }
+}
+
+group {
+
+ name: "elm/icon/multiparty/default";
+
+ images{
+ image: "ico_multiparty.png" COMP;
+ }
+
+ parts {
+ part {
+ name : "base";
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ aspect: 1.0 1.0;
+ color_class: "action";
+ aspect_preference: BOTH;
+ image.normal: "ico_multiparty.png";
+ }
+ }
+ }
+}
--- /dev/null
+color_classes {
+ color_class {
+ name: "bg";
+ color: 255 255 255 255;
+ }
+
+ color_class {
+ name: "primary";
+ color: 225 225 225 255;
+ }
+
+ color_class {
+ name: "secondary";
+ color: 120 120 120 255;
+ }
+#define TEXTBLOCK_COLOR_SECONDARY "#787878"
+
+ color_class {
+ name: "action";
+ color: 36 36 36 255;
+ }
+#define TEXTBLOCK_COLOR_ACTION "#242424"
+
+ color_class {
+ name: "caution";
+ color: 193 39 44 255;
+ }
+#define TEXTBLOCK_COLOR_CAUTION "#c1272c"
+
+ color_class {
+ name: "disabled";
+ color: 255 255 255 64;
+ }
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/compose";
+
+ /*
+ * Represents the messages compose layout with actions and swallows.
+ *
+ * Parts:
+ *
+ * TEXT: elm.text.name - Name of the contact/number.
+ * TEXT: elm.text.size - Size of the message (number of characters)
+ * SWALLOW: elm.swallow.destination - Text Entry - Contacts that the message will be sent
+ * SWALLOW: elm.swallow.message - Text Entry - Content of the message
+ * SWALLOW: elm.swallow.genlist - Where the message thread is going to appear
+ * IMAGE: elm.img.btn.send - A Button to send the message
+ *
+ * Signals:
+ * Emit (source is "gui"):
+ * clicked,<ID>: key <ID> was clicked (press and release in the key)
+ * clicked,edit - When the edit button is cliked
+ * clicked,edit,done - When The Button "Done" while editing is clicked
+ * clicked,send_msg - When elm.img.btn.send is clicked
+ *
+ * Listens (source is "gui"):
+ * show,genlist - Show the genlist with the current message thread
+ * hidden,genlist - Hide the genlist
+ * toggle,on,edit - User is editing
+ * toggle,off,edit - User finished the editing
+ *
+ * Messages:
+ * 1 - INT_SET: tuple of message size and maximum size.
+ *
+ * Where <ID> is the name of the button
+ *
+ */
+
+ images {
+ image: "bg_keypad.jpg" COMP;
+ image: "ico_arrow_right.png" COMP;
+ image: "ico_ball.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ }
+ }
+
+ part {
+ name: "notification.bar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 NOTIFICATION_BAR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "button.area.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.to: "bg.buttons";
+ rel2 {
+ to: "bg.buttons";
+ offset: -1 SEPARATOR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "button.clipper";
+ type: RECT;
+ clip_to: "button.area.clipper";
+ description {
+ state: "default" 0.0;
+ rel1.to: "button.area.clipper";
+ rel2.to: "button.area.clipper";
+ }
+ description {
+ state: "alternate" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "edit-button.clipper";
+ type: RECT;
+ clip_to: "button.area.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ rel1.to: "button.area.clipper";
+ rel2.to: "button.area.clipper";
+ }
+ description {
+ state: "alternate" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "edit.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.to: "bg.edit";
+ rel2 {
+ to: "bg.edit";
+ offset: -1 SEPARATOR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "button.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ fixed: 1 1;
+ min: 0 (ACTION_HEIGHT / 2);
+ rel1 {
+ to: "notification.bar";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ to_x: "bg.edit";
+ to_y: "notification.bar";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - 1) (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ description {
+ state: "compose" 0.0;
+ inherit: "default" 0.0;
+ rel2 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: -1 (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+
+ part {
+ name: "header.name.bg";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "button.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.to: "bg.buttons";
+ rel2.to: "bg.buttons";
+ }
+ }
+
+ part {
+ name: "elm.text.name";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "button.clipper";
+ api: "name" "message destination name";
+ description {
+ state: "default" 0.0;
+ color: 240 240 240 255;
+ color_class: "action";
+ rel1 {
+ to: "bg.buttons";
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to: "bg.buttons";
+ offset: (-ITEM_PADDING - 1) -1;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ align: 0.5 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "bg.edit";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 (ACTION_HEIGHT / 2);
+ rel1 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: (-LIST_ICON_SIZE - ITEM_PADDING - BORDER_PADDING) 0;
+ }
+ rel2 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: -1 (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+
+#define SEPARATOR(id, clip, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("button", "button.area.clipper", 1.0, 0, "bg.buttons");
+ SEPARATOR("edit-button", "button.area.clipper", 1.0, 0, "bg.buttons");
+ SEPARATOR("edit", "edit.clipper", 1.0, 0, "bg.edit");
+#undef SEPARATOR
+
+
+#define BUTTON(id, label, ccls, clip, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.buttons"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.buttons"; \
+ relative: r2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ } \
+ } \
+ \
+ programs { \
+ program { \
+ signal: "toggle,on,"##id; \
+ source: "gui"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "toggle,off,"##id; \
+ source: "gui"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("clear", "Clear", "caution", "edit-button.clipper", 0.0 0.0, 0.5 1.0);
+ BUTTON("edit,done", "Done", "action", "edit-button.clipper", 0.5 0.0, 1.0 1.0);
+#undef BUTTON
+
+ part {
+ name: "button.edit";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "caution";
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "compose" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "ico.edit";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 0.0 0.5;
+ color: 255 255 255 255;
+ color_class: "caution";
+ rel1 {
+ to: "button.edit";
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to: "button.edit";
+ offset: (-BORDER_PADDING - 1) -1;
+ }
+ image {
+ normal: "ico_del.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 240 240 240 255;
+ }
+ description {
+ state: "compose" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "button.over.edit";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "compose" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "ico.ball";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ image {
+ normal: "ico_ball.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "elm.text.names_count";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 0;
+ rel1.to: "ico.ball";
+ rel2.to: "ico.ball";
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ size_range: SIZE_SMALL SIZE_LARGE;
+ fit: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "elm.swallow.destination";
+ type: SWALLOW;
+ api: "destination" "where to swallow destination field";
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ to_y: "separator.bg.button";
+ relative: 0.0 1.0;
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ to: "separator.bg.button";
+ relative: 0.0 1.0;
+ offset: (WIDTH -2 * BORDER_PADDING) ACTION_HEIGHT;
+ }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "clipper.contacts.visible";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ color: 255 255 255 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.genlist";
+ type: SWALLOW;
+ api: "genlist" "where to swallow list of messages";
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ to_y: "separator.bg.button";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ to: "bg.entry.msg";
+ relative: 1.0 0.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "bg.entry.msg";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 {
+ to: "separator.primary.back";
+ relative: 0.0 0.0;
+ offset: 0 (-ACTION_HEIGHT);
+ }
+ rel2 {
+ to: "separator.primary.back";
+ relative: 1.0 0.0;
+ offset: 0 -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.message";
+ type: SWALLOW;
+ api: "message" "where to swallow the message editor";
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to: "bg.entry.msg";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to_x: "elm.img.btn.send";
+ to_y: "bg.entry.msg";
+ relative: 0.0 0.6;
+ offset: -ITEM_PADDING -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.img.btn.send";
+ type: IMAGE;
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 {
+ to: "bg.entry.msg";
+ relative: 1.0 0.0;
+ offset: -BORDER_PADDING 0;
+ }
+ rel2 {
+ to: "bg.entry.msg";
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING -1;
+ }
+ image {
+ normal: "ico_arrow_right.png";
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.size";
+ type: TEXT;
+ mouse_events: 0;
+ api: "size" "message size (in characters)";
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ rel1 {
+ to: "elm.text.separator_size";
+ relative: 0.0 0.0;
+ offset: (-ITEM_PADDING - 1 - ITEM_PADDING) 0;
+ }
+ rel2 {
+ to: "elm.text.separator_size";
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ text {
+ text: "999";
+ font: FONT_NORMAL;
+ size: SIZE_SMALL;
+ min: 1 0;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.separator_size";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.contacts.visible";
+ api: "separator" "A separator for size and max size";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ rel1 {
+ to: "elm.img.btn.send";
+ relative: 0.5 1.0;
+ offset: 0 ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "elm.img.btn.send";
+ to_y: "bg.entry.msg";
+ relative: 0.5 1.0;
+ }
+ text {
+ text: "/";
+ font: FONT_NORMAL;
+ size: SIZE_SMALL;
+ min: 1 0;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.max_size";
+ type: TEXT;
+ mouse_events: 0;
+ api: "max size" "max size of the SMS";
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ rel1 {
+ to: "elm.text.separator_size";
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ to: "bg.entry.msg";
+ relative: 1.0 1.0;
+ }
+ text {
+ text: "160";
+ font: FONT_NORMAL;
+ size: SIZE_SMALL;
+ align: 0.0 0.5;
+ }
+ }
+ }
+
+#define SEPARATOR(id, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: "clipper.contacts.visible"; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ clip_to: "clipper.contacts.visible"; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("back", 0.0, -SEPARATOR_HEIGHT, "bg.buttons.back");
+#undef SEPARATOR
+
+ part {
+ name: "bg.buttons.back";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.contacts.visible";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH ACTION_HEIGHT;
+ max: 99999 99999; /* keep it tight centered */
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -ACTION_HEIGHT;
+ }
+ }
+ }
+#define BUTTON(id, label, ccls, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ clip_to: "clipper.contacts.visible"; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.buttons.back"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.buttons.back"; \
+ relative: r2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ clip_to: "clipper.contacts.visible"; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_HUGE; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ } \
+ } \
+ \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "keypad"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "keypad"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("back", "Back", "action", 0.0 0.0, 1.0 1.0);
+#undef BUTTON
+
+ part {
+ name: "elm.swallow.genlist.contacts";
+ type: SWALLOW;
+ api: "contacts genlist" "A genlist to be filled with contacts";
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ to_y: "elm.swallow.destination";
+ relative: 0.0 1.0;
+ offset: 0 ITEM_PADDING;
+ }
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+
+ program {
+ signal: "contacts,hidden";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.genlist.contacts";
+ target: "clipper.contacts.visible";
+ }
+ program {
+ signal: "contacts,show";
+ source: "gui";
+ action: STATE_SET "alternate" 0.0;
+ target: "elm.swallow.genlist.contacts";
+ target: "clipper.contacts.visible";
+ }
+ program {
+ signal: "show,genlist";
+ source: "gui";
+ after: "hide,entry,to";
+ after: "show,genlist";
+ }
+ program {
+ signal: "hidden,genlist";
+ source: "gui";
+ after: "show,entry,to";
+ after: "hide,genlist";
+ }
+ program {
+ name: "hide,entry,to";
+ action: STATE_SET "hidden" 0.0;
+ target: "elm.swallow.destination";
+ }
+ program {
+ name: "show,entry,to";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.destination";
+ }
+ program {
+ name: "hide,genlist";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.genlist";
+ }
+ program {
+ name: "show,genlist";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.genlist";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "elm.img.btn.send";
+ action: SIGNAL_EMIT "clicked,send_msg" "gui";
+ }
+ program {
+ signal: "toggle,on,edit";
+ source: "gui";
+ action: STATE_SET "pressed" 0.0;
+ target: "button.edit";
+ target: "button.over.edit";
+ target: "ico.edit";
+ after: "show_edit_buttons";
+ }
+ program {
+ name: "show_edit_buttons";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.clipper";
+ target: "edit-button.clipper";
+ }
+
+ program {
+ signal: "toggle,off,edit";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "button.edit";
+ target: "button.over.edit";
+ target: "ico.edit";
+ after: "hide_edit_buttons";
+ }
+ program {
+ name: "hide_edit_buttons";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.clipper";
+ target: "edit-button.clipper";
+ }
+
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.edit";
+ action: SIGNAL_EMIT "clicked,edit" "gui";
+ api: "edit was clicked";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.over.edit";
+ action: SIGNAL_EMIT "clicked,edit,done" "gui";
+ api: "edit_done was clicked";
+ }
+ program {
+ signal: "composing";
+ source: "gui";
+ action: STATE_SET "compose" 0.0;
+ target: "bg.buttons";
+ target: "button.edit";
+ target: "ico.edit";
+ target: "button.over.edit";
+ }
+ program {
+ signal: "viewing";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "bg.buttons";
+ target: "button.edit";
+ target: "ico.edit";
+ target: "button.over.edit";
+ }
+ program {
+ signal: "names_count,show";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "bg.buttons";
+ after: "names_count.visible";
+ }
+ program {
+ name: "names_count.visible";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.text.names_count";
+ target: "ico.ball";
+ }
+ program {
+ signal: "names_count,hidden";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.names_count";
+ target: "ico.ball";
+ }
+
+ }
+}
+
+group {
+ name: "elm/genlist/item_compress/messages-outgoing/default";
+
+ data {
+ item: "texts" "text.msg.content text.msg.time";
+ item: "states" "sent failed";
+ item: "contents" "swallow.btn.resend";
+ }
+
+ images {
+ image: "bg_chat_outgoing.png" COMP;
+ image: "ico_msg_delivered.png" COMP;
+ }
+
+ styles {
+ style {
+ name: "entry_textblock_style_outgoing";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_SECONDARY" wrap=mixed valign=top align=right";
+ tag: "br" "\n";
+ }
+ style {
+ name: "entry_textblock_style_outgoing_failed";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_CAUTION" wrap=mixed valign=top align=right";
+ tag: "br" "\n";
+ }
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "text.msg.content";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.25 0.0;
+ offset: 0 ITEM_PADDING;
+ }
+ rel2 {
+ offset: (-BORDER_PADDING - ITEM_PADDING - 1) (-MESSAGE_IMG_SENT_SIZE -MESSAGE_SEPARATOR_HEIGHT -ITEM_PADDING -1);
+ }
+ text {
+ style: "entry_textblock_style_outgoing";
+ min: 0 1;
+ }
+ }
+ description {
+ state: "failed" 0.0;
+ inherit: "default" 0.0;
+ text {
+ min: 0 1;
+ style: "entry_textblock_style_outgoing_failed";
+ }
+ }
+ }
+
+ part {
+ name: "img.msg.separator";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ min: MESSAGE_SEPARATOR_WIDTH MESSAGE_SEPARATOR_HEIGHT;
+ max: MESSAGE_SEPARATOR_WIDTH MESSAGE_SEPARATOR_HEIGHT;
+ align: 1.0 1.0;
+ rel1 {
+ relative: 1.0 1.0;
+ offset: (-ITEM_PADDING -ITEM_PADDING - 1) (-MESSAGE_IMG_SENT_SIZE - ITEM_PADDING - 1);
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: (-ITEM_PADDING -ITEM_PADDING - 1) (-MESSAGE_IMG_SENT_SIZE - ITEM_PADDING - 1);
+ }
+ image.normal: "bg_chat_outgoing.png";
+ }
+ description {
+ state: "failed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "caution";
+ }
+ }
+
+ part {
+ name: "text.msg.time";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "secondary";
+ align: 0.0 0.0;
+ fixed: 1 1;
+ rel1 {
+ to_x: "img.msg.separator";
+ to_y: "text.msg.content";
+ relative: 0.0 1.0;
+ offset: 0 SEPARATOR_HEIGHT;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: (-MESSAGE_IMG_SENT_SIZE - 2 * BORDER_PADDING - ITEM_PADDING - 1) (-ITEM_PADDING -1);
+ }
+ text {
+ text: "time";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 0.0;
+ max: 1 0;
+ }
+ }
+ description {
+ state: "failed" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "swallow.btn.resend";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "caution";
+ align: 0.0 0.0;
+ fixed: 1 1;
+ visible: 0;
+ rel1 {
+ to_x: "img.msg.separator";
+ to_y: "text.msg.content";
+ relative: 0.0 1.0;
+ offset: 0 SEPARATOR_HEIGHT;
+ }
+ rel2 {
+ to: "img.msg.separator";
+ relative: 1.0 1.0;
+ offset: -ITEM_PADDING ITEM_PADDING;
+ }
+ }
+ description {
+ state: "failed" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "img.sent";
+ type: IMAGE;
+ description {
+ color: 255 255 255 255;
+ color_class: "secondary";
+ min: MESSAGE_IMG_SENT_SIZE MESSAGE_IMG_SENT_SIZE;
+ max: MESSAGE_IMG_SENT_SIZE MESSAGE_IMG_SENT_SIZE;
+ visible: 0;
+ align: 0.0 0.0;
+ rel1 {
+ to: "text.msg.time";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING -MESSAGE_IMG_SENT_Y_OFFSET;
+ }
+ image.normal: "ico_msg_delivered.png";
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "elm,state,sent,active";
+ source: "elm";
+ action: STATE_SET "visible" 0.0;
+ target: "img.sent";
+ }
+ program {
+ signal: "elm,state,sent,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "img.sent";
+ }
+ program {
+ signal: "elm,state,failed,active";
+ source: "elm";
+ action: STATE_SET "failed" 0.0;
+ target: "img.msg.separator";
+ target: "text.msg.content";
+ target: "swallow.btn.resend";
+ target: "text.msg.time";
+ }
+ program {
+ signal: "elm,state,failed,passive";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "img.msg.separator";
+ target: "text.msg.content";
+ target: "swallow.btn.resend";
+ target: "text.msg.time";
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item_compress/messages-incoming/default";
+ data {
+ item: "texts" "text.msg.content text.msg.time";
+ }
+ images {
+ image: "bg_chat_incoming.png" COMP;
+ }
+
+ styles {
+ style {
+ name: "entry_textblock_style_incoming";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=mixed valign=top align=left";
+ tag: "br" "\n";
+ }
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "text.msg.content";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.offset: BORDER_PADDING ITEM_PADDING;
+ rel2 {
+ relative: 0.75 1.0;
+ offset: 0 (-MESSAGE_IMG_SENT_SIZE -MESSAGE_SEPARATOR_HEIGHT -ITEM_PADDING -1);
+ }
+ text {
+ style: "entry_textblock_style_incoming";
+ min: 0 1;
+ }
+ }
+ }
+
+ part {
+ name: "img.msg.separator";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: MESSAGE_SEPARATOR_WIDTH MESSAGE_SEPARATOR_HEIGHT;
+ max: MESSAGE_SEPARATOR_WIDTH MESSAGE_SEPARATOR_HEIGHT;
+ align: 0.0 0.0;
+ rel1 {
+ to_y: "text.msg.content";
+ relative: 0.0 1.0;
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: (ITEM_PADDING + MESSAGE_SEPARATOR_WIDTH) -1;
+ }
+ image.normal: "bg_chat_incoming.png";
+ }
+ }
+
+ part {
+ name: "text.msg.time";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ align: 1.0 0.0;
+ fixed: 1 1;
+ rel1 {
+ to_x: "img.msg.separator";
+ to_y: "text.msg.content";
+ relative: 0.0 1.0;
+ offset: BORDER_PADDING SEPARATOR_HEIGHT;
+ }
+ rel2.to_x: "img.msg.separator";
+ text {
+ text: "time";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 1.0 0.0;
+ max: 1 0;
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item/contacts-compose/default";
+ data.item: "texts" "text.contact.name text.contact.number text.contact.type";
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ min: ACTION_WIDTH LIST_ITEM_HEIGHT;
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part{
+ name: "text.contact.name";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ relative: 0.0 0.0;
+ offset: BORDER_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ relative: 1.0 0.5;
+ offset: (-BORDER_PADDING - 1) 0;
+ }
+ text {
+ text: "James Bond";
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ align: 0.0 0.5;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part{
+ name: "text.contact.number";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ color: 255 255 255 255;
+ color_class: "secondary";
+ rel1 {
+ to: "text.contact.name";
+ relative: 0.0 1.0;
+ offset: 0 (ITEM_PADDING + 1);
+ }
+ rel2 {
+ to_y: "bg";
+ to_x: "text.contact.type";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - 1) (-ITEM_PADDING - 1);
+ }
+ text {
+ text: "0000007";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 0.5;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part{
+ name: "text.contact.type";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ color: 255 255 255 255;
+ color_class: "secondary";
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 {
+ to_y: "text.contact.name";
+ to_x: "bg";
+ relative: 1.0 1.0;
+ offset: (-BORDER_PADDING - 1) ITEM_PADDING;
+ }
+ rel2 {
+ to: "bg";
+ relative: 1.0 1.0;
+ offset: (-BORDER_PADDING - 1) (-ITEM_PADDING - 1);
+ }
+ text {
+ text: "0000007";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 1 0;
+ align: 1.0 0.5;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ }
+
+ programs {
+ program {
+ signal: "elm,state,selected";
+ source: "elm";
+ after: "show_selected";
+ }
+ program {
+ signal: "elm,state,unselected";
+ source: "elm";
+ after: "show_default";
+ }
+ program {
+ name: "show_selected";
+ action: STATE_SET "selected" 0.0;
+ target: "text.contact.number";
+ target: "text.contact.name";
+ target: "text.contact.type";
+ target: "bg";
+ }
+ program {
+ name: "show_default";
+ action: STATE_SET "default" 0.0;
+ target: "text.contact.number";
+ target: "text.contact.name";
+ target: "text.contact.type";
+ target: "bg";
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item_compress/outgoing-delete/default";
+ alias: "elm/genlist/item_compress_odd/outoing-delete/default";
+
+ data {
+ item: "contents" "msg.swallow.delete";
+ item: "mode_part" "elm.swallow.decorate.content";
+ }
+
+ parts {
+ part {
+ name: "content.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ offset: (-BORDER_PADDING - LIST_ICON_SIZE - ITEM_PADDING - 1) -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.decorate.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ clip_to: "content.clipper";
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "msg.swallow.delete";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 0;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: BORDER_PADDING 0;
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "animate_decorated";
+ signal: "elm,state,decorate,enabled,effect";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ after: "animate_decorated2";
+ }
+ program {
+ name: "animate_decorated2";
+ action: STATE_SET "decorated" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "msg.swallow.delete";
+ }
+
+ program {
+ name: "animate_default";
+ signal: "elm,state,decorate,disabled,effect";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "msg.swallow.delete";
+ after: "animate_default2";
+ }
+ program {
+ name: "animate_default2";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ }
+
+ program {
+ signal: "elm,state,decorate,enabled";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ target: "msg.swallow.delete";
+ }
+ program {
+ signal: "elm,state,decorate,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ target: "msg.swallow.delete";
+ }
+
+ program {
+ signal: "elm,state,slide,active";
+ source: "elm";
+ after: "animate_decorated";
+ }
+ program {
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ after: "animate_default";
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item_compress/incoming-delete/default";
+ alias: "elm/genlist/item_compress_odd/incoming-delete/default";
+
+ data {
+ item: "contents" "msg.swallow.delete";
+ item: "mode_part" "elm.swallow.decorate.content";
+ }
+
+ parts {
+ part {
+ name: "content.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ rel2 {
+ offset: (-BORDER_PADDING - LIST_ICON_SIZE - ITEM_PADDING - 1) -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.decorate.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ clip_to: "content.clipper";
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "msg.swallow.delete";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ }
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING -1;
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "animate_decorated";
+ signal: "elm,state,decorate,enabled,effect";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ after: "animate_decorated2";
+ }
+ program {
+ name: "animate_decorated2";
+ action: STATE_SET "decorated" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "msg.swallow.delete";
+ }
+
+ program {
+ name: "animate_default";
+ signal: "elm,state,decorate,disabled,effect";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "msg.swallow.delete";
+ after: "animate_default2";
+ }
+ program {
+ name: "animate_default2";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ }
+
+ program {
+ signal: "elm,state,decorate,enabled";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ target: "msg.swallow.delete";
+ }
+ program {
+ signal: "elm,state,decorate,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ target: "msg.swallow.delete";
+ }
+
+ program {
+ signal: "elm,state,slide,active";
+ source: "elm";
+ after: "animate_decorated";
+ }
+ program {
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ after: "animate_default";
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/entry/base/compose";
+
+ styles {
+ style {
+ name: "compose_textblock_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=mixed valign=top align=auto";
+ tag: "br" "\n";
+ }
+ style {
+ name: "compose_textblock_disabled_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=mixed valign=top align=auto";
+ tag: "br" "\n";
+ }
+ }
+
+ parts {
+ part {
+ name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ scale: 1;
+ entry_mode: EDITABLE;
+ select_mode: EXPLICIT;
+ source: "elm/entry/selection/dialer";
+ source4: "elm/entry/cursor/dialer";
+ multiline: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ rel1.offset: BORDER_PADDING 0;
+ text {
+ style: "compose_textblock_style";
+ min: 0 1;
+ max: 1 1;
+ align: -1.0 0.0;
+ }
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text {
+ style: "compose_textblock_disabled_style";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "load";
+ source: "";
+ action: FOCUS_SET;
+ target: "elm.text";
+ }
+ program {
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "elm.text";
+ }
+ program {
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text";
+ }
+ }
+}
+
+group {
+ name: "elm/button/base/compose-resend";
+
+ parts {
+ part {
+ name: "elm.text";
+ type: TEXT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "caution";
+ text {
+ text: "A Label";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ size_range: SIZE_MEDIUM SIZE_HUGE;
+ fit: 1 1;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 128;
+ }
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,down,1";
+ source: "elm.text";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ }
+ program {
+ signal: "mouse,up,1";
+ source: "elm.text";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "elm.text";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "elm.text";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "elm.text";
+ }
+
+ program {
+ signal: "mouse,down,1";
+ source: "elm.text";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "elm.text";
+ }
+ }
+}
+
+group {
+ name: "elm/entry/base-single/default";
+ inherit: "elm/entry/base/compose";
+ styles
+ {
+ style {
+ name: "entry_single_textblock_compose_guide_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=mixed text_class=entry left_margin=2 right_margin=2 ellipsis=0.0";
+ }
+ }
+ parts {
+ part {
+ name: "elm.guide";
+ type: TEXTBLOCK;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ text {
+ style: "entry_single_textblock_compose_guide_style";
+ min: 0 1;
+ align: 0.0 0.0;
+ }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.text";
+ multiline: 0;
+ description {
+ state: "default" 0.0;
+ text {
+ style: "compose_textblock_style";
+ min: 1 1;
+ max: 0 0;
+ align: 0.0 0.5;
+ }
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text {
+ style: "compose_textblock_disabled_style";
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/multibuttonentry/base/compose";
+ data.item: "closed_button_type" "image"; /* image, label, default : label */
+ data.item: "closed_height" 46;
+ parts {
+ part {
+ name: "box.swallow";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ }
+ }
+ }
+}
+
+
+group {
+ name: "elm/multibuttonentry/guidetext/compose";
+ parts {
+ part {
+ name: "elm.text.bg";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.to: "elm.text";
+ rel2.to: "elm.text";
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ rel1.offset: BORDER_PADDING 0;
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 0 1;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ }
+}
+
+
+group {
+ name: "elm/multibuttonentry/btn/compose";
+ data.item: "button_max_size" MULTI_BUTTON_ENTRY_MAX_SIZE;
+ styles {
+ style { name: "multibuttonentry_textblock_style";
+ base: "font="FONT_NORMAL" align=0.5 font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" text_class=label ellipsis=1.0";
+ tag: "br" "\n";
+ tag: "ps" "ps";
+ tag: "hilight" "+ font="FONT_BOLD"";
+ tag: "b" "+ font="FONT_BOLD"";
+ tag: "tab" "\t";
+ }
+ }
+
+ parts {
+ part {
+ name: "elm.base";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 LIST_ICON_SIZE;
+ max: 5000 LIST_ICON_SIZE;
+ fixed: 1 1;
+ color: 0 0 0 0;
+ }
+ }
+ part {
+ name: "right.padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min : ITEM_PADDING 0;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 1.0 1.0;
+ color: 0 0 0 0;
+ align: 1 1;
+ }
+ }
+ part {
+ name: "elm.btn.bg";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min : ITEM_PADDING LIST_ICON_SIZE;
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "right.padding";
+ }
+ color: 255 255 255 0;
+ color_class: "secondary";
+ }
+ description {
+ state: "focused" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "elm.btn.text";
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: ITEM_PADDING LIST_ICON_SIZE;
+ max: (MULTI_BUTTON_ENTRY_MAX_SIZE -2 * ITEM_PADDING) LIST_ICON_SIZE;
+ fixed: 0 1;
+ text {
+ text: "Auto Resized textblock";
+ style: "multibuttonentry_textblock_style";
+ min: 1 0;
+ align: 0.5 0.5;
+ }
+ rel1 {
+ to: "elm.btn.bg";
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to: "elm.btn.bg";
+ offset: (-ITEM_PADDING -1) -1;
+ }
+
+ }
+ }
+ }
+ programs {
+ program {
+ name: "clicked";
+ signal: "mouse,clicked,1";
+ source: "elm.btn.bg";
+ action: SIGNAL_EMIT "clicked" "elm";
+ }
+ program {
+ name: "default";
+ signal: "default";
+ action: STATE_SET "default" 0.0;
+ target: "elm.btn.bg";
+ }
+ program {
+ name: "focused";
+ signal: "focused";
+ action: STATE_SET "focused" 0.0;
+ target: "elm.btn.bg";
+ }
+ }
+}
+
+
+group {
+ name: "elm/multibuttonentry/label/default";
+ parts {
+ part {
+ name: "mbe.label.bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 0;
+ fixed: 1 1;
+ }
+ description {
+ state: "no_text" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "mbe.label.left.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 3 0;
+ fixed: 1 1;
+ rel1.to: "mbe.label.bg";
+ rel2 {
+ to: "mbe.label.bg";
+ relative: 0.0 1.0;
+ }
+ align: 0 0.5;
+ }
+ description {
+ state: "no_text" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "mbe.label.right.padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 3 0;
+ fixed: 1 1;
+ rel1 {
+ to: "mbe.label.bg";
+ relative: 1.0 0.0;
+ }
+ rel2.to: "mbe.label.bg";
+ align: 1 1.0;
+ }
+ description {
+ state: "no_text" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "mbe.label";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: 0 33;
+ fixed: 1 1;
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 1 1;
+ align: 0.0 0.428;
+ }
+ rel1 { relative: 1.0 1.0; to: "mbe.label.left.padding"; }
+ rel2 { relative: 0.0 0.0; to: "mbe.label.right.padding"; }
+ }
+ description {
+ state: "no_text" 0.0;
+ inherit: "default" 0.0;
+ min: 6 33;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "has_text";
+ signal: "elm,mbe,set_text";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "mbe.label.bg";
+ target: "mbe.label.left.padding";
+ target: "mbe.label.right.padding";
+ target: "mbe.label";
+ }
+ program {
+ name: "no_text";
+ signal: "elm,mbe,clear_text";
+ source: "";
+ action: STATE_SET "no_text" 0.0;
+ target: "mbe.label.bg";
+ target: "mbe.label.left.padding";
+ target: "mbe.label.right.padding";
+ target: "mbe.label";
+ }
+ }
+}
+
+
part {
name: "bg";
- type: IMAGE;
+ type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
color: 255 255 255 255;
- color_class: "dark";
- image {
- normal: "bg_keypad.jpg";
- scale_hint: STATIC;
- }
- fill.smooth: 1;
+ color_class: "primary";
}
}
--- /dev/null
+group {
+ name: "elm/genlist/item/contacts/default";
+
+ data {
+ item: "texts" "text.contacts.name text.contacts.last";
+ item: "contents" "swallow.photo";
+ }
+
+ parts{
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ min: WIDTH LIST_CONTACT_HEIGHT;
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "img.border";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "swallow.photo";
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ }
+ rel2 {
+ to: "swallow.photo";
+ relative: 1.0 1.0;
+ offset: 0 0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "img.bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ rel1 {
+ to: "swallow.photo";
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "swallow.photo";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "swallow.photo";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: CONTACT_PHOTO_SIZE CONTACT_PHOTO_SIZE;
+ max: CONTACT_PHOTO_SIZE CONTACT_PHOTO_SIZE;
+ align: 0.0 0.5;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ offset: BORDER_PADDING -1;
+ }
+ }
+ }
+
+ part {
+ name: "text.contacts.name";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "swallow.photo";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to_y: "swallow.photo";
+ relative: 1.0 0.7;
+ offset: (-BORDER_PADDING -1) -1;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ align: 0.0 0.0;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "text.contacts.last";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ rel1 {
+ to: "swallow.photo";
+ relative: 1.0 0.7;
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to_y: "swallow.photo";
+ relative: 1.0 1.0;
+ offset: (-BORDER_PADDING -1) -1;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ programs {
+
+ program {
+ signal: "elm,state,selected";
+ source: "elm";
+ action: STATE_SET "selected" 0.0;
+ target: "bg";
+ target: "text.contacts.name";
+ target: "text.contacts.last";
+ target: "img.border";
+ }
+
+ program {
+ signal: "elm,state,unselected";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "text.contacts.name";
+ target: "text.contacts.last";
+ target: "img.border";
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item/group_contacts/default";
+
+ data {
+ item: "texts" "text.group";
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: (BORDER_PADDING + CONTACT_PHOTO_SIZE) GROUP_HEIGHT;
+ max: (BORDER_PADDING + CONTACT_PHOTO_SIZE) GROUP_HEIGHT;
+ align: 0.0 0.5;
+ }
+ }
+
+ part {
+ name: "text.group";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "bg";
+ rel2 {
+ to: "bg";
+ offset: -ITEM_PADDING -1;
+ }
+ text {
+ font: FONT_BOLD;
+ size: SIZE_SMALL;
+ fit: 1 1;
+ align: 1.0 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/layout/ofono-efl/contacts_details";
+
+ parts {
+
+ part {
+ name: "img.border";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "swallow.photo";
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ }
+ rel2 {
+ to: "swallow.photo";
+ relative: 1.0 1.0;
+ offset: 0 0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "img.bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ rel1 {
+ to: "swallow.photo";
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "swallow.photo";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "swallow.photo";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: CONTACT_PHOTO_SIZE CONTACT_PHOTO_SIZE;
+ max: CONTACT_PHOTO_SIZE CONTACT_PHOTO_SIZE;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 0.0 0.0;
+ offset: (BORDER_PADDING+CONTACT_PHOTO_SIZE) (CONTACT_PHOTO_SIZE+ITEM_PADDING);
+ }
+ }
+ }
+
+ part {
+ name: "text.name";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "swallow.photo";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_y: "swallow.photo";
+ relative: 1.0 0.5;
+ offset: -BORDER_PADDING -ITEM_PADDING;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_HUGE;
+ fit: 0 0;
+ align: 0.0 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "text.last.name";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ rel1 {
+ to: "text.name";
+ relative: 0.0 1.0;
+ offset: 0 ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "text.name";
+ to_y: "swallow.photo";
+ relative: 1.0 1.0;
+ offset: 0 ITEM_PADDING;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ fit: 0 1;
+ align: 0.0 0.0;
+ ellipsis: 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "box.phones";
+ type: BOX;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ box {
+ layout: "vertical_homogeneous";
+ }
+ rel1 {
+ to_y: "swallow.photo";
+ relative: 0.0 1.0;
+ offset: 0 (ITEM_PADDING+ACTION_HEIGHT);
+ }
+ rel2 {
+ to_y: "bg.buttons";
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ }
+ }
+
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH ACTION_HEIGHT;
+ max: WIDTH 99999; /* keep it tight centered */
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -ACTION_HEIGHT;
+ }
+ }
+ }
+#define BUTTON(id, label, ccls, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.buttons"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.buttons"; \
+ relative: r2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_HUGE; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ } \
+ } \
+ \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "keypad"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "keypad"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("back", "Back", "action", 0.0 0.0, 1.0 1.0);
+#undef BUTTON
+ }
+}
+
+group {
+
+ name: "elm/icon/no-picture/default";
+
+ images{
+ image: "ico_person.png" COMP;
+ }
+
+ parts {
+ part {
+ name : "base";
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ aspect: 1.0 1.0;
+ color_class: "action";
+ aspect_preference: BOTH;
+ image.normal: "ico_person.png";
+ }
+ }
+ }
+}
+group {
+
+ name: "elm/button/base/contacts";
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "elm.text.phone";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ to_y: "elm.text.type";
+ relative: 1.0 0.0;
+ offset: (-BORDER_PADDING -1) ITEM_PADDING;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_HUGE;
+ size_range: SIZE_SMALL SIZE_HUGE;
+ fit: 1 1;
+ align: 0.5 0.5;
+ ellipsis: 1.0;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 240 240 240 255;
+ }
+ }
+
+ part {
+ name: "elm.text.type";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: BORDER_PADDING (-ITEM_PADDING - 1);
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: (-BORDER_PADDING -1) (-ITEM_PADDING - 1);
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 0 1;
+ align: 0.5 1.0;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 240 240 240 255;
+ }
+ }
+
+#define SEPARATOR(id, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("bottom", 1.0, -SEPARATOR_HEIGHT, "");
+#undef SEPARATOR
+ }
+
+ programs {
+
+ program {
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ signal: "mouse,down,1";
+ source: "bg";
+ transition: ACCELERATE 0.3;
+ action: STATE_SET "pressed" 0.0;
+ target: "bg";
+ target: "elm.text.phone";
+ target: "elm.text.type";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "bg";
+ transition: DECELERATE 0.3;
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text.phone";
+ target: "elm.text.type";
+ }
+ }
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/dialer";
+
+ min: WIDTH HEIGHT;
+
+ /*
+ * Represents the dialer main layout with actions and swallows.
+ *
+ * Parts:
+ * SWALLOW: elm.swallow.keypad
+ * SWALLOW: elm.swallow.contacts
+ * SWALLOW: elm.swallow.history
+ * SWALLOW: elm.swallow.activecall
+ *
+ * Signals:
+ * Emit (source is "gui"):
+ * pressed,<ID>: key <ID> was pressed
+ * released,<ID>: key <ID> was released
+ * clicked,<ID>: key <ID> was clicked (press and release in the key)
+ * Listens (source is "gui"):
+ * show,<ID>: have <ID> to be visible (swallow and action)
+ * toggle,on,<ID>: force <ID> to be marked as selected
+ * toggle,off,<ID>: force <ID> to be marked as unselected
+ *
+ * Where <ID> is: keypad, contacts, history, activecall.
+ */
+
+ images {
+ image: "ico_keypad.png" COMP;
+ image: "ico_history.png" COMP;
+ image: "ico_voicemail.png" COMP;
+ image: "ico_quit.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "notification.bar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 NOTIFICATION_BAR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.activecall";
+ type: SWALLOW;
+ api: "activecall" "where to place the active call, if any";
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ align: 0.5 0.0;
+ fixed: 1 1;
+ visible: 1;
+ rel1 {
+ to: "notification.bar";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: 0 0;
+ }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ programs {
+ program {
+ signal: "show,activecall";
+ source: "gui";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.activecall";
+ api: "activecall_show" "make the activecall swallow visible";
+ }
+ program {
+ signal: "hide,activecall";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.activecall";
+ api: "activecall_hide" "make the activecall swallow hidden";
+ }
+ }
+
+ part {
+ name: "elm.swallow.keypad";
+ type: SWALLOW;
+ api: "keypad" "where to place the keypad";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "elm.swallow.activecall";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2.offset: -1 (-ACTION_HEIGHT - 1);
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.contacts";
+ type: SWALLOW;
+ api: "contacts" "where to place the contacts";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "elm.swallow.activecall";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2.offset: -1 (-ACTION_HEIGHT - 1);
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.history";
+ type: SWALLOW;
+ api: "history" "where to place the history";
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "elm.swallow.activecall";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2.offset: -1 (-ACTION_HEIGHT - 1);
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "bg.actions";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH ACTION_HEIGHT;
+ max: WIDTH 99999; /* keep it tight centered */
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -ACTION_HEIGHT;
+ }
+ }
+ }
+
+#define ACTION_TOGGLE(id, x1, x2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper.toggle."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: (WIDTH / 4) ACTION_HEIGHT; \
+ max: (WIDTH / 4) ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: x1 0.0; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: x2 1.0; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "button.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ clip_to: "clipper.toggle."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ image.normal: "ico_"##id".png"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ } \
+ } \
+ part { \
+ name: "clipper.toggle."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ visible: 1; \
+ } \
+ description { \
+ state: "on" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 0; \
+ visible: 0; \
+ } \
+ } \
+ part { \
+ name: "button.toggle."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: (WIDTH / 4) ACTION_HEIGHT; \
+ max: (WIDTH / 4) ACTION_HEIGHT; \
+ fixed: 1 1; \
+ visible: 0; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: x1 0.0; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: x2 1.0; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "on" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ visible: 1; \
+ } \
+ } \
+ part { \
+ name: "button.toggle.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ visible: 0; \
+ rel1.to: "button.toggle."##id; \
+ rel2.to: "button.toggle."##id; \
+ image.normal: "ico_"##id".png"; \
+ } \
+ description { \
+ state: "on" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ visible: 1; \
+ } \
+ } \
+ part { \
+ name: "blocker."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "gui"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "gui"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button.toggle."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "toggle,on,"##id; \
+ source: "gui"; \
+ action: STATE_SET "on" 0.0; \
+ target: "clipper.toggle."##id; \
+ target: "button.toggle."##id; \
+ target: "button.toggle.ico."##id; \
+ } \
+ program { \
+ signal: "toggle,off,"##id; \
+ source: "gui"; \
+ action: STATE_SET "default" 0.0; \
+ target: "clipper.toggle."##id; \
+ target: "button.toggle."##id; \
+ target: "button.toggle.ico."##id; \
+ } \
+ }
+
+ ACTION_TOGGLE("quit", 0.00, 0.25);
+ ACTION_TOGGLE("keypad", 0.25, 0.50);
+ ACTION_TOGGLE("history", 0.50, 0.75);
+#undef ACTION_TOGGLE
+
+ part {
+ name: "clipper.disable.voicemail";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 128;
+ }
+ }
+ part {
+ name: "button.voicemail";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "clipper.toggle.voicemail-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ min: (WIDTH / 4) ACTION_HEIGHT;
+ max: (WIDTH / 4) ACTION_HEIGHT;
+ fixed: 1 1;
+ rel1 {
+ to: "bg.actions";
+ relative: 0.75 0.0;
+ }
+ rel2 {
+ to: "bg.actions";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "button.ico.voicemail";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "clipper.toggle.voicemail-hidden";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: ACTION_HEIGHT ACTION_HEIGHT;
+ max: ACTION_HEIGHT ACTION_HEIGHT;
+ fixed: 1 1;
+ rel1.to: "button.voicemail";
+ rel2.to: "button.voicemail";
+ image.normal: "ico_voicemail.png";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ part {
+ name: "clipper.toggle.voicemail-hidden";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.disable.voicemail";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ description {
+ state: "on" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "clipper.toggle.voicemail-visible";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "clipper.disable.voicemail";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ description {
+ state: "on" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+ part {
+ name: "button.toggle.voicemail";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "clipper.toggle.voicemail-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "caution";
+ min: (WIDTH / 4) ACTION_HEIGHT;
+ max: (WIDTH / 4) ACTION_HEIGHT;
+ fixed: 1 1;
+ rel1 {
+ to: "bg.actions";
+ relative: 0.75 0.0;
+ }
+ rel2 {
+ to: "bg.actions";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "button.toggle.ico.voicemail";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "clipper.toggle.voicemail-visible";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "caution";
+ min: ACTION_HEIGHT ACTION_HEIGHT;
+ max: ACTION_HEIGHT ACTION_HEIGHT;
+ fixed: 1 1;
+ rel1.to: "button.toggle.voicemail";
+ rel2.to: "button.toggle.voicemail";
+ image.normal: "ico_voicemail.png";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ part {
+ name: "elm.text.voicemail";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.toggle.voicemail-visible";
+ description {
+ state: "default" 0.0;
+ color_class: "caution";
+ rel1 {
+ to: "button.voicemail";
+ offset: 0 (ITEM_PADDING / 2);
+ }
+ rel2.to: "button.voicemail";
+ align: 0.5 0.0;
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ max: 1 1;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ part {
+ name: "blocker.voicemail";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.to: "button.voicemail";
+ rel2.to: "button.voicemail";
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,up,1";
+ source: "button.voicemail";
+ action: SIGNAL_EMIT "released,voicemail" "gui";
+ after: "show_up_voicemail";
+ api: id"_released" id" was released";
+ }
+ program {
+ name: "show_up_voicemail";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "button.voicemail";
+ target: "button.ico.voicemail";
+ }
+ program {
+ signal: "mouse,down,1";
+ source: "button.voicemail";
+ after: "show_down_voicemail";
+ action: SIGNAL_EMIT "pressed,voicemail" "gui";
+ api: id"_pressed" id" was pressed";
+ }
+ program {
+ name: "show_down_voicemail";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "button.voicemail";
+ target: "button.ico.voicemail";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.voicemail";
+ action: SIGNAL_EMIT "clicked,voicemail" "gui";
+ api: id"_clicked" id" was clicked";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "button.toggle.voicemail";
+ action: SIGNAL_EMIT "released,voicemail" "gui";
+ after: "show_up_toggle_voicemail";
+ api: id"_released" id" was released";
+ }
+ program {
+ name: "show_up_toggle_voicemail";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "button.toggle.voicemail";
+ target: "button.toggle.ico.voicemail";
+ target: "elm.text.voicemail";
+ }
+ program {
+ signal: "mouse,down,1";
+ source: "button.toggle.voicemail";
+ after: "show_down_toggle_voicemail";
+ action: SIGNAL_EMIT "pressed,voicemail" "gui";
+ api: id"_pressed" id" was pressed";
+ }
+ program {
+ name: "show_down_toggle_voicemail";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "button.toggle.voicemail";
+ target: "button.toggle.ico.voicemail";
+ target: "elm.text.voicemail";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.toggle.voicemail";
+ action: SIGNAL_EMIT "clicked,voicemail" "gui";
+ api: id"_clicked" id" was clicked";
+ }
+
+ program {
+ signal: "toggle,on,voicemail";
+ source: "gui";
+ action: STATE_SET "on" 0.0;
+ target: "clipper.toggle.voicemail-hidden";
+ target: "clipper.toggle.voicemail-visible";
+ }
+ program {
+ signal: "toggle,off,voicemail";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "clipper.toggle.voicemail-hidden";
+ target: "clipper.toggle.voicemail-visible";
+ }
+
+ program {
+ signal: "enable,voicemail";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "clipper.disable.voicemail";
+ target: "blocker.voicemail";
+ }
+ program {
+ signal: "disable,voicemail";
+ source: "gui";
+ action: STATE_SET "disabled" 0.0;
+ target: "clipper.disable.voicemail";
+ target: "blocker.voicemail";
+ }
+ }
+
+ programs {
+ program {
+ name: "show-keypad-swallow-phase1";
+ signal: "show,keypad";
+ source: "gui";
+ action: STATE_SET "hidden" 0.0;
+ target: "elm.swallow.contacts";
+ target: "elm.swallow.history";
+ after: "show-keypad-swallow-phase2";
+ }
+ program {
+ name: "show-keypad-swallow-phase2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.keypad";
+ }
+
+ program {
+ signal: "show,keypad";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,on,keypad" "gui";
+ }
+ program {
+ signal: "show,keypad";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,off,contacts" "gui";
+ }
+ program {
+ signal: "show,keypad";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,off,history" "gui";
+ }
+
+ program {
+ name: "show-contacts-swallow-phase1";
+ signal: "show,contacts";
+ source: "gui";
+ action: STATE_SET "hidden" 0.0;
+ target: "elm.swallow.keypad";
+ target: "elm.swallow.history";
+ after: "show-contacts-swallow-phase2";
+ }
+ program {
+ name: "show-contacts-swallow-phase2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.contacts";
+ }
+
+ program {
+ signal: "show,contacts";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,on,contacts" "gui";
+ }
+ program {
+ signal: "show,contacts";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,off,keypad" "gui";
+ }
+ program {
+ signal: "show,contacts";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,off,history" "gui";
+ }
+
+ program {
+ name: "show-history-swallow-phase1";
+ signal: "show,history";
+ source: "gui";
+ action: STATE_SET "hidden" 0.0;
+ target: "elm.swallow.contacts";
+ target: "elm.swallow.keypad";
+ after: "show-history-swallow-phase2";
+ }
+ program {
+ name: "show-history-swallow-phase2";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.history";
+ }
+
+ program {
+ signal: "show,history";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,on,history" "gui";
+ }
+ program {
+ signal: "show,history";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,off,contacts" "gui";
+ }
+ program {
+ signal: "show,history";
+ source: "gui";
+ action: SIGNAL_EMIT "toggle,off,keypad" "gui";
+ }
+ }
+ }
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/history_bg";
+
+ images {
+ image: "bg_keypad.jpg" COMP;
+ image: "ico_edit.png" COMP;
+ }
+
+ parts {
+
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ }
+ }
+
+ part {
+ name: "button.area.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.to: "bg.buttons";
+ rel2 {
+ to: "bg.buttons";
+ offset: -1 SEPARATOR_HEIGHT;
+ }
+ }
+ }
+
+
+ part {
+ name: "button.clipper";
+ type: RECT;
+ clip_to: "button.area.clipper";
+ description {
+ state: "default" 0.0;
+ rel1.to: "button.area.clipper";
+ rel2.to: "button.area.clipper";
+ }
+ description {
+ state: "alternate" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "edit-button.clipper";
+ type: RECT;
+ clip_to: "button.area.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ rel1.to: "button.area.clipper";
+ rel2.to: "button.area.clipper";
+ }
+ description {
+ state: "alternate" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "edit.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.to: "bg.edit";
+ rel2 {
+ to: "bg.edit";
+ offset: -1 SEPARATOR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "button.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 (ACTION_HEIGHT / 2);
+ rel2 {
+ to_x: "bg.edit";
+ relative: 0.0 0.0;
+ offset: (-ITEM_PADDING - 1) (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+
+ part {
+ name: "bg.edit";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 (ACTION_HEIGHT / 2);
+ rel1 {
+ relative: 1.0 0.0;
+ offset: (-LIST_ICON_SIZE - ITEM_PADDING - BORDER_PADDING) 0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+
+#define SEPARATOR(id, clip, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("button", "button.area.clipper", 1.0, 0, "bg.buttons");
+ SEPARATOR("edit-button", "button.area.clipper", 1.0, 0, "bg.buttons");
+ SEPARATOR("edit", "edit.clipper", 1.0, 0, "bg.edit");
+#undef SEPARATOR
+
+ part {
+ name: "elm.swallow.all";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "separator.bg.button";
+ relative: 0.0 1.0;
+ }
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.missed";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "separator.bg.button";
+ relative: 0.0 1.0;
+ }
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+#define BUTTON(id, label, ccls, clip, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.buttons"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.buttons"; \
+ relative: r2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ color_class: "bg"; \
+ } \
+ } \
+ \
+ programs { \
+ program { \
+ signal: "toggle,on,"##id; \
+ source: "gui"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "toggle,off,"##id; \
+ source: "gui"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("all", "All", "action", "button.clipper", 0.0 0.0, 0.5 1.0);
+ BUTTON("missed", "Missed", "action", "button.clipper", 0.5 0.0, 1.0 1.0);
+
+ BUTTON("clear", "Clear", "caution", "edit-button.clipper", 0.0 0.0, 0.5 1.0);
+ BUTTON("edit,done", "Done", "action", "edit-button.clipper", 0.5 0.0, 1.0 1.0);
+#undef BUTTON
+
+ part {
+ name: "button.edit";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "ico.edit";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 0.0 0.5;
+ color: 255 255 255 255;
+ color_class: "action";
+ fixed: 1 1;
+ rel1 {
+ to: "button.edit";
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to: "button.edit";
+ offset: (-BORDER_PADDING - 1) -1;
+ }
+ image {
+ normal: "ico_edit.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 240 240 240 255;
+ }
+ }
+ part {
+ name: "button.over.edit";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ programs {
+ program {
+ signal: "toggle,on,edit";
+ source: "gui";
+ action: STATE_SET "pressed" 0.0;
+ target: "button.edit";
+ target: "button.over.edit";
+ target: "ico.edit";
+ after: "show_edit_buttons";
+ }
+ program {
+ name: "show_edit_buttons";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.clipper";
+ target: "edit-button.clipper";
+ }
+
+ program {
+ signal: "toggle,off,edit";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "button.edit";
+ target: "button.over.edit";
+ target: "ico.edit";
+ after: "hide_edit_buttons";
+ }
+ program {
+ name: "hide_edit_buttons";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.clipper";
+ target: "edit-button.clipper";
+ }
+
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.edit";
+ action: SIGNAL_EMIT "clicked,edit" "gui";
+ api: "edit was clicked";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.over.edit";
+ action: SIGNAL_EMIT "clicked,edit,done" "gui";
+ api: "edit_done was clicked";
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "show_all";
+ signal: "show,all";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.all";
+ after: "hide_missed";
+ after: "toggle,off,missed";
+ after: "toggle,on,all";
+ }
+
+ program {
+ name: "hide_missed";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.missed";
+ }
+
+ program {
+ name: "show_missed";
+ signal: "show,missed";
+ source: "gui";
+ action: STATE_SET "visible" 0.0;
+ target: "elm.swallow.missed";
+ after: "hide_all";
+ after: "toggle,on,missed";
+ after: "toggle,off,all";
+ }
+
+ program {
+ name: "toggle,on,missed";
+ action: SIGNAL_EMIT "toggle,on,missed" "gui";
+ }
+
+ program {
+ name: "toggle,off,missed";
+ action: SIGNAL_EMIT "toggle,off,missed" "gui";
+ }
+
+ program {
+ name: "toggle,on,all";
+ action: SIGNAL_EMIT "toggle,on,all" "gui";
+ }
+
+ program {
+ name: "toggle,off,all";
+ action: SIGNAL_EMIT "toggle,off,all" "gui";
+ }
+
+ program {
+ name: "hide_all";
+ action: STATE_SET "hide" 0.0;
+ target: "elm.swallow.all";
+ }
+ }
+}
--- /dev/null
+collections {
+#include "colors.edc"
+#include "dialer.edc"
+#include "keypad.edc"
+#include "call.edc"
+#include "contacts-bg.edc"
+#include "contacts.edc"
+#include "multiparty-list.edc"
+#include "history.edc"
+#include "history-bg.edc"
+#include "scroller.edc"
+#include "popup.edc"
+#include "buttons.edc"
+#include "answer_screen.edc"
+#include "action_answer.edc"
+
+#include "messages.edc"
+#include "compose.edc"
+#include "messages-overview.edc"
+#include "messages-overview-list.edc"
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/keypad";
+
+ /*
+ * Represents the dialer keypad with the current number display and buttons.
+ *
+ * Parts:
+ * TEXT: elm.text.display
+ *
+ * Signals:
+ * Emit (source is "keypad"):
+ * pressed,<ID>: key <ID> was pressed
+ * released,<ID>: key <ID> was released
+ * clicked,<ID>: key <ID> was clicked (press and release in the key)
+ * enable,<ACTION>: key <ID> is now clickable
+ * disable,<ACTION>: key <ID> is now inactive
+ *
+ * Where <ID> is: numbers 0 to 9, star, hash, save, call or backspace.
+ *
+ * Where <ACTION> is: save, call or backspace.
+ */
+
+ images {
+ image: "bg_keypad.jpg" COMP;
+ image: "ico_call.png" COMP;
+ image: "ico_backspace.png" COMP;
+ image: "ico_add_contact.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ }
+ }
+
+ part {
+ name: "elm.text.display";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ api: "display" "displays the current number";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: (WIDTH - BORDER_PADDING*2) ACTION_HEIGHT;
+ rel1 {
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: (-BORDER_PADDING -1) (ACTION_HEIGHT - 1);
+ }
+ text {
+ text: "+1 (12) 3456-7890";
+ font: FONT_NORMAL;
+ size: SIZE_HUGE;
+ size_range: SIZE_TINY SIZE_HUGE;
+ fit: 1 1;
+ align: 0.5 0.5;
+ ellipsis: 1.0;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.contact-and-type";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ visible: 0;
+ fixed: 1 1;
+ rel1 {
+ to: "elm.text.display";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "elm.text.display";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ text {
+ font: FONT_BOLD;
+ size: SIZE_SMALL;
+ align: 0.5 0.0;
+ min: 0 1;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH ACTION_HEIGHT;
+ max: WIDTH WIDTH; /* keep it tight centered */
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 SEPARATOR_HEIGHT;
+ to_y: "elm.text.contact-and-type";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: 0 -SEPARATOR_HEIGHT;
+ to_y: "bg.actions";
+ }
+ }
+ }
+
+ part {
+ name: "bg.actions";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: WIDTH ACTION_HEIGHT;
+ max: WIDTH 99999; /* keep it tight centered */
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -ACTION_HEIGHT;
+ }
+ }
+ }
+
+#define SEPARATOR(id, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("number", 1.0, 0, "elm.text.contact-and-type");
+ SEPARATOR("actions", 0.0, -SEPARATOR_HEIGHT, "bg.actions");
+#undef SEPARATOR
+
+
+#define BUTTON(id, label, sub, ccls, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.buttons"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.buttons"; \
+ relative: r2; \
+ offset: -2 -2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ relative: 1.0 0.8; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_LARGE; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ color_class: "bg"; \
+ } \
+ } \
+ part { \
+ name: "sub."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "secondary"; \
+ rel1 { \
+ to: "button."##id; \
+ relative: 0.0 0.5; \
+ offset: 0 15; \
+ } \
+ rel2.to: "button."##id; \
+ text { \
+ text: sub; \
+ font: FONT_BOLD; \
+ size: SIZE_TINY; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ color_class: "bg"; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "keypad"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "label."##id; \
+ target: "sub."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "keypad"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.3; \
+ target: "button."##id; \
+ target: "label."##id; \
+ target: "sub."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "keypad"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "mouse,down,1,double"; \
+ source: "button."##id; \
+ script { \
+ emit("pressed,"##id, "keypad"); \
+ } \
+ } \
+ program { \
+ signal: "mouse,down,1,triple"; \
+ source: "button."##id; \
+ script { \
+ emit("pressed,"##id, "keypad"); \
+ } \
+ } \
+ }
+
+ BUTTON("1", "1", "", "action", 0.000 0.0, 0.333 0.25);
+ BUTTON("2", "2", "ABC", "action", 0.333 0.0, 0.666 0.25);
+ BUTTON("3", "3", "DEF", "action", 0.666 0.0, 1.000 0.25);
+
+ BUTTON("4", "4", "GHI", "action", 0.000 0.25, 0.333 0.50);
+ BUTTON("5", "5", "JKL", "action", 0.333 0.25, 0.666 0.50);
+ BUTTON("6", "6", "MNO", "action", 0.666 0.25, 1.000 0.50);
+
+ BUTTON("7", "7", "PQRS", "action", 0.000 0.50, 0.333 0.75);
+ BUTTON("8", "8", "TUV", "action", 0.333 0.50, 0.666 0.75);
+ BUTTON("9", "9", "WXYZ", "action", 0.666 0.50, 1.000 0.75);
+
+ BUTTON("star", "*", "", "secondary", 0.000 0.75, 0.333 1.00);
+ BUTTON("0", "0", "+", "action", 0.333 0.75, 0.666 1.00);
+ BUTTON("hash", "#", "", "secondary", 0.666 0.75, 1.000 1.00);
+#undef BUTTON
+
+
+#define ACTION_BUTTON(id, img, x0, x1) \
+ part { \
+ name: "clipper."##id; \
+ type: RECT; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "disabled"; \
+ } \
+ } \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ min: ACTION_WIDTH ACTION_HEIGHT; \
+ max: ACTION_WIDTH ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1 { \
+ to: "bg.actions"; \
+ relative: x0 0.0; \
+ } \
+ rel2 { \
+ to: "bg.actions"; \
+ relative: x1 1.0; \
+ offset: -1 -1; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "button.ico."##id; \
+ type: IMAGE; \
+ mouse_events: 0; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "action"; \
+ min: ACTION_HEIGHT ACTION_HEIGHT; \
+ max: ACTION_HEIGHT ACTION_HEIGHT; \
+ fixed: 1 1; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ image.normal: "ico_"##img".png"; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: "bg"; \
+ } \
+ } \
+ part { \
+ name: "blocker."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: "clipper."##id; \
+ description { \
+ state: "default" 0.0; \
+ color: 0 0 0 0; \
+ visible: 0; \
+ rel1.to: "button."##id; \
+ rel2.to: "button."##id; \
+ } \
+ description { \
+ state: "disabled" 0.0; \
+ inherit: "default" 0.0; \
+ visible: 1; \
+ } \
+ } \
+ programs { \
+ program { \
+ signal: "mouse,up,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "released,"##id "keypad"; \
+ after: "show_up_"##id; \
+ api: id"_released" id" was released"; \
+ } \
+ program { \
+ name: "show_up_"##id; \
+ action: STATE_SET "default" 0.0; \
+ transition: DECELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,down,1"; \
+ source: "button."##id; \
+ after: "show_down_"##id; \
+ action: SIGNAL_EMIT "pressed,"##id "keypad"; \
+ api: id"_pressed" id" was pressed"; \
+ } \
+ program { \
+ name: "show_down_"##id; \
+ action: STATE_SET "pressed" 0.0; \
+ transition: ACCELERATE 0.1; \
+ target: "button."##id; \
+ target: "button.ico."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "keypad"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ program { \
+ signal: "disable,"##id; \
+ source: "keypad"; \
+ action: STATE_SET "disabled" 0.0; \
+ target: "blocker."##id; \
+ target: "clipper."##id; \
+ api: id"_disable" "disable "##id; \
+ } \
+ program { \
+ signal: "enable,"##id; \
+ source: "keypad"; \
+ action: STATE_SET "default" 0.0; \
+ target: "blocker."##id; \
+ target: "clipper."##id; \
+ api: id"_enable" "enable "##id; \
+ } \
+ }
+
+ ACTION_BUTTON("save", "add_contact", 0.000000000, 0.333333333);
+ ACTION_BUTTON("call", "call", 0.333333333, 0.666666666);
+ ACTION_BUTTON("backspace", "backspace", 0.666666666, 1.000000000);
+#undef ACTION_BUTTON
+ }
+
+ programs {
+ program {
+ signal: "show,contact";
+ source: "keypad";
+ action: STATE_SET "show" 0.0;
+ target: "elm.text.contact-and-type";
+ }
+
+ program {
+ signal: "hide,contact";
+ source: "keypad";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.contact-and-type";
+ }
+ }
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/messages-overview";
+
+ /*
+ * Represents the messages compose layout with actions and swallows.
+ *
+ * Parts:
+ *
+ * SWALLOW: elm.swallow.genlist - Where all the conversations will appear
+ *
+ * Signals:
+ * Emit (source is "gui"):
+ * clicked,edit - When the edit button is cliked
+ * clicked,edit,done - When The Button "Done" while editing is clicked
+ *
+ * Listens (source is "gui"):
+ * show,genlist - Show the genlist with the current message thread
+ * hidden,genlist - Hide the genlist
+ * toggle,on,edit - User is editing
+ * toggle,off,edit - User finished the editing
+ *
+ * Where <ID> is the name of the button
+ *
+ */
+
+ images {
+ image: "bg_keypad.jpg" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ image {
+ normal: "bg_keypad.jpg";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+
+ }
+ }
+
+ part {
+ name: "notification.bar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 NOTIFICATION_BAR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "button.area.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.to: "bg.buttons";
+ rel2 {
+ to: "bg.buttons";
+ offset: -1 SEPARATOR_HEIGHT;
+ }
+ }
+ }
+
+
+ part {
+ name: "button.clipper";
+ type: RECT;
+ clip_to: "button.area.clipper";
+ description {
+ state: "default" 0.0;
+ rel1.to: "button.area.clipper";
+ rel2.to: "button.area.clipper";
+ }
+ description {
+ state: "alternate" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "edit-button.clipper";
+ type: RECT;
+ clip_to: "button.area.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ rel1.to: "button.area.clipper";
+ rel2.to: "button.area.clipper";
+ }
+ description {
+ state: "alternate" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "edit.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1.to: "bg.edit";
+ rel2 {
+ to: "bg.edit";
+ offset: -1 SEPARATOR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "button.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ fixed: 1 1;
+ min: 0 (ACTION_HEIGHT / 2);
+ rel1 {
+ to: "notification.bar";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ to_x: "bg.edit";
+ to_y: "notification.bar";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - 1) (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+
+ part {
+ name: "bg.edit";
+ type: RECT;
+ mouse_events: 0;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 (ACTION_HEIGHT / 2);
+ rel1 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: (-LIST_ICON_SIZE - ITEM_PADDING - BORDER_PADDING) 0;
+ }
+ rel2 {
+ to: "notification.bar";
+ relative: 1.0 1.0;
+ offset: -1 (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+
+#define SEPARATOR(id, clip, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("button", "button.area.clipper", 1.0, 0, "bg.buttons");
+ SEPARATOR("edit-button", "button.area.clipper", 1.0, 0, "bg.buttons");
+ SEPARATOR("edit", "edit.clipper", 1.0, 0, "bg.edit");
+#undef SEPARATOR
+
+
+#define BUTTON(id, label, ccls, clip, r1, r2) \
+ part { \
+ name: "button."##id; \
+ type: RECT; \
+ mouse_events: 1; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 0; \
+ color_class: "action"; \
+ rel1 { \
+ to: "bg.buttons"; \
+ relative: r1; \
+ } \
+ rel2 { \
+ to: "bg.buttons"; \
+ relative: r2; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 255 255 255 255; \
+ } \
+ } \
+ part { \
+ name: "label."##id; \
+ type: TEXT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: ccls; \
+ rel1.to: "button."##id; \
+ rel2 { \
+ to: "button."##id; \
+ } \
+ text { \
+ text: label; \
+ font: FONT_NORMAL; \
+ size: SIZE_MEDIUM; \
+ align: 0.5 0.5; \
+ } \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color: 240 240 240 255; \
+ } \
+ } \
+ \
+ programs { \
+ program { \
+ signal: "toggle,on,"##id; \
+ source: "gui"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "toggle,off,"##id; \
+ source: "gui"; \
+ action: STATE_SET "default" 0.0; \
+ target: "button."##id; \
+ target: "label."##id; \
+ } \
+ program { \
+ signal: "mouse,clicked,1"; \
+ source: "button."##id; \
+ action: SIGNAL_EMIT "clicked,"##id "gui"; \
+ api: id"_clicked" id" was clicked"; \
+ } \
+ }
+
+ BUTTON("view", "View", "action", "button.clipper", 0.0 0.0, 0.5 1.0);
+ BUTTON("compose", "Compose", "action", "button.clipper", 0.5 0.0, 1.0 1.0);
+
+ BUTTON("clear", "Clear", "caution", "edit-button.clipper", 0.0 0.0, 0.5 1.0);
+ BUTTON("edit,done", "Done", "action", "edit-button.clipper", 0.5 0.0, 1.0 1.0);
+#undef BUTTON
+
+ part {
+ name: "button.edit";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "caution";
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "ico.edit";
+ type: IMAGE;
+ mouse_events: 0;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 0.0 0.5;
+ color: 255 255 255 255;
+ color_class: "caution";
+ rel1 {
+ to: "button.edit";
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ to: "button.edit";
+ offset: (-BORDER_PADDING - 1) -1;
+ }
+ image {
+ normal: "ico_del.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 240 240 240 255;
+ }
+ }
+ part {
+ name: "button.over.edit";
+ type: RECT;
+ mouse_events: 1;
+ clip_to: "edit.clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ rel1.to: "bg.edit";
+ rel2.to: "bg.edit";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "elm.swallow.genlist";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "separator.bg.button";
+ relative: 0.0 1.0;
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "toggle,on,edit";
+ source: "gui";
+ action: STATE_SET "pressed" 0.0;
+ target: "button.edit";
+ target: "button.over.edit";
+ target: "ico.edit";
+ after: "show_edit_buttons";
+ }
+ program {
+ name: "show_edit_buttons";
+ action: STATE_SET "alternate" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.clipper";
+ target: "edit-button.clipper";
+ }
+
+ program {
+ signal: "toggle,off,edit";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "button.edit";
+ target: "button.over.edit";
+ target: "ico.edit";
+ after: "hide_edit_buttons";
+ }
+ program {
+ name: "hide_edit_buttons";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "button.clipper";
+ target: "edit-button.clipper";
+ }
+
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.edit";
+ action: SIGNAL_EMIT "clicked,edit" "gui";
+ api: "edit was clicked";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "button.over.edit";
+ action: SIGNAL_EMIT "clicked,edit,done" "gui";
+ api: "edit_done was clicked";
+ }
+ }
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/messages";
+
+ min: WIDTH HEIGHT;
+
+ /*
+ * Represents the messages main layout with actions and swallows.
+ *
+ * Parts:
+ *
+ * Signals:
+ * Emit (source is "gui"):
+ * Listens (source is "gui"):
+ *
+ */
+
+ images {
+ image: "ico_edit.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "notification.bar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: -1 NOTIFICATION_BAR_HEIGHT;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.overview";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "notification.bar";
+ relative: 0.0 1.0;
+ }
+ }
+ }
+ }
+}
description {
state: "pressed" 0.0;
inherit: "default" 0.0;
- color_class: "light";
+ color_class: "secondary";
}
}
description {
state: "pressed" 0.0;
inherit: "default" 0.0;
- color_class: "light";
+ color_class: "secondary";
}
}
description {
state: "pressed" 0.0;
inherit: "default" 0.0;
- color_class: "light";
+ color_class: "secondary";
}
}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
rel1 {
to_x: "hangup.ico";
relative: 1.0 0.5;
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/popup";
+
+ images {
+ image: "loading_0.png" COMP;
+ image: "loading_1.png" COMP;
+ image: "loading_2.png" COMP;
+ image: "loading_3.png" COMP;
+ image: "loading_4.png" COMP;
+ image: "loading_5.png" COMP;
+ image: "loading_6.png" COMP;
+ image: "loading_7.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1; /* do not let events fall through */
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 200;
+ color_class: "bg";
+ }
+ description {
+ state: "content" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 230;
+ }
+ }
+
+ part {
+ name: "notification,bar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1.relative: 0.0 0.0;
+ rel2 {
+ relative: 1.0 0.0;
+ offset: 0 50;
+ }
+ }
+ }
+
+#define SEPARATOR(id, clip, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ clip_to: clip; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ part {
+ name: "clipper.title";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "elm.text.title";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "clipper.title";
+ description {
+ state: "default" 0.0;
+ min: 0 (ACTION_HEIGHT / 2);
+ color_class: "action";
+ visible: 1;
+ rel1 {
+ to: "notification,bar";
+ relative: 0.0 1.0;
+ offset: 0 (-ACTION_HEIGHT / 2 - SEPARATOR_HEIGHT);
+ }
+ rel2 {
+ to: "notification,bar";
+ relative: 1.0 0.0;
+ offset: -1 (-SEPARATOR_HEIGHT - 1);
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ ellipsis: 0.0;
+ text: "contents";
+ }
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ rel1 {
+ to: "notification,bar";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "notification,bar";
+ relative: 1.0 0.0;
+ offset: -1 (ACTION_HEIGHT / 2 - 1);
+ }
+ }
+ }
+ SEPARATOR("title", "clipper.title", 1.0, 0, "elm.text.title");
+
+ programs {
+ program {
+ signal: "show,title";
+ source: "gui";
+ action: STATE_SET "visible" 0.0;
+ target: "clipper.title";
+ target: "elm.text.title";
+ }
+ program {
+ signal: "hide,title";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "clipper.title";
+ target: "elm.text.title";
+ }
+ }
+
+ part {
+ name: "loading";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ min: LOADING_SIZE LOADING_SIZE;
+ max: LOADING_SIZE LOADING_SIZE;
+ align: 0.5 0.5;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ color_class: "action";
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ image {
+ tween: "loading_0.png";
+ tween: "loading_1.png";
+ tween: "loading_2.png";
+ tween: "loading_3.png";
+ tween: "loading_4.png";
+ tween: "loading_5.png";
+ tween: "loading_6.png";
+ normal: "loading_7.png";
+ scale_hint: STATIC;
+ }
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "elm.text.title";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ to_y: "bg.buttons";
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "show,content";
+ source: "gui";
+ action: STATE_SET "content" 0.0;
+ target: "bg";
+ after: "stop,loading";
+ }
+ program {
+ signal: "hide,content";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ after: "start,loading";
+ }
+
+ program {
+ name: "stop,loading";
+ action: ACTION_STOP;
+ target: "start,loading";
+ after: "hide,loading";
+ }
+ program {
+ name: "hide,loading";
+ action: STATE_SET "default" 0.0;
+ target: "loading";
+ }
+
+ program {
+ name: "start,loading";
+ action: STATE_SET "visible" 0.0;
+ transition: LINEAR 0.6666;
+ target: "loading";
+ after: "start,loading";
+ }
+
+ program {
+ signal: "load";
+ after: "start,loading";
+ }
+ }
+
+ /* note: this button 1/2 is ugly but simple */
+ part {
+ name: "bg.buttons";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "bg";
+ align: 0.5 1.0;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ }
+ description {
+ state: "button1" 0.0;
+ inherit: "default" 0.0;
+ min: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ }
+ description {
+ state: "button2" 0.0;
+ inherit: "default" 0.0;
+ min: 0 (2 * ACTION_HEIGHT + 2 * SEPARATOR_HEIGHT);
+ }
+ }
+
+ part {
+ name: "elm.swallow.button1";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ visible: 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "button1" 0.0;
+ inherit: "default" 0.0;
+ min: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ visible: 1;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 (-ACTION_HEIGHT - SEPARATOR_HEIGHT);
+ }
+ }
+ description {
+ state: "button2" 0.0;
+ inherit: "default" 0.0;
+ min: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ visible: 1;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 (-2 * ACTION_HEIGHT - 2 * SEPARATOR_HEIGHT);
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 (-ACTION_HEIGHT - SEPARATOR_HEIGHT - 1);
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.button2";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ visible: 0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ description {
+ state: "button1" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "button2" 0.0;
+ inherit: "default" 0.0;
+ min: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ visible: 1;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 (-ACTION_HEIGHT - SEPARATOR_HEIGHT);
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "buttons,0";
+ source: "gui";
+ action: STATE_SET "default" 0.0;
+ target: "bg.buttons";
+ target: "elm.swallow.button1";
+ target: "elm.swallow.button2";
+ }
+ program {
+ signal: "buttons,1";
+ source: "gui";
+ action: STATE_SET "button1" 0.0;
+ target: "bg.buttons";
+ target: "elm.swallow.button1";
+ target: "elm.swallow.button2";
+ }
+ program {
+ signal: "buttons,2";
+ source: "gui";
+ action: STATE_SET "button2" 0.0;
+ target: "bg.buttons";
+ target: "elm.swallow.button1";
+ target: "elm.swallow.button2";
+ }
+ }
+
+#undef SEPARATOR
+ }
+}
+
+group {
+ name: "elm/entry/cursor/dialer";
+ parts {
+ part {
+ name: "cursor";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color_class: "action";
+ min: ITEM_PADDING (SEPARATOR_HEIGHT / 2);
+ align: 0.5 1.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ }
+ description {
+ state: "faded" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 128;
+ }
+ }
+ programs {
+ program {
+ name: "focus";
+ signal: "elm,action,focus";
+ source: "elm";
+ action: ACTION_STOP;
+ target: "unfocus";
+ target: "unfocus2";
+ after: "focus2";
+ }
+ program {
+ name: "focus2";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "cursor";
+ after: "focus3";
+ }
+ program {
+ name: "focus3";
+ action: STATE_SET "faded" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "cursor";
+ after: "focus2";
+ }
+
+ program {
+ name: "unfocus";
+ signal: "elm,action,unfocus";
+ source: "elm";
+ action: ACTION_STOP;
+ target: "focus";
+ target: "focus2";
+ target: "focus3";
+ after: "unfocus2";
+ }
+ program {
+ name: "unfocus2";
+ action: STATE_SET "faded" 0.0;
+ transition: ACCELERATE 0.3;
+ target: "cursor";
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/entry/selection/dialer";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color_class: "primary";
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/entry/base-noedit/dialer-popup";
+
+ styles {
+ style {
+ name: "entry_textblock_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=word valign=middle align=center";
+ tag: "b" "+ font_weight=Bold";
+ tag: "br" "\n";
+ }
+ style {
+ name: "entry_textblock_disabled_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=word valign=middle align=center";
+ tag: "b" "+ font_weight=Bold";
+ tag: "br" "\n";
+ }
+ }
+
+ parts {
+ part {
+ name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ scale: 1;
+ multiline: 1;
+ source: "elm/entry/selection/dialer";
+ source4: "elm/entry/cursor/dialer";
+ description {
+ state: "default" 0.0;
+ text {
+ style: "entry_textblock_style";
+ min: 0 1;
+ max: 1 1;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text {
+ style: "entry_textblock_disabled_style";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "load";
+ source: "";
+ action: FOCUS_SET;
+ target: "elm.text";
+ }
+ program {
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "elm.text";
+ }
+ program {
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text";
+ }
+ }
+}
+
+group {
+ name: "elm/entry/base/dialer-popup-editable";
+
+ styles {
+ style {
+ name: "entry_textblock_editable_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=word valign=top align=auto";
+ tag: "b" "+ font_weight=Bold";
+ tag: "br" "\n";
+ }
+ style {
+ name: "entry_textblock_editable_disabled_style";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_ACTION" wrap=word valign=top align=auto";
+ tag: "b" "+ font_weight=Bold";
+ tag: "br" "\n";
+ }
+ }
+
+ parts {
+ part {
+ name: "elm.text";
+ type: TEXTBLOCK;
+ mouse_events: 1;
+ scale: 1;
+ entry_mode: EDITABLE;
+ select_mode: EXPLICIT;
+ source: "elm/entry/selection/dialer";
+ source4: "elm/entry/cursor/dialer";
+ multiline: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ text {
+ style: "entry_textblock_editable_style";
+ min: 0 1;
+ max: 1 1;
+ align: -1.0 0.0;
+ }
+ }
+ description {
+ state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ text {
+ style: "entry_textblock_editable_disabled_style";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "load";
+ source: "";
+ action: FOCUS_SET;
+ target: "elm.text";
+ }
+ program {
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "elm.text";
+ }
+ program {
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text";
+ }
+ }
+}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
max: SCROLLBAR_WIDTH 99999;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
max: SCROLLBAR_WIDTH 99999;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
max: SCROLLBAR_WIDTH 99999;
#define ACTION_WIDTH 240
#define ACTION_HEIGHT 80
-#define CALL_HEIGHT 110
+#define CALL_HEIGHT 130
#define BORDER_PADDING 46
#define ITEM_PADDING 16
-#define SEPARATOR_HEIGHT 8
+#define SEPARATOR_HEIGHT 2
#define SCROLLBAR_WIDTH 16
#define SCROLLBAR_HEIGHT 16
-#define LIST_ICON_SIZE 56
+#define LIST_ICON_SIZE 36
#define LIST_ITEM_HEIGHT 120
#define FONT_NORMAL "Verdana"
#define MULTI_BUTTON_ENTRY_MAX_SIZE 300
-#include "default.edc"
+#include "night/include.edc"
--- /dev/null
+
+group {
+ name: "elm/actionslider/base/answer";
+
+ images {
+ image: "ico_call.png" COMP;
+ image: "arrow_right.png" COMP;
+ image: "arrow_left.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "elm.text.left";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "caution";
+ rel1.offset: BORDER_PADDING 0;
+ rel2.relative: 0.5 1.0;
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0 0.5;
+ min: 0 1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.image.arrow.right.1";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 22 30;
+ max: 22 30;
+ color: 255 255 255 255;
+ color_class: "caution";
+ rel1 {
+ to: "elm.drag_button";
+ offset: (-190 - ITEM_PADDING) 0;
+ }
+ rel2 {
+ to: "elm.drag_button";
+ }
+ image {
+ normal: "arrow_right.png";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+ }
+ }
+
+ part {
+ name: "elm.image.arrow.right.2";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 22 30;
+ max: 22 30;
+ color: 255 255 255 128;
+ color_class: "caution";
+ rel1 {
+ to: "elm.drag_button";
+ offset: (-135 - ITEM_PADDING) 0;
+ }
+ rel2 {
+ to: "elm.drag_button";
+ }
+ image {
+ normal: "arrow_right.png";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+ }
+ }
+
+ part {
+ name: "elm.image.arrow.left.1";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 22 30;
+ max: 22 30;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "elm.drag_button";
+ offset: (ITEM_PADDING + 190) 0;
+ }
+ rel2 {
+ to: "elm.drag_button";
+ }
+ image {
+ normal: "arrow_left.png";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+ }
+ }
+
+ part {
+ name: "elm.image.arrow.left.2";
+ type: IMAGE;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 22 30;
+ max: 22 30;
+ color: 255 255 255 128;
+ color_class: "action";
+ rel1 {
+ to: "elm.drag_button";
+ offset: (135 +ITEM_PADDING) 0;
+ }
+ rel2 {
+ to: "elm.drag_button";
+ }
+ image {
+ normal: "arrow_left.png";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+ }
+ }
+
+ part {
+ name: "elm.text.right";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ relative: 1.0 0.0;
+ offset: (-ACTION_HEIGHT -BORDER_PADDING) 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING 0;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0 0.5;
+ min: 0 1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.drag_button_base";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ min: 170 170;
+ align: 0.5 0.5;
+ rel1.to: "bg";
+ rel2 {
+ relative: 0.0 1.0;
+ to: "bg";
+ }
+ }
+ dragable {
+ confine: "bg";
+ x: 1 1 0;
+ y: 0 0 0;
+ }
+ }
+ part {
+ name: "elm.drag_button";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ min: 170 170;
+ max: 170 170;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.to_x: "elm.drag_button_base";
+ rel1.to_y: "bg";
+ rel2.to_x: "elm.drag_button_base";
+ rel2.to_y: "bg";
+ image {
+ normal: "ico_call.png";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+ }
+ dragable {
+ events: "elm.drag_button_base";
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "elm.drag_button,mouse,up";
+ signal: "mouse,up,1";
+ source: "elm.drag_button";
+ action: SIGNAL_EMIT "elm.drag_button,mouse,up" "";
+ }
+ program {
+ name: "elm.drag_button,mouse,down";
+ signal: "mouse,down,1";
+ source: "elm.drag_button";
+ action: SIGNAL_EMIT "elm.drag_button,mouse,down" "";
+ }
+ program {
+ name: "elm.drag_button,mouse,move";
+ signal: "mouse,move";
+ source: "elm.drag_button_base";
+ action: SIGNAL_EMIT "elm.drag_button,mouse,move" "";
+ }
+ }
+}
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/answer";
+ min: WIDTH HEIGHT;
+ parts {
+
+ images {
+ image: "bg_call.jpg" COMP;
+ }
+
+ part {
+ name: "bg";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ min: WIDTH HEIGHT;
+ image {
+ normal: "bg_call.jpg";
+ scale_hint: STATIC;
+ }
+ fill.smooth: 1;
+ }
+ }
+
+ part {
+ name: "img.border";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "elm.swallow.photo";
+ relative: 0.0 0.0;
+ offset: -1 -1;
+ }
+ rel2 {
+ to: "elm.swallow.photo";
+ relative: 1.0 1.0;
+ offset: 0 0;
+ }
+ }
+ }
+
+ part {
+ name: "img.bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ rel1 {
+ to: "elm.swallow.photo";
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "elm.swallow.photo";
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.photo";
+ type: SWALLOW;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ min: CALL_PHOTO_SIZE CALL_PHOTO_SIZE;
+ max: CALL_PHOTO_SIZE CALL_PHOTO_SIZE;
+ rel1.offset: BORDER_PADDING SEPARATOR_HEIGHT;
+ rel2 {
+ relative: 0.0 0.0;
+ offset: (CALL_PHOTO_SIZE + BORDER_PADDING) (SEPARATOR_HEIGHT + CALL_PHOTO_SIZE);
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.name";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to: "elm.swallow.photo";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ offset: 0 (SEPARATOR_HEIGHT + CONTACT_PHOTO_SIZE);
+ }
+ text {
+ text: "Gustavo Barbieri";
+ font: FONT_NORMAL;
+ size: SIZE_HUGE;
+ size_range: SIZE_TINY SIZE_HUGE;
+ fit: 1 1;
+ align: 0.0 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.state";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 {
+ to: "elm.text.name";
+ relative: 0.0 1.0;
+ offset: 0 -20;
+ }
+ rel2 {
+ to: "elm.text.name";
+ relative: 0.0 1.0;
+ offset: 0 -1;
+ }
+ text {
+ text: "Incoming...";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ min: 1 1;
+ align: 0.0 0.0;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.slider";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 1.0;
+ offset: 0 -LIST_CONTACT_HEIGHT;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ }
+ }
+ }
+
+}
--- /dev/null
+group {
+ name: "elm/button/base/dialer";
+
+ parts {
+ part {
+ name: "area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ }
+ }
+
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ min: 0 ACTION_HEIGHT;
+ rel1.offset: 0 SEPARATOR_HEIGHT;
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1.offset: BORDER_PADDING SEPARATOR_HEIGHT;
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ align: 0.5 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+#define SEPARATOR(id, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("separator", 0.0, 0, "");
+#undef SEPARATOR
+ }
+
+ programs {
+ program {
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ signal: "mouse,down,1";
+ source: "bg";
+ transition: ACCELERATE 0.3;
+ action: STATE_SET "pressed" 0.0;
+ target: "bg";
+ target: "elm.text";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "bg";
+ transition: DECELERATE 0.3;
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text";
+ }
+ }
+}
+
+group {
+ name: "elm/button/base/dialer-caution";
+
+ parts {
+ part {
+ name: "area";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 (ACTION_HEIGHT + SEPARATOR_HEIGHT);
+ }
+ }
+
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "caution";
+ min: 0 ACTION_HEIGHT;
+ rel1.offset: 0 SEPARATOR_HEIGHT;
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "elm.text";
+ type: TEXT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "caution";
+ rel1.offset: BORDER_PADDING SEPARATOR_HEIGHT;
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ align: 0.5 0.5;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+#define SEPARATOR(id, rely, offy, relto) \
+ part { \
+ name: "separator.primary."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "primary"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 offy; \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ } \
+ } \
+ part { \
+ name: "separator.bg."##id; \
+ type: RECT; \
+ mouse_events: 0; \
+ description { \
+ state: "default" 0.0; \
+ color: 255 255 255 255; \
+ color_class: "bg"; \
+ rel1 { \
+ relative: 0.0 rely; \
+ offset: 0 (offy + SEPARATOR_HEIGHT / 2); \
+ to_y: relto; \
+ } \
+ rel2 { \
+ relative: 1.0 rely; \
+ offset: -1 (offy + SEPARATOR_HEIGHT); \
+ to_y: relto; \
+ } \
+ } \
+ }
+
+ SEPARATOR("separator", 0.0, 0, "");
+#undef SEPARATOR
+ }
+
+ programs {
+ program {
+ signal: "mouse,clicked,1";
+ source: "bg";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ signal: "mouse,down,1";
+ source: "bg";
+ transition: ACCELERATE 0.3;
+ action: STATE_SET "pressed" 0.0;
+ target: "bg";
+ target: "elm.text";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "bg";
+ transition: DECELERATE 0.3;
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text";
+ }
+ }
+}
parts {
part {
name: "bg";
- type: IMAGE;
+ type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
min: WIDTH HEIGHT;
- image {
- normal: "bg_call.jpg";
- scale_hint: STATIC;
- }
- fill.smooth: 1;
}
}
#define SEPARATOR(id, clip, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
clip_to: clip; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
description { \
state: "pressed" 0.0; \
inherit: "default" 0.0; \
- color_class: "light"; \
+ color_class: "secondary"; \
} \
} \
programs { \
description { \
state: "held" 0.0; \
inherit: "default" 0.0; \
- color_class: "light"; \
+ color_class: "secondary"; \
} \
} \
\
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "light"; \
+ color_class: "secondary"; \
fixed: 1 1; \
align: 0.0 0.0; \
rel1 { \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "light"; \
+ color_class: "secondary"; \
fixed: 1 1; \
align: 0.0 0.0; \
rel1 { \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
to: "elm.swallow.img."##id; \
relative: 0.0 0.0; \
relative: 0.0 0.0; \
offset: CALL_PHOTO_SIZE (CALL_PHOTO_SIZE + ITEM_PADDING); \
} \
- } \
- \
+ } \
} \
- \
\
programs { \
program { \
fixed: 1 1; \
rel1.to: "button."##id; \
rel2.to: "button."##id; \
- image.normal: "ico_"##img".png"; \
+ image.normal: "ico_"##img".png"; \
} \
description { \
state: "pressed" 0.0; \
state: "pressed" 0.0; \
inherit: "default" 0.0; \
color: 16 16 16 255; \
+ color_class: "bg"; \
} \
} \
part { \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "light"; \
+ color_class: "secondary"; \
rel1 { \
to: "button."##id; \
relative: 0.0 0.5; \
state: "pressed" 0.0; \
inherit: "default" 0.0; \
color: 16 16 16 255; \
+ color_class: "bg"; \
} \
} \
programs { \
BUTTON("8", "8", "TUV", "action", 0.333 0.50, 0.666 0.75);
BUTTON("9", "9", "WXYZ", "action", 0.666 0.50, 1.000 0.75);
- BUTTON("star", "*", "", "light", 0.000 0.75, 0.333 1.00);
+ BUTTON("star", "*", "", "secondary", 0.000 0.75, 0.333 1.00);
BUTTON("0", "0", "+", "action", 0.333 0.75, 0.666 1.00);
- BUTTON("hash", "#", "", "light", 0.666 0.75, 1.000 1.00);
+ BUTTON("hash", "#", "", "secondary", 0.666 0.75, 1.000 1.00);
#undef BUTTON
part {
} \
}
- BUTTON("waiting-hangup", "Decline", "action", "separator.dark.hold-answer");
- BUTTON("hold-answer", "Hold + Answer", "action", "separator.dark.hangup-answer");
- BUTTON("hangup-answer", "Hangup + Answer", "caution", "separator.dark.waiting-last");
+ BUTTON("waiting-hangup", "Decline", "action", "separator.primary.hold-answer");
+ BUTTON("hold-answer", "Hold + Answer", "action", "separator.primary.hangup-answer");
+ BUTTON("hangup-answer", "Hangup + Answer", "caution", "separator.primary.waiting-last");
#undef BUTTON
SEPARATOR("waiting-last", "clipper.waiting-visible", 1.0, 0, "");
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
rel1 {
to: "elm.swallow.waiting.photo";
relative: 0.0 0.0;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
align: 0.0 0.0;
rel1 {
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
rel1 {
offset: BORDER_PADDING 0;
}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
align: 1.0 0.5;
fixed: 1 1;
rel1 {
}
color_class {
- name: "dark";
+ name: "primary";
color: 25 45 51 255;
}
color_class {
- name: "light";
+ name: "secondary";
color: 55 88 84 255;
}
-#define TEXTBLOCK_COLOR_LIGHT "#375854"
+#define TEXTBLOCK_COLOR_SECONDARY "#375854"
color_class {
name: "action";
parts {
part {
name: "bg";
- type: IMAGE;
+ type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
- image {
- normal: "bg_keypad.jpg";
- scale_hint: STATIC;
- }
- fill.smooth: 1;
+ color_class: "primary";
}
}
#define SEPARATOR(id, clip, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
clip_to: clip; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
state: "default" 0.0;
color: 0 0 0 255;
rel1 {
- to: "separator.dark.back";
+ to: "separator.primary.back";
relative: 0.0 0.0;
offset: 0 (-ACTION_HEIGHT);
}
rel2 {
- to: "separator.dark.back";
+ to: "separator.primary.back";
relative: 1.0 0.0;
offset: 0 -1;
}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
rel1 {
to: "elm.text.separator_size";
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
fixed: 1 1;
rel1 {
to: "elm.img.btn.send";
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
rel1 {
to: "elm.text.separator_size";
relative: 1.0 0.0;
}
}
-#define SEPARATOR(id, rely, offy, relto) \
+#define SEPARATOR(id, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
clip_to: "clipper.contacts.visible"; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
color: 255 255 255 0; \
color_class: "action"; \
rel1 { \
- to: "bg.buttons.back"; \
+ to: "bg.buttons.back"; \
relative: r1; \
} \
rel2 { \
- to: "bg.buttons.back"; \
+ to: "bg.buttons.back"; \
relative: r2; \
} \
} \
styles {
style {
name: "entry_textblock_style_outgoing";
- base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_LIGHT" wrap=mixed valign=top align=right";
+ base: "font="FONT_NORMAL" font_size="SIZE_MEDIUM" color="TEXTBLOCK_COLOR_SECONDARY" wrap=mixed valign=top align=right";
tag: "br" "\n";
}
style {
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
min: MESSAGE_SEPARATOR_WIDTH MESSAGE_SEPARATOR_HEIGHT;
max: MESSAGE_SEPARATOR_WIDTH MESSAGE_SEPARATOR_HEIGHT;
align: 1.0 1.0;
description {
state: "default" 0.0;
color: 255 255 255 128;
- color_class: "light";
+ color_class: "secondary";
align: 0.0 0.0;
fixed: 1 1;
rel1 {
type: IMAGE;
description {
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
min: MESSAGE_IMG_SENT_SIZE MESSAGE_IMG_SENT_SIZE;
max: MESSAGE_IMG_SENT_SIZE MESSAGE_IMG_SENT_SIZE;
visible: 0;
mouse_events: 0;
description {
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
rel1 {
to: "text.contact.name";
relative: 0.0 1.0;
mouse_events: 0;
description {
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
align: 1.0 0.5;
fixed: 1 1;
rel1 {
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
rel1.offset: BORDER_PADDING 0;
text {
font: FONT_NORMAL;
to_x: "right.padding";
}
color: 255 255 255 0;
- color_class: "light";
+ color_class: "secondary";
}
description {
state: "focused" 0.0;
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/contacts_bg";
+
+ images {
+ image: "bg_keypad.jpg" COMP;
+ }
+
+ parts {
+
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ color: 255 255 255 255;
+ color_class: "primary";
+ }
+ }
+
+ part {
+ name: "elm.swallow.details";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 BORDER_PADDING;
+ }
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part {
+ name: "elm.swallow.genlist";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1 {
+ relative: 0.0 0.0;
+ offset: 0 0;
+ }
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ }
+
+ programs {
+
+ program {
+ name: "hide,genlist";
+ action: STATE_SET "hide" 0.0;
+ target: "elm.swallow.genlist";
+ }
+
+ program {
+ name: "show,genlist";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.genlist";
+ }
+
+ program {
+ name: "hide,details";
+ action: STATE_SET "default" 0.0;
+ target: "elm.swallow.details";
+ }
+
+ program {
+ name: "show,details";
+ action: STATE_SET "show" 0.0;
+ target: "elm.swallow.details";
+ }
+
+ program {
+ signal: "show,details";
+ source: "gui";
+ after: "hide,genlist";
+ after: "show,details";
+ }
+
+ program {
+ signal: "hide,details";
+ source: "gui";
+ after: "hide,details";
+ after: "show,genlist";
+ }
+ }
+}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
rel1 {
to: "swallow.photo";
relative: 0.0 0.0;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
rel1 {
to: "swallow.photo";
relative: 1.0 0.7;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
rel1 {
to: "swallow.photo";
relative: 0.0 0.0;
#define SEPARATOR(id, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
part {
name: "bg";
- type: IMAGE;
+ type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
color: 255 255 255 255;
- color_class: "dark";
- image {
- normal: "bg_keypad.jpg";
- scale_hint: STATIC;
- }
- fill.smooth: 1;
+ color_class: "primary";
}
}
#define SEPARATOR(id, clip, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
clip_to: clip; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
state: "pressed" 0.0; \
inherit: "default" 0.0; \
color: 16 16 16 255; \
+ color_class: "bg"; \
} \
} \
\
align: 0.0 0.5;
color: 255 255 255 255;
color_class: "action";
+ fixed: 1 1;
rel1 {
to: "button.edit";
offset: ITEM_PADDING 0;
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/history/img";
+
+ parts {
+ part {
+ name: "rect";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,clicked,1";
+ source: "rect";
+ action: SIGNAL_EMIT "clicked,more" "gui";
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item/history/default";
+
+ data {
+ item: "texts" "text.call.name text.call.time text.call.type";
+ item: "contents" "call.swallow.more";
+ item: "states" "missed";
+ }
+
+ script {
+ public missed;
+ public selected;
+ public not_first; /* can't call it 'first' as globals start as 0 */
+
+ public anim_states() {
+ new m = get_int(missed);
+ new s = get_int(selected);
+
+ if (m) {
+ if (s)
+ run_program(PROGRAM:"show_selected");
+ else
+ run_program(PROGRAM:"show_missed");
+ } else {
+ if (s)
+ run_program(PROGRAM:"show_selected");
+ else
+ run_program(PROGRAM:"show_default");
+ }
+ }
+
+ public set_missed(val) {
+ new m = get_int(missed);
+ new s = get_int(selected);
+
+ if (m == val) return;
+ set_int(missed, val);
+ m = val;
+
+ if (get_int(not_first)) {
+ if (m) {
+ if (s)
+ run_program(PROGRAM:"animate_selected");
+ else
+ run_program(PROGRAM:"animate_missed");
+ } else {
+ if (s)
+ run_program(PROGRAM:"animate_selected");
+ else
+ run_program(PROGRAM:"animate_default");
+ }
+ } else {
+ set_int(not_first, 1);
+ anim_states();
+ }
+ }
+
+ public set_selected(val) {
+ new s = get_int(selected);
+
+ if (s == val) return;
+ set_int(selected, val);
+
+ anim_states();
+ }
+ }
+
+ images {
+ image: "ico_arrow_right.png" COMP;
+ image: "ico_del.png" COMP;
+ }
+
+ parts{
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ min: ACTION_WIDTH LIST_ITEM_HEIGHT;
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+ part {
+ name: "text.call.name";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ relative: 0.0 0.0;
+ offset: BORDER_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "call.swallow.more";
+ relative: 0.0 0.5;
+ offset: -ITEM_PADDING -1;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 1.0;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "missed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "caution";
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "text.call.time";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ rel1 {
+ relative: 0.0 0.5;
+ offset: BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 0.5 1.0;
+ offset: (-BORDER_PADDING - 1) (-ITEM_PADDING - 1);
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_SMALL;
+ align: 0.0 0.0;
+ ellipsis: 1.0;
+ }
+ }
+ description {
+ state: "missed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "caution";
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "text.call.type";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ rel1 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ }
+ rel2 {
+ to_x: "call.swallow.more";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - ITEM_PADDING) (-ITEM_PADDING - 1);
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_SMALL;
+ align: 0.0 0.0;
+ ellipsis: 1.0;
+ }
+ }
+ description {
+ state: "missed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "caution";
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "call.img.more";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "call.swallow.more";
+ rel2.to: "call.swallow.more";
+ color_class: "action";
+ image {
+ normal: "ico_arrow_right.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "missed" 0.0;
+ inherit: "default" 0.0;
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "call.swallow.more";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING -1;
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "elm,state,missed,active";
+ source: "elm";
+ script {
+ set_missed(1);
+ }
+ }
+ program {
+ signal: "elm,state,missed,passive";
+ source: "elm";
+ script {
+ set_missed(0);
+ }
+ }
+ program {
+ signal: "elm,state,selected";
+ source: "elm";
+ script {
+ set_selected(1);
+ }
+ }
+ program {
+ signal: "elm,state,unselected";
+ source: "elm";
+ script {
+ set_selected(0);
+ }
+ }
+
+ program {
+ name: "show_missed";
+ action: STATE_SET "missed" 0.0;
+ target: "bg";
+ target: "text.call.name";
+ target: "text.call.time";
+ target: "text.call.type";
+ target: "call.img.more";
+ }
+ program {
+ name: "show_default";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "text.call.name";
+ target: "text.call.time";
+ target: "text.call.type";
+ target: "call.img.more";
+ }
+ program {
+ name: "show_selected";
+ action: STATE_SET "selected" 0.0;
+ target: "bg";
+ target: "text.call.name";
+ target: "text.call.time";
+ target: "text.call.type";
+ target: "call.img.more";
+ }
+
+ program {
+ name: "animate_missed";
+ action: STATE_SET "missed" 0.0;
+ transition: DECELERATE 0.1;
+ target: "bg";
+ target: "text.call.name";
+ target: "text.call.time";
+ target: "text.call.type";
+ target: "call.img.more";
+ }
+ program {
+ name: "animate_default";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "bg";
+ target: "text.call.name";
+ target: "text.call.time";
+ target: "text.call.type";
+ target: "call.img.more";
+ }
+ program {
+ name: "animate_selected";
+ action: STATE_SET "selected" 0.0;
+ transition: DECELERATE 0.1;
+ target: "bg";
+ target: "text.call.name";
+ target: "text.call.time";
+ target: "text.call.type";
+ target: "call.img.more";
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item/history-delete/default";
+ alias: "elm/genlist/item_odd/history-delete/default";
+
+ data {
+ item: "contents" "call.swallow.delete";
+ item: "mode_part" "elm.swallow.decorate.content";
+ }
+
+ parts {
+ part {
+ name: "content.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ rel2 {
+ offset: (-BORDER_PADDING - LIST_ICON_SIZE - ITEM_PADDING - 1) -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.decorate.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ clip_to: "content.clipper";
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "call.swallow.delete";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ }
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING -1;
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "animate_decorated";
+ signal: "elm,state,decorate,enabled,effect";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ after: "animate_decorated2";
+ }
+ program {
+ name: "animate_decorated2";
+ action: STATE_SET "decorated" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "call.swallow.delete";
+ }
+
+ program {
+ name: "animate_default";
+ signal: "elm,state,decorate,disabled,effect";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "call.swallow.delete";
+ after: "animate_default2";
+ }
+ program {
+ name: "animate_default2";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ }
+
+ program {
+ signal: "elm,state,decorate,enabled";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ target: "call.swallow.delete";
+ }
+ program {
+ signal: "elm,state,decorate,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ target: "call.swallow.delete";
+ }
+
+ program {
+ signal: "elm,state,slide,active";
+ source: "elm";
+ after: "animate_decorated";
+ }
+ program {
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ after: "animate_default";
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/button/base/history-delete";
+
+ parts {
+ part {
+ name: "area";
+ type: IMAGE;
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ color: 255 255 255 255;
+ color_class: "caution";
+ image {
+ normal: "ico_del.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 128;
+ }
+ }
+ }
+ programs {
+ program {
+ signal: "mouse,down,1";
+ source: "area";
+ action: SIGNAL_EMIT "elm,action,press" "";
+ }
+ program {
+ signal: "mouse,up,1";
+ source: "area";
+ action: SIGNAL_EMIT "elm,action,unpress" "";
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "area";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "area";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "area";
+ }
+
+ program {
+ signal: "mouse,down,1";
+ source: "area";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "area";
+ }
+ }
+}
--- /dev/null
+collections {
+#include "colors.edc"
+#include "dialer.edc"
+#include "keypad.edc"
+#include "call.edc"
+#include "contacts-bg.edc"
+#include "contacts.edc"
+#include "multiparty-list.edc"
+#include "history.edc"
+#include "history-bg.edc"
+#include "scroller.edc"
+#include "popup.edc"
+#include "buttons.edc"
+#include "answer_screen.edc"
+#include "action_answer.edc"
+
+#include "messages.edc"
+#include "compose.edc"
+#include "messages-overview.edc"
+#include "messages-overview-list.edc"
+}
parts {
part {
name: "bg";
- type: IMAGE;
+ type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
- image {
- normal: "bg_keypad.jpg";
- scale_hint: STATIC;
- }
- fill.smooth: 1;
+ color_class: "primary";
}
}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "light";
+ color_class: "secondary";
visible: 0;
fixed: 1 1;
rel1 {
max: WIDTH WIDTH; /* keep it tight centered */
rel1 {
relative: 0.0 1.0;
+ offset: 0 SEPARATOR_HEIGHT;
to_y: "elm.text.contact-and-type";
}
rel2 {
relative: 1.0 0.0;
+ offset: 0 -SEPARATOR_HEIGHT;
to_y: "bg.actions";
}
}
#define SEPARATOR(id, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
state: "pressed" 0.0; \
inherit: "default" 0.0; \
color: 16 16 16 255; \
+ color_class: "bg"; \
} \
} \
part { \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "light"; \
+ color_class: "secondary"; \
rel1 { \
to: "button."##id; \
relative: 0.0 0.5; \
- offset: 0 15; \
+ offset: 0 15; \
} \
rel2.to: "button."##id; \
text { \
text: sub; \
- font: FONT_BOLD; \
- size: SIZE_TINY; \
+ font: FONT_BOLD; \
+ size: SIZE_TINY; \
align: 0.5 0.5; \
} \
} \
state: "pressed" 0.0; \
inherit: "default" 0.0; \
color: 16 16 16 255; \
+ color_class: "bg"; \
} \
} \
programs { \
BUTTON("8", "8", "TUV", "action", 0.333 0.50, 0.666 0.75);
BUTTON("9", "9", "WXYZ", "action", 0.666 0.50, 1.000 0.75);
- BUTTON("star", "*", "", "light", 0.000 0.75, 0.333 1.00);
+ BUTTON("star", "*", "", "secondary", 0.000 0.75, 0.333 1.00);
BUTTON("0", "0", "+", "action", 0.333 0.75, 0.666 1.00);
- BUTTON("hash", "#", "", "light", 0.666 0.75, 1.000 1.00);
+ BUTTON("hash", "#", "", "secondary", 0.666 0.75, 1.000 1.00);
#undef BUTTON
--- /dev/null
+group {
+ name: "elm/genlist/item/messages-overview/default";
+
+ data {
+ item: "texts" "elm.text.name elm.text.content elm.text.time";
+ item: "contents" "elm.swallow.more";
+ }
+
+ images {
+ image: "ico_arrow_right.png" COMP;
+ image: "ico_del.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 0;
+ color_class: "action";
+ min: WIDTH LIST_CONTACT_HEIGHT;
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ }
+
+ part {
+ name: "msg.img.more";
+ type: IMAGE;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1.to: "elm.swallow.more";
+ rel2.to: "elm.swallow.more";
+ color_class: "action";
+ image {
+ normal: "ico_arrow_right.png";
+ scale_hint: STATIC;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "elm.swallow.more";
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 1.0 0.5;
+ fixed: 1 1;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.text.name";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ relative: 0.0 0.0;
+ offset: BORDER_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "elm.text.time";
+ relative: 0.0 0.5;
+ offset: -ITEM_PADDING -1;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ align: 0.0 1.0;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "elm.text.content";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ fixed: 1 1;
+ rel1 {
+ to: "elm.text.name";
+ relative: 0.0 1.0;
+ offset: 0 0;
+ }
+ rel2 {
+ to: "elm.swallow.more";
+ relative: 0.0 1.0;
+ offset: -ITEM_PADDING -ITEM_PADDING;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 0.0;
+ ellipsis: 0.0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+
+ part {
+ name: "elm.text.time";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ fixed: 1 1;
+ state: "default" 0.0;
+ color: 255 255 255 128;
+ color_class: "action";
+ align: 1.0 0.5;
+ rel1 {
+ to_x: "elm.swallow.more";
+ relative: 0.0 0.0;
+ offset: -ITEM_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "elm.swallow.more";
+ relative: 0.0 0.5;
+ offset: -ITEM_PADDING -1;
+ }
+ text {
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 1.0 1.0;
+ ellipsis: 0.0;
+ min: 1 0;
+ }
+ }
+ description {
+ state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color_class: "bg";
+ }
+ }
+ }
+ programs {
+ program {
+ signal: "elm,state,selected";
+ source: "elm";
+ after: "show_selected";
+ }
+ program {
+ signal: "elm,state,unselected";
+ source: "elm";
+ after: "show_default";
+ }
+ program {
+ name: "show_default";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ target: "elm.text.name";
+ target: "elm.text.time";
+ target: "elm.text.content";
+ target: "msg.img.more";
+ }
+ program {
+ name: "show_selected";
+ action: STATE_SET "selected" 0.0;
+ target: "bg";
+ target: "elm.text.name";
+ target: "elm.text.time";
+ target: "elm.text.content";
+ target: "msg.img.more";
+ }
+ }
+}
+
+group {
+ name: "elm/genlist/item/messages-overview-delete/default";
+ alias: "elm/genlist/item_odd/messages-overview-delete/default";
+
+ data {
+ item: "contents" "elm.swallow.delete";
+ item: "mode_part" "elm.swallow.decorate.content";
+ }
+
+ parts {
+ part {
+ name: "content.clipper";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ rel2 {
+ offset: (-BORDER_PADDING - LIST_ICON_SIZE - ITEM_PADDING - 1) -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.swallow.decorate.content";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ clip_to: "content.clipper";
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.delete";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ }
+ }
+ description {
+ state: "decorated" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ align: 1.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -BORDER_PADDING 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -BORDER_PADDING -1;
+ }
+ }
+ }
+
+ programs {
+ program {
+ name: "animate_decorated";
+ signal: "elm,state,decorate,enabled,effect";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ after: "animate_decorated2";
+ }
+ program {
+ name: "animate_decorated2";
+ action: STATE_SET "decorated" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "elm.swallow.delete";
+ }
+
+ program {
+ name: "animate_default";
+ signal: "elm,state,decorate,disabled,effect";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ transition: ACCELERATE 0.15;
+ target: "elm.swallow.delete";
+ after: "animate_default2";
+ }
+ program {
+ name: "animate_default2";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ }
+
+ program {
+ signal: "elm,state,decorate,enabled";
+ source: "elm";
+ action: STATE_SET "decorated" 0.0;
+ target: "content.clipper";
+ target: "elm.swallow.delete";
+ }
+ program {
+ signal: "elm,state,decorate,disabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "content.clipper";
+ target: "elm.swallow.delete";
+ }
+
+ program {
+ signal: "elm,state,slide,active";
+ source: "elm";
+ after: "animate_decorated";
+ }
+ program {
+ signal: "elm,state,slide,passive";
+ source: "elm";
+ after: "animate_default";
+ }
+ }
+ }
+}
description {
state: "default" 0.0;
color: 255 255 255 255;
- color_class: "dark";
+ color_class: "primary";
image {
normal: "bg_keypad.jpg";
scale_hint: STATIC;
#define SEPARATOR(id, clip, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
clip_to: clip; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
--- /dev/null
+group {
+ name: "elm/layout/ofono-efl/multiparty-details";
+
+ images {
+ image: "ico_multiparty_hangup.png" COMP;
+ image: "ico_multiparty_private.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: ACTION_WIDTH LIST_ITEM_HEIGHT;
+ }
+ }
+
+ part {
+ name: "hangup.ico";
+ type: IMAGE;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 0.0 0.5;
+ rel1.offset: BORDER_PADDING 0;
+ rel2 {
+ relative: 0.0 1.0;
+ offset: (LIST_ICON_SIZE + BORDER_PADDING - 1) -1;
+ }
+ image.normal: "ico_multiparty_hangup.png";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "secondary";
+ }
+ }
+
+ programs {
+ program {
+ signal: "mouse,down,1";
+ source: "hangup.ico";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "hangup.ico";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "hangup.ico";
+ action: STATE_SET "default" 0.0;
+ transition: DECELERATE 0.1;
+ target: "hangup.ico";
+ }
+
+ program {
+ signal: "mouse,clicked,1";
+ source: "hangup.ico";
+ action: SIGNAL_EMIT "clicked,hangup" "call";
+ }
+ }
+
+ part {
+ name: "private.clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "private.ico";
+ type: IMAGE;
+ mouse_events: 1;
+ clip_to: "private.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ min: LIST_ICON_SIZE LIST_ICON_SIZE;
+ max: LIST_ICON_SIZE LIST_ICON_SIZE;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: (-LIST_ICON_SIZE -BORDER_PADDING - 1) 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: (-BORDER_PADDING - 1) -1;
+ }
+ image.normal: "ico_multiparty_private.png";
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "secondary";
+ }
+ }
+
+ part {
+ name: "private.label";
+ type: TEXT;
+ mouse_events: 0;
+ clip_to: "private.clipper";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ align: 0.5 0.0;
+ fixed: 1 1;
+ rel1 {
+ to: "private.ico";
+ relative: 0.5 1.0;
+ offset: 0 2;
+ }
+ rel2 {
+ to_x: "private.ico";
+ relative: 0.5 1.0;
+ offset: -1 -1;
+ }
+ text {
+ text: "PRIVATE";
+ font: FONT_NORMAL;
+ size: SIZE_SMALL;
+ min: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+ description {
+ state: "pressed" 0.0;
+ inherit: "default" 0.0;
+ color_class: "secondary";
+ }
+ }
+
+ programs {
+ program {
+ signal: "mouse,down,1";
+ source: "private.ico";
+ action: STATE_SET "pressed" 0.0;
+ transition: ACCELERATE 0.1;
+ target: "private.ico";
+ target: "private.label";
+ }
+
+ program {
+ signal: "mouse,up,1";
+ source: "private.ico";
+ action: STATE_SET "default" 0.0;
+ in: 0.1 0.0;
+ transition: DECELERATE 0.1;
+ target: "private.ico";
+ target: "private.label";
+ }
+
+ program {
+ name: "clicked_private_ico_phase1";
+ signal: "mouse,clicked,1";
+ source: "private.ico";
+ action: SIGNAL_EMIT "clicked,private" "call";
+ }
+
+ program {
+ signal: "show,private";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ target: "private.clipper";
+ }
+ program {
+ signal: "hide,private";
+ source: "call";
+ action: STATE_SET "hidden" 0.0;
+ target: "private.clipper";
+ }
+ }
+
+ part {
+ name: "elm.text.name";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ api: "name" "party name";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "action";
+ rel1 {
+ to_x: "hangup.ico";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "private.ico";
+ relative: 0.0 0.5;
+ offset: (-ITEM_PADDING - 1) 0;
+ }
+ text {
+ text: "Name Here";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ align: 0.0 1.0;
+ ellipsis: 0.0;
+ min: 0 1;
+ }
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color: 255 0 0 255;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "elm.text.number";
+ type: TEXT;
+ mouse_events: 0;
+ scale: 1;
+ api: "number" "party number";
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ rel1 {
+ to_x: "hangup.ico";
+ relative: 1.0 0.5;
+ offset: ITEM_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "private.ico";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - 1) (-ITEM_PADDING - 1);
+ }
+ text {
+ text: "3333-4444";
+ font: FONT_NORMAL;
+ size: SIZE_MEDIUM;
+ size_range: SIZE_SMALL SIZE_MEDIUM;
+ ellipsis: 1.0;
+ min: 0 1;
+ fit: 1 0;
+ align: -1.0 0.0;
+ }
+ }
+ description {
+ state: "alternate" 0.0;
+ inherit: "default" 0.0;
+ color_class: "action";
+ rel1 {
+ to_x: "hangup.ico";
+ relative: 1.0 0.0;
+ offset: ITEM_PADDING ITEM_PADDING;
+ }
+ rel2 {
+ to_x: "private.ico";
+ relative: 0.0 1.0;
+ offset: (-ITEM_PADDING - 1) (-ITEM_PADDING - 1);
+ }
+ text {
+ text: "3333-4444";
+ font: FONT_NORMAL;
+ size: SIZE_LARGE;
+ size_range: SIZE_SMALL SIZE_LARGE;
+ ellipsis: 1.0;
+ min: 0 1;
+ fit: 1 0;
+ align: -1.0 0.5;
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "show,name";
+ source: "call";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.name";
+ target: "elm.text.number";
+ }
+
+ program {
+ signal: "hide,name";
+ source: "call";
+ action: STATE_SET "alternate" 0.0;
+ target: "elm.text.name";
+ target: "elm.text.number";
+ }
+ }
+ }
+}
#define SEPARATOR(id, clip, rely, offy, relto) \
part { \
- name: "separator.dark."##id; \
+ name: "separator.primary."##id; \
type: RECT; \
mouse_events: 0; \
clip_to: clip; \
description { \
state: "default" 0.0; \
color: 255 255 255 255; \
- color_class: "dark"; \
+ color_class: "primary"; \
rel1 { \
relative: 0.0 rely; \
offset: 0 offy; \
mouse_events: 0;
description {
state: "default" 0.0;
- color_class: "dark";
+ color_class: "primary";
}
}
}
--- /dev/null
+group {
+ name: "elm/scroller/base/multiparty-details";
+ alias: "elm/genlist/base/history";
+ alias: "elm/genlist/base/contacts";
+ alias: "elm/genlist/base/messages-overview";
+ alias: "elm/scroller/entry/compose";
+ alias: "elm/genlist/base/compose";
+
+ script {
+ public sbvis_v, sbalways_v, sbvis_timer;
+ public timer0(val) {
+ new v;
+ v = get_int(sbvis_v);
+ if (v) {
+ v = get_int(sbalways_v);
+ if (!v) {
+ emit("do-hide-vbar", "");
+ set_int(sbvis_v, 0);
+ }
+ }
+ set_int(sbvis_timer, 0);
+ return 0;
+ }
+ }
+
+ parts {
+ part {
+ name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "bg";
+ type: RECT;
+ clip_to: "clipper";
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ clip_to: "clipper";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "sb_vbar_clip_master";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "hidden" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sb_vbar_clip";
+ clip_to: "sb_vbar_clip_master";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "hidden" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sb_vbar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ visible: 0;
+ min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.dragable.vbar";
+ type: RECT;
+ clip_to: "sb_vbar_clip";
+ mouse_events: 0;
+ dragable {
+ x: 0 0 0;
+ y: 1 1 0;
+ confine: "sb_vbar";
+ }
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
+ max: SCROLLBAR_WIDTH 99999;
+ rel1 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ to: "sb_vbar";
+ }
+ rel2 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ to: "sb_vbar";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "load";
+ source: "";
+ script {
+ set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+ set_int(sbvis_v, 0);
+ set_int(sbalways_v, 0);
+ set_int(sbvis_timer, 0);
+ }
+ }
+
+ program {
+ name: "vbar_show";
+ signal: "elm,action,show,vbar";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "sb_vbar_clip_master";
+ }
+
+ program {
+ name: "vbar_hide";
+ signal: "elm,action,hide,vbar";
+ source: "elm";
+ action: STATE_SET "hidden" 0.0;
+ target: "sb_vbar_clip_master";
+ }
+
+ program {
+ name: "vbar_show_always";
+ signal: "elm,action,show_always,vbar";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbvis_v);
+ v |= get_int(sbalways_v);
+ if (!v) {
+ set_int(sbalways_v, 1);
+ emit("do-show-vbar", "");
+ set_int(sbvis_v, 1);
+ }
+ }
+ }
+
+ program {
+ name: "vbar_show_notalways";
+ signal: "elm,action,show_notalways,vbar";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbalways_v);
+ if (v) {
+ set_int(sbalways_v, 0);
+ v = get_int(sbvis_v);
+ if (!v) {
+ emit("do-hide-vbar", "");
+ set_int(sbvis_v, 0);
+ }
+ }
+ }
+ }
+
+ program {
+ signal: "do-show-vbar";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.5;
+ target: "sb_vbar_clip";
+ }
+
+ program {
+ signal: "do-hide-vbar";
+ source: "";
+ action: STATE_SET "hidden" 0.0;
+ transition: LINEAR 0.5;
+ target: "sb_vbar_clip";
+ }
+
+ program {
+ name: "scroll";
+ signal: "elm,action,scroll";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbvis_v);
+ v |= get_int(sbalways_v);
+ if (!v) {
+ emit("do-show-vbar", "");
+ set_int(sbvis_v, 1);
+ }
+ v = get_int(sbvis_timer);
+ if (v > 0) cancel_timer(v);
+ v = timer(1.0, "timer0", 0);
+ set_int(sbvis_timer, v);
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/scroller/entry/dialer-popup";
+
+ script {
+ public sbvis_v, sbalways_v, sbvis_timer;
+ public timer0(val) {
+ new v;
+ v = get_int(sbvis_v);
+ if (v) {
+ v = get_int(sbalways_v);
+ if (!v) {
+ emit("do-hide-vbar", "");
+ set_int(sbvis_v, 0);
+ }
+ }
+ set_int(sbvis_timer, 0);
+ return 0;
+ }
+ }
+
+ parts {
+ part {
+ name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "elm.swallow.content";
+ clip_to: "clipper";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.offset: BORDER_PADDING 0;
+ rel2.offset: (-BORDER_PADDING - 1) -1;
+ }
+ }
+
+ part {
+ name: "sb_vbar_clip_master";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "hidden" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sb_vbar_clip";
+ clip_to: "sb_vbar_clip_master";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "hidden" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sb_vbar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ visible: 0;
+ min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -1 0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -1 -1;
+ }
+ }
+ }
+
+ part {
+ name: "elm.dragable.vbar";
+ type: RECT;
+ clip_to: "sb_vbar_clip";
+ mouse_events: 0;
+ dragable {
+ x: 0 0 0;
+ y: 1 1 0;
+ confine: "sb_vbar";
+ }
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
+ max: SCROLLBAR_WIDTH 99999;
+ rel1 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ to: "sb_vbar";
+ }
+ rel2 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ to: "sb_vbar";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "load";
+ source: "";
+ script {
+ set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+ set_int(sbvis_v, 0);
+ set_int(sbalways_v, 0);
+ set_int(sbvis_timer, 0);
+ }
+ }
+
+ program {
+ name: "vbar_show";
+ signal: "elm,action,show,vbar";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "sb_vbar_clip_master";
+ }
+
+ program {
+ name: "vbar_hide";
+ signal: "elm,action,hide,vbar";
+ source: "elm";
+ action: STATE_SET "hidden" 0.0;
+ target: "sb_vbar_clip_master";
+ }
+
+ program {
+ name: "vbar_show_always";
+ signal: "elm,action,show_always,vbar";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbvis_v);
+ v |= get_int(sbalways_v);
+ if (!v) {
+ set_int(sbalways_v, 1);
+ emit("do-show-vbar", "");
+ set_int(sbvis_v, 1);
+ }
+ }
+ }
+
+ program {
+ name: "vbar_show_notalways";
+ signal: "elm,action,show_notalways,vbar";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbalways_v);
+ if (v) {
+ set_int(sbalways_v, 0);
+ v = get_int(sbvis_v);
+ if (!v) {
+ emit("do-hide-vbar", "");
+ set_int(sbvis_v, 0);
+ }
+ }
+ }
+ }
+
+ program {
+ signal: "do-show-vbar";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.5;
+ target: "sb_vbar_clip";
+ }
+
+ program {
+ signal: "do-hide-vbar";
+ source: "";
+ action: STATE_SET "hidden" 0.0;
+ transition: LINEAR 0.5;
+ target: "sb_vbar_clip";
+ }
+
+ program {
+ name: "scroll";
+ signal: "elm,action,scroll";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbvis_v);
+ v |= get_int(sbalways_v);
+ if (!v) {
+ emit("do-show-vbar", "");
+ set_int(sbvis_v, 1);
+ }
+ v = get_int(sbvis_timer);
+ if (v > 0) cancel_timer(v);
+ v = timer(1.0, "timer0", 0);
+ set_int(sbvis_timer, v);
+ }
+ }
+ }
+}
+
+group {
+ name: "elm/scroller/entry/dialer-popup-editable";
+
+ script {
+ public sbvis_v, sbalways_v, sbvis_timer;
+ public timer0(val) {
+ new v;
+ v = get_int(sbvis_v);
+ if (v) {
+ v = get_int(sbalways_v);
+ if (!v) {
+ emit("do-hide-vbar", "");
+ set_int(sbvis_v, 0);
+ }
+ }
+ set_int(sbvis_timer, 0);
+ return 0;
+ }
+ }
+
+ parts {
+ part {
+ name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ }
+
+ part {
+ name: "bg-color";
+ type: RECT;
+ clip_to: "clipper";
+ description {
+ state: "default" 0.0;
+ color_class: "action";
+ }
+ }
+ part {
+ name: "bg-nocolor";
+ type: RECT;
+ clip_to: "clipper";
+ description {
+ state: "default" 0.0;
+ color_class: "bg";
+ rel1.offset: 1 1;
+ rel2.offset: -2 -2;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ clip_to: "clipper";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.offset: BORDER_PADDING 2;
+ rel2.offset: (-BORDER_PADDING - 1) -3;
+ }
+ }
+
+ part {
+ name: "sb_vbar_clip_master";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "hidden" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sb_vbar_clip";
+ clip_to: "sb_vbar_clip_master";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ }
+ description {
+ state: "hidden" 0.0;
+ color: 255 255 255 0;
+ visible: 0;
+ }
+ }
+
+ part {
+ name: "sb_vbar";
+ type: RECT;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 1;
+ visible: 0;
+ min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
+ align: 1.0 0.0;
+ rel1 {
+ relative: 1.0 0.0;
+ offset: -3 2;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ offset: -3 -3;
+ }
+ }
+ }
+
+ part {
+ name: "elm.dragable.vbar";
+ type: RECT;
+ clip_to: "sb_vbar_clip";
+ mouse_events: 0;
+ dragable {
+ x: 0 0 0;
+ y: 1 1 0;
+ confine: "sb_vbar";
+ }
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ color_class: "secondary";
+ fixed: 1 1;
+ min: SCROLLBAR_WIDTH SCROLLBAR_HEIGHT;
+ max: SCROLLBAR_WIDTH 99999;
+ rel1 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ to: "sb_vbar";
+ }
+ rel2 {
+ relative: 0.5 0.5;
+ offset: 0 0;
+ to: "sb_vbar";
+ }
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "load";
+ source: "";
+ script {
+ set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+ set_int(sbvis_v, 0);
+ set_int(sbalways_v, 0);
+ set_int(sbvis_timer, 0);
+ }
+ }
+
+ program {
+ name: "vbar_show";
+ signal: "elm,action,show,vbar";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "sb_vbar_clip_master";
+ }
+
+ program {
+ name: "vbar_hide";
+ signal: "elm,action,hide,vbar";
+ source: "elm";
+ action: STATE_SET "hidden" 0.0;
+ target: "sb_vbar_clip_master";
+ }
+
+ program {
+ name: "vbar_show_always";
+ signal: "elm,action,show_always,vbar";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbvis_v);
+ v |= get_int(sbalways_v);
+ if (!v) {
+ set_int(sbalways_v, 1);
+ emit("do-show-vbar", "");
+ set_int(sbvis_v, 1);
+ }
+ }
+ }
+
+ program {
+ name: "vbar_show_notalways";
+ signal: "elm,action,show_notalways,vbar";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbalways_v);
+ if (v) {
+ set_int(sbalways_v, 0);
+ v = get_int(sbvis_v);
+ if (!v) {
+ emit("do-hide-vbar", "");
+ set_int(sbvis_v, 0);
+ }
+ }
+ }
+ }
+
+ program {
+ signal: "do-show-vbar";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ transition: LINEAR 0.5;
+ target: "sb_vbar_clip";
+ }
+
+ program {
+ signal: "do-hide-vbar";
+ source: "";
+ action: STATE_SET "hidden" 0.0;
+ transition: LINEAR 0.5;
+ target: "sb_vbar_clip";
+ }
+
+ program {
+ name: "scroll";
+ signal: "elm,action,scroll";
+ source: "elm";
+ script {
+ new v;
+ v = get_int(sbvis_v);
+ v |= get_int(sbalways_v);
+ if (!v) {
+ emit("do-show-vbar", "");
+ set_int(sbvis_v, 1);
+ }
+ v = get_int(sbvis_timer);
+ if (v > 0) cancel_timer(v);
+ v = timer(1.0, "timer0", 0);
+ set_int(sbvis_timer, v);
+ }
+ }
+ }
+}
/usr/apps/org.tizen.dialer/bin/message_daemon
/usr/apps/org.tizen.dialer/data/lemolo/examples/contacts.csv
/usr/apps/org.tizen.dialer/data/lemolo/scripts/ofono-efl-contacts-db-create.py
-/usr/apps/org.tizen.dialer/data/lemolo/themes/default-sd.edj
/usr/apps/org.tizen.dialer/data/lemolo/themes/default.edj
+/usr/apps/org.tizen.dialer/data/lemolo/themes/night.edj
/usr/apps/org.tizen.dialer/data/lemolo/tizen-examples/order
/usr/share/packages/org.tizen.dialer.xml
%{_datadir}/icons/default/small/org.tizen.dialer.png