view_base struct added 55/183555/4
authorMichal Skorupinski <m.skorupinsk@samsung.com>
Fri, 6 Jul 2018 11:21:54 +0000 (13:21 +0200)
committerMichal Skorupinski <m.skorupinsk@samsung.com>
Fri, 13 Jul 2018 15:27:16 +0000 (17:27 +0200)
Change-Id: I2660983d62d8888f8759a8faf298176577170662
Signed-off-by: Michal Skorupinski <m.skorupinsk@samsung.com>
39 files changed:
inc/controller/controller_car_selection.h
inc/controller/controller_connect_to_car.h
inc/controller/controller_connection_successed.h
inc/controller/controller_emergency_stop.h
inc/controller/controller_help.h
inc/controller/controller_name_input.h
inc/controller/controller_network_failure.h
inc/controller/controller_racing.h
inc/controller/controller_reset.h
inc/view/view_base.h
inc/view/view_car_selection.h
inc/view/view_connect_to_car.h
inc/view/view_connection_successed.h
inc/view/view_emergency_stop.h
inc/view/view_help.h
inc/view/view_name_input.h
inc/view/view_network_failure.h
inc/view/view_racing.h
inc/view/view_reset.h
src/controller/controller_car_selection.c
src/controller/controller_connect_to_car.c
src/controller/controller_connection_successed.c
src/controller/controller_emergency_stop.c
src/controller/controller_help.c
src/controller/controller_name_input.c
src/controller/controller_network_failure.c
src/controller/controller_racing.c
src/controller/controller_reset.c
src/view/view_base.c
src/view/view_car_selection.c
src/view/view_connect_to_car.c
src/view/view_connection_successed.c
src/view/view_emergency_stop.c
src/view/view_help.c
src/view/view_name_input.c
src/view/view_network_failure.c
src/view/view_racing.c
src/view/view_reset.c
src/view_manager/view_manager.c [moved from src/viewmanager/view_manager.c with 68% similarity]

index f19348b..142d64b 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_car_selection_init(t_view_update_cb view_update_cb);
-void controller_car_selection_back_btn(void);
-void controller_car_selection_next_page();
+void controller_car_selection_back(void);
+void controller_car_selection_next();
 
 #endif /* CONTROLLER_CONTROLLER_CAR_SELECTION_H_ */
index 56238fe..37d0c57 100644 (file)
@@ -21,7 +21,7 @@
 #include <controller/controller_base.h>
 
 void controller_connect_to_car_init(t_view_update_cb view_update_cb);
-void controller_connect_to_car_back_btn(void);
-void controller_connect_to_car_next_page();
+void controller_connect_to_car_back(void);
+void controller_connect_to_car_next();
 
 #endif /* CONTROLLER_CONTROLLER_CONNECT_TO_CAR_H_ */
index f8394d9..0906581 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_connection_successed_init(t_view_update_cb view_update_cb);
-void controller_connection_successed_back_btn(void);
-void controller_connection_successed_next_page();
+void controller_connection_successed_back(void);
+void controller_connection_successed_next();
 
 #endif /* CONTROLLER_CONTROLLER_CONNECTION_SUCCESSED_H_ */
index 38e5cf7..8d646bf 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_emergency_stop_init(t_view_update_cb view_update_cb);
-void controller_emergency_stop_back_btn(void);
-void controller_emergency_stop_next_page();
+void controller_emergency_stop_back(void);
+void controller_emergency_stop_next();
 
 #endif /* CONTROLLER_CONTROLLER_EMERGENCY_STOP_H_ */
index 5a655f1..d614f0e 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_help_init(t_view_update_cb view_update_cb);
-void controller_help_back_btn(void);
-void controller_help_next_page();
+void controller_help_back(void);
+void controller_help_next();
 
 #endif /* CONTROLLER_CONTROLLER_HELP_H_ */
index 0f16812..4d89f25 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_name_input_init(t_view_update_cb view_update_cb);
-void controller_name_input_back_btn(void);
-void controller_name_input_next_page();
+void controller_name_input_back(void);
+void controller_name_input_next();
 
 #endif /* CONTROLLER_CONTROLLER_NAME_INPUT_H_ */
