summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-04-02 20:37:09 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-04-28 05:07:13 (GMT)
commit6d07f4aba906c57076189a19600ddf131d19dfb4 (patch)
treef2139c3e6284f62f9732d10ee87359ab51d8cd8e /src
parentffeac9fdbb1f883f78e304b773d8ac0828dc996b (diff)
downloadeulogium-6d07f4aba906c57076189a19600ddf131d19dfb4.zip
eulogium-6d07f4aba906c57076189a19600ddf131d19dfb4.tar.gz
eulogium-6d07f4aba906c57076189a19600ddf131d19dfb4.tar.bz2
rework screens so they are fixed split
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src')
-rw-r--r--src/eulogium.c164
-rw-r--r--src/eulogium.h5
2 files changed, 156 insertions, 13 deletions
diff --git a/src/eulogium.c b/src/eulogium.c
index 29bf86f..dd7e3ae 100644
--- a/src/eulogium.c
+++ b/src/eulogium.c
@@ -87,6 +87,45 @@ static void _cb_eulogium_exit(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUS
elm_exit();
}
+Evas_Object *eulogium_split_screen(Evas_Object *parent, Evas_Object *top, Evas_Object *bottom)
+{
+ Evas_Object *box;
+ Evas_Object *object;
+
+ box = elm_box_add(parent);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+
+ evas_object_size_hint_align_set(top, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(top, 0, 48);
+ evas_object_show(top);
+ elm_box_pack_end(box, top);
+
+#if 0 /* FIXME use themed seperator */
+ object = elm_separator_add(eulogium->layout);
+ elm_separator_horizontal_set(object, EINA_TRUE);
+ evas_object_show(object);
+ elm_table_pack(table, object, 1, 5, 1, 1);
+#else
+ object = evas_object_rectangle_add(evas_object_evas_get(parent));
+ evas_object_color_set(object, 0x33, 0x99, 0xff, 0xff);
+ evas_object_size_hint_min_set(object, 1, 0);
+ evas_object_size_hint_padding_set(object, 3, 6, 1, 1);
+ evas_object_size_hint_align_set(object, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(object, 0, 2);
+ evas_object_show(object);
+ elm_box_pack_end(box, object);
+#endif
+
+ evas_object_size_hint_align_set(bottom, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(bottom, 0, 14);
+ evas_object_show(bottom);
+ elm_box_pack_end(box, bottom);
+
+ return box;
+}
+
Evas_Object *eulogium_print_progress(struct eulogium_data *eulogium)
{
Evas_Object *table;
@@ -98,14 +137,13 @@ Evas_Object *eulogium_print_progress(struct eulogium_data *eulogium)
evas_object_size_hint_align_set(table, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_table_homogeneous_set(table, EINA_FALSE);
- eulogium->print.time = elm_label_add(table);
- elm_object_text_set(eulogium->print.time, "Calculating remaining print time ...");
- elm_label_slide_mode_set(eulogium->print.time, ELM_LABEL_SLIDE_MODE_AUTO);
- elm_label_slide_duration_set(eulogium->print.time, 8);
- elm_object_style_set(eulogium->print.time, "slide_bounce");
- evas_object_size_hint_align_set(eulogium->print.time, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(eulogium->print.time);
- elm_table_pack(table, eulogium->print.time, 0, 0, 3, 1);
+ eulogium->print.status = elm_label_add(table);
+ elm_object_text_set(eulogium->print.status, "Print time: ...\nPrint status unknown.");
+ elm_label_slide_mode_set(eulogium->print.status, ELM_LABEL_SLIDE_MODE_NONE);
+ evas_object_size_hint_align_set(eulogium->print.status, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(eulogium->print.status);
+ elm_table_pack(table, eulogium->print.status, 0, 0, 3, 1);
+#if 0
eulogium->print.status = elm_label_add(table);
elm_object_text_set(eulogium->print.status, "Print status unknown.");
@@ -115,7 +153,7 @@ Evas_Object *eulogium_print_progress(struct eulogium_data *eulogium)
evas_object_size_hint_align_set(eulogium->print.status, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(eulogium->print.status);
elm_table_pack(table, eulogium->print.status, 0, 1, 3, 1);
-
+#endif
object = elm_label_add(table);
elm_object_text_set(object, eulogium->print.name);
elm_label_slide_mode_set(object, ELM_LABEL_SLIDE_MODE_AUTO);
@@ -125,7 +163,8 @@ Evas_Object *eulogium_print_progress(struct eulogium_data *eulogium)
evas_object_show(object);
elm_table_pack(table, object, 0, 2, 3, 1);
- eulogium->print.progress = elm_progressbar_add(table); /* TODO: depending on i18n sig, change inverted */
+ if (!eulogium->print.progress)
+ eulogium->print.progress = elm_progressbar_add(table); /* TODO: depending on i18n sig, change inverted */
elm_progressbar_horizontal_set(eulogium->print.progress, EINA_TRUE);
elm_progressbar_pulse_set(eulogium->print.progress, EINA_FALSE); /* TODO: pulse = time-unknown/pause */
elm_progressbar_pulse(eulogium->print.progress, EINA_FALSE);
@@ -361,8 +400,89 @@ Evas_Object *eulogium_print_menu(struct eulogium_data *eulogium, char *filepath)
evas_object_show(box);
return box;
+}
+
+struct multi_text {
+ uint_fast8_t count;
+ const char *text[];
};
+Evas_Object *eulogium_multi_text_menu(Evas_Object *parent, struct multi_text *data, const uint_fast8_t i)
+{
+ Evas_Object *object;
+ Evas_Object *_top, *_bottom;
+ char buf[6];
+
+ _top = elm_box_add(parent);
+ evas_object_show(_top);
+
+ object = elm_label_add(_top);
+ snprintf(buf, sizeof(buf), "%d/%d", i, data->count);
+ elm_object_text_set(object, buf);
+ evas_object_show(object);
+ evas_object_size_hint_align_set(object, 1.0, 0);
+
+ elm_box_pack_end(_top, object);
+
+ object = elm_label_add(_top);
+ elm_object_text_set(object, data->text[i]);
+ evas_object_show(object);
+ elm_box_pack_end(_top, object);
+
+ _bottom = elm_button_add(parent);
+ elm_object_text_set(_bottom, "BUTTON");
+ evas_object_smart_callback_add(_bottom, "clicked", NULL, NULL);
+ evas_object_show(_bottom);
+
+ return eulogium_split_screen(parent, _top, _bottom);
+}
+
+Evas_Object *eulogium_tripple_button_menu(Evas_Object *parent, const struct button_def *left, const struct button_def *right, const struct button_def *bottom)
+{
+ Evas_Object *object;
+ Evas_Object *_top, *_bottom;
+
+ _top = elm_box_add(parent);
+ elm_box_horizontal_set(_top, EINA_TRUE);
+ evas_object_size_hint_weight_set(_top, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(_top);
+
+ object = elm_button_add(_top);
+ elm_object_text_set(object, left->text);
+ evas_object_smart_callback_add(object, "clicked", left->cb.func, left->cb.data);
+ evas_object_show(object);
+ elm_box_pack_end(_top, object);
+
+#if 0 /* FIXME use themed seperator */
+ object = elm_separator_add(table);
+ elm_separator_horizontal_set(object, EINA_TRUE);
+ evas_object_show(object);
+ elm_table_pack(table, object, 1, 0, 1, 1);
+#else
+ object = evas_object_rectangle_add(_top);
+ evas_object_color_set(object, 0x33, 0x99, 0xff, 0xff);
+ evas_object_size_hint_min_set(object, 1, 0);
+ evas_object_size_hint_padding_set(object, 1, 1, 1, 1);
+ evas_object_size_hint_align_set(object, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(object);
+ elm_box_pack_end(_top, object);
+#endif
+
+ object = elm_button_add(_top);
+ elm_object_text_set(object, right->text);
+ evas_object_smart_callback_add(object, "clicked", right->cb.func, right->cb.data);
+ evas_object_show(object);
+ elm_box_pack_end(_top, object);
+
+ _bottom = elm_button_add(parent);
+ elm_object_text_set(_bottom, bottom->text);
+ evas_object_smart_callback_add(_bottom, "clicked", bottom->cb.func, bottom->cb.data);
+ evas_object_show(_bottom);
+
+ return eulogium_split_screen(parent, _top, _bottom);
+}
+
+#if 0
Evas_Object *eulogium_tripple_button_menu(struct eulogium_data *eulogium,
const struct button_def *left, const struct button_def *right, const struct button_def *bottom)
{
@@ -423,6 +543,7 @@ Evas_Object *eulogium_tripple_button_menu(struct eulogium_data *eulogium,
evas_object_show(table);
return table;
}
+#endif
static void _cb_button_main_print(void *data, Evas_Object *object EINA_UNUSED, void *event_info EINA_UNUSED)
{
@@ -465,6 +586,21 @@ static struct button_def but_main_maintanance = {
.data = NULL,
};
+static struct multi_text data = {
+ .text = {
+ "line1<br>"
+ "line2<br>"
+ "line3<br>",
+ "test<br>test<br>test<br>test<br>test",
+ "line2",
+ "line3",
+ "line4",
+ NULL,
+ },
+ .count = 5,
+
+};
+
Evas_Object *eulogium_main_menu(Evas_Object *window, struct eulogium_data *eulogium)
{
Evas_Object *content;
@@ -475,7 +611,8 @@ Evas_Object *eulogium_main_menu(Evas_Object *window, struct eulogium_data *eulog
//elm_naviframe_item_title_enabled_set(eulogium->layout, EINA_FALSE, EINA_TRUE);
// elm_naviframe_item_title_visible_set(eulogium->layout, EINA_FALSE);
- content = eulogium_tripple_button_menu(eulogium, &but_main_print, &but_main_material, &but_main_maintanance);
+// content = eulogium_tripple_button_menu(eulogium->layout, &but_main_print, &but_main_material, &but_main_maintanance);
+ content = eulogium_multi_text_menu(eulogium->layout, &data, 0);
if (!content)
return NULL;
elm_naviframe_item_simple_push(eulogium->layout, content);
@@ -486,6 +623,11 @@ Evas_Object *eulogium_main_menu(Evas_Object *window, struct eulogium_data *eulog
static void eulogium_setup(struct eulogium_data *eulogium)
{
eulogium->print.name = NULL;
+ eulogium->print.file = NULL;
+ eulogium->print.progress = NULL;
+ eulogium->print.time = NULL;
+ eulogium->print.status = NULL;
+ eulogium->print.material = 0.0;
eulogium_button_cb_data_set(&but_main_print, eulogium);
eulogium_button_cb_data_set(&but_main_material, eulogium);
eulogium_button_cb_data_set(&but_main_maintanance, eulogium);
diff --git a/src/eulogium.h b/src/eulogium.h
index f9c9282..038090f 100644
--- a/src/eulogium.h
+++ b/src/eulogium.h
@@ -6,7 +6,7 @@
struct print_data {
Evas_Object *progress;
Evas_Object *status;
- Evas_Object *time;
+ unsigned int *time;
const char *file;
const char *name;
float material;
@@ -38,7 +38,8 @@ void eulogium_button_cb_data_set(struct button_def *button, void *data);
void eulogium_button_data_set(struct button_def *button, void *data);
Evas_Object *eulogium_main_menu(Evas_Object *window, struct eulogium_data *eulogium);
-Evas_Object *eulogium_tripple_button_menu(struct eulogium_data *eulogium, const struct button_def *left, const struct button_def *right, const struct button_def *bottom);
+Evas_Object *eulogium_split_screen(Evas_Object *parent, Evas_Object *top, Evas_Object *bottom);
+Evas_Object *eulogium_tripple_button_menu(Evas_Object *parent, const struct button_def *left, const struct button_def *right, const struct button_def *bottom);
Evas_Object *eulogium_print_menu(struct eulogium_data *eulogium, char *filepath);
Evas_Object *eulogium_print_progress(struct eulogium_data *eulogium);