}
}
}
+ group { "elm/button/base/racing_middle";
+ inherit: "elm/button/base/racing_bottom";
+ images {
+ image: "button_middle.png" COMP;
+ }
+ parts {
+ image { "background"
+ desc { "default";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ image.normal: "button_middle.png";
+ }
+ desc { "pressed";
+ image.normal: "button_middle.png";
+ }
+ }
+ swallow { "elm.swallow.content";
+ desc { "default";
+ rel1.relative: 0.1 0.1;
+ rel2.relative: 0.9 0.9;
+ }
+ }
+ }
+ }
}
\ No newline at end of file
}
text{
text: "Enter name";
- size: 19;
+ size: 24;
font: "SamsungOne";
}
}
}
}
part{
- name: "entry_text_rectangle";
- type: RECT;
+ name: "button_middle";
+ type: SWALLOW;
desc{
state: "default" 0.0;
- color_class: "ui_red";
rel1{
- relative: 0.2 0.1;
+ relative: 0.1 0.27;
to: "entry_text_border";
}
rel2{
- relative: 0.8 0.9;
+ relative: 0.9 0.73;
to: "entry_text_border";
}
}
+ desc{
+ inherit: "default" 0.0;
+ state: "invisible" 0.0;
+ visible: 0;
+ }
}
part{
name: "entry_placeholder";
}
programs{
program{
- signal: "mouse,clicked,*";
- source: "button_ok";
- action: SIGNAL_EMIT "ok_clicked" "";
- }
- program{
signal: "player,name,validated";
action: STATE_SET "visible" 0.0;
target: "button_ok";
action: STATE_SET "default" 0.0;
target: "button_ok";
}
+ program{
+ signal: "entry,active";
+ source: "entry";
+ action: STATE_SET "invisible" 0.0;
+ target: "button_middle";
+ }
+ program{
+ signal: "entry,inactive";
+ source: "entry";
+ action: STATE_SET "default" 0.0;
+ target: "button_middle";
+ }
}
}
}
#include "controller/controller_name_input.h"
#include <assert.h>
+#include "log.h"
+
#define ENTRY_STYLE "DEFAULT='align=center'"
typedef struct _ss_view_name_input {
static void _text_set_cb(void *data, Evas_Object *obj, void *event_info)
{
+
_text_entered(obj);
elm_object_focus_set(obj, EINA_FALSE);
}
_text_entered(obj);
}
+static void _entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ elm_layout_signal_emit(s_info.view_base.layout, "entry,active", "entry");
+}
+
+static void _entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (elm_entry_is_empty(obj)) {
+ elm_layout_signal_emit(s_info.view_base.layout, "entry,inactive", "entry");
+ }
+}
+
static void _view_name_input_create_gui(Evas_Object *parent)
{
s_info.view_base.layout = view_base_create_layout(parent, "edje/view_name_input.edj", GRP_MAIN);
eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
+ //Creating middle button
+ view_base_create_button(s_info.view_base.layout, "button_middle", "Tap to enter text", NULL, "racing_middle", NULL, NULL);
+
//Creating entry for player's name
Evas_Object *entry = elm_entry_add(parent);
if (!entry) {
static Elm_Entry_Filter_Limit_Size limit_size = { .max_char_count = PLAYER_NAME_MAX_LEN, .max_byte_count = 0};
elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_size);
elm_entry_single_line_set(entry, EINA_TRUE);
- elm_object_part_text_set(entry, "guide", "<align=center>Tap to enter text</align>");
elm_entry_text_style_user_push(entry, ENTRY_STYLE);
+ evas_object_smart_callback_add(entry, "focused", _entry_focused_cb, NULL);
+ evas_object_smart_callback_add(entry, "unfocused", _entry_unfocused_cb, NULL);
evas_object_smart_callback_add(entry, "changed", _char_changed_cb, NULL);
evas_object_smart_callback_add(entry, "activated", _text_set_cb, NULL);
elm_layout_content_set(s_info.view_base.layout, "entry_placeholder", entry);