index 5c3b437..20485d9 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_network_failure_init(t_view_update_cb view_update_cb);
-void controller_network_failure_back_btn(void);
-void controller_network_failure_next_page();
+void controller_network_failure_back(void);
+void controller_network_failure_next();
 
 #endif /* CONTROLLER_CONTROLLER_NETWORK_FAILURE_H_ */
index 77058ee..5b5fba6 100644 (file)
@@ -26,7 +26,7 @@ typedef struct _s_controller_data {
 } s_controller_data;
 
 void controller_racing_init(t_view_update_cb view_update_cb);
-void controller_racing_back_btn(void);
-void controller_racing_next_page();
+void controller_racing_back(void);
+void controller_racing_next();
 
 #endif /* CONTROLLER_CONTROLLER_RACING_H_ */
index 4b5b975..b10f620 100644 (file)
@@ -21,7 +21,7 @@
 #include "controller/controller_base.h"
 
 void controller_reset_init(t_view_update_cb view_update_cb);
-void controller_reset_back_btn(void);
-void controller_reset_next_page();
+void controller_reset_back(void);
+void controller_reset_next();
 
 #endif /* CONTROLLER_CONTROLLER_RESET_H_ */
index d9c896c..cd5e0f0 100644 (file)
@@ -19,6 +19,8 @@
 
 #include "gear-racing-controller.h"
 
+typedef void (* t_view_cb)(void);
+
 typedef enum _e_horizontal_align {
        HORIZONTAL_ALIGN_LEFT,
        HORIZONTAL_ALIGN_RIGHT,
@@ -31,6 +33,14 @@ typedef enum _e_veritcal_align {
        VERTICAL_ALIGN_CENTER
 } e_vertical_align;
 
+typedef struct _s_view_base {
+       Evas_Object *layout;
+       t_view_cb show_cb;
+       t_view_cb hide_cb;
+       t_view_cb update_cb;
+} s_view_base;
+
+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);
@@ -38,5 +48,8 @@ Evas_Object *view_base_create_layout(Evas_Object *parent, char *edj_file, char *
 void view_base_set_position(Evas_Object *image, int pos_X, int pos_Y,
                e_horizontal_align horizontal_align, e_vertical_align vertical_align);
 void view_base_set_angle(Evas_Object *image, float angle, float rotation_center_x, float rotation_center_y);
+void view_base_show(s_view_base *view);
+void view_base_hide(s_view_base *view);
+void view_base_update(s_view_base *view);
 
 #endif /* VIEW_VIEW_BASE_H_ */
index a453b59..a3ac36d 100644 (file)
@@ -18,6 +18,6 @@
 #ifndef VIEW_VIEW_CAR_SELECTION_H_
 #define VIEW_VIEW_CAR_SELECTION_H_
 
-void view_car_selection_init(Evas_Object *parent);
+s_view_base *view_car_selection_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_CAR_SELECTION_H_ */
index 7dfd538..7e34a6d 100644 (file)
@@ -18,6 +18,6 @@
 #define VIEW_VIEW_CONNECT_TO_CAR_H_
 #include "gear-racing-controller.h"
 
-void view_connect_to_car_init(Evas_Object *parent);
+s_view_base *view_connect_to_car_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_CONNECT_TO_CAR_H_ */
index 79f61e7..d394170 100644 (file)
@@ -18,6 +18,6 @@
 #ifndef VIEW_VIEW_CONNECTION_SUCCESSED_H_
 #define VIEW_VIEW_CONNECTION_SUCCESSED_H_
 
-void view_connection_successed_init(Evas_Object *parent);
+s_view_base *view_connection_successed_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_CONNECTION_SUCCESSED_H_ */
index 32c9541..015c45a 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef VIEW_VIEW_EMERGENCY_STOP_H_
 #define VIEW_VIEW_EMERGENCY_STOP_H_
 
-
-void view_emergency_stop_init(Evas_Object *parent);
+s_view_base *view_emergency_stop_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_EMERGENCY_STOP_H_ */
index 880ff4a..4129a0d 100644 (file)
@@ -19,6 +19,6 @@
 #define VIEW_VIEW_HELP_H_
 
 
-void view_help_init(Evas_Object *parent);
+s_view_base *view_help_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_HELP_H_ */
index 4ec9183..060a6ee 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef VIEW_VIEW_NAME_INPUT_H_
 #define VIEW_VIEW_NAME_INPUT_H_
 
-
-void view_name_input_init(Evas_Object *parent);
+s_view_base *view_name_input_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_NAME_INPUT_H_ */
index ce63b25..deff060 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef VIEW_VIEW_NETWORK_FAILURE_H_
 #define VIEW_VIEW_NETWORK_FAILURE_H_
 
-
-void view_network_failure_init(Evas_Object *parent);
+s_view_base *view_network_failure_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_NETWORK_FAILURE_H_ */
index 22d121f..289b372 100644 (file)
@@ -18,7 +18,6 @@
 #ifndef VIEW_VIEW_RACING_H_
 #define VIEW_VIEW_RACING_H_
 
-
-void view_racing_init(Evas_Object *parent);
+s_view_base *view_racing_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_RACING_H_ */
index ed264b1..6b6f4df 100644 (file)
@@ -18,7 +18,8 @@
 #ifndef VIEW_VIEW_RESET_H_
 #define VIEW_VIEW_RESET_H_
 
+#include "gear-racing-controller.h"
 
-void view_reset_init(Evas_Object *parent);
+s_view_base *view_reset_init(Evas_Object *parent);
 
 #endif /* VIEW_VIEW_RESET_H_ */
index 73ba835..9c2d7bd 100644 (file)
@@ -39,12 +39,12 @@ void controller_car_selection_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_car_selection_back_btn(void)
+void controller_car_selection_back(void)
 {
        controller_car_selection_destroy();
 }
 
-void controller_car_selection_next_page()
+void controller_car_selection_next()
 {
        model_connection_connect();
 }
index b1d8fb7..20938be 100644 (file)
@@ -45,13 +45,13 @@ void controller_connect_to_car_init(t_view_update_cb view_update_cb)
 
        model_connection_subscribe_event(_connected_cb);
 }
