/** * spawn a dialog to alter the settings on a particular file */ static void project_file_settings( char *name ) { Ewl_Widget *hbox, *vbox; Ewl_Widget *label, *entry, *button; if( settings_win ) return; settings_win = ewl_dialog_new(EWL_POSITION_BOTTOM); if( !settings_win ) return; hbox = ewl_hbox_new(); ewl_dialog_widget_add(EWL_DIALOG(settings_win), hbox); vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(hbox), vbox); label = ewl_text_new("Object Name"); ewl_container_child_append(EWL_CONTAINER(vbox), label); ewl_widget_show(label); label = ewl_text_new("File Name"); ewl_container_child_append(EWL_CONTAINER(vbox), label); ewl_widget_show(label); ewl_widget_show(vbox); vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(hbox), vbox); entry = ewl_entry_new(name); ewl_container_child_append(EWL_CONTAINER(vbox), entry); ewl_widget_show(entry); file_settings.name_entry = entry; entry = ewl_entry_new(project_file_get(name)); ewl_container_child_append(EWL_CONTAINER(vbox), entry); ewl_widget_show(entry); file_settings.path_entry = entry; ewl_widget_show(vbox); ewl_widget_show(hbox); button = ewl_dialog_button_add(EWL_DIALOG(settings_win), EWL_STOCK_SAVE, EWL_RESPONSE_SAVE); ewl_callback_append(button, EWL_CALLBACK_VALUE_CHANGED, project_file_settings_cb, name); ewl_widget_show(button); button = ewl_dialog_button_add(EWL_DIALOG(settings_win), EWL_STOCK_CANCEL, EWL_RESPONSE_CANCEL); ewl_callback_append(button, EWL_CALLBACK_VALUE_CHANGED, project_file_settings_cb, name); ewl_widget_show(button); ewl_widget_show(settings_win); }
/** * @return Returns a new password widget on success, NULL on failure. * @brief Allocate and initialize a new password widget * * A password widget is an entry with a set obscure character. The default is a * star (*) */ Ewl_Widget * ewl_password_new(void) { Ewl_Widget *e; DENTER_FUNCTION(DLEVEL_STABLE); e = ewl_entry_new(); ewl_widget_appearance_set(e, "password/"EWL_ENTRY_TYPE); ewl_text_obscure_set(EWL_TEXT(e), "*"); DRETURN_PTR(e, DLEVEL_STABLE); }
static int test_constructor(char *buf, int len) { Ewl_Widget *e; int ret = 0; e = ewl_entry_new(); if (!EWL_ENTRY_IS(e)) { LOG_FAILURE(buf, len, "returned widget is not of the type" " " EWL_ENTRY_TYPE); goto DONE; } if (ewl_object_fill_policy_get(EWL_OBJECT(e)) != (EWL_FLAG_FILL_HSHRINK | EWL_FLAG_FILL_HFILL)) { LOG_FAILURE(buf, len, "default fill policy is wrong"); goto DONE; } if (!!strcmp(ewl_widget_appearance_get(e), EWL_ENTRY_TYPE)) { LOG_FAILURE(buf, len, "appearance is not " EWL_ENTRY_TYPE); goto DONE; } if (!ewl_widget_focusable_get(e)) { LOG_FAILURE(buf, len, "entry is not focusable"); goto DONE; } ret = 1; DONE: ewl_widget_destroy(e); return ret; }
void ecrin_ewl_window_create (void) { Ewl_Widget *window; Ewl_Widget *hbox; Ewl_Widget *notebook; Ewl_Widget *tab; Ewl_Widget *vbox; Ewl_Widget *separator; /* We order the list */ sorted_keys = _list_keys_order (ecrin_hash_keys_get ()); window = ewl_window_new (); ewl_object_size_request (EWL_OBJECT (window), 400, 400); ewl_window_title_set (EWL_WINDOW (window), "Ecrin"); ewl_window_name_set (EWL_WINDOW (window), "Ecrin"); ewl_window_class_set (EWL_WINDOW (window), "Ecrin"); ewl_callback_append (window, EWL_CALLBACK_DELETE_WINDOW, _main_window_close, NULL); hbox = ewl_hbox_new (); ewl_container_child_append (EWL_CONTAINER (window), hbox); ewl_widget_show (hbox); notebook = ewl_notebook_new (); ewl_container_child_append (EWL_CONTAINER (hbox), notebook); ewl_widget_show (notebook); tab = ewl_label_new ("EFL package"); ewl_widget_show (tab); tree = ewl_tree_new (1); ewl_tree_headers_visible_set (EWL_TREE (tree), 0); ewl_notebook_page_append (EWL_NOTEBOOK (notebook), tab, tree); ewl_widget_show (tree); tab = ewl_label_new ("Search"); ewl_widget_show (tab); vbox = ewl_vbox_new (); ewl_box_homogeneous_set (EWL_BOX (vbox), 0); ewl_notebook_page_append (EWL_NOTEBOOK (notebook), tab, vbox); ewl_widget_show (vbox); entry = ewl_entry_new (""); ewl_object_fill_policy_set(EWL_OBJECT(entry), EWL_FLAG_FILL_VSHRINK | EWL_FLAG_FILL_HFILL); ewl_container_child_append (EWL_CONTAINER (vbox), entry); ewl_callback_append (entry, EWL_CALLBACK_VALUE_CHANGED, _list_display_cb, NULL); ewl_widget_show (entry); separator = ewl_hseparator_new (); ewl_container_child_append (EWL_CONTAINER (vbox), separator); ewl_widget_show (separator); list = ewl_tree_new (1); ewl_tree_headers_visible_set (EWL_TREE (list), 0); ewl_container_child_append (EWL_CONTAINER (vbox), list); ewl_widget_show (list); separator = ewl_vseparator_new (); ewl_container_child_append (EWL_CONTAINER (hbox), separator); ewl_widget_show (separator); text = ewl_text_new (""); ewl_container_child_append (EWL_CONTAINER (hbox), text); ewl_widget_show (text); ecrin_ewl_tree_fill_package (); ecrin_ewl_list_fill_package (""); ewl_widget_show (window); }
static void eke_gui_ewl_add_feed_cb(Ewl_Widget *w, void *ev, void *data) { Eke *eke; Ewl_Widget *win, *box, *entry, *o, *name_entry; eke = data; win = ewl_widget_data_get(w, "manage_feed_win"); ewl_widget_destroy(win); win = ewl_dialog_new(EWL_POSITION_BOTTOM); ewl_window_title_set(EWL_WINDOW(win), PACKAGE " -- add feed"); ewl_window_name_set(EWL_WINDOW(win), PACKAGE); ewl_window_class_set(EWL_WINDOW(win), PACKAGE); ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, eke_gui_ewl_manage_feed_exit_cb, win); ewl_widget_show(win); box = ewl_vbox_new(); ewl_dialog_widget_add(EWL_DIALOG(win), box); ewl_widget_show(box); o = ewl_text_new("Add Feed"); ewl_container_child_append(EWL_CONTAINER(box), o); ewl_widget_show(o); o = ewl_text_new(" "); ewl_container_child_append(EWL_CONTAINER(box), o); ewl_widget_show(o); o = ewl_text_new("Feed Name"); ewl_container_child_append(EWL_CONTAINER(box), o); ewl_widget_show(o); name_entry = ewl_entry_new(""); ewl_container_child_append(EWL_CONTAINER(box), name_entry); ewl_widget_show(name_entry); o = ewl_text_new(" "); ewl_container_child_append(EWL_CONTAINER(box), o); ewl_widget_show(o); o = ewl_text_new("URI [http://<server>[:port]/path/to/file.rss"); ewl_container_child_append(EWL_CONTAINER(box), o); ewl_widget_show(o); entry = ewl_entry_new(""); ewl_container_child_append(EWL_CONTAINER(box), entry); ewl_widget_show(entry); o = ewl_button_stock_with_id_new(EWL_STOCK_OK, EWL_RESPONSE_OK); ewl_container_child_append(EWL_CONTAINER(win), o); ewl_widget_data_set(o, "entry", entry); ewl_widget_data_set(o, "name_entry", name_entry); ewl_widget_data_set(o, "win", win); ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, eke_gui_ewl_add_feed_ok_cb, eke); ewl_widget_show(o); o = ewl_button_stock_with_id_new(EWL_STOCK_CANCEL, EWL_RESPONSE_CANCEL); ewl_container_child_append(EWL_CONTAINER(win), o); ewl_widget_data_set(o, "win", win); ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, eke_gui_ewl_manage_feed_exit_cb, win); ewl_widget_show(o); return; ev = NULL; }
eth_panel* ethpanel_create(main_window* win) { Ewl_Widget *hbox,*grid; Ewl_Widget *label; eth_panel* pnl; pnl=(eth_panel*)malloc((unsigned int)sizeof(eth_panel)); pnl->interface = NULL; pnl->win = win; pnl->frame = ewl_border_new(); pnl->apply = 0; ewl_border_label_set(EWL_BORDER(pnl->frame),"hehe"); ewl_widget_show(pnl->frame); pnl->box_configuration = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(pnl->frame), pnl->box_configuration); ewl_widget_show(pnl->box_configuration); ewl_object_fill_policy_set(EWL_OBJECT(pnl->box_configuration), EWL_FLAG_FILL_HFILL); ewl_object_alignment_set(EWL_OBJECT(pnl->box_configuration),EWL_FLAG_ALIGN_LEFT); //######################################### //## box_configuration: box_activate ## //######################################### pnl->box_activate = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(pnl->box_configuration), pnl->box_activate); pnl->btn_activate = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(pnl->btn_activate),_("Activate")); ewl_object_fill_policy_set(EWL_OBJECT(pnl->btn_activate), EWL_FLAG_FILL_SHRINK); pnl->btn_deactivate = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(pnl->btn_deactivate),_("Deactivate")); ewl_object_fill_policy_set(EWL_OBJECT(pnl->btn_deactivate), EWL_FLAG_FILL_SHRINK); ewl_container_child_append(EWL_CONTAINER(pnl->box_activate), pnl->btn_deactivate); ewl_container_child_append(EWL_CONTAINER(pnl->box_activate), pnl->btn_activate); ewl_widget_show(pnl->btn_activate); ewl_widget_show(pnl->btn_deactivate); ewl_widget_show(pnl->box_activate); ewl_callback_append(pnl->btn_activate, EWL_CALLBACK_CLICKED, ethpanel_btn_activate_clicked_cb, pnl); ewl_callback_append(pnl->btn_deactivate, EWL_CALLBACK_CLICKED, ethpanel_btn_deactivate_clicked_cb, pnl); //################################################### //## box_configuration: check list (static / dhcp) ## //################################################### hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(pnl->box_configuration), hbox); pnl->check_static = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(pnl->check_static),_("Static address")); pnl->check_dhcp = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(pnl->check_dhcp),_("DHCP (Automatic configuration)")); ewl_radiobutton_chain_set(EWL_RADIOBUTTON(pnl->check_dhcp), EWL_RADIOBUTTON(pnl->check_static)); ewl_container_child_append(EWL_CONTAINER(hbox), pnl->check_static); ewl_container_child_append(EWL_CONTAINER(hbox), pnl->check_dhcp); ewl_widget_show(hbox); ewl_widget_show(pnl->check_dhcp); ewl_widget_show(pnl->check_static); ewl_callback_append(pnl->check_static, EWL_CALLBACK_CLICKED, ethpanel_set_static_dhcp_clicked_cb, pnl); ewl_callback_append(pnl->check_dhcp, EWL_CALLBACK_CLICKED, ethpanel_set_static_dhcp_clicked_cb, pnl); //################################### //## box_configuration: Entry list ## //################################### pnl->entry_ip = ewl_entry_new(); ewl_object_fill_policy_set(EWL_OBJECT(pnl->entry_ip), EWL_FLAG_FILL_FILL); ewl_object_alignment_set(EWL_OBJECT(pnl->entry_ip),EWL_FLAG_ALIGN_LEFT); pnl->entry_mask = ewl_entry_new(); pnl->entry_gateway = ewl_entry_new(); pnl->entry_cmd = ewl_entry_new(); ewl_callback_append(pnl->entry_ip, EWL_CALLBACK_KEY_UP, ethpanel_textchanged_entry_cb, pnl); ewl_callback_append(pnl->entry_mask, EWL_CALLBACK_KEY_UP, ethpanel_textchanged_entry_cb, pnl); ewl_callback_append(pnl->entry_gateway, EWL_CALLBACK_KEY_UP, ethpanel_textchanged_entry_cb, pnl); grid = ewl_grid_new(); ewl_container_child_append(EWL_CONTAINER(pnl->box_configuration), grid); ewl_object_fill_policy_set(EWL_OBJECT(grid), EWL_FLAG_FILL_HFILL); ewl_grid_dimensions_set(EWL_GRID(grid), 2, 5); ewl_grid_column_relative_w_set(EWL_GRID(grid), 0, 0.20); label = ewl_label_new(); ewl_label_text_set(EWL_LABEL(label),_("Ip address: ")); ewl_container_child_append(EWL_CONTAINER(grid), label); ewl_container_child_append(EWL_CONTAINER(grid), pnl->entry_ip); ewl_widget_show(label); ewl_widget_show(pnl->entry_ip); label = ewl_label_new(); ewl_label_text_set(EWL_LABEL(label),_("Network mask: ")); ewl_container_child_append(EWL_CONTAINER(grid), label); ewl_container_child_append(EWL_CONTAINER(grid), pnl->entry_mask); ewl_widget_show(label); ewl_widget_show(pnl->entry_mask); label = ewl_label_new(); ewl_label_text_set(EWL_LABEL(label),_("Gateway: ")); ewl_container_child_append(EWL_CONTAINER(grid), label); ewl_container_child_append(EWL_CONTAINER(grid), pnl->entry_gateway); ewl_widget_show(label); ewl_widget_show(pnl->entry_gateway); pnl->lbl_cmd = ewl_label_new(); ewl_label_text_set(EWL_LABEL(pnl->lbl_cmd),_("Command: ")); ewl_container_child_append(EWL_CONTAINER(grid), pnl->lbl_cmd); ewl_container_child_append(EWL_CONTAINER(grid), pnl->entry_cmd); ewl_widget_show(pnl->lbl_cmd); ewl_widget_show(pnl->entry_cmd); ewl_widget_show(grid); //##################################### //## box_configuration: Apply button ## //##################################### hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(pnl->box_configuration), hbox); pnl->btn_apply = ewl_button_new(); ewl_stock_type_set(EWL_STOCK(pnl->btn_apply), EWL_STOCK_APPLY); ewl_object_fill_policy_set(EWL_OBJECT(pnl->btn_apply), EWL_FLAG_FILL_SHRINK); ewl_container_child_append(EWL_CONTAINER(hbox), pnl->btn_apply); ewl_widget_show(pnl->btn_apply); ewl_widget_show(hbox); ewl_callback_append(pnl->btn_apply, EWL_CALLBACK_CLICKED, ethpanel_btn_apply_clicked_cb, pnl); //######################################## //## box_configuration: hbox_pbar ## //######################################## pnl->hbox_pbar = ewl_hbox_new(); pnl->pbar = ewl_progressbar_new(); ewl_container_child_append(EWL_CONTAINER(pnl->box_configuration), pnl->hbox_pbar); ewl_container_child_append(EWL_CONTAINER(pnl->hbox_pbar), pnl->pbar); ewl_progressbar_label_set(EWL_PROGRESSBAR(pnl->pbar), APPLY_TEXT); ewl_range_unknown_set(EWL_RANGE(pnl->pbar), TRUE); ewl_widget_show(pnl->pbar); ewl_widget_show(pnl->hbox_pbar); return pnl; }
void _icon_editor_gui_init() { if (!editor) return; editor->win = ewl_window_new(); ewl_window_title_set(EWL_WINDOW(editor->win), "Iconbar Icon Editor"); ewl_window_name_set(EWL_WINDOW(editor->win), "Iconbar Icon Editor"); ewl_callback_append(editor->win, EWL_CALLBACK_DELETE_WINDOW, _editor_close_win, NULL); /* boxes */ editor->main_vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(editor->win), editor->main_vbox); ewl_widget_show(editor->main_vbox); editor->top_hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(editor->main_vbox), editor->top_hbox); ewl_widget_show(editor->top_hbox); editor->bot_hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(editor->main_vbox), editor->bot_hbox); ewl_widget_show(editor->bot_hbox); /* image */ editor->icon_image = ewl_image_new("test.png", NULL); ewl_container_child_append(EWL_CONTAINER(editor->top_hbox), editor->icon_image); ewl_object_padding_set(EWL_OBJECT(editor->icon_image), 5, 5, 5, 5); ewl_widget_show(editor->icon_image); ewl_callback_append(editor->icon_image, EWL_CALLBACK_REALIZE, _editor_realize, NULL); ewl_callback_append(editor->icon_image, EWL_CALLBACK_MOUSE_UP, _editor_icon_image_cb, NULL); /* vbox for entry hboxes */ editor->right_vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(editor->top_hbox), editor->right_vbox); ewl_widget_show(editor->right_vbox); /* name */ editor->name.hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(editor->right_vbox), editor->name.hbox); ewl_widget_show(editor->name.hbox); editor->name.label = ewl_text_new("Name: "); ewl_container_child_append(EWL_CONTAINER(editor->name.hbox), editor->name.label); ewl_widget_show(editor->name.label); editor->name.entry = ewl_entry_new(""); ewl_container_child_append(EWL_CONTAINER(editor->name.hbox), editor->name.entry); ewl_widget_show(editor->name.entry); /* exec */ editor->exec.hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(editor->right_vbox), editor->exec.hbox); ewl_widget_show(editor->exec.hbox); editor->exec.label = ewl_text_new("Exec:"); ewl_container_child_append(EWL_CONTAINER(editor->exec.hbox), editor->exec.label); ewl_widget_show(editor->exec.label); editor->exec.entry = ewl_entry_new(""); ewl_container_child_append(EWL_CONTAINER(editor->exec.hbox), editor->exec.entry); ewl_widget_show(editor->exec.entry); /* cancel and save buttons */ editor->cancel_but = ewl_button_new("Cancel"); ewl_object_fill_policy_set(EWL_OBJECT(editor->cancel_but), EWL_FLAG_FILL_NONE); ewl_object_padding_set(EWL_OBJECT(editor->cancel_but), 5, 5, 5, 5); ewl_object_alignment_set(EWL_OBJECT(editor->cancel_but), EWL_FLAG_ALIGN_RIGHT); ewl_container_child_append(EWL_CONTAINER(editor->bot_hbox), editor->cancel_but); ewl_widget_show(editor->cancel_but); ewl_callback_append(editor->cancel_but, EWL_CALLBACK_CLICKED, _editor_button_cb, NULL); editor->ok_but = ewl_button_new("Save and Close"); ewl_object_fill_policy_set(EWL_OBJECT(editor->ok_but), EWL_FLAG_FILL_NONE); ewl_object_padding_set(EWL_OBJECT(editor->ok_but), 5, 5, 5, 5); ewl_object_alignment_set(EWL_OBJECT(editor->ok_but), EWL_FLAG_ALIGN_RIGHT); ewl_container_child_append(EWL_CONTAINER(editor->bot_hbox), editor->ok_but); ewl_widget_show(editor->ok_but); ewl_callback_append(editor->ok_but, EWL_CALLBACK_CLICKED, _editor_button_cb, NULL); editor->filesel.win = ewl_window_new(); editor->filesel.dialog = ewl_filedialog_new(EWL_FILEDIALOG_TYPE_OPEN); ewl_container_child_append(EWL_CONTAINER(editor->filesel.win), editor->filesel.dialog); ewl_widget_show(editor->filesel.dialog); ewl_callback_append(editor->filesel.dialog, EWL_CALLBACK_VALUE_CHANGED, _editor_filesel_cb, NULL); }
/** * settings->options */ static EWL_CALLBACK_DEFN(options) { Ewl_Widget *save, *cancel; Ewl_Widget *label_vbox, *entry_vbox, *hbox; Ewl_Widget *label, *entry; if( options_win ) return; options_win = ewl_dialog_new(EWL_POSITION_BOTTOM); if( !options_win ) return; hbox = ewl_hbox_new(); ewl_dialog_widget_add(EWL_DIALOG(options_win), hbox); ewl_widget_show(hbox); label_vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(hbox), label_vbox); ewl_widget_show(label_vbox); label = ewl_text_new("Project Path:"); ewl_container_child_append(EWL_CONTAINER(label_vbox), label); ewl_widget_show(label); label = ewl_text_new("Project Name:"); ewl_container_child_append(EWL_CONTAINER(label_vbox), label); ewl_widget_show(label); label = ewl_text_new("Project File:"); ewl_container_child_append(EWL_CONTAINER(label_vbox), label); ewl_widget_show(label); entry_vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(hbox), entry_vbox); ewl_widget_show(entry_vbox); entry = ewl_entry_new(active_project->path); ewl_container_child_append(EWL_CONTAINER(entry_vbox), entry); ewl_widget_show(entry); active_project_options.path_entry = entry; entry = ewl_entry_new(active_project->name); ewl_container_child_append(EWL_CONTAINER(entry_vbox), entry); ewl_widget_show(entry); active_project_options.name_entry = entry; entry = ewl_entry_new(active_project->filename); ewl_container_child_append(EWL_CONTAINER(entry_vbox), entry); ewl_widget_show(entry); active_project_options.filename_entry = entry; save = ewl_dialog_button_add(EWL_DIALOG(options_win), EWL_STOCK_SAVE, EWL_RESPONSE_SAVE); ewl_callback_append(save, EWL_CALLBACK_VALUE_CHANGED, options_cb, NULL); ewl_widget_show(save); cancel = ewl_dialog_button_add(EWL_DIALOG(options_win), EWL_STOCK_CANCEL, EWL_RESPONSE_CANCEL); ewl_callback_append(cancel, EWL_CALLBACK_VALUE_CHANGED, options_cb, NULL); ewl_widget_show(cancel); ewl_widget_show(options_win); }
void mime_add_dialog_show(char* type, char* exe) { Ewl_Widget* layout_box = ewl_vbox_new(); Ewl_Widget* window = ewl_window_new(); Ewl_Widget* hbox; Ewl_Widget* label; Ewl_Widget* button; ewl_widget_show(layout_box); ewl_object_minimum_size_set(EWL_OBJECT(window), 400, 150); ewl_container_child_append(EWL_CONTAINER(window), layout_box); /*---*/ hbox = ewl_hbox_new(); ewl_widget_show(hbox); ewl_container_child_append(EWL_CONTAINER(layout_box), hbox); label = ewl_label_new(); ewl_label_text_set(EWL_LABEL(label), "MIME Type"); ewl_widget_show(label); ewl_container_child_append(EWL_CONTAINER(hbox), label); entry_type = ewl_entry_new(); if (type) ewl_text_text_set(EWL_TEXT(entry_type), type); ewl_container_child_append(EWL_CONTAINER(hbox), entry_type); ewl_widget_show(entry_type); /*---*/ /*---*/ hbox = ewl_hbox_new(); ewl_widget_show(hbox); ewl_container_child_append(EWL_CONTAINER(layout_box), hbox); label = ewl_label_new(); ewl_label_text_set(EWL_LABEL(label), "Action"); ewl_widget_show(label); ewl_container_child_append(EWL_CONTAINER(hbox), label); entry_action = ewl_entry_new(); if (exe) ewl_text_text_set(EWL_TEXT(entry_action), exe); ewl_container_child_append(EWL_CONTAINER(hbox), entry_action); ewl_widget_show(entry_action); /*---*/ hbox = ewl_hbox_new(); ewl_widget_show(hbox); ewl_container_child_append(EWL_CONTAINER(layout_box), hbox); button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Add"); ewl_object_maximum_h_set(EWL_OBJECT(button), 15); ewl_callback_append(button, EWL_CALLBACK_CLICKED, mime_add_cb, window); ewl_container_child_append(EWL_CONTAINER(hbox), button); ewl_widget_show(button); button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Cancel"); ewl_object_maximum_h_set(EWL_OBJECT(button), 15); ewl_callback_append(button, EWL_CALLBACK_CLICKED, window_dismiss_cb, window); ewl_container_child_append(EWL_CONTAINER(hbox), button); ewl_widget_show(button); ewl_widget_show(window); }
void inspector_update( Ecore_List *selected ) { Ewl_Widget *prow; Ecore_Sheap *slist, *sheap; Ecore_Hash *elems; Ecore_List *keys; Ecore_List *prow_stack, *sheap_stack, *elems_stack; Ewler_Widget *w; char *key; ewl_container_reset(EWL_CONTAINER(tree)); if( !selected ) return; /* add support for multiple selections later */ w = ecore_list_first_goto(selected); if( !w ) return; keys = ecore_hash_keys(w->elems); slist = ecore_sheap_new(ecore_str_compare, ecore_list_count(keys)); while( (key = ecore_list_next(keys)) ) ecore_sheap_insert(slist, key); ecore_list_destroy(keys); ecore_sheap_sort(slist); sheap = slist; elems = w->elems; sheap_stack = ecore_list_new(); elems_stack = ecore_list_new(); prow_stack = ecore_list_new(); prow = NULL; while( (key = ecore_sheap_extract(sheap)) ) { Ewler_Widget_Elem *elem; Ewl_Widget *row_items[2], *row; Ewl_Widget *text, *entry; int len; elem = ecore_hash_get(elems, key); text = ewl_text_new(key); len = ewl_text_length_get(EWL_TEXT(text)); ewl_text_cursor_position_set(EWL_TEXT(text), 0); if( elem->changed ) ewl_text_color_apply(EWL_TEXT(text), 255, 0, 0, 255, len); switch( elem->spec->type ) { case EWLER_SPEC_ELEM_STRUCT: entry = NULL; break; case EWLER_SPEC_ELEM_ENUM: entry = ewl_combo_new(elem_to_s(elem)); if( elem->items ) ecore_hash_destroy(elem->items); elem->items = ecore_hash_new(ecore_direct_hash, ecore_direct_compare); keys = ecore_hash_keys(elem->spec->info.edata.map_rev); while( (key = ecore_list_next(keys)) ) { Ewl_Widget *combo_item; int value; value = (int) ecore_hash_get(elem->spec->info.edata.map_rev, key); combo_item = ewl_menu_item_new(NULL, key); ecore_hash_set(elem->items, (void *) value, combo_item); ewl_container_child_append(EWL_CONTAINER(entry), combo_item); ewl_widget_show(combo_item); } ecore_list_destroy(keys); ewl_callback_append(entry, EWL_CALLBACK_VALUE_CHANGED, combo_value_changed, elem); break; default: entry = ewl_entry_new(elem_to_s(elem)); if( !elem->spec->modifiable ) ewl_entry_editable_set(EWL_ENTRY(entry), false); ewl_callback_append(entry, EWL_CALLBACK_VALUE_CHANGED, entry_value_changed, elem); ewl_callback_append(entry, EWL_CALLBACK_DESELECT, entry_value_changed, elem); ewl_callback_append(entry, EWL_CALLBACK_FOCUS_OUT, entry_focus_out, elem); break; } elem->text = text; elem->entry = entry; row_items[0] = text; row_items[1] = entry; row = ewl_tree_row_add(EWL_TREE(tree), EWL_ROW(prow), row_items); ewl_widget_show(text); if( entry ) ewl_widget_show(entry); if( elem->spec->type == EWLER_SPEC_ELEM_STRUCT ) { ecore_list_prepend(prow_stack, prow); ecore_list_prepend(sheap_stack, sheap); ecore_list_prepend(elems_stack, elems); prow = row; elems = elem->info.children; /* TODO: check for indexed struct */ keys = ecore_hash_keys(elems); sheap = ecore_sheap_new(ecore_str_compare, ecore_list_count(keys)); while( (key = ecore_list_next(keys)) ) ecore_sheap_insert(sheap, key); ecore_list_destroy(keys); ecore_sheap_sort(sheap); } if( sheap->size == 0 && ecore_list_count(sheap_stack) ) { ecore_sheap_destroy(sheap); prow = ecore_list_first_remove(prow_stack); sheap = ecore_list_first_remove(sheap_stack); elems = ecore_list_first_remove(elems_stack); } } ecore_list_destroy(sheap_stack); ecore_list_destroy(elems_stack); ecore_sheap_destroy(slist); }
int main ( int argc, char ** argv ) { Ewl_Widget *vbox=NULL; Ewl_Widget *statbar=NULL; char *homedir; char *configfile; if(argc<2) return 1; if ( !ewl_init ( &argc, argv ) ) { return 1; } //setlocale(LC_ALL, ""); //textdomain("elementpdf"); ewl_theme_theme_set(get_theme_file()); homedir=getenv("HOME"); configfile=(char *)calloc(strlen(homedir)+21 + 1, sizeof(char)); strcat(configfile,homedir); strcat(configfile,"/.madpdf"); if(!file_exists(configfile)) { mkdir (configfile,S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); } strcat(configfile,"/settings.xml"); load_settings(configfile); win = ewl_window_new(); ewl_window_title_set ( EWL_WINDOW ( win ), "EWL_WINDOW" ); ewl_window_name_set ( EWL_WINDOW ( win ), "EWL_WINDOW" ); ewl_window_class_set ( EWL_WINDOW ( win ), "EWLWindow" ); ewl_object_size_request ( EWL_OBJECT ( win ), 600, 800 ); ewl_callback_append ( win, EWL_CALLBACK_DELETE_WINDOW, destroy_cb, NULL ); ewl_callback_append(win, EWL_CALLBACK_KEY_DOWN, cb_key_down, NULL); ewl_widget_name_set(win,"mainwindow"); ewl_widget_show ( win ); vbox=ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(win),vbox); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_FILL); ewl_widget_show(vbox); scrollpane=ewl_scrollpane_new(); ewl_container_child_append(EWL_CONTAINER(vbox),scrollpane); ewl_callback_append(scrollpane,EWL_CALLBACK_REVEAL,cb_scrollpane_revealed,NULL); ewl_scrollpane_hscrollbar_flag_set(EWL_SCROLLPANE(scrollpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); ewl_scrollpane_vscrollbar_flag_set(EWL_SCROLLPANE(scrollpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); //ewl_object_fill_policy_set(EWL_OBJECT(scrollpane), EWL_FLAG_FILL_FILL); //ewl_theme_data_str_set(EWL_WIDGET(scrollpane),"/scrollpane/group","ewl/blank"); ewl_widget_show(scrollpane); trimpane=ewl_scrollpane_new(); ewl_container_child_append(EWL_CONTAINER(scrollpane),trimpane); ewl_object_alignment_set(EWL_OBJECT(trimpane),EWL_FLAG_ALIGN_LEFT|EWL_FLAG_ALIGN_TOP); ewl_scrollpane_hscrollbar_flag_set(EWL_SCROLLPANE(trimpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); ewl_scrollpane_vscrollbar_flag_set(EWL_SCROLLPANE(trimpane),EWL_SCROLLPANE_FLAG_ALWAYS_HIDDEN); //ewl_theme_data_str_set(EWL_WIDGET(trimpane),"/scrollpane/group","ewl/blank"); ewl_widget_show(trimpane); statbar=ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(vbox),statbar); ewl_theme_data_str_set(EWL_WIDGET(statbar),"/hbox/group","ewl/menu/oi_menu"); ewl_object_fill_policy_set(EWL_OBJECT(statbar),EWL_FLAG_FILL_HFILL|EWL_FLAG_FILL_VSHRINKABLE); ewl_widget_show(statbar); statlabel1=ewl_label_new(); //ewl_statusbar_left_append(EWL_STATUSBAR(statbar),statlabel1); ewl_container_child_append(EWL_CONTAINER(statbar),statlabel1); ewl_theme_data_str_set(EWL_WIDGET(statlabel1),"/label/group","ewl/oi_statbar_label_left"); ewl_theme_data_str_set(EWL_WIDGET(statlabel1),"/label/textpart","ewl/oi_statbar_label_left/text"); ewl_object_fill_policy_set(EWL_OBJECT(statlabel1),EWL_FLAG_FILL_HSHRINKABLE); ewl_widget_show(statlabel1); statlabel2=ewl_label_new(); //ewl_statusbar_right_append(EWL_STATUSBAR(statbar),statlabel2); ewl_container_child_append(EWL_CONTAINER(statbar),statlabel2); ewl_theme_data_str_set(EWL_WIDGET(statlabel2),"/label/group","ewl/oi_statbar_label_right"); ewl_theme_data_str_set(EWL_WIDGET(statlabel2),"/label/textpart","ewl/oi_statbar_label_right/text"); ewl_object_fill_policy_set(EWL_OBJECT(statlabel2),EWL_FLAG_FILL_HFILL); ewl_widget_show(statlabel2); pdfwidget = ewl_pdf_new(); ewl_pdf_file_set (EWL_PDF (pdfwidget), argv[1]); ewl_container_child_append(EWL_CONTAINER(trimpane),pdfwidget); ewl_object_alignment_set(EWL_OBJECT(pdfwidget),EWL_FLAG_ALIGN_LEFT|EWL_FLAG_ALIGN_TOP); ewl_widget_name_set(pdfwidget,"pdfwidget"); ewl_callback_append (pdfwidget, EWL_CALLBACK_CONFIGURE, cb_pdfwidget_resized, NULL ); ewl_widget_show (pdfwidget); //set up menu menu=ewl_context_menu_new(); ewl_callback_append(menu, EWL_CALLBACK_KEY_DOWN, cb_menu_key_down, NULL); ewl_theme_data_str_set(EWL_WIDGET(menu),"/menu/group","ewl/menu/oi_menu"); ewl_context_menu_attach(EWL_CONTEXT_MENU(menu), statbar); Ewl_Widget *temp=ewl_menu_new(); ewl_container_child_append(EWL_CONTAINER(menu),temp); ewl_widget_name_set(temp,"menuitem1"); ewl_button_label_set(EWL_BUTTON(temp),"1. Go to page..."); ewl_widget_show(temp); goto_entry=ewl_entry_new(); ewl_container_child_append(EWL_CONTAINER(temp),goto_entry); ewl_object_custom_w_set(EWL_OBJECT(goto_entry),50); ewl_callback_append(goto_entry, EWL_CALLBACK_KEY_DOWN, cb_goto_key_down, NULL); ewl_widget_show(goto_entry); temp=ewl_menu_item_new(); ewl_widget_name_set(temp,"menuitem2"); ewl_container_child_append(EWL_CONTAINER(menu),temp); ewl_button_label_set(EWL_BUTTON(temp),"2. Preferences..."); ewl_widget_show(temp); ewl_main(); save_settings(configfile); free(configfile); free_settings(); return 0; }