#define UTILS_H_
void app_get_resource(const char *edj_file_in, char *edj_path_out);
-Evas_Object *create_button(Evas_Object *parent, char *part, char *text, Evas_Smart_Cb callback, void *data);
+Evas_Object *create_button(Evas_Object *parent, char *part, char *text, char *image_path, char *style, Evas_Smart_Cb callback, void *data);
+Evas_Object *create_image(Evas_Object *parent, char *path);
Evas_Object *create_layout(Evas_Object *parent, char *edj_file, char *group);
void get_screen_size(int *width, int *height);
void view_base_init(Evas_Object *parent);
void view_base_get_resource(const char *edj_file_in, char *edj_path_out);
-Evas_Object *view_base_create_button(Evas_Object *parent, char *part, char *text, Evas_Smart_Cb callback, void *data);
+Evas_Object *view_base_create_button(Evas_Object *parent, char *part, char *text, char *image_path, char *style, Evas_Smart_Cb callback, void *data);
Evas_Object *view_base_create_layout(Evas_Object *parent, char *edj_file, char *group);
void view_base_set_position(Evas_Object *image, int pos_X, int pos_Y,
e_horizontal_align horizontal_align, e_vertical_align vertical_align);
--- /dev/null
+collections {
+ base_scale: 1.0;
+ group { "elm/button/base/racing_bottom";
+ images {
+ image: "button_bottom.png" COMP;
+ image: "bg.png" COMP;
+ }
+ parts {
+ image { "background"
+ desc { "default";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ image.normal: "button_bottom.png";
+ }
+ desc { "pressed";
+ image.normal: "bg.png";
+ }
+ }
+ swallow { "elm.swallow.content";
+ desc { "default";
+ rel1.relative: 0.4601 0.2923;
+ rel2.relative: 0.5435 0.8462;
+ }
+ }
+ text { "elm.text";
+ desc { "default";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ text {
+ text: "";
+ size: 20;
+ }
+ }
+ }
+ rect { "event";
+ desc { "default";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs {
+ program { "pressed";
+ signal: "mouse,down,*";
+ source: "event";
+ sequence {
+ action: SIGNAL_EMIT "elm,action,press" "elm";
+ action: STATE_SET "pressed";
+ target: background;
+ }
+ }
+ program { "unpressed";
+ signal: "mouse,up,*";
+ source: "event";
+ sequence {
+ action: SIGNAL_EMIT "elm,action,unpress" "elm";
+ action: STATE_SET "default";
+ target: "background";
+ }
+ }
+ program {
+ signal: "mouse,clicked,1";
+ source: "event";
+ action: SIGNAL_EMIT "elm,action,click" "elm";
+ }
+ }
+ }
+ group { "elm/button/base/racing_left";
+ inherit: "elm/button/base/racing_bottom";
+ images {
+ image: "button_left.png" COMP;
+ image: "button_left_pressed.png" COMP;
+ }
+ parts {
+ image { "background"
+ desc { "default";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ image.normal: "button_left.png";
+ }
+ desc { "pressed";
+ image.normal: "button_left_pressed.png";
+ }
+ }
+ swallow { "elm.swallow.content";
+ desc { "default";
+ rel1.relative: 0.2089 0.4456;
+ rel2.relative: 0.6567 0.5471;
+ }
+ }
+ }
+ }
+ group { "elm/button/base/racing_right";
+ inherit: "elm/button/base/racing_bottom";
+ images {
+ image: "button_right.png" COMP;
+ image: "button_right_pressed.png" COMP;
+ }
+ parts {
+ image { "background"
+ desc { "default";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ image.normal: "button_right.png";
+ }
+ desc { "pressed";
+ image.normal: "button_right_pressed.png";
+ }
+ }
+ swallow { "elm.swallow.content";
+ desc { "default";
+ rel1.relative: 0.2923 0.4601;
+ rel2.relative: 0.8462 0.5435;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
collections {
+ styles {
+ style { "main_style";
+ base: "font='SamsungOne' font_size=36 font_width='condensed' color=#F8EECC valign=0.5 align=center wrap=word";
+ }
+ }
group { name: "main";
parts {
- part { name: "txt_title";
- type: TEXT;
+ text { "txt_title";
+ type: TEXTBLOCK;
mouse_events: 0;
- description { state: "default" 0.0;
+ desc { "default";
+ rel1.relative: 0.20 0.00;
+ rel2.relative: 0.80 1.00;
text {
- text: "Hello Tizen";
- font: "Tizen:style=regular";
- size: 20;
- min: 1 1;
- align: 0.5 0.5;
- ellipsis: -1;
+ text: "";
+ style: "main_style";
}
- color: 0 255 255 255;
}
}
- swallow { "Button_Ok";
- scale: 1;
+ swallow { "Button_Cancel";
desc { "default";
visible: 1;
align: 0.5 0.5;
- rel1.relative: 0.0686 0.7029;
- rel2.relative: 0.4886 0.8729;
+ rel1.relative: 0.0000 0.1167;
+ rel2.relative: 0.1805 0.8834;
}
}
- swallow { "Button_Cancel";
- scale: 1;
+ swallow { "Button_Ok";
desc { "default";
visible: 1;
align: 0.5 0.5;
- rel1.relative: 0.5429 0.7029;
- rel2.relative: 0.9629 0.8729;
+ rel1.relative: 0.8194 0.1167;
+ rel2.relative: 1.0000 0.8834;
}
}
-
}
}
}
return layout;
}
-Evas_Object *view_base_create_button(Evas_Object *parent, char *part, char *text, Evas_Smart_Cb callback, void *data)
+Evas_Object *view_base_create_image(Evas_Object *parent, char *path)
+{
+ char edj_path[PATH_MAX] = { 0 };
+ view_base_get_resource(path, edj_path);
+
+ Evas_Object *image = elm_image_add(parent);
+ evas_object_size_hint_weight_set(parent, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ if (!elm_image_file_set(image, edj_path, NULL)) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Failed to load file: %s", path);
+ }
+
+ return image;
+}
+
+Evas_Object *view_base_create_button(Evas_Object *parent, char *part, char *text, char *image_path, char *style, Evas_Smart_Cb callback, void *data)
{
Evas_Object *button = elm_button_add(parent);
if (!button) {
}
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_text_set(button, text);
+
+ if (style && !elm_object_style_set(button, style)) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Failed to set style: %s", style);
+ }
+
+ if (text) {
+ elm_object_text_set(button, text);
+ }
+
+ if (image_path) {
+ Evas_Object *image = view_base_create_image(button, image_path);
+ elm_object_content_set(button, image);
+ }
if (callback) {
evas_object_smart_callback_add(button, "clicked", callback, data);
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Car selection");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", NULL, NULL, _ok_button_clicked_cb, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL, NULL, NULL);
}
s_view_base *view_car_selection_init(Evas_Object *parent)
s_info.view_base.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Connect to a car?");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", NULL, "images/no.png", "racing_left", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", NULL, "images/yes.png", "racing_right", _ok_button_clicked_cb, NULL);
}
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Connection successed");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", NULL, NULL, _ok_button_clicked_cb, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL, NULL, NULL);
}
s_view_base *view_connection_successed_init(Evas_Object *parent)
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Help");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", NULL, NULL, _ok_button_clicked_cb, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL, NULL, NULL);
}
s_view_base *view_help_init(Evas_Object *parent)
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Name input");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", NULL, NULL, _ok_button_clicked_cb, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL, NULL, NULL);
}
s_view_base *view_name_input_init(Evas_Object *parent)
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Network failure");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", NULL, NULL, _ok_button_clicked_cb, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL, NULL, NULL);
}
s_view_base *view_network_failure_init(Evas_Object *parent)
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
elm_layout_text_set(s_info.view_base.layout, "txt_title", "Reset");
- view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
- view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Ok", "Ok", NULL, NULL, _ok_button_clicked_cb, NULL);
+ view_base_create_button(s_info.view_base.layout, "Button_Cancel", "Cancel", NULL, NULL, NULL, NULL);
}
s_view_base *view_reset_init(Evas_Object *parent)
*/
#include <assert.h>
+#include "gear-racing-controller.h"
#include "view_manager/view_manager.h"
typedef struct _s_ui {
evas_object_show(s_info.conform);
}
+static void _create_theme_extension(void)
+{
+ char edj_path[PATH_MAX] = { 0 };
+ view_base_get_resource("edje/button_style.edj", edj_path);
+ elm_theme_extension_add(NULL, edj_path);
+}
+
void view_manager_set_view(view_id id)
{
view_base_hide(s_info.current_view);
void view_manager_initialize_ui(void)
{
+ _create_theme_extension();
_create_window();
_create_conformant();
_create_naviframe();