-void controller_connect_to_car_back_btn(void)
+void controller_connect_to_car_back(void)
 {
        dlog_print(DLOG_DEBUG, LOG_TAG, "% s %s", basename(__FILE__), __FUNCTION__);
        controller_connect_to_car_destroy();
 }
 
-void controller_connect_to_car_next_page()
+void controller_connect_to_car_next()
 {
        model_connection_connect();
 }
index 9e956c0..78c05cd 100644 (file)
@@ -40,12 +40,12 @@ void controller_connection_successed_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_connection_successed_back_btn(void)
+void controller_connection_successed_back(void)
 {
        _connection_successed_destroy();
 }
 
-void controller_connection_successed_next_page()
+void controller_connection_successed_next()
 {
        model_connection_connect();
 }
index 4b5ed10..20fee27 100644 (file)
@@ -42,12 +42,12 @@ void controller_emergency_stop_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_emergency_stop_back_btn(void)
+void controller_emergency_stop_back(void)
 {
        controller_emergency_stop_destroy();
 }
 
-void controller_emergency_stop_next_page()
+void controller_emergency_stop_next()
 {
        model_connection_connect();
 }
index ec41949..c339eca 100644 (file)
@@ -42,12 +42,12 @@ void controller_help_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_help_back_btn(void)
+void controller_help_back(void)
 {
        controller_help_destroy();
 }
 
-void controller_help_next_page()
+void controller_help_next()
 {
        model_connection_connect();
 }
index 41ce03e..fad71dd 100644 (file)
@@ -42,12 +42,12 @@ void controller_name_input_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_name_input_back_btn(void)
+void controller_name_input_back(void)
 {
        controller_name_input_destroy();
 }
 
