void add_cartesian_columns (GtkTreeView *tree_view, cartesianMover* cm) { int k; int ADDITIONAL_COLUMNS = 2; char buffer[40]; GtkCellRenderer *renderer; GtkTreeViewColumn *column; //GtkTreeModel *myModel = gtk_tree_view_get_model (tree_view); //Sequence order renderer = gtk_cell_renderer_text_new (); GTK_CELL_RENDERER_TEXT(renderer)->editable=true; GTK_CELL_RENDERER_TEXT(renderer)->editable_set=true; renderer->mode=GTK_CELL_RENDERER_MODE_EDITABLE; g_signal_connect (renderer, "edited", G_CALLBACK (cm->edited_cartesian_sequence), cm); column = gtk_tree_view_column_new_with_attributes ("Sequence", renderer, "text", 0, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 80); gtk_tree_view_append_column (tree_view, column); //Sequence timing renderer = gtk_cell_renderer_text_new (); GTK_CELL_RENDERER_TEXT(renderer)->editable=true; GTK_CELL_RENDERER_TEXT(renderer)->editable_set=true; renderer->mode=GTK_CELL_RENDERER_MODE_EDITABLE; g_signal_connect (renderer, "edited", G_CALLBACK (cm->edited_cartesian_timing), cm); column = gtk_tree_view_column_new_with_attributes ("Timing", renderer, "text", 1, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 80); gtk_tree_view_append_column (tree_view, column); //Sequence description renderer = gtk_cell_renderer_text_new (); GTK_CELL_RENDERER_TEXT(renderer)->editable=false; GTK_CELL_RENDERER_TEXT(renderer)->editable_set=false; renderer->mode=GTK_CELL_RENDERER_MODE_EDITABLE; //fprintf(stderr, "Current add_columns received %d\n", NUMBER_OF_JOINTS); for (k =0; k < NUMBER_OF_CARTESIAN_COORDINATES; k++) { if(k<3) sprintf(buffer, "x%d", k); else sprintf(buffer, "th%d", k-3); column = gtk_tree_view_column_new_with_attributes (buffer, renderer, "text", k+ADDITIONAL_COLUMNS, NULL); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 40); //gtk_tree_view_column_set_sort_column_id (column, COLUMN_ADD_INFO); gtk_tree_view_append_column (tree_view, column); } }
static void cv_tree_init (chanview *cv) { GtkWidget *view, *win; GtkCellRenderer *renderer; GtkTreeViewColumn *col; int wid1, wid2; static const GtkTargetEntry dnd_src_target[] = { {"XCHAT_CHANVIEW", GTK_TARGET_SAME_APP, 75 } }; static const GtkTargetEntry dnd_dest_target[] = { {"XCHAT_USERLIST", GTK_TARGET_SAME_APP, 75 } }; win = gtk_scrolled_window_new (0, 0); /*gtk_container_set_border_width (GTK_CONTAINER (win), 1);*/ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (win), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (cv->box), win); gtk_widget_show (win); view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (cv->store)); gtk_widget_set_name (view, "xchat-tree"); if (cv->style) gtk_widget_set_style (view, cv->style); /*gtk_widget_modify_base (view, GTK_STATE_NORMAL, &colors[COL_BG]);*/ gtk_widget_set_can_focus (view, FALSE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE); if (prefs.pchat_gui_tab_dots) { gtk_tree_view_set_enable_tree_lines (GTK_TREE_VIEW (view), TRUE); } /* Indented channels with no server looks silly, but we still want expanders */ if (!prefs.pchat_gui_tab_server) { gtk_widget_style_get (view, "expander-size", &wid1, "horizontal-separator", &wid2, NULL); gtk_tree_view_set_level_indentation (GTK_TREE_VIEW (view), -wid1 - wid2); } gtk_container_add (GTK_CONTAINER (win), view); col = gtk_tree_view_column_new(); /* icon column */ if (cv->use_icons) { renderer = gtk_cell_renderer_pixbuf_new (); if (prefs.pchat_gui_compact) g_object_set (G_OBJECT (renderer), "ypad", 0, NULL); gtk_tree_view_column_pack_start(col, renderer, FALSE); gtk_tree_view_column_set_attributes (col, renderer, "pixbuf", COL_PIXBUF, NULL); } /* main column */ renderer = gtk_cell_renderer_text_new (); if (prefs.pchat_gui_compact) g_object_set (G_OBJECT (renderer), "ypad", 0, NULL); gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_attributes (col, renderer, "text", COL_NAME, "attributes", COL_ATTR, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view), col); g_signal_connect (G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (view))), "changed", G_CALLBACK (cv_tree_sel_cb), cv); g_signal_connect (G_OBJECT (view), "button-press-event", G_CALLBACK (cv_tree_click_cb), cv); g_signal_connect (G_OBJECT (view), "row-activated", G_CALLBACK (cv_tree_activated_cb), NULL); g_signal_connect (G_OBJECT (view), "scroll_event", G_CALLBACK (cv_tree_scroll_event_cb), NULL); gtk_drag_dest_set (view, GTK_DEST_DEFAULT_ALL, dnd_dest_target, 1, GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK); gtk_drag_source_set (view, GDK_BUTTON1_MASK, dnd_src_target, 1, GDK_ACTION_COPY); g_signal_connect (G_OBJECT (view), "drag_begin", G_CALLBACK (mg_drag_begin_cb), NULL); g_signal_connect (G_OBJECT (view), "drag_drop", G_CALLBACK (mg_drag_drop_cb), NULL); g_signal_connect (G_OBJECT (view), "drag_motion", G_CALLBACK (mg_drag_motion_cb), NULL); g_signal_connect (G_OBJECT (view), "drag_end", G_CALLBACK (mg_drag_end_cb), NULL); ((treeview *)cv)->tree = GTK_TREE_VIEW (view); ((treeview *)cv)->scrollw = win; gtk_widget_show (view); }
GtkCellRendererText* cast_GtkCellRendererText(GtkCellRenderer* cell_renderer) { return GTK_CELL_RENDERER_TEXT(cell_renderer); }
gboolean gimp_data_factory_view_construct (GimpDataFactoryView *factory_view, GimpViewType view_type, GimpDataFactory *factory, GimpContext *context, gint view_size, gint view_border_width, GimpMenuFactory *menu_factory, const gchar *menu_identifier, const gchar *ui_identifier, const gchar *action_group) { GimpContainerEditor *editor; gchar *str; g_return_val_if_fail (GIMP_IS_DATA_FACTORY_VIEW (factory_view), FALSE); g_return_val_if_fail (GIMP_IS_DATA_FACTORY (factory), FALSE); g_return_val_if_fail (view_size > 0 && view_size <= GIMP_VIEWABLE_MAX_PREVIEW_SIZE, FALSE); g_return_val_if_fail (view_border_width >= 0 && view_border_width <= GIMP_VIEW_MAX_BORDER_WIDTH, FALSE); factory_view->factory = factory; if (! gimp_container_editor_construct (GIMP_CONTAINER_EDITOR (factory_view), view_type, factory->container, context, view_size, view_border_width, menu_factory, menu_identifier, ui_identifier)) { return FALSE; } editor = GIMP_CONTAINER_EDITOR (factory_view); if (GIMP_IS_CONTAINER_TREE_VIEW (editor->view)) { GimpContainerTreeView *tree_view; tree_view = GIMP_CONTAINER_TREE_VIEW (editor->view); tree_view->name_cell->mode = GTK_CELL_RENDERER_MODE_EDITABLE; GTK_CELL_RENDERER_TEXT (tree_view->name_cell)->editable = TRUE; tree_view->editable_cells = g_list_prepend (tree_view->editable_cells, tree_view->name_cell); g_signal_connect (tree_view->name_cell, "edited", G_CALLBACK (gimp_data_factory_view_tree_name_edited), factory_view); } str = g_strdup_printf ("%s-edit", action_group); factory_view->edit_button = gimp_editor_add_action_button (GIMP_EDITOR (editor->view), action_group, str, NULL); g_free (str); if (factory_view->factory->data_new_func) { str = g_strdup_printf ("%s-new", action_group); factory_view->new_button = gimp_editor_add_action_button (GIMP_EDITOR (editor->view), action_group, str, NULL); g_free (str); } str = g_strdup_printf ("%s-duplicate", action_group); factory_view->duplicate_button = gimp_editor_add_action_button (GIMP_EDITOR (editor->view), action_group, str, NULL); g_free (str); str = g_strdup_printf ("%s-delete", action_group); factory_view->delete_button = gimp_editor_add_action_button (GIMP_EDITOR (editor->view), action_group, str, NULL); g_free (str); str = g_strdup_printf ("%s-refresh", action_group); factory_view->refresh_button = gimp_editor_add_action_button (GIMP_EDITOR (editor->view), action_group, str, NULL); g_free (str); gimp_container_view_enable_dnd (editor->view, GTK_BUTTON (factory_view->edit_button), factory->container->children_type); gimp_container_view_enable_dnd (editor->view, GTK_BUTTON (factory_view->duplicate_button), factory->container->children_type); gimp_container_view_enable_dnd (editor->view, GTK_BUTTON (factory_view->delete_button), factory->container->children_type); gimp_ui_manager_update (GIMP_EDITOR (editor->view)->ui_manager, editor); return TRUE; }
static GtkCellEditable * egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path, const GdkRectangle *background_area, const GdkRectangle *cell_area, GtkCellRendererState flags) { GtkCellRendererText *celltext; EggCellRendererKeys *keys; GdkDisplay *display; GdkSeat *seat; GtkWidget *label; GtkWidget *eventbox; GValue celltext_editable = {0}; celltext = GTK_CELL_RENDERER_TEXT (cell); keys = EGG_CELL_RENDERER_KEYS (cell); /* If the cell isn't editable we return NULL. */ g_value_init (&celltext_editable, G_TYPE_BOOLEAN); g_object_get_property (G_OBJECT (celltext), "editable", &celltext_editable); if (g_value_get_boolean (&celltext_editable) == FALSE) return NULL; g_return_val_if_fail (gtk_widget_get_window (widget) != NULL, NULL); display = gtk_widget_get_display (widget); seat = gdk_display_get_default_seat (display); if (gdk_seat_grab (seat, gtk_widget_get_window (widget), GDK_SEAT_CAPABILITY_ALL, FALSE, NULL, event, NULL, NULL) != GDK_GRAB_SUCCESS) return NULL; keys->grab_widget = widget; g_signal_connect (G_OBJECT (widget), "key_press_event", G_CALLBACK (grab_key_callback), keys); eventbox = g_object_new (pointless_eventbox_subclass_get_type (), NULL); keys->edit_widget = eventbox; g_object_add_weak_pointer (G_OBJECT (keys->edit_widget), (void**) &keys->edit_widget); label = gtk_label_new (NULL); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_modify_bg (eventbox, GTK_STATE_NORMAL, >k_widget_get_style (widget)->bg[GTK_STATE_SELECTED]); gtk_widget_modify_fg (label, GTK_STATE_NORMAL, >k_widget_get_style (widget)->fg[GTK_STATE_SELECTED]); gtk_label_set_text (GTK_LABEL (label), TOOLTIP_TEXT); gtk_container_add (GTK_CONTAINER (eventbox), label); g_object_set_data_full (G_OBJECT (keys->edit_widget), EGG_CELL_RENDERER_TEXT_PATH, g_strdup (path), g_free); gtk_widget_show_all (keys->edit_widget); g_signal_connect (G_OBJECT (keys->edit_widget), "unrealize", G_CALLBACK (ungrab_stuff), keys); keys->edit_key = keys->accel_key; return GTK_CELL_EDITABLE (keys->edit_widget); }
static void bt_settings_dialog_init_ui (const BtSettingsDialog * self) { GtkWidget *box, *scrolled_window, *pages; GtkCellRenderer *renderer; GtkListStore *store; GtkTreeIter tree_iter; gtk_widget_set_name (GTK_WIDGET (self), "buzztrax settings"); //gtk_widget_set_size_request(GTK_WIDGET(self),800,600); gtk_window_set_title (GTK_WINDOW (self), _("buzztrax settings")); // add dialog commision widgets (okay, cancel) gtk_dialog_add_buttons (GTK_DIALOG (self), _("_OK"), GTK_RESPONSE_ACCEPT, _("_Cancel"), GTK_RESPONSE_REJECT, NULL); gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_ACCEPT); // add widgets to the dialog content area box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 6); // add a list on the right and a notebook without tabs on the left scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_ETCHED_IN); self->priv->settings_list = GTK_TREE_VIEW (gtk_tree_view_new ()); gtk_tree_view_set_headers_visible (self->priv->settings_list, FALSE); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_insert_column_with_attributes (self->priv->settings_list, -1, NULL, renderer, "icon-name", COL_ICON_NAME, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1); gtk_tree_view_insert_column_with_attributes (self->priv->settings_list, -1, NULL, renderer, "text", COL_LABEL, NULL); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (self-> priv->settings_list), GTK_SELECTION_BROWSE); gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (self->priv->settings_list)); gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (scrolled_window), FALSE, FALSE, 0); g_signal_connect (self->priv->settings_list, "realize", G_CALLBACK (on_settings_list_realize), (gpointer) scrolled_window); g_signal_connect (self->priv->settings_list, "cursor-changed", G_CALLBACK (on_settings_list_cursor_changed), (gpointer) self); store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_LONG, G_TYPE_STRING); //-- append entries for settings pages gtk_list_store_append (store, &tree_iter); gtk_list_store_set (store, &tree_iter, COL_LABEL, _("Audio Devices"), COL_ID, BT_SETTINGS_PAGE_AUDIO_DEVICES, COL_ICON_NAME, "audio-card", -1); gtk_list_store_append (store, &tree_iter); gtk_list_store_set (store, &tree_iter, COL_LABEL, _("Directories"), COL_ID, BT_SETTINGS_PAGE_DIRECTORIES, COL_ICON_NAME, "folder", -1); gtk_list_store_append (store, &tree_iter); gtk_list_store_set (store, &tree_iter, COL_LABEL, _("Interaction Controller"), COL_ID, BT_SETTINGS_PAGE_INTERACTION_CONTROLLER, COL_ICON_NAME, "input-gaming", -1); gtk_list_store_append (store, &tree_iter); gtk_list_store_set (store, &tree_iter, COL_LABEL, _("Playback Controller"), COL_ID, BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER, COL_ICON_NAME, "media-playback-start", -1); gtk_list_store_append (store, &tree_iter); gtk_list_store_set (store, &tree_iter, COL_LABEL, _("Shortcuts"), COL_ID, BT_SETTINGS_PAGE_SHORTCUTS, COL_ICON_NAME, "input-keyboard", -1); gtk_list_store_append (store, &tree_iter); gtk_list_store_set (store, &tree_iter, COL_LABEL, _("User interface"), COL_ID, BT_SETTINGS_PAGE_UI, COL_ICON_NAME, "preferences-desktop-theme", -1); gtk_tree_view_set_model (self->priv->settings_list, GTK_TREE_MODEL (store)); g_object_unref (store); // drop with treeview // add notebook pages = gtk_notebook_new (); self->priv->settings_pages = GTK_NOTEBOOK (pages); gtk_widget_set_name (pages, "settings pages"); gtk_notebook_set_show_tabs (self->priv->settings_pages, FALSE); gtk_notebook_set_show_border (self->priv->settings_pages, FALSE); gtk_container_add (GTK_CONTAINER (box), pages); // add audio device page self->priv->audiodevices_page = bt_settings_page_audiodevices_new (pages); gtk_container_add (GTK_CONTAINER (self->priv->settings_pages), GTK_WIDGET (self->priv->audiodevices_page)); gtk_notebook_set_tab_label (GTK_NOTEBOOK (self->priv->settings_pages), gtk_notebook_get_nth_page (GTK_NOTEBOOK (self->priv->settings_pages), BT_SETTINGS_PAGE_AUDIO_DEVICES), gtk_label_new (_("Audio Devices"))); // add directories page self->priv->directories_page = bt_settings_page_directories_new (pages); gtk_container_add (GTK_CONTAINER (self->priv->settings_pages), GTK_WIDGET (self->priv->directories_page)); gtk_notebook_set_tab_label (GTK_NOTEBOOK (self->priv->settings_pages), gtk_notebook_get_nth_page (GTK_NOTEBOOK (self->priv->settings_pages), BT_SETTINGS_PAGE_DIRECTORIES), gtk_label_new (_("Directories"))); // add interaction controller page self->priv->interaction_controller_page = bt_settings_page_interaction_controller_new (pages); gtk_container_add (GTK_CONTAINER (self->priv->settings_pages), GTK_WIDGET (self->priv->interaction_controller_page)); gtk_notebook_set_tab_label (GTK_NOTEBOOK (self->priv->settings_pages), gtk_notebook_get_nth_page (GTK_NOTEBOOK (self->priv->settings_pages), BT_SETTINGS_PAGE_INTERACTION_CONTROLLER), gtk_label_new (_("Interaction Controller"))); // add playback controller page self->priv->playback_controller_page = bt_settings_page_playback_controller_new (pages); gtk_container_add (GTK_CONTAINER (self->priv->settings_pages), GTK_WIDGET (self->priv->playback_controller_page)); gtk_notebook_set_tab_label (GTK_NOTEBOOK (self->priv->settings_pages), gtk_notebook_get_nth_page (GTK_NOTEBOOK (self->priv->settings_pages), BT_SETTINGS_PAGE_PLAYBACK_CONTROLLER), gtk_label_new (_("Playback Controller"))); // add shortcuts pags self->priv->shortcuts_page = bt_settings_page_shortcuts_new (pages); gtk_container_add (GTK_CONTAINER (self->priv->settings_pages), GTK_WIDGET (self->priv->shortcuts_page)); gtk_notebook_set_tab_label (GTK_NOTEBOOK (self->priv->settings_pages), gtk_notebook_get_nth_page (GTK_NOTEBOOK (self->priv->settings_pages), BT_SETTINGS_PAGE_SHORTCUTS), gtk_label_new (_("Shortcuts"))); // add ui page self->priv->ui_page = bt_settings_page_ui_new (pages); gtk_container_add (GTK_CONTAINER (self->priv->settings_pages), GTK_WIDGET (self->priv->ui_page)); gtk_notebook_set_tab_label (GTK_NOTEBOOK (self->priv->settings_pages), gtk_notebook_get_nth_page (GTK_NOTEBOOK (self->priv->settings_pages), BT_SETTINGS_PAGE_UI), gtk_label_new (_("User Interface"))); /* TODO(ensonic): more settings * - misc * - initial song bpm (from, to) * - cpu monitor (view menu?) */ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), box, TRUE, TRUE, 0); }