static void global_vars_view_type_data_func (GtkTreeViewColumn *col, GtkCellRenderer *cell, GtkTreeModel *global_vars_model, GtkTreeIter *iter, gpointer user_data) { gboolean is_command = FALSE, is_internal = TRUE; /* Assertions */ g_return_if_fail (GTK_IS_CELL_RENDERER_TOGGLE (cell)); /* Check if it's internal */ gtk_tree_model_get (global_vars_model, iter, GLOBAL_VARS_MODEL_COL_IS_INTERNAL, &is_internal, -1); if (is_internal) { g_object_set (cell, "sensitive", FALSE, NULL); gtk_cell_renderer_toggle_set_activatable (GTK_CELL_RENDERER_TOGGLE (cell), FALSE); gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell), FALSE); } else { gtk_tree_model_get (global_vars_model, iter, GLOBAL_VARS_MODEL_COL_IS_COMMAND, &is_command, -1); g_object_set (cell, "sensitive", TRUE, NULL); gtk_cell_renderer_toggle_set_activatable (GTK_CELL_RENDERER_TOGGLE (cell), TRUE); gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell), is_command); } }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkCellRendererToggle_gtk_1cell_1renderer_1toggle_1set_1activatable ( JNIEnv* env, jclass cls, jlong _self, jboolean _setting ) { GtkCellRendererToggle* self; gboolean setting; // convert parameter self self = (GtkCellRendererToggle*) _self; // convert parameter setting setting = (gboolean) _setting; // call function gtk_cell_renderer_toggle_set_activatable(self, setting); // cleanup parameter self // cleanup parameter setting }
static GtkWidget * _gtk_user_list_dialog_create_tree(GtkWidget *widget) { GtkWidget *tree; GtkListStore *store; GtkTreeModel *model; GtkTreeViewColumn *column; GtkCellRenderer *renderer; /* create treeview & model */ tree = gtk_tree_view_new(); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE); gtk_tree_view_set_enable_search(GTK_TREE_VIEW(tree), FALSE); store = gtk_list_store_new(3, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING); model = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(store)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_USER_LIST_TREEVIEW_COLUMN_USERNAME, GTK_SORT_ASCENDING); gtk_tree_view_set_model(GTK_TREE_VIEW(tree), model); /* insert column to display checkbox */ column = gtk_tree_view_column_new(); renderer = gtk_cell_renderer_toggle_new(); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer), TRUE); g_signal_connect(G_OBJECT(renderer), "toggled", (GCallback)_gtk_user_list_dialog_tree_checkbox_toggled, widget); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_add_attribute(column, renderer, "active", GTK_USER_LIST_TREEVIEW_COLUMN_CHECKBOX); gtk_tree_view_insert_column(GTK_TREE_VIEW(tree), column, -1); /* insert column to display icon & text */ column = gtk_tree_view_column_new(); gtk_tree_view_column_set_title(column, "User"); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_column_pack_start(column, renderer, FALSE); gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", GTK_USER_LIST_TREEVIEW_COLUMN_PIXBUF); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(column, renderer, TRUE); gtk_tree_view_column_add_attribute(column, renderer, "text", GTK_USER_LIST_TREEVIEW_COLUMN_USERNAME); gtk_tree_view_insert_column(GTK_TREE_VIEW(tree), column, -1); /* free data */ g_object_unref(store); g_object_unref(model); return tree; }
static GtkWidget* do_todos (MaintainrProjectbox *item) { GtkListStore *model; GtkCellRenderer *renderer; GtkTreeViewColumn *col; GtkTreeSelection *selection; model = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_INT); item->priv->todos = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model)); gtk_widget_set_tooltip_text (item->priv->todos, "Press '+' to add an item, '-' to remove the selected one"); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (item->priv->todos), FALSE); gtk_tree_view_set_reorderable (GTK_TREE_VIEW (item->priv->todos), TRUE); renderer = gtk_cell_renderer_toggle_new (); gtk_cell_renderer_toggle_set_activatable (GTK_CELL_RENDERER_TOGGLE (renderer), TRUE); g_object_set (G_OBJECT (renderer), "yalign", 0, NULL); col = gtk_tree_view_column_new_with_attributes ("Check", renderer, "active", 0, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (item->priv->todos), col); g_signal_connect (renderer, "toggled", G_CALLBACK (todo_check_changed), item); renderer = gtk_cell_renderer_text_new (); g_object_set (G_OBJECT (renderer), "wrap-mode", PANGO_WRAP_WORD, "yalign", 0, NULL); g_object_set (G_OBJECT (renderer), "editable", TRUE, "wrap-width", 200, NULL); col = gtk_tree_view_column_new_with_attributes ("String", renderer, "text", 1, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (item->priv->todos), col); g_signal_connect (renderer, "edited", G_CALLBACK (todo_string_changed), item); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (item->priv->todos)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); g_signal_connect (item->priv->todos, "realize", G_CALLBACK (activate_focus_management), NULL); g_signal_connect (item->priv->todos, "focus-out-event", G_CALLBACK (unselect_all_todos), NULL); g_signal_connect (item->priv->todos, "key-press-event", G_CALLBACK (edit_todo_shortcuts), item); return item->priv->todos; }
static void _gui_styles_dialog_run (gboolean edit,const char *name,int imgid) { char title[512]; /* check if style exists */ if (name && (dt_styles_exists (name))==0) return; /* initialize the dialog */ dt_gui_styles_dialog_t *sd=(dt_gui_styles_dialog_t *)g_malloc (sizeof (dt_gui_styles_dialog_t)); sd->nameorig = g_strdup(name); if (edit) { sprintf (title,_("edit style")); g_strlcat (title, " \"", 512); g_strlcat(title, name, 512); g_strlcat(title, "\"", 512); sd->duplicate = gtk_check_button_new_with_label(_("duplicate style")); g_object_set (sd->duplicate, "tooltip-text", _("creates a duplicate of the style before applying changes"), (char *)NULL); } else { sd->imgid = imgid; sprintf (title,"%s",_("create new style")); sd->duplicate = NULL; } GtkWidget *window = dt_ui_main_window(darktable.gui->ui); GtkDialog *dialog = GTK_DIALOG (gtk_dialog_new_with_buttons (title, GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL)); GtkContainer *content_area = GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))); GtkWidget *alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0); gtk_alignment_set_padding (GTK_ALIGNMENT(alignment), 5, 5, 5, 5); gtk_container_add (content_area, alignment); GtkBox *box = GTK_BOX (gtk_vbox_new(FALSE, 5)); gtk_container_add (GTK_CONTAINER (alignment), GTK_WIDGET (box)); sd->name = gtk_entry_new(); g_object_set (sd->name, "tooltip-text", _("enter a name for the new style"), (char *)NULL); sd->description = gtk_entry_new(); g_object_set (sd->description, "tooltip-text", _("enter a description for the new style, this description is searchable"), (char *)NULL); /*set values*/ if (edit) { /* name */ gtk_entry_set_text(GTK_ENTRY(sd->name), name); /* description */ gchar *desc = dt_styles_get_description (name); if (desc) { gtk_entry_set_text (GTK_ENTRY (sd->description),desc); g_free (desc); } } gtk_box_pack_start (box,sd->name,FALSE,FALSE,0); gtk_box_pack_start (box,sd->description,FALSE,FALSE,0); /* create the list of items */ sd->items = GTK_TREE_VIEW (gtk_tree_view_new ()); GtkListStore *liststore = gtk_list_store_new (DT_STYLE_ITEMS_NUM_COLS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT); /* enabled */ GtkCellRenderer *renderer = gtk_cell_renderer_toggle_new (); gtk_cell_renderer_toggle_set_activatable (GTK_CELL_RENDERER_TOGGLE (renderer), TRUE); g_object_set_data (G_OBJECT (renderer), "column", (gint *)DT_STYLE_ITEMS_COL_ENABLED); g_signal_connect (renderer, "toggled", G_CALLBACK (_gui_styles_item_toggled), sd); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (sd->items), -1, _("include"), renderer, "active", DT_STYLE_ITEMS_COL_ENABLED, NULL); /* name */ renderer = gtk_cell_renderer_text_new (); g_object_set_data (G_OBJECT (renderer), "column", (gint *)DT_STYLE_ITEMS_COL_NAME); g_object_set (renderer, "xalign", 0.0, NULL); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (sd->items), -1, _("item"), renderer, "text", DT_STYLE_ITEMS_COL_NAME, NULL); gtk_tree_selection_set_mode (gtk_tree_view_get_selection(GTK_TREE_VIEW(sd->items)), GTK_SELECTION_SINGLE); gtk_tree_view_set_model (GTK_TREE_VIEW(sd->items), GTK_TREE_MODEL(liststore)); gtk_box_pack_start (box,GTK_WIDGET (sd->items),TRUE,TRUE,0); if (edit) gtk_box_pack_start (box,GTK_WIDGET (sd->duplicate),FALSE,FALSE,0); /* fill list with history items */ GtkTreeIter iter; if (edit) { /* get history items for named style and populate the items list */ GList *items = dt_styles_get_item_list (name, FALSE); if (items) { do { dt_style_item_t *item=(dt_style_item_t *)items->data; gtk_list_store_append (GTK_LIST_STORE(liststore), &iter); gtk_list_store_set (GTK_LIST_STORE(liststore), &iter, DT_STYLE_ITEMS_COL_ENABLED, TRUE, DT_STYLE_ITEMS_COL_NAME, item->name, DT_STYLE_ITEMS_COL_NUM, (guint)item->num, -1); g_free(item->name); g_free(item); } while ((items=g_list_next(items))); } } else { GList *items = dt_history_get_items (imgid,FALSE); if (items) { do { dt_history_item_t *item = (dt_history_item_t *)items->data; /* lookup history item module */ gboolean enabled = TRUE; dt_iop_module_t *module=NULL; GList *modules = g_list_first(darktable.develop->iop); if (modules) { GList *result = g_list_find_custom (modules, item->op, _g_list_find_module_by_name); // (dt_iop_module_t *)(modules->data); if( result ) { module = (dt_iop_module_t *)(result->data); enabled = (module->flags() & IOP_FLAGS_INCLUDE_IN_STYLES)?TRUE:FALSE; } } gchar name[256]= {0}; g_snprintf(name,256,"%s",item->name); gtk_list_store_append (GTK_LIST_STORE(liststore), &iter); gtk_list_store_set (GTK_LIST_STORE(liststore), &iter, DT_STYLE_ITEMS_COL_ENABLED, enabled, DT_STYLE_ITEMS_COL_NAME, name, DT_STYLE_ITEMS_COL_NUM, (guint)item->num, -1); g_free(item->op); g_free(item->name); g_free(item); } while ((items=g_list_next(items))); } else { dt_control_log(_("can't create style out of unaltered image")); return; } } g_object_unref (liststore); /* run dialog */ if (edit) g_signal_connect (dialog, "response", G_CALLBACK (_gui_styles_edit_style_response), sd); else g_signal_connect (dialog, "response", G_CALLBACK (_gui_styles_new_style_response), sd); gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_dialog_run(GTK_DIALOG(dialog)); }
static void setup_profile_pages (GtrPreferencesDialog *dlg) { GtkTreeViewColumn *name_column, *toggle_column; GtkCellRenderer *text_renderer, *toggle_renderer; GtkListStore *model; model = gtk_list_store_new (PROFILE_N_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_POINTER); gtk_tree_view_set_model (GTK_TREE_VIEW (dlg->priv->profile_treeview), GTK_TREE_MODEL (model)); g_object_unref (model); text_renderer = gtk_cell_renderer_text_new (); toggle_renderer = gtk_cell_renderer_toggle_new (); g_signal_connect (toggle_renderer, "toggled", G_CALLBACK (active_toggled_cb), dlg); gtk_cell_renderer_toggle_set_activatable (GTK_CELL_RENDERER_TOGGLE (toggle_renderer), TRUE); gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE (toggle_renderer), TRUE); name_column = gtk_tree_view_column_new_with_attributes (_("Profile"), text_renderer, "text", PROFILE_NAME_COLUMN, NULL); toggle_column = gtk_tree_view_column_new_with_attributes (_("Active"), toggle_renderer, "active", ACTIVE_PROFILE_COLUMN, NULL); gtk_tree_view_column_set_resizable (toggle_column, TRUE); gtk_tree_view_column_set_resizable (name_column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (dlg->priv->profile_treeview), name_column); gtk_tree_view_append_column (GTK_TREE_VIEW (dlg->priv->profile_treeview), toggle_column); gtk_tree_view_column_set_expand (name_column, TRUE); fill_profile_treeview (dlg, GTK_TREE_MODEL (model)); /* Connect the signals */ g_signal_connect (dlg->priv->add_button, "clicked", G_CALLBACK (add_button_clicked), dlg); g_signal_connect (dlg->priv->delete_button, "clicked", G_CALLBACK (delete_button_clicked), dlg); g_signal_connect (dlg->priv->edit_button, "clicked", G_CALLBACK (edit_button_clicked), dlg); }
void _fcitx_main_window_add_addon_page(FcitxMainWindow* self) { /* load addon */ FcitxAddon* addon; utarray_new(self->addons, &addonicd); FcitxAddonsLoad(self->addons); GtkWidget* vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); /* advance check box */ self->advancecheckbox = gtk_check_button_new_with_label(_("Advance")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->advancecheckbox), FALSE); g_signal_connect(G_OBJECT(self->advancecheckbox), "toggled", G_CALLBACK(_fcitx_main_window_checkbox_changed), self); /* filter entry */ self->filterentry = gtk_entry_new(); gtk_entry_set_icon_from_stock (GTK_ENTRY (self->filterentry), GTK_ENTRY_ICON_SECONDARY, GTK_STOCK_CLEAR); g_object_set(G_OBJECT(self->filterentry), "margin", 5, NULL); #if GTK_CHECK_VERSION(3,2,0) gtk_entry_set_placeholder_text(GTK_ENTRY (self->filterentry), _("Search Addon")); #endif g_signal_connect(G_OBJECT(self->filterentry), "icon-press", G_CALLBACK (icon_press_cb), NULL); gtk_box_pack_start(GTK_BOX(vbox), self->filterentry, FALSE, TRUE, 5); /* list view */ self->addonstore = gtk_list_store_new(N_COLUMNS, G_TYPE_POINTER); for (addon = (FcitxAddon *) utarray_front(self->addons); addon != NULL; addon = (FcitxAddon *) utarray_next(self->addons, addon)) { GtkTreeIter iter; gtk_list_store_append(self->addonstore, &iter); gtk_list_store_set(self->addonstore, &iter, LIST_ADDON, addon, -1); } self->filtermodel = gtk_tree_model_filter_new(GTK_TREE_MODEL(self->addonstore), NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(self->filtermodel), (GtkTreeModelFilterVisibleFunc) _filter_addon_func, self, NULL); self->addonview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(self->filtermodel)); /* add column check box */ self->togglecell = gtk_cell_renderer_toggle_new(); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(self->togglecell), FALSE); self->checkboxcolumn = gtk_tree_view_column_new_with_attributes("Enable", self->togglecell, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(self->addonview), self->checkboxcolumn); gtk_cell_layout_set_cell_data_func(GTK_CELL_LAYOUT(self->checkboxcolumn), self->togglecell, _fcitx_main_window_enabled_data_func, NULL, NULL); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(self->togglecell), FALSE); /* add column text */ GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes("Name", renderer, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(self->addonview), column); gtk_cell_layout_set_cell_data_func(GTK_CELL_LAYOUT(column), renderer, _fcitx_main_window_name_data_func, NULL, NULL); /* add addon list to vbox */ GtkWidget* swin = gtk_scrolled_window_new(NULL, NULL); g_object_set(swin, "hscrollbar-policy", GTK_POLICY_NEVER, NULL); g_object_set(self->addonview, "headers-visible", FALSE, NULL); gtk_container_add(GTK_CONTAINER(swin), self->addonview); gtk_box_pack_start(GTK_BOX(vbox), swin, TRUE, TRUE, 0); g_object_set(G_OBJECT(swin), "margin-left", 5, "margin-right", 5, "shadow-type", GTK_SHADOW_IN, NULL); g_signal_connect(G_OBJECT(self->togglecell), "toggled", G_CALLBACK(_fcitx_main_window_toggled_cb), GTK_TREE_MODEL(self->addonstore)); gtk_box_pack_start(GTK_BOX(vbox), self->advancecheckbox, FALSE, TRUE, 0); g_object_set(G_OBJECT(self->advancecheckbox), "margin-left", 5, "margin-right", 5, NULL); /* configure button */ GtkWidget* hbuttonbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start(GTK_BOX(vbox), hbuttonbox, FALSE, TRUE, 0); g_object_set(G_OBJECT(hbuttonbox), "margin", 5, NULL); self->button = gtk_button_new_with_label(_("Configure")); gtk_widget_set_sensitive(self->button, FALSE); gtk_button_set_image(GTK_BUTTON(self->button), gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_BUTTON)); gtk_box_pack_start(GTK_BOX(hbuttonbox), self->button, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(self->button), "clicked", G_CALLBACK(_fcitx_main_window_configure_button_clicked), self); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self->addonview)); gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE); g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(_fcitx_main_window_addon_selection_changed), self); g_signal_connect(G_OBJECT(self->filterentry), "changed", G_CALLBACK(_fcitx_main_window_filtertext_changed), self); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(self->filtermodel)); _fcitx_main_window_add_page(self, _("Addon"), vbox, GTK_STOCK_ADD); }
void _fcitx_main_window_checkbox_changed(GtkToggleButton* button, gpointer user_data) { FcitxMainWindow* self = user_data; gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(self->togglecell), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->advancecheckbox))); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(self->filtermodel)); }
int dt_gui_hist_dialog_new(dt_gui_hist_dialog_t *d, int imgid, gboolean iscopy) { int res; GtkWidget *window = dt_ui_main_window(darktable.gui->ui); GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new_with_buttons( _("select parts"), GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, _("_cancel"), GTK_RESPONSE_CANCEL, _("select _all"), GTK_RESPONSE_YES, _("select _none"), GTK_RESPONSE_NONE, _("_ok"), GTK_RESPONSE_OK, NULL)); #ifdef GDK_WINDOWING_QUARTZ dt_osx_disallow_fullscreen(GTK_WIDGET(dialog)); #endif GtkContainer *content_area = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))); GtkBox *box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 3)); gtk_widget_set_margin_start(GTK_WIDGET(box), DT_PIXEL_APPLY_DPI(5)); gtk_widget_set_margin_end(GTK_WIDGET(box), DT_PIXEL_APPLY_DPI(5)); gtk_widget_set_margin_top(GTK_WIDGET(box), DT_PIXEL_APPLY_DPI(5)); gtk_widget_set_margin_bottom(GTK_WIDGET(box), DT_PIXEL_APPLY_DPI(5)); gtk_container_add(content_area, GTK_WIDGET(box)); /* create the list of items */ d->items = GTK_TREE_VIEW(gtk_tree_view_new()); GtkListStore *liststore = gtk_list_store_new(DT_HIST_ITEMS_NUM_COLS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT); /* enabled */ GtkCellRenderer *renderer = gtk_cell_renderer_toggle_new(); gtk_cell_renderer_toggle_set_activatable(GTK_CELL_RENDERER_TOGGLE(renderer), TRUE); g_object_set_data(G_OBJECT(renderer), "column", (gint *)DT_HIST_ITEMS_COL_ENABLED); g_signal_connect(renderer, "toggled", G_CALLBACK(_gui_hist_item_toggled), d); gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(d->items), -1, _("include"), renderer, "active", DT_HIST_ITEMS_COL_ENABLED, NULL); /* name */ renderer = gtk_cell_renderer_text_new(); g_object_set_data(G_OBJECT(renderer), "column", (gint *)DT_HIST_ITEMS_COL_NAME); g_object_set(renderer, "xalign", 0.0, (gchar *)0); gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(d->items), -1, _("item"), renderer, "text", DT_HIST_ITEMS_COL_NAME, NULL); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(d->items)), GTK_SELECTION_SINGLE); gtk_tree_view_set_model(GTK_TREE_VIEW(d->items), GTK_TREE_MODEL(liststore)); gtk_box_pack_start(box, GTK_WIDGET(d->items), TRUE, TRUE, 0); /* fill list with history items */ GtkTreeIter iter; GList *items = dt_history_get_items(imgid, FALSE); if(items) { do { dt_history_item_t *item = (dt_history_item_t *)items->data; gtk_list_store_append(GTK_LIST_STORE(liststore), &iter); gtk_list_store_set(GTK_LIST_STORE(liststore), &iter, DT_HIST_ITEMS_COL_ENABLED, iscopy ? TRUE : _gui_is_set(d->selops, item->num), DT_HIST_ITEMS_COL_NAME, item->name, DT_HIST_ITEMS_COL_NUM, (guint)item->num, -1); } while((items = g_list_next(items))); g_list_free_full(items, dt_history_item_free); } else { dt_control_log(_("can't copy history out of unaltered image")); return GTK_RESPONSE_CANCEL; } g_object_unref(liststore); g_signal_connect(dialog, "response", G_CALLBACK(_gui_hist_copy_response), d); gtk_widget_show_all(GTK_WIDGET(dialog)); while(1) { res = gtk_dialog_run(GTK_DIALOG(dialog)); if(res == GTK_RESPONSE_CANCEL || res == GTK_RESPONSE_DELETE_EVENT || res == GTK_RESPONSE_OK) break; } gtk_widget_destroy(GTK_WIDGET(dialog)); return res; }
void ags_automation_toolbar_init(AgsAutomationToolbar *automation_toolbar) { GtkMenuToolButton *menu_tool_button; GtkMenu *menu; GtkLabel *label; GtkCellRenderer *cell_renderer; automation_toolbar->position = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_JUMP_TO, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->position, "position cursor\0", NULL); automation_toolbar->edit = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); automation_toolbar->selected_edit_mode = automation_toolbar->edit; gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->edit, "edit automation\0", NULL); automation_toolbar->clear = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); automation_toolbar->select = g_object_new(GTK_TYPE_TOGGLE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_SELECT_ALL, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->select, "select automation\0", NULL); automation_toolbar->copy = (GtkButton *) g_object_new(GTK_TYPE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, automation_toolbar->copy, "copy automation\0", NULL); automation_toolbar->cut = (GtkButton *) g_object_new(GTK_TYPE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_CUT, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, automation_toolbar->cut, "cut automation\0", NULL); automation_toolbar->paste = (GtkButton *) g_object_new(GTK_TYPE_BUTTON, "image\0", gtk_image_new_from_stock(GTK_STOCK_PASTE, GTK_ICON_SIZE_LARGE_TOOLBAR), "relief\0", GTK_RELIEF_NONE, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, automation_toolbar->paste, "paste automation\0", NULL); /* */ automation_toolbar->zoom_history = 4; label = gtk_label_new("zoom\0"); gtk_container_add(GTK_CONTAINER(automation_toolbar), label); automation_toolbar->zoom = ags_zoom_combo_box_new(); gtk_combo_box_set_active(automation_toolbar->zoom, 4); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->zoom, NULL, NULL); /* */ label = gtk_label_new("port\0"); gtk_container_add(GTK_CONTAINER(automation_toolbar), label); automation_toolbar->port = gtk_combo_box_new(); cell_renderer = gtk_cell_renderer_toggle_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, "active\0", 0, NULL); gtk_cell_renderer_toggle_set_activatable(cell_renderer, TRUE); cell_renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, FALSE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(automation_toolbar->port), cell_renderer, "text\0", 1, NULL); gtk_toolbar_append_widget((GtkToolbar *) automation_toolbar, (GtkWidget *) automation_toolbar->port, NULL, NULL); }