-void controller_name_input_next_page()
+void controller_name_input_next()
 {
        model_connection_connect();
 }
index a8f066d..79e33bd 100644 (file)
@@ -42,12 +42,12 @@ void controller_network_failure_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_network_failure_back_btn(void)
+void controller_network_failure_back(void)
 {
        controller_network_failure_destroy();
 }
 
-void controller_network_failure_next_page()
+void controller_network_failure_next()
 {
        model_connection_connect();
 }
index ed18ad4..70d5ce4 100644 (file)
@@ -56,12 +56,12 @@ void controller_racing_init(t_view_update_cb view_update_cb)
        model_sensors_subscribe_event(_sensors_cb);
 }
 
-void controller_racing_back_btn(void)
+void controller_racing_back(void)
 {
        controller_racing_destroy();
 }
 
-void controller_racing_next_page()
+void controller_racing_next()
 {
        model_connection_connect();
 }
index a3b0329..835182d 100644 (file)
@@ -42,12 +42,12 @@ void controller_reset_init(t_view_update_cb view_update_cb)
        model_connection_subscribe_event(_connected_cb);
 }
 
-void controller_reset_back_btn(void)
+void controller_reset_back(void)
 {
        controller_reset_destroy();
 }
 
-void controller_reset_next_page()
+void controller_reset_next()
 {
        model_connection_connect();
 }
index fdc7ef6..4240536 100644 (file)
@@ -42,7 +42,7 @@ Evas_Object *view_base_create_layout(Evas_Object *parent, char *edj_file, char *
        }
 
        evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_object_content_set(parent, layout);
+//     elm_object_content_set(parent, layout);
 
        return layout;
 }
@@ -127,3 +127,24 @@ void view_base_set_angle(Evas_Object *image, float angle, float rotation_center_
        evas_map_free(map);
 }
 
+void view_base_show(s_view_base *view)
+{
+       if (view && view->show_cb) {
+               view->show_cb();
+       }
+}
+
+void view_base_hide(s_view_base *view)
+{
+       if (view && view->hide_cb) {
+               view->hide_cb();
+       }
+}
+
+void view_base_update(s_view_base *view)
+{
+       if (view && view->update_cb) {
+               view->update_cb();
+       }
+}
+
index 7403b2f..a721755 100644 (file)
 * limitations under the License.
 */
 
-#include "gear-racing-controller.h"
-#include "view/view_car_selection.h"
 #include "view/view_base.h"
 #include "view/view_car_selection.h"
 #include "controller/controller_car_selection.h"
-#include "controller/controller_connect_to_car.h"
-#include "controller/controller_car_selection.h"
 #include "view_manager/view_manager.h"
 
 typedef struct _s_connect_to_car {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_connect_to_car;
 
-static s_connect_to_car s_info = { 0,};
+static s_connect_to_car s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_car_selection_back_btn();
+       controller_car_selection_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_car_selection_next_page();
+       controller_car_selection_next();
 }
 
 static void _car_selection_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Car selection");
+       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", "Car selection");
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
-void view_car_selection_init(Evas_Object *parent)
+s_view_base *view_car_selection_init(Evas_Object *parent)
 {
        controller_car_selection_init(NULL);
        _car_selection_create_gui(parent);
+
+       return &s_info.view_base;
 }
index e173e16..ab97b10 100644 (file)
 * limitations under the License.
 */
 
-#include <controller/controller_connect_to_car.h>
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
-#include "view_manager/view_manager.h"
 #include "view/view_connect_to_car.h"
+#include "view_manager/view_manager.h"
+#include "controller/controller_connect_to_car.h"
 
 typedef struct _s_connect_to_car {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_connect_to_car;
 
-static s_connect_to_car s_info = { 0,};
+static s_connect_to_car s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_connect_to_car_back_btn();
+       controller_connect_to_car_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_connect_to_car_next_page();
+       controller_connect_to_car_next();
 }
 
 static void connect_to_car_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Connect to a car?");
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
 
-void view_connect_to_car_init(Evas_Object *parent)
+s_view_base *view_connect_to_car_init(Evas_Object *parent)
 {
        connect_to_car_create_gui(parent);
        controller_connect_to_car_init(NULL);
+
+       return &s_info.view_base;
 }
 
index a5a4897..ece5a97 100644 (file)
 * limitations under the License.
 */
 
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_connection_successed.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_connection_successed.h"
 
 typedef struct s_view_connection_successed {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_view_connection_successed;
 
-static s_view_connection_successed s_info = { 0,};
+static s_view_connection_successed s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_connection_successed_back_btn();
+       controller_connection_successed_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_connection_successed_next_page();
+       controller_connection_successed_next();
 }
 
 static void _view_connection_successed_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Connection successed");
+       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", "Connection successed");
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
-void view_connection_successed_init(Evas_Object *parent)
+s_view_base *view_connection_successed_init(Evas_Object *parent)
 {
        controller_connection_successed_init(NULL);
        _view_connection_successed_create_gui(parent);
+
+       return &s_info.view_base;
 }
index 6731b17..f42a0e3 100644 (file)
 * limitations under the License.
 */
 
-
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_emergency_stop.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_emergency_stop.h"
 
 typedef struct _s_view_emergency_stop {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_view_emergency_stop;
 
-static s_view_emergency_stop s_info = { 0,};
+static s_view_emergency_stop s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_emergency_stop_back_btn();
+       controller_emergency_stop_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_emergency_stop_next_page();
+       controller_emergency_stop_next();
 }
 
 static void _view_emergency_stop_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Emergency Stop");
+       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", "Emergency Stop");
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
-void view_emergency_stop_init(Evas_Object *parent)
+s_view_base *view_emergency_stop_init(Evas_Object *parent)
 {
        controller_emergency_stop_init(NULL);
        _view_emergency_stop_create_gui(parent);
+
+       return &s_info.view_base;
 }
index d04965f..088afd9 100644 (file)
 * limitations under the License.
 */
 
-
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_help.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_help.h"
 
 typedef struct _s_view_help {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_view_help;
 
-static s_view_help s_info = { 0,};
+static s_view_help s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_help_back_btn();
+       controller_help_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_help_next_page();
+       controller_help_next();
 }
 
 static void _view_help_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Help");
+       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", "Help");
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
-void view_help_init(Evas_Object *parent)
+s_view_base *view_help_init(Evas_Object *parent)
 {
        controller_help_init(NULL);
        _view_help_create_gui(parent);
+
+       return &s_info.view_base;
 }
index b60f034..5bfc6e0 100644 (file)
 * limitations under the License.
 */
 
-
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_name_input.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_name_input.h"
 
 typedef struct _ss_view_name_input {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_view_name_input;
 
-static s_view_name_input s_info = { 0,};
+static s_view_name_input s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_name_input_back_btn();
+       controller_name_input_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_name_input_next_page();
+       controller_name_input_next();
 }
 
 static void _view_name_input_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Name input");
+       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", "Name input");
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
-void view_name_input_init(Evas_Object *parent)
+s_view_base *view_name_input_init(Evas_Object *parent)
 {
        controller_name_input_init(NULL);
        _view_name_input_create_gui(parent);
+
+       return &s_info.view_base;
 }
index d4a4cf4..207c60f 100644 (file)
 * limitations under the License.
 */
 
-
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_network_failure.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_network_failure.h"
 
 typedef struct _s_view_network_failure {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_view_network_failure;
 
-static s_view_network_failure s_info = { 0,};
+static s_view_network_failure s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_network_failure_back_btn();
+       controller_network_failure_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_network_failure_next_page();
+       controller_network_failure_next();
 }
 
 static void _view_network_failure_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Network failure");
+       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", "Network failure");
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, NULL);
+       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);
 }
 
-void view_network_failure_init(Evas_Object *parent)
+s_view_base *view_network_failure_init(Evas_Object *parent)
 {
        controller_network_failure_init(NULL);
        _view_network_failure_create_gui(parent);
+
+       return &s_info.view_base;
 }
