void ewl_frontend_dialog_config_open(Eli_App * eap) { Ewl_Widget * o; Ewl_Widget * border_box; Ewl_Widget * hbox; Ewl_Widget * vbox; Ewl_Widget * main_box; Ewl_Widget * radio_b[2]; /* one open config dialog should be enough */ if (conf_win) return; /* Setup and show the configuration window */ conf_win = ewl_dialog_new(); ewl_dialog_action_position_set(EWL_DIALOG(conf_win), EWL_POSITION_BOTTOM); ewl_window_title_set(EWL_WINDOW(conf_win), _("Configuration")); ewl_window_name_set(EWL_WINDOW(conf_win), "Elitaire"); ewl_window_class_set(EWL_WINDOW(conf_win), "Elitaire"); ewl_window_leader_foreign_set(EWL_WINDOW(conf_win), EWL_EMBED_WINDOW(eap->main_win)); ewl_callback_append(conf_win, EWL_CALLBACK_DELETE_WINDOW, destroy_cb, NULL); ewl_dialog_has_separator_set(EWL_DIALOG(conf_win), 1); ewl_object_fill_policy_set(EWL_OBJECT(conf_win), EWL_FLAG_FILL_NONE); ewl_widget_show(conf_win); /* the main_box contain the border_boxes */ ewl_dialog_active_area_set(EWL_DIALOG(conf_win), EWL_POSITION_TOP); main_box = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(conf_win), main_box); ewl_object_fill_policy_set(EWL_OBJECT(main_box), EWL_FLAG_ALIGN_CENTER); ewl_widget_show(main_box); /* Setup and show the stock icons */ ewl_dialog_active_area_set(EWL_DIALOG(conf_win), EWL_POSITION_BOTTOM); o = ewl_button_new(); ewl_stock_type_set(EWL_STOCK(o), EWL_STOCK_CANCEL); ewl_container_child_append(EWL_CONTAINER(conf_win), o); ewl_callback_append(o, EWL_CALLBACK_CLICKED, conf_win_clicked_cb, conf_win); ewl_widget_show(o); o = ewl_button_new(); ewl_stock_type_set(EWL_STOCK(o), EWL_STOCK_APPLY); ewl_container_child_append(EWL_CONTAINER(conf_win), o); ewl_callback_append(o, EWL_CALLBACK_CLICKED, conf_win_clicked_cb, conf_win); ewl_widget_show(o); o = ewl_button_new(); ewl_stock_type_set(EWL_STOCK(o), EWL_STOCK_OK); ewl_container_child_append(EWL_CONTAINER(conf_win), o); ewl_callback_append(o, EWL_CALLBACK_CLICKED, conf_win_clicked_cb, conf_win); ewl_widget_show(o); /* *** Graphic Box *** */ /* Setup and show the border box */ border_box = ewl_border_new(); ewl_border_label_set(EWL_BORDER(border_box), _("Graphic")); ewl_container_child_append(EWL_CONTAINER(main_box), border_box); //ewl_object_fill_policy_set(EWL_OBJECT(border_box), EWL_FLAG_FILL_HFILL); ewl_widget_show(border_box); /* Setup and show the checkbuttons */ o = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(o), _("animated movements")); ewl_container_child_append(EWL_CONTAINER(border_box), o); ewl_object_alignment_set(EWL_OBJECT(o), EWL_FLAG_ALIGN_LEFT); ewl_widget_show(o); config.animations = ecore_config_boolean_get("/graphic/animations"); ewl_togglebutton_checked_set(EWL_TOGGLEBUTTON(o), config.animations); ewl_callback_append(o, EWL_CALLBACK_CLICKED, _check_selected, NULL); o = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(o), _("shadows")); ewl_container_child_append(EWL_CONTAINER(border_box), o); ewl_object_alignment_set(EWL_OBJECT(o), EWL_FLAG_ALIGN_LEFT); ewl_widget_show(o); config.shadows = ecore_config_boolean_get("/graphic/shadows"); ewl_togglebutton_checked_set(EWL_TOGGLEBUTTON(o), config.shadows); ewl_callback_append(o, EWL_CALLBACK_CLICKED, _check_selected, NULL); /* Setup and show the velocity label and seeker */ hbox = ewl_grid_new(); ewl_container_child_append(EWL_CONTAINER(border_box), hbox); ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_FILL); ewl_grid_column_preferred_w_use(EWL_GRID(hbox), 1); ewl_widget_show(hbox); o = ewl_label_new(); ewl_label_text_set(EWL_LABEL(o), _("velocity:")); ewl_container_child_append(EWL_CONTAINER(hbox), o); ewl_object_fill_policy_set(EWL_OBJECT(o), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(o), EWL_FLAG_ALIGN_LEFT); ewl_widget_show(o); o = ewl_label_new(); ewl_container_child_append(EWL_CONTAINER(hbox), o); ewl_object_fill_policy_set(EWL_OBJECT(o), EWL_FLAG_FILL_NONE); ewl_widget_show(o); config.vel_label = o; o = ewl_hseeker_new(); config.velocity = ecore_config_int_get("velocity"); ewl_range_minimum_value_set(EWL_RANGE(o), 200.0); ewl_range_maximum_value_set(EWL_RANGE(o), 800.0); ewl_range_step_set(EWL_RANGE(o), 60.0); ewl_range_value_set(EWL_RANGE(o), (double) config.velocity); ewl_widget_name_set(o, "velocity"); ewl_container_child_append(EWL_CONTAINER(border_box), o); ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, _hseeker_cb, NULL); _hseeker_cb(o, NULL, NULL); ewl_widget_show(o); /* Setup and show the frame_rate label and seeker */ hbox = ewl_grid_new(); ewl_container_child_append(EWL_CONTAINER(border_box), hbox); ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); ewl_grid_column_preferred_w_use(EWL_GRID(hbox), 1); ewl_widget_show(hbox); o = ewl_label_new(); ewl_label_text_set(EWL_LABEL(o), _("frame rate:")); ewl_container_child_append(EWL_CONTAINER(hbox), o); ewl_object_fill_policy_set(EWL_OBJECT(o), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(o), EWL_FLAG_ALIGN_LEFT); ewl_widget_show(o); o = ewl_label_new(); ewl_container_child_append(EWL_CONTAINER(hbox), o); ewl_object_fill_policy_set(EWL_OBJECT(o), EWL_FLAG_FILL_NONE); ewl_widget_show(o); config.frt_label = o; o = ewl_hseeker_new(); config.frame_rate = ecore_config_int_get("frame_rate"); ewl_range_minimum_value_set(EWL_RANGE(o), 10.0); ewl_range_maximum_value_set(EWL_RANGE(o), 100.0); ewl_range_step_set(EWL_RANGE(o), 10.0); ewl_range_value_set(EWL_RANGE(o), (double) config.frame_rate); ewl_widget_name_set(o, "frame_rate"); ewl_container_child_append(EWL_CONTAINER(border_box), o); ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, _hseeker_cb, NULL); _hseeker_cb(o, NULL, NULL); ewl_widget_show(o); /* *** Lazy Box *** */ vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(main_box), vbox); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_NORMAL); ewl_widget_show(vbox); border_box = ewl_border_new(); ewl_container_child_append(EWL_CONTAINER(vbox), border_box); ewl_border_label_set(EWL_BORDER(border_box), _("Laziness")); ewl_widget_show(border_box); /* the radio buttons */ config.lazy = ecore_config_int_get("lazy"); radio_b[0] = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(radio_b[0]), _("normal mode")); ewl_object_alignment_set(EWL_OBJECT(radio_b[0]), EWL_FLAG_ALIGN_LEFT); ewl_container_child_append(EWL_CONTAINER(border_box), radio_b[0]); ewl_callback_append(radio_b[0], EWL_CALLBACK_CLICKED, _check_selected, NULL); ewl_widget_show(radio_b[0]); radio_b[1] = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(radio_b[1]), _("lazy mode")); ewl_container_child_append(EWL_CONTAINER(border_box), radio_b[1]); ewl_object_alignment_set(EWL_OBJECT(radio_b[1]), EWL_FLAG_ALIGN_LEFT); ewl_radiobutton_chain_set(EWL_RADIOBUTTON(radio_b[1]), EWL_RADIOBUTTON(radio_b[0])); ewl_callback_append(radio_b[1], EWL_CALLBACK_CLICKED, _check_selected, NULL); ewl_widget_show(radio_b[1]); if (config.lazy) ewl_togglebutton_checked_set(EWL_TOGGLEBUTTON(radio_b[1]), 1); else ewl_togglebutton_checked_set(EWL_TOGGLEBUTTON(radio_b[0]), 1); /* *** Render Box *** */ /* Setup and show the border box */ border_box = ewl_border_new(); ewl_border_label_set(EWL_BORDER(border_box), _("Render Engine")); ewl_container_child_append(EWL_CONTAINER(vbox), border_box); ewl_object_fill_policy_set(EWL_OBJECT(border_box), EWL_FLAG_FILL_FILL); ewl_object_alignment_set(EWL_OBJECT(border_box), EWL_FLAG_ALIGN_CENTER); ewl_object_alignment_set(EWL_OBJECT(main_box), EWL_FLAG_ALIGN_TOP); ewl_widget_show(border_box); o = ewl_text_new(); ewl_text_text_set(EWL_TEXT(o), _("Changes only affect after new start")); ewl_container_child_append(EWL_CONTAINER(border_box), o); ewl_widget_show(o); /* the radio buttons */ config.gl = ecore_config_boolean_get("/graphic/gl"); radio_b[0] = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(radio_b[0]), _("Software")); ewl_container_child_append(EWL_CONTAINER(border_box), radio_b[0]); ewl_object_alignment_set(EWL_OBJECT(radio_b[0]), EWL_FLAG_ALIGN_LEFT); ewl_callback_append(radio_b[0], EWL_CALLBACK_CLICKED, _check_selected, NULL); ewl_widget_show(radio_b[0]); radio_b[1] = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(radio_b[1]), _("OpenGL (testing)")); ewl_container_child_append(EWL_CONTAINER(border_box), radio_b[1]); ewl_object_alignment_set(EWL_OBJECT(radio_b[1]), EWL_FLAG_ALIGN_LEFT); ewl_radiobutton_chain_set(EWL_RADIOBUTTON(radio_b[1]), EWL_RADIOBUTTON(radio_b[0])); ewl_callback_append(radio_b[1], EWL_CALLBACK_CLICKED, _check_selected, NULL); ewl_widget_show(radio_b[1]); if (config.gl) ewl_togglebutton_checked_set(EWL_TOGGLEBUTTON(radio_b[1]), 1); else ewl_togglebutton_checked_set(EWL_TOGGLEBUTTON(radio_b[0]), 1); }
void entropy_ewl_mime_dialog_display() { Ewl_Widget* window = ewl_window_new(); Ewl_Widget* box = ewl_vbox_new(); Ewl_Widget* button = ewl_button_new(); Ewl_Widget* hbox; entropy_core* core = entropy_core_get_core(); char* entries[3]; char* key; entropy_mime_action* action; Ecore_List* keys; last_select_text = NULL; /*Init the mime tree*/ mime_tree = ewl_tree_new(2); ewl_tree_mode_set(EWL_TREE(mime_tree), EWL_SELECTION_MODE_SINGLE); ewl_object_minimum_size_set(EWL_OBJECT(window), 530, 400); ewl_window_title_set(EWL_WINDOW(window), "Edit MIME Actions.."); ewl_container_child_append(EWL_CONTAINER(window), box); ewl_container_child_append(EWL_CONTAINER(box), mime_tree); ewl_widget_show(box); keys = ecore_hash_keys(core->mime_action_hint); while ((key = ecore_list_first_remove(keys))) { Ewl_Widget* row; entries[0] = key; entries[1] = ((entropy_mime_action*)ecore_hash_get(core->mime_action_hint, key))->executable; entries[2] = NULL; row = ewl_tree_text_row_add(EWL_TREE(mime_tree), NULL,entries); ewl_widget_color_set(row,0,0,0,255); ewl_callback_append(row, EWL_CALLBACK_MOUSE_DOWN, mime_row_click_cb, key); } ecore_list_destroy(keys); hbox = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(box), hbox); ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_SHRINK); ewl_widget_show(hbox); /*Add Button*/ ewl_button_label_set(EWL_BUTTON(button), "Add MIME Action"); ewl_object_maximum_h_set(EWL_OBJECT(button), 15); ewl_callback_append(button, EWL_CALLBACK_CLICKED, entropy_ewl_mime_add_display_cb, NULL); ewl_container_child_append(EWL_CONTAINER(hbox), button); ewl_widget_show(button); /*OK Button*/ button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Close"); 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); ewl_widget_show(mime_tree); }
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); }
gui_file * ewl_icon_local_viewer_add_icon (entropy_gui_component_instance * comp, entropy_generic_file * list_item, int do_mime) { entropy_icon_viewer *view = comp->data; Ewl_Iconbox_Icon *icon; gui_file *gui_object; if (!ecore_hash_get (view->gui_hash, list_item)) { entropy_core_file_cache_add_reference (list_item->md5); icon = ewl_iconbox_icon_add (EWL_ICONBOX (view->iconbox), list_item->filename, PACKAGE_DATA_DIR "/icons/default.png"); ewl_callback_append (EWL_WIDGET (icon), EWL_CALLBACK_MOUSE_DOWN, icon_click_cb, view); ewl_callback_append (EWL_WIDGET (icon), EWL_CALLBACK_MOUSE_MOVE, hover_icon_mouse_move_cb, comp); gui_object = gui_file_new (); gui_object->file = list_item; gui_object->thumbnail = NULL; gui_object->instance = comp; gui_object->icon = EWL_WIDGET (icon); ewl_attach_tooltip_widget_set (EWL_WIDGET (icon), view->hover_properties); ecore_hash_set (view->gui_hash, list_item, gui_object); ecore_hash_set (view->icon_hash, icon, gui_object); /*Associate this icon with this file in the core, so DND works */ entropy_core_object_file_associate (icon, list_item); if (do_mime == DO_MIME) { char *mime; entropy_plugin *thumb; mime = entropy_mime_file_identify (list_item); if (mime && strcmp (mime, ENTROPY_NULL_MIME)) { entropy_plugin_thumbnail_request(comp,list_item,(void*)gui_event_callback); } else { thumb = NULL; } } return gui_object; } return NULL; }
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); }
void ewl_icon_local_viewer_delete_selected (entropy_gui_component_instance * instance) { Ewl_Iconbox *ib = EWL_ICONBOX (((entropy_icon_viewer *) instance->data)->iconbox); entropy_icon_viewer *viewer = instance->data; Ecore_List *new_file_list = ecore_list_new (); Ecore_List *icon_list; gui_file *local_file; Ewl_Iconbox_Icon *list_item; Ewl_Widget *dialog_win; Ewl_Widget *dialog_label; Ewl_Widget *button; /*This is kind of awkward - the first item on the list is * the plugin instance reference*/ ecore_list_append (new_file_list, instance); dialog_win = ewl_dialog_new (); ewl_window_title_set (EWL_WINDOW (dialog_win), "Delete?"); ewl_dialog_active_area_set (EWL_DIALOG (dialog_win), EWL_POSITION_TOP); dialog_label = ewl_label_new (); ewl_label_text_set (EWL_LABEL (dialog_label), "Are you sure you want to delete these files?"); ewl_container_child_append (EWL_CONTAINER (dialog_win), dialog_label); ewl_widget_show (dialog_label); ewl_dialog_active_area_set (EWL_DIALOG (dialog_win), EWL_POSITION_BOTTOM); ////////////////////// icon_list = ewl_iconbox_get_selection (EWL_ICONBOX (ib)); ecore_list_first_goto (icon_list); while ((list_item = ecore_list_next (icon_list))) { local_file = ecore_hash_get (viewer->icon_hash, list_item); if (local_file) { entropy_core_file_cache_add_reference (local_file->file->md5); ecore_list_append (new_file_list, local_file->file); } } entropy_file_wait_list_add (viewer, new_file_list); ecore_list_destroy (icon_list); button = ewl_button_new (); ewl_button_label_set (EWL_BUTTON (button), "Yes"); ewl_widget_show (button); ewl_container_child_append (EWL_CONTAINER (dialog_win), button); ewl_callback_append (button, EWL_CALLBACK_CLICKED, ewl_icon_local_viewer_delete_cb, new_file_list); button = ewl_button_new (); ewl_button_label_set (EWL_BUTTON (button), "No"); ewl_widget_show (button); ewl_container_child_append (EWL_CONTAINER (dialog_win), button); ewl_callback_append (button, EWL_CALLBACK_CLICKED, ewl_icon_local_viewer_delete_cb, new_file_list); ewl_widget_show (dialog_win); }
entropy_gui_component_instance * entropy_plugin_gui_instance_new (entropy_core * core, entropy_gui_component_instance * layout) { Ewl_Widget *context; entropy_gui_component_instance *instance = entropy_gui_component_instance_new (); entropy_icon_viewer *viewer = entropy_malloc (sizeof (entropy_icon_viewer)); /*Save a reference to our local data */ instance->data = viewer; instance->layout_parent = layout; viewer->iconbox = ewl_iconbox_new (); viewer->default_bg = 0; instance->gui_object = viewer->iconbox; ewl_widget_show (EWL_WIDGET (viewer->iconbox)); /*Initialise the progress window */ viewer->progress = entropy_malloc (sizeof (entropy_file_progress_window)); /*Init the file wait list */ viewer->file_wait_list = ecore_hash_new (ecore_direct_hash, ecore_direct_compare); /*Add some context menu items */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "New Directory"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_new_dir.png", NULL); ewl_iconbox_context_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); /*ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_iconbox_file_copy_cb, instance);*/ ewl_widget_show (context); /*Add some context menu items */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Copy selection"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_copy.png", NULL); ewl_iconbox_context_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_iconbox_file_copy_cb, instance); ewl_widget_show (context); /*Add some context menu items */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Paste"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_paste.png", NULL); ewl_iconbox_context_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_iconbox_file_paste_cb, instance); ewl_widget_show (context); /*Add some context menu items */ context = ewl_separator_new (); ewl_iconbox_context_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_widget_show (context); /*Add some context menu items */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Set custom folder background..."); ewl_iconbox_context_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_iconbox_background_set_cb, instance); ewl_widget_show (context); /*Add some context menu items */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Remove current custom background"); ewl_iconbox_context_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_iconbox_background_remove_cb, instance); ewl_widget_show (context); /*---------------Icon Menu---------------*/ /*Copy */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Copy"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_copy.png", NULL); ewl_widget_show (context); ewl_iconbox_icon_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_iconbox_file_copy_cb, instance); // context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Cut"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_cut.png", NULL); ewl_widget_show (context); ewl_iconbox_icon_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); //ewl_callback_append(context, EWL_CALLBACK_MOUSE_DOWN, icon_properties_cb, instance); /*Icon menu */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Rename"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_rename.png", NULL); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_icon_local_viewer_menu_rename_cb, instance); ewl_widget_show (context); ewl_iconbox_icon_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); /*Icon menu */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Delete"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_delete.png", NULL); ewl_widget_show (context); ewl_iconbox_icon_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, ewl_icon_local_viewer_menu_delete_cb, instance); /*Icon menu */ context = ewl_menu_item_new (); ewl_button_label_set (EWL_BUTTON (context), "Properties"); ewl_button_image_set (EWL_BUTTON (context), PACKAGE_DATA_DIR "/icons/e17_button_detail_properties.png", NULL); ewl_widget_show (context); ewl_iconbox_icon_menu_item_add (EWL_ICONBOX (viewer->iconbox), context); ewl_callback_append (context, EWL_CALLBACK_CLICKED, icon_properties_cb, instance); /*Properties hover */ viewer->hover_properties = ewl_text_new (); ewl_callback_append (viewer->hover_properties, EWL_CALLBACK_SHOW, icon_hover_properties_show_cb, instance); ewl_text_text_set (EWL_TEXT (viewer->hover_properties), "Filename: ewl_text.c\nSize: 50kb\nType: text/c-src"); /*------------------------*/ /*FIXME remove the hardocded var */ ewl_iconbox_icon_size_custom_set (EWL_ICONBOX (viewer->iconbox), 60, 60); /*Init the hash */ viewer->gui_hash = ecore_hash_new (ecore_direct_hash, ecore_direct_compare); viewer->icon_hash = ecore_hash_new (ecore_direct_hash, ecore_direct_compare); /*Set the core back reference */ instance->core = core; /*Register out interest in receiving folder notifications */ entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FOLDER_CHANGE_CONTENTS)); entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FOLDER_CHANGE_CONTENTS_EXTERNAL)); /*Register our interest in receiving file mod/create/delete notifications */ entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_CHANGE)); entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_CREATE)); entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_REMOVE)); entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_REMOVE_DIRECTORY)); /*Register interest in getting stat events */ entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_STAT)); entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_STAT_AVAILABLE)); /*We want to know about file transfer progress events */ entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_PROGRESS)); /*We want to know if the backend needs feedback */ entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_USER_INTERACTION_YES_NO_ABORT)); /*We want to know about thumbnail available events */ entropy_core_component_event_register (instance, entropy_core_gui_event_get (ENTROPY_GUI_EVENT_THUMBNAIL_AVAILABLE)); ewl_iconbox_controlled_key_callback_register (viewer->iconbox, ewl_icon_local_viewer_key_event_cb, instance); return instance; }
/* * Parser functions */ static void help_reader_text_cb_append(void *data, const char *text, Eli_Help_Reader_Node *styles, size_t len) { Help_Reader_Window * win = data; Ewl_Text * t = EWL_TEXT(win->text); size_t i; int bold = 0; int italic = 0; int pref = 0; unsigned int size = 12; unsigned int r, g, b, a; unsigned int t_len; unsigned int t_pos; r = g = b = 0; a = 255; const char * url = NULL; for (i = 0; i < len; i++) { switch (styles[i].type) { case ELI_HELP_READER_NODE_HEADER: { unsigned int h = 1; if (styles[i].parameter) h = atoi(styles[i].parameter); h--; if (h > 5) h = 5; size = 24 - h * 5; bold = 1; } break; case ELI_HELP_READER_NODE_LINK: r = 10; g = 0; b = 255; a = 255; url = styles[i].parameter; break; case ELI_HELP_READER_NODE_EMPHASIZE: italic = 1; break; case ELI_HELP_READER_NODE_STRONG: bold = 1; break; case ELI_HELP_READER_NODE_PREFORMATED: pref = 1; break; case ELI_HELP_READER_NODE_TITLE: ewl_window_title_set(EWL_WINDOW(win), text); return; case ELI_HELP_READER_NODE_BLOCK: case ELI_HELP_READER_NODE_PARAGRAPH: case ELI_HELP_READER_NODE_UNKNOWN: default: break; } } if (pref) ewl_text_font_set(t, "ewl/monospace"); else if (bold && italic) ewl_text_font_set(t, "ewl/default/bold-italic"); else if (italic) ewl_text_font_set(t, "ewl/default/italic"); else if (bold) ewl_text_font_set(t, "ewl/default/bold"); else ewl_text_font_set(t, NULL); ewl_text_font_size_set(t, size); ewl_text_color_set(t, r, g, b, a); t_pos = ewl_text_length_get(t); ewl_text_text_append(t, text); t_len = ewl_text_length_get(t) - t_pos; if (url) { Ewl_Widget * trig; trig = ewl_text_trigger_new(EWL_TEXT_TRIGGER_TYPE_TRIGGER); ewl_attach_mouse_cursor_set(trig, EWL_MOUSE_CURSOR_HAND2); ewl_text_trigger_start_pos_set(EWL_TEXT_TRIGGER(trig), t_pos); ewl_text_trigger_length_set(EWL_TEXT_TRIGGER(trig), t_len); ewl_callback_append(trig, EWL_CALLBACK_CLICKED, help_reader_trigger_cb_clicked, win); ewl_callback_append(trig, EWL_CALLBACK_DESTROY, help_reader_trigger_cb_destroy, NULL); ewl_widget_data_set(trig, TRIGGER_TXT, strdup(url)); ewl_container_child_append(EWL_CONTAINER(t), trig); ewl_widget_show(trig); } }
/* * Internal functions */ static Ewl_Widget * help_reader_window_new(void) { Ewl_Widget * win, * c, * w, * vbox; win = calloc(1, sizeof(Help_Reader_Window)); ewl_window_init(EWL_WINDOW(win)); ewl_object_size_request(EWL_OBJECT(win), 600, 500); ewl_window_name_set(EWL_WINDOW(win), "Elitaire Help"); ewl_window_class_set(EWL_WINDOW(win), "Elitaire"); ewl_callback_append(win, EWL_CALLBACK_DESTROY, help_reader_window_cb_destroy, NULL); ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, help_reader_window_cb_delete, NULL); ewl_widget_show(win); /* vbox to hold the toolbar and the text view */ vbox = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(win), vbox); ewl_widget_show(vbox); /* the toolbar */ c = ewl_htoolbar_new(); ewl_toolbar_icon_part_hide(EWL_TOOLBAR(c), EWL_ICON_PART_LABEL); ewl_container_child_append(EWL_CONTAINER(vbox), c); ewl_widget_show(c); /* the toolbar buttons */ w = ewl_icon_simple_new(); ewl_stock_type_set(EWL_STOCK(w), EWL_STOCK_ARROW_LEFT); ewl_callback_append(w, EWL_CALLBACK_CLICKED, help_reader_prev_button_cb_clicked, win); ewl_container_child_append(EWL_CONTAINER(c), w); ewl_widget_disable(w); ewl_widget_show(w); HELP_READER_WINDOW(win)->prev_button = w; w = ewl_icon_simple_new(); ewl_stock_type_set(EWL_STOCK(w), EWL_STOCK_ARROW_RIGHT); ewl_callback_append(w, EWL_CALLBACK_CLICKED, help_reader_next_button_cb_clicked, win); ewl_container_child_append(EWL_CONTAINER(c), w); ewl_widget_disable(w); ewl_widget_show(w); HELP_READER_WINDOW(win)->next_button = w; w = ewl_icon_simple_new(); ewl_stock_type_set(EWL_STOCK(w), EWL_STOCK_HOME); ewl_callback_append(w, EWL_CALLBACK_CLICKED, help_reader_home_button_cb_clicked, win); ewl_container_child_append(EWL_CONTAINER(c), w); ewl_widget_show(w); /* the text view */ c = ewl_scrollpane_new(); ewl_container_child_append(EWL_CONTAINER(vbox), c); ewl_widget_show(c); w = ewl_text_new(); ewl_container_child_append(EWL_CONTAINER(c), w); ewl_widget_show(w); HELP_READER_WINDOW(win)->text = w; /* the histroy */ HELP_READER_WINDOW(win)->history = ecore_dlist_new(); ecore_dlist_free_cb_set(HELP_READER_WINDOW(win)->history, free); return win; }
int create_test(Ewl_Container *box) { Ewl_Widget *vbox[2], *hbox[3]; Ewl_Widget *vbox_button[2][3]; Ewl_Widget *hbox_button[2][3]; /* * Create the first horizontal box, this is positioned in the upper * left corner. */ hbox[0] = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(box), hbox[0]); ewl_widget_show(hbox[0]); /******************************************************************/ /* Create a box for holding the horizontal alignment test buttons */ /******************************************************************/ vbox[0] = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(hbox[0]), vbox[0]); ewl_widget_show(vbox[0]); /* * Create and setup the button that starts in the left position. */ vbox_button[0][0] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(vbox_button[0][0]), "Left"); ewl_container_child_append(EWL_CONTAINER(vbox[0]), vbox_button[0][0]); ewl_object_fill_policy_set(EWL_OBJECT(vbox_button[0][0]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(vbox_button[0][0]), EWL_FLAG_ALIGN_LEFT); ewl_callback_append(vbox_button[0][0], EWL_CALLBACK_CLICKED, toggle_child_horizontal_align, NULL); ewl_widget_show(vbox_button[0][0]); /* * Create and setup the button that starts in the center position. */ vbox_button[0][1] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(vbox_button[0][1]), "Center"); ewl_container_child_append(EWL_CONTAINER(vbox[0]), vbox_button[0][1]); ewl_object_fill_policy_set(EWL_OBJECT(vbox_button[0][1]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(vbox_button[0][1]), EWL_FLAG_ALIGN_CENTER); ewl_callback_append(vbox_button[0][1], EWL_CALLBACK_CLICKED, toggle_child_horizontal_align, NULL); ewl_widget_show(vbox_button[0][1]); /* * Create and setup the button that starts in the right position. */ vbox_button[0][2] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(vbox_button[0][2]), "Right"); ewl_container_child_append(EWL_CONTAINER(vbox[0]), vbox_button[0][2]); ewl_object_fill_policy_set(EWL_OBJECT(vbox_button[0][2]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(vbox_button[0][2]), EWL_FLAG_ALIGN_RIGHT); ewl_callback_append(vbox_button[0][2], EWL_CALLBACK_CLICKED, toggle_child_horizontal_align, NULL); ewl_widget_show(vbox_button[0][2]); /****************************************************************/ /* Create a box for holding the Fill test buttons */ /****************************************************************/ vbox[1] = ewl_vbox_new(); ewl_container_child_append(EWL_CONTAINER(hbox[0]), vbox[1]); ewl_widget_show(vbox[1]); /* * Create and setup a button with no filling by default. */ vbox_button[1][0] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(vbox_button[1][0]), "None"); ewl_container_child_append(EWL_CONTAINER(vbox[1]), vbox_button[1][0]); ewl_object_fill_policy_set(EWL_OBJECT(vbox_button[1][0]), EWL_FLAG_FILL_NONE); ewl_box_orientation_set(EWL_BOX(vbox_button[1][0]), EWL_ORIENTATION_VERTICAL); ewl_object_alignment_set(EWL_OBJECT(EWL_BUTTON(vbox_button[1][0])->label_object), EWL_FLAG_ALIGN_CENTER); ewl_callback_append(vbox_button[1][0], EWL_CALLBACK_CLICKED, toggle_child_fill, NULL); ewl_widget_show(vbox_button[1][0]); /* * Create and setup a button with filling by default. */ vbox_button[1][1] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(vbox_button[1][1]), "Fill"); ewl_container_child_append(EWL_CONTAINER(vbox[1]), vbox_button[1][1]); ewl_box_orientation_set(EWL_BOX(vbox_button[1][1]), EWL_ORIENTATION_VERTICAL); ewl_object_fill_policy_set(EWL_OBJECT(vbox_button[1][1]), EWL_FLAG_FILL_FILL); ewl_object_alignment_set(EWL_OBJECT(EWL_BUTTON(vbox_button[1][1])->label_object), EWL_FLAG_ALIGN_CENTER); ewl_callback_append(vbox_button[1][1], EWL_CALLBACK_CLICKED, toggle_child_fill, NULL); ewl_widget_show(vbox_button[1][1]); /* * Create and setup a button with no filling by default. */ vbox_button[1][2] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(vbox_button[1][2]), "None"); ewl_container_child_append(EWL_CONTAINER(vbox[1]), vbox_button[1][2]); ewl_box_orientation_set(EWL_BOX(vbox_button[1][2]), EWL_ORIENTATION_VERTICAL); ewl_object_fill_policy_set(EWL_OBJECT(vbox_button[1][2]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(EWL_BUTTON(vbox_button[1][2])->label_object), EWL_FLAG_ALIGN_CENTER); ewl_callback_append(vbox_button[1][2], EWL_CALLBACK_CLICKED, toggle_child_fill, NULL); ewl_widget_show(vbox_button[1][2]); /****************************************************************/ /* Create a box for holding the vertical alignment test buttons */ /****************************************************************/ hbox[1] = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(box), hbox[1]); ewl_widget_show(hbox[1]); /* * Create and setup a button with top alignment by default. */ hbox_button[0][0] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(hbox_button[0][0]), "Top"); ewl_container_child_append(EWL_CONTAINER(hbox[1]), hbox_button[0][0]); ewl_object_fill_policy_set(EWL_OBJECT(hbox_button[0][0]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(hbox_button[0][0]), EWL_FLAG_ALIGN_TOP); ewl_callback_append(hbox_button[0][0], EWL_CALLBACK_CLICKED, toggle_child_vertical_align, NULL); ewl_widget_show(hbox_button[0][0]); /* * Create and setup a button with center alignment by default. */ hbox_button[0][1] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(hbox_button[0][1]), "Center"); ewl_container_child_append(EWL_CONTAINER(hbox[1]), hbox_button[0][1]); ewl_object_fill_policy_set(EWL_OBJECT(hbox_button[0][1]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(hbox_button[0][1]), EWL_FLAG_ALIGN_CENTER); ewl_callback_append(hbox_button[0][1], EWL_CALLBACK_CLICKED, toggle_child_vertical_align, NULL); ewl_widget_show(hbox_button[0][1]); /* * Create and setup a button with bottom alignment by default. */ hbox_button[0][2] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(hbox_button[0][2]), "Bottom"); ewl_container_child_append(EWL_CONTAINER(hbox[1]), hbox_button[0][2]); ewl_object_fill_policy_set(EWL_OBJECT(hbox_button[0][2]), EWL_FLAG_FILL_NONE); ewl_object_alignment_set(EWL_OBJECT(hbox_button[0][2]), EWL_FLAG_ALIGN_BOTTOM); ewl_callback_append(hbox_button[0][2], EWL_CALLBACK_CLICKED, toggle_child_vertical_align, NULL); ewl_widget_show(hbox_button[0][2]); /****************************************************************/ /* Create a box for holding the Shrink test buttons */ /****************************************************************/ hbox[2] = ewl_hbox_new(); ewl_container_child_append(EWL_CONTAINER(box), hbox[2]); ewl_object_fill_policy_set(EWL_OBJECT(hbox[2]), EWL_FLAG_FILL_HFILL); ewl_widget_show(hbox[2]); /* * Create and setup a button with no filling by default. */ hbox_button[1][0] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(hbox_button[1][0]), "Shrink This Box To Fit It's Parent"); ewl_object_fill_policy_set(EWL_OBJECT(hbox_button[1][0]), EWL_FLAG_FILL_HSHRINK); ewl_container_child_append(EWL_CONTAINER(hbox[2]), hbox_button[1][0]); ewl_callback_append(hbox_button[1][0], EWL_CALLBACK_CLICKED, toggle_child_shrink, NULL); ewl_widget_show(hbox_button[1][0]); /* * Create and setup a button with shrinking by default. */ hbox_button[1][1] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(hbox_button[1][1]), "Shrink This Box To Fit It's Parent"); ewl_object_fill_policy_set(EWL_OBJECT(hbox_button[1][1]), EWL_FLAG_FILL_HSHRINK); ewl_container_child_append(EWL_CONTAINER(hbox[2]), hbox_button[1][1]); ewl_callback_append(hbox_button[1][1], EWL_CALLBACK_CLICKED, toggle_child_shrink, NULL); ewl_widget_show(hbox_button[1][1]); /* * Create and setup a button with no filling by default. */ hbox_button[1][2] = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(hbox_button[1][2]), "Don't shrink this box at all"); ewl_object_fill_policy_set(EWL_OBJECT(hbox_button[1][2]), EWL_FLAG_FILL_NONE); ewl_container_child_append(EWL_CONTAINER(hbox[2]), hbox_button[1][2]); ewl_callback_append(hbox_button[1][2], EWL_CALLBACK_CLICKED, toggle_child_shrink, NULL); ewl_widget_show(hbox_button[1][2]); return 1; }
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; }
void ewl_entropy_tip_window_display() { Ewl_Widget* tip_window = ewl_window_new(); Ewl_Widget* vbox = ewl_vbox_new(); Ewl_Widget* hbox = ewl_hbox_new(); Ewl_Widget* button; Ewl_Widget* image = ewl_image_new(); ewl_entropy_tip_window_create_tips(); tip_number = 0; ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_BOTTOM); ewl_object_alignment_set(EWL_OBJECT(vbox), EWL_FLAG_ALIGN_BOTTOM); ewl_object_alignment_set(EWL_OBJECT(tip_window), EWL_FLAG_ALIGN_BOTTOM); ewl_object_fill_policy_set(EWL_OBJECT(tip_window), EWL_FLAG_FILL_FILL); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_FILL); ewl_container_child_append(EWL_CONTAINER(tip_window), vbox); ewl_container_child_append(EWL_CONTAINER(vbox), hbox); text_tip = ewl_text_new(); ewl_object_minimum_h_set(EWL_OBJECT(text_tip), 80); ewl_container_child_append(EWL_CONTAINER(hbox), text_tip); ewl_image_file_set(EWL_IMAGE(image), PACKAGE_DATA_DIR "/icons/tip.png", NULL); ewl_container_child_append(EWL_CONTAINER(hbox), image); ewl_widget_show(hbox); hbox = ewl_hbox_new(); ewl_widget_show(hbox); ewl_container_child_append(EWL_CONTAINER(vbox), hbox); button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Prev Tip"); ewl_object_custom_h_set(EWL_OBJECT(button), 15); ewl_widget_show(button); ewl_container_child_append(EWL_CONTAINER(hbox), button); button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Next Tip"); ewl_object_custom_h_set(EWL_OBJECT(button), 15); ewl_callback_append(button, EWL_CALLBACK_CLICKED, ewl_entropy_tip_window_tip_next_cb, NULL); ewl_widget_show(button); ewl_container_child_append(EWL_CONTAINER(hbox), button); button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Close"); ewl_object_custom_h_set(EWL_OBJECT(button), 15); ewl_callback_append(button, EWL_CALLBACK_CLICKED, ewl_entropy_tip_window_destroy_cb, tip_window); ewl_widget_show(button); ewl_container_child_append(EWL_CONTAINER(hbox), button); ewl_callback_append(tip_window, EWL_CALLBACK_DELETE_WINDOW, ewl_entropy_tip_window_destroy_cb, tip_window); ewl_widget_show(tip_window); ewl_widget_show(vbox); ewl_widget_show(text_tip); ewl_widget_show(image); ewl_entropy_tip_window_tip_next_cb(NULL,NULL,NULL); }