void _ex_tab_current_zoom_one_to_one(Exhibit *e) { if (e->cur_tab->fit_window) { if (e->cur_tab->comment.visible) { etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->comment.vbox); etk_container_remove(e->cur_tab->alignment); etk_container_remove(e->cur_tab->comment.frame); etk_box_append(ETK_BOX(e->cur_tab->comment.vbox), e->cur_tab->scrolled_view, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); etk_box_append(ETK_BOX(e->cur_tab->comment.vbox), e->cur_tab->comment.frame, ETK_BOX_START, ETK_BOX_NONE, 3); } else etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->scrolled_view); etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); e->cur_tab->fit_window = ETK_FALSE; } e->zoom = 0; e->brightness = 128; e->contrast = 0; _ex_image_zoom(ETK_IMAGE(e->cur_tab->image), e->zoom); _ex_main_statusbar_zoom_update(e); }
void _ex_tab_select(Ex_Tab *tab) { //chdir(tab->dir); D(("_ex_tab_select: changed dir to %s\n", tab->dir)); D(("_ex_tab_select: selecting tab num %d\n", e->cur_tab->num)); if (tab->comment.visible) etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), tab->num, tab->comment.vbox); else if (tab->fit_window) etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), tab->num, tab->alignment); etk_table_attach(ETK_TABLE(e->table), tab->dtree, 0, 3, 3, 3, ETK_TABLE_VEXPAND | ETK_TABLE_FILL, 0, 0); etk_widget_show(tab->dtree); etk_paned_child2_set(ETK_PANED(e->vpaned), tab->itree, ETK_TRUE); etk_widget_show(tab->itree); etk_widget_show(tab->image); etk_widget_show(tab->alignment); etk_widget_show(tab->scrolled_view); etk_widget_show_all(e->win); }
void _ex_tab_delete(void) { if (!e->cur_tab) { D(("No currently selected TAB!!\n")); return; } D(("Number of tabs: %d\n", eina_list_count(e->tabs))); if (eina_list_count(e->tabs) < 1) { D(("Cannot remove the last tab\n")); return; } D(("Delete tab %d\n", e->cur_tab->num)); D(("Remove from list\n")); e->tabs = eina_list_remove(e->tabs, e->cur_tab); D(("Free\n")); etk_notebook_page_remove(ETK_NOTEBOOK(e->notebook), e->cur_tab->num); /* Set the cur_tab on the new one */ e->cur_tab = eina_list_nth(e->tabs, etk_notebook_current_page_get(ETK_NOTEBOOK(e->notebook))); // E_FREE(e->cur_tab); if (eina_list_count(e->tabs) == 1) etk_notebook_tabs_visible_set(ETK_NOTEBOOK(e->notebook), ETK_FALSE); }
/* switch pages callback */ static void _etk_prefs_switch_cb(Etk_Object *object, void *data) { if(!strcmp(etk_button_label_get(ETK_BUTTON(object)), _("Go to Engines page"))) { etk_notebook_page_next(ETK_NOTEBOOK(data)); etk_button_label_set(ETK_BUTTON(object), _("Go to Themes page")); } else { etk_notebook_page_prev(ETK_NOTEBOOK(data)); etk_button_label_set(ETK_BUTTON(object), _("Go to Engines page")); } }
void _ex_tab_current_fit_to_window(Exhibit *e) { etk_widget_size_request_set(e->cur_tab->alignment, 10, 10); if (e->cur_tab->comment.visible) { etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->comment.vbox); etk_container_remove(e->cur_tab->scrolled_view); etk_container_remove(e->cur_tab->comment.frame); etk_box_append(ETK_BOX(e->cur_tab->comment.vbox), e->cur_tab->alignment, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); etk_box_append(ETK_BOX(e->cur_tab->comment.vbox), e->cur_tab->comment.frame, ETK_BOX_START, ETK_BOX_NONE, 3); } else etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->alignment); etk_widget_size_request_set(e->cur_tab->image, -1, -1); e->cur_tab->fit_window = ETK_TRUE; _ex_main_statusbar_zoom_update(e); }
/* main etk_prefs dialog */ void etk_prefs_show() { Etk_Widget *dialog; // initialize some widgets Etk_Widget *switch_button; Etk_Widget *notebook; /* main dialog to hold everything */ dialog = etk_dialog_new(); etk_window_title_set(ETK_WINDOW(dialog), _("Etk Preferences")); // set title - translatable etk_window_wmclass_set(ETK_WINDOW(dialog), "Etk Preferences", "Etk Preferences"); etk_signal_connect_swapped_by_code(ETK_OBJECT_DESTROYED_SIGNAL, ETK_OBJECT(dialog), ETK_CALLBACK(_etk_prefs_quit_cb), NULL); /* this will hold the current pref's contents */ notebook = etk_notebook_new(); etk_notebook_tabs_visible_set(ETK_NOTEBOOK(notebook), ETK_FALSE); /* Some buttons */ etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_CLOSE, ETK_RESPONSE_CLOSE); etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_APPLY, ETK_RESPONSE_APPLY); etk_dialog_button_add_from_stock(ETK_DIALOG(dialog), ETK_STOCK_DIALOG_OK, ETK_RESPONSE_OK); etk_signal_connect("response", ETK_OBJECT(dialog), ETK_CALLBACK(_etk_prefs_response_cb), dialog); /* button for switching pages */ switch_button = etk_button_new_with_label(_("Go to Engines page")); etk_signal_connect_by_code(ETK_BUTTON_CLICKED_SIGNAL, ETK_OBJECT(switch_button), ETK_CALLBACK(_etk_prefs_switch_cb), notebook); /* add the button into dialog action area */ etk_dialog_pack_widget_in_action_area(ETK_DIALOG(dialog), switch_button, ETK_BOX_END, ETK_BOX_EXPAND, 0); etk_container_border_width_set(ETK_CONTAINER(dialog), 5); etk_dialog_pack_in_main_area(ETK_DIALOG(dialog), notebook, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); /* create tabs */ etk_notebook_page_append(ETK_NOTEBOOK(notebook), "Theme", _etk_prefs_theme_tab_create()); etk_notebook_page_append(ETK_NOTEBOOK(notebook), "Engine", _etk_prefs_other_tab_create()); etk_widget_show_all(dialog); }
void evolve_gui_placeholder_replace(Evolve_Widget *parent, Evolve_Widget *child, Etk_Widget *placeholder) { if (!parent || !parent->type || !child || !child->type || !placeholder) return; if (!strcmp(parent->type, "hbox") || !strcmp(parent->type, "vbox")) { int pos; Etk_Box_Group group; char *group_str; char pos_str[5]; Evolve_Widget_Property *prop; etk_box_child_position_get(ETK_BOX(parent->widget), placeholder, &group, &pos); group_str = evolve_widget_packing_property_to_str_convert("box", "group", group); prop = calloc(1, sizeof(Evolve_Widget_Property)); prop->name = strdup("group"); prop->value = group_str; prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "group", prop); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(pos_str, sizeof(pos_str), "%d", pos); prop->name = strdup("position"); prop->value = strdup(pos_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "position", prop); } else if (!strcmp(parent->type, "toolbar")) { /* [TODO] [3] We are accessing the toolbar's internals, better way? */ int pos; char pos_str[5]; Evolve_Widget_Property *prop; etk_box_child_position_get(ETK_BOX(ETK_TOOLBAR(parent->widget)->box), placeholder, NULL, &pos); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(pos_str, sizeof(pos_str), "%d", pos); prop->name = strdup("position"); prop->value = strdup(pos_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "position", prop); } else if (!strcmp(parent->type, "table")) { int la, ra, ta, ba; char la_str[5], ra_str[5], ta_str[5], ba_str[5]; Evolve_Widget_Property *prop; etk_table_child_position_get(ETK_TABLE(parent->widget), placeholder, &la, &ra, &ta, &ba); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(la_str, sizeof(la_str), "%d", la); prop->name = strdup("left_attach"); prop->value = strdup(la_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "left_attach", prop); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(ra_str, sizeof(ra_str), "%d", ra); prop->name = strdup("right_attach"); prop->value = strdup(ra_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "right_attach", prop); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(ta_str, sizeof(ta_str), "%d", ta); prop->name = strdup("top_attach"); prop->value = strdup(ta_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "top_attach", prop); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(ba_str, sizeof(ba_str), "%d", ba); prop->name = strdup("bottom_attach"); prop->value = strdup(ba_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "bottom_attach", prop); } else if (!strcmp(parent->type, "notebook")) { int pos; char pos_str[5]; const char *label; Evolve_Widget_Property *prop; pos = etk_notebook_page_index_get(ETK_NOTEBOOK(parent->widget), placeholder); label = etk_notebook_page_tab_label_get(ETK_NOTEBOOK(parent->widget), pos); prop = calloc(1, sizeof(Evolve_Widget_Property)); snprintf(pos_str, sizeof(pos_str), "%d", pos); prop->name = strdup("position"); prop->value = strdup(pos_str); prop->type = EVOLVE_WIDGET_PROP_INT; eina_hash_add(child->packing_props, "position", prop); if (label) { prop = calloc(1, sizeof(Evolve_Widget_Property)); prop->name = strdup("tab_label"); prop->value = strdup(label); prop->type = EVOLVE_WIDGET_PROP_STR; eina_hash_add(child->packing_props, "tab_label", prop); } } etk_container_remove(placeholder); }