index 5b67bad..495b012 100644 (file)
 * limitations under the License.
 */
 
-
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_racing.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_racing.h"
 
 typedef struct _s_view_racing {
-       Evas_Object *layout;
+       s_view_base view_base;
        Evas_Object *velocity;
        Evas_Object *direction;
        float velocity_angle;
@@ -35,7 +33,7 @@ typedef struct _s_view_racing {
 } s_view_racing;
 
 static s_view_racing s_info = {
-               0,
+               {0,},
                .dir_min_angle = -90,
                .dir_max_angle = 90,
                .vel_min_angle = -38,
@@ -76,8 +74,6 @@ static Evas_Object *_create_image(Evas_Object* parent,
        view_base_set_position(image, pos_X, pos_Y, horizontal_align, vertical_align);
        view_base_set_angle(image, angle, 180, 180);
 
-       evas_object_show(image);
-
        return image;
 }
 
@@ -91,7 +87,7 @@ void _view_destroyed_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_racing_back_btn();
+       controller_racing_back();
 }
 
 static void _controller_cb(void *data)
@@ -107,13 +103,13 @@ static void _controller_cb(void *data)
 
 void _racing_screen_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
-       controller_racing_next_page();
+       controller_racing_next();
 }
 
 static void _view_racing_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, "edje/racing.edj", GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
+       s_info.view_base.layout = view_base_create_layout(parent, "edje/racing.edj", GRP_MAIN);
+       eext_object_event_callback_add(s_info.view_base.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
 
        s_info.velocity_angle = 45;
        s_info.velocity = _create_image(parent, 44, 180, 160, 50,
@@ -125,12 +121,29 @@ static void _view_racing_create_gui(Evas_Object *parent)
                        s_info.direction_angle,
                        "images/circle.png", HORIZONTAL_ALIGN_CENTER, VERTICAL_ALIGN_TOP);
 
-       evas_object_event_callback_add(s_info.layout, EVAS_CALLBACK_DEL, _view_destroyed_cb, NULL);
-       elm_layout_signal_callback_add(s_info.layout, "clicked", "", _racing_screen_clicked_cb, NULL);
+       evas_object_event_callback_add(s_info.view_base.layout, EVAS_CALLBACK_DEL, _view_destroyed_cb, NULL);
+       elm_layout_signal_callback_add(s_info.view_base.layout, "clicked", "", _racing_screen_clicked_cb, NULL);
+}
+
+static void _show_cb(void)
+{
+       evas_object_show(s_info.velocity);
+       evas_object_show(s_info.direction);
+}
+
+static void _hide_cb(void)
+{
+       evas_object_hide(s_info.velocity);
+       evas_object_hide(s_info.direction);
 }
 
-void view_racing_init(Evas_Object *parent)
+s_view_base *view_racing_init(Evas_Object *parent)
 {
+       s_info.view_base.show_cb = _show_cb;
+       s_info.view_base.hide_cb = _hide_cb;
+
        controller_racing_init(_controller_cb);
        _view_racing_create_gui(parent);
+
+       return &s_info.view_base;
 }
index dd2660e..7e2f342 100644 (file)
 * limitations under the License.
 */
 
-#include "gear-racing-controller.h"
 #include "view/view_base.h"
 #include "view/view_reset.h"
 #include "view_manager/view_manager.h"
 #include "controller/controller_reset.h"
 
 typedef struct _s_view_reset {
-       Evas_Object *layout;
+       s_view_base view_base;
 } s_view_reset;
 
-static s_view_reset s_info = { 0,};
+static s_view_reset s_info = { {0,}, };
 
 static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_win_lower(view_manager_get_win());
-       controller_reset_back_btn();
+       controller_reset_back();
 }
 
 static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       controller_reset_next_page();
