clouseau/src/bin/gui.c

207 lines
7.3 KiB
C

#ifndef EFL_BETA_API_SUPPORT
#define EFL_BETA_API_SUPPORT
#endif
#ifndef EFL_EO_API_SUPPORT
#define EFL_EO_API_SUPPORT
#endif
#ifndef ELM_INTERNAL_API_ARGESFSDFEFC
#define ELM_INTERNAL_API_ARGESFSDFEFC
#endif
#include <Elementary.h>
#include <elm_fileselector_button.eo.h>
#include "elm_widget_container.h"
#include "elm_interface_scrollable.h"
#include "elm_interface_fileselector.h"
#include "gui.h"
extern void gui_new_profile_win_create_done(Gui_New_Profile_Win_Widgets *wdgs);
extern void
conn_menu_show(void *data, Evas_Object *obj, void *event_info);
extern void
save_load_perform(void *data, Evas_Object *obj, void *event_info);
static void
_pubs_free_cb(void *data, const Efl_Event *event EINA_UNUSED)
{
free(data);
}
Gui_Main_Win_Widgets *
gui_main_win_create(Eo *__main_parent)
{
Gui_Main_Win_Widgets *pub_widgets = calloc(1, sizeof(*pub_widgets));
Eo *main_win;
Eo *bg;
Eo *main_box, *ext_box;
Eo *tb;
Eo *ext_selector;
Eo *freeze_pulse;
Eo *freeze_inwin;
main_win = elm_win_add(__main_parent, "Window", ELM_WIN_BASIC);
pub_widgets->main_win = main_win;
elm_win_autodel_set(main_win, EINA_TRUE);
efl_gfx_size_set(main_win, 478, 484);
bg = efl_add(ELM_BG_CLASS, main_win);
evas_object_size_hint_weight_set(bg, 1.000000, 1.000000);
efl_gfx_visible_set(bg, EINA_TRUE);
efl_gfx_position_set(bg, 0, 0);
elm_win_resize_object_add(main_win, bg);
main_box = elm_box_add(main_win);
evas_object_size_hint_weight_set(main_box, 1.000000, 1.000000);
efl_gfx_visible_set(main_box, EINA_TRUE);
elm_win_resize_object_add(main_win, main_box);
tb = elm_toolbar_add(main_win);
elm_toolbar_shrink_mode_set(tb, ELM_TOOLBAR_SHRINK_MENU);
evas_object_size_hint_weight_set(tb, 0, 0);
evas_object_size_hint_align_set(tb, -1, 0);
elm_toolbar_menu_parent_set(tb, main_win);
pub_widgets->conn_selector = elm_toolbar_item_append(tb, "call-start", "Connection", conn_menu_show, NULL);
elm_toolbar_item_menu_set(pub_widgets->conn_selector, EINA_TRUE);
pub_widgets->conn_selector_menu = elm_toolbar_item_menu_get(pub_widgets->conn_selector);
pub_widgets->apps_selector = elm_toolbar_item_append(tb, "view-list-details", "Select App", NULL, NULL);
elm_toolbar_item_menu_set(pub_widgets->apps_selector, EINA_TRUE);
pub_widgets->apps_selector_menu = elm_toolbar_item_menu_get(pub_widgets->apps_selector);
pub_widgets->save_load_bt = elm_toolbar_item_append(tb, "document-export", "Save", save_load_perform, NULL);
ext_selector = elm_toolbar_item_append(tb, "system-reboot", "Extensions", NULL, NULL);
elm_toolbar_item_menu_set(ext_selector, EINA_TRUE);
pub_widgets->ext_selector_menu = elm_toolbar_item_menu_get(ext_selector);
Eo *settings_it = elm_toolbar_item_append(tb, "system-run", "Settings", NULL, NULL);
elm_toolbar_item_menu_set(settings_it, EINA_TRUE);
elm_box_pack_end(main_box, tb);
efl_gfx_visible_set(tb, EINA_TRUE);
freeze_pulse = elm_progressbar_add(main_win);
pub_widgets->freeze_pulse = freeze_pulse;
elm_object_style_set(freeze_pulse, "wheel");
elm_object_text_set(freeze_pulse, "Style: wheel");
elm_progressbar_pulse_set(freeze_pulse, EINA_TRUE);
elm_progressbar_pulse(freeze_pulse, EINA_FALSE);
evas_object_size_hint_align_set(freeze_pulse, 0.5, 0.0);
evas_object_size_hint_weight_set(freeze_pulse, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(main_win, freeze_pulse);
ext_box = elm_box_add(main_box);
pub_widgets->ext_box = ext_box;
evas_object_size_hint_weight_set(ext_box, 1.000000, 1.000000);
evas_object_size_hint_align_set(ext_box, -1.000000, -1.000000);
efl_gfx_visible_set(ext_box, EINA_TRUE);
elm_box_pack_end(main_box, ext_box);
freeze_inwin = elm_win_inwin_add(main_win);
pub_widgets->freeze_inwin = freeze_inwin;
elm_object_style_set(freeze_inwin, "minimal");
efl_gfx_visible_set(main_win, EINA_TRUE);
efl_event_callback_add(main_win, EFL_EVENT_DEL, _pubs_free_cb, pub_widgets);
return pub_widgets;
}
static void
_profile_cancel_cb(void *data, const Efl_Event *event EINA_UNUSED)
{
Eo *inwin = data;
efl_del(inwin);
}
Gui_New_Profile_Win_Widgets *
gui_new_profile_win_create(Eo *__main_parent)
{
Gui_New_Profile_Win_Widgets *pub_widgets = calloc(1, sizeof(*pub_widgets));
Eo *inwin;
Eo *box;
Eo *cancel_button;
Eo *save_button;
Eo *bts_box;
Eo *name_entry;
Eo *command_entry;
Eo *name_label;
Eo *command_label;
inwin = elm_win_inwin_add(__main_parent);
pub_widgets->inwin = inwin;
box = elm_box_add(inwin);
evas_object_size_hint_align_set(box, -1.000000, -1.000000);
evas_object_size_hint_weight_set(box, 1.000000, 1.000000);
efl_gfx_visible_set(box, EINA_TRUE);
elm_win_inwin_activate(inwin);
elm_win_inwin_content_set(inwin, box);
name_label = efl_add(ELM_LABEL_CLASS, box);
elm_object_text_set(name_label, "Name:");
evas_object_size_hint_align_set(name_label, 0, -1);
evas_object_size_hint_weight_set(name_label, 1, 1);
efl_gfx_visible_set(name_label, EINA_TRUE);
name_entry = efl_add(ELM_ENTRY_CLASS, box);
pub_widgets->name_entry = name_entry;
evas_object_size_hint_align_set(name_entry, -1, -1);
evas_object_size_hint_weight_set(name_entry, 1, 1);
elm_entry_scrollable_set(name_entry, EINA_TRUE);
elm_entry_single_line_set(name_entry, EINA_TRUE);
elm_entry_editable_set(name_entry, EINA_TRUE);
elm_object_text_set(name_entry, "");
efl_gfx_visible_set(name_entry, EINA_TRUE);
elm_box_pack_end(box, name_label);
elm_box_pack_end(box, name_entry);
command_label = efl_add(ELM_LABEL_CLASS, box);
evas_object_size_hint_align_set(command_label, 0, -1);
evas_object_size_hint_weight_set(command_label, 1, 1);
efl_gfx_visible_set(command_label, EINA_TRUE);
elm_object_text_set(command_label, "Command:");
command_entry = efl_add(ELM_ENTRY_CLASS, box);
pub_widgets->command_entry = command_entry;
elm_obj_entry_scrollable_set(command_entry, EINA_TRUE);
elm_obj_entry_single_line_set(command_entry, EINA_FALSE);
evas_object_size_hint_align_set(command_entry, -1, -1);
evas_object_size_hint_weight_set(command_entry, 1, 2);
efl_gfx_visible_set(command_entry, EINA_TRUE);
elm_box_pack_end(box, command_label);
elm_box_pack_end(box, command_entry);
bts_box = elm_box_add(box);
elm_box_padding_set(bts_box, 7, 0);
evas_object_size_hint_align_set(bts_box, -1, -1);
evas_object_size_hint_weight_set(bts_box, 1, 1);
efl_gfx_visible_set(bts_box, EINA_TRUE);
elm_box_horizontal_set(bts_box, EINA_TRUE);
elm_box_pack_end(box, bts_box);
save_button = efl_add(ELM_BUTTON_CLASS, bts_box);
pub_widgets->save_button = save_button;
evas_object_size_hint_weight_set(save_button, 1.000000, 1.000000);
elm_object_text_set(save_button, "Save");
efl_gfx_visible_set(save_button, EINA_TRUE);
elm_box_pack_end(bts_box, save_button);
cancel_button = efl_add(ELM_BUTTON_CLASS, bts_box);
pub_widgets->cancel_button = cancel_button;
evas_object_size_hint_weight_set(cancel_button, 1.000000, 1.000000);
efl_gfx_visible_set(cancel_button, EINA_TRUE);
elm_object_text_set(cancel_button, "Cancel");
efl_event_callback_add(cancel_button, EFL_UI_EVENT_CLICKED, _profile_cancel_cb, inwin);
elm_box_pack_end(bts_box, cancel_button);
efl_event_callback_add(inwin, EFL_EVENT_DEL, _pubs_free_cb, pub_widgets);
return pub_widgets;
}