+       controller_reset_next();
 }
 
 static void _view_reset_create_gui(Evas_Object *parent)
 {
-       s_info.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
-       eext_object_event_callback_add(s_info.layout, EEXT_CALLBACK_BACK, _layout_back_cb, NULL);
-       elm_layout_text_set(s_info.layout, "txt_title", "Reset");
+       s_info.view_base.layout = view_base_create_layout(parent, EDJ_FILE, GRP_MAIN);
 
-       view_base_create_button(s_info.layout, "Button_Ok", "Ok", _ok_button_clicked_cb, NULL);
-       view_base_create_button(s_info.layout, "Button_Cancel", "Cancel", NULL, 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", "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);
 }
 
-void view_reset_init(Evas_Object *parent)
+s_view_base *view_reset_init(Evas_Object *parent)
 {
        controller_reset_init(NULL);
        _view_reset_create_gui(parent);
+
+       return &s_info.view_base;
 }
similarity index 68%
rename from src/viewmanager/view_manager.c
rename to src/view_manager/view_manager.c
index d91fc6c..8eff2cf 100644 (file)
 
 #include <assert.h>
 #include <view_manager/view_manager.h>
-#include <view/view_connect_to_car.h>
-#include <view/view_car_selection.h>
+#include <view_manager/view_manager.h>
+#include "view/view_base.h"
+#include "view/view_connect_to_car.h"
+#include "view/view_car_selection.h"
 #include "view/view_connection_successed.h"
 #include "view/view_emergency_stop.h"
 #include "view/view_help.h"
@@ -29,6 +31,8 @@
 typedef struct _s_ui {
        Evas_Object *win;
        Evas_Object *conform;
+       Evas_Object *naviframe;
+       s_view_base *current_view;
 } s_ui;
 
 static s_ui s_info = { 0,};
@@ -61,47 +65,65 @@ static void _create_conformant(void)
        evas_object_show(s_info.conform);
 }
 
+static void _create_naviframe(void)
+{
+       s_info.naviframe = elm_naviframe_add(s_info.win);
+       evas_object_size_hint_weight_set(s_info.naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_content_set(s_info.conform, s_info.naviframe);
+       evas_object_show(s_info.conform);
+}
 
 void view_manager_set_view(view_id id)
 {
+       view_base_hide(s_info.current_view);
+
+       s_view_base *view;
+
        switch (id) {
                case VIEW_CONNECT_TO_CAR:
-                       view_connect_to_car_init(s_info.conform);
+                       view = view_connect_to_car_init(s_info.naviframe);
                        break;
                case VIEW_CAR_SELECTION:
-                       view_car_selection_init(s_info.conform);
+                       view = view_car_selection_init(s_info.naviframe);
                        break;
                case VIEW_CONNECTION_SUCCESSED:
-                       view_connection_successed_init(s_info.conform);
+                       view = view_connection_successed_init(s_info.naviframe);
                        break;
                case VIEW_NAME_INPUT:
-                       view_name_input_init(s_info.conform);
+                       view = view_name_input_init(s_info.naviframe);
                        break;
                case VIEW_HELP:
-                       view_help_init(s_info.conform);
+                       view = view_help_init(s_info.naviframe);
                        break;
                case VIEW_RACING:
-                       view_racing_init(s_info.conform);
+                       view = view_racing_init(s_info.naviframe);
                        break;
                case VIEW_EMERGENCY_STOP:
-                       view_emergency_stop_init(s_info.conform);
+                       view = view_emergency_stop_init(s_info.naviframe);
                        break;
                case VIEW_RESET:
-                       view_reset_init(s_info.conform);
+                       view = view_reset_init(s_info.naviframe);
                        break;
                case VIEW_NETWORK_FAILURE:
-                       view_network_failure_init(s_info.conform);
+                       view = view_network_failure_init(s_info.naviframe);
                        break;
                        break;
                default:
                        break;
        }
+
+       s_info.current_view = view;
+
+       elm_naviframe_item_simple_push(s_info.naviframe, s_info.current_view->layout);
+
+       view_base_show(s_info.current_view);
 }
 
 void view_manager_initialize_ui(void)
 {
        _create_window();
        _create_conformant();
+       _create_naviframe();
 
        view_manager_set_view(VIEW_CONNECT_TO_CAR);
        evas_object_show(s_info.win);