summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McDermott <pj@pehjota.net>2017-10-23 03:07:10 (EDT)
committer Patrick McDermott <pj@pehjota.net>2017-10-23 03:07:10 (EDT)
commit6a3d5c5bea2bcc463de8f2d4ad4eb6ba6fc8ac4f (patch)
tree65bdad97521979c1746d79e2551cd7babd334b37
parentf385f135108169de5de6e3c972846e93c816fe3e (diff)
downloadmarquee-6a3d5c5bea2bcc463de8f2d4ad4eb6ba6fc8ac4f.zip
marquee-6a3d5c5bea2bcc463de8f2d4ad4eb6ba6fc8ac4f.tar.gz
marquee-6a3d5c5bea2bcc463de8f2d4ad4eb6ba6fc8ac4f.tar.bz2
MqTabLabel: Remove tab list from popover
-rw-r--r--src/tab-label.c127
1 files changed, 1 insertions, 126 deletions
diff --git a/src/tab-label.c b/src/tab-label.c
index 01b866b..318c551 100644
--- a/src/tab-label.c
+++ b/src/tab-label.c
@@ -77,97 +77,6 @@ new_window_clicked_cb(GtkWidget G_GNUC_UNUSED *button, MqTabLabel *tab_label)
gtk_widget_hide(tab_label->popover);
}
-static void
-tab_list_button_toggled_cb(GtkToggleButton *toggle_button, GtkWidget *tab_list)
-{
- if (gtk_toggle_button_get_active(toggle_button)) {
- gtk_widget_show(tab_list);
- } else {
- gtk_widget_hide(tab_list);
- }
-}
-
-static void
-create_tree_model_recurse(MqTabPage *node, GtkTreeStore *tree_store,
- GtkTreeIter *parent_tree_iter)
-{
- GtkTreeIter tree_iter;
-
- for (; node; node = mq_tab_page_next(node)) {
- gtk_tree_store_append(tree_store, &tree_iter, parent_tree_iter);
- gtk_tree_store_set(tree_store, &tree_iter, 0,
- mq_tab_page_get_title(node), -1);
- create_tree_model_recurse(mq_tab_page_first_child(node),
- tree_store, &tree_iter);
- }
-}
-
-static GtkTreeModel *
-create_tree_model(MqTabLabel *tab_label)
-{
- GtkTreeStore *tree_store;
-
- tree_store = gtk_tree_store_new(1, G_TYPE_STRING);
-
- create_tree_model_recurse(mq_tab_page_root(tab_label->tab_page),
- tree_store, NULL);
-
- return GTK_TREE_MODEL(tree_store);
-}
-
-static void
-row_activated_cb(GtkTreeView G_GNUC_UNUSED *tree_view, GtkTreePath *tree_path,
- GtkTreeViewColumn G_GNUC_UNUSED *tree_view_column,
- MqTabLabel *tab_label)
-{
- gint *indices;
- gint depth;
-
- indices = gtk_tree_path_get_indices_with_depth(tree_path, &depth);
- g_assert(depth == 1);
- mq_window_set_current_tab(mq_tab_page_get_window(tab_label->tab_page),
- indices[0] + 1);
- gtk_widget_hide(tab_label->popover);
-}
-
-static GtkWidget *
-create_tab_list(MqTabLabel *tab_label)
-{
- GtkWidget *tree_view;
- GtkTreeSelection *tree_selection;
- GtkCellRenderer *cell_renderer;
- GtkWidget *scrolled_window;
-
- tree_view = gtk_tree_view_new_with_model(create_tree_model(tab_label));
- tree_selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
- gtk_tree_selection_set_mode(tree_selection, GTK_SELECTION_BROWSE);
- gtk_tree_selection_select_path(tree_selection,
- gtk_tree_path_new_from_indices(
- mq_window_get_current_tab(mq_tab_page_get_window(
- tab_label->tab_page)) - 1, -1));
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE);
- gtk_tree_view_set_activate_on_single_click(GTK_TREE_VIEW(tree_view),
- TRUE);
- gtk_tree_view_expand_all(GTK_TREE_VIEW(tree_view));
- gtk_tree_view_set_reorderable(GTK_TREE_VIEW(tree_view), TRUE);
- gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(tree_view), TRUE);
- g_signal_connect(tree_view, "row-activated",
- G_CALLBACK(row_activated_cb), tab_label);
-
- cell_renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view),
- -1, NULL, cell_renderer, "text", 0, NULL);
-
- scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_min_content_width(
- GTK_SCROLLED_WINDOW(scrolled_window), 400);
- gtk_scrolled_window_set_min_content_height(
- GTK_SCROLLED_WINDOW(scrolled_window), 200);
- gtk_container_add(GTK_CONTAINER(scrolled_window), tree_view);
-
- return scrolled_window;
-}
-
#define BUTTON_ROWS 2
#define BUTTON_COLS 4
#define NEW_BUTTON(Y, X, ICON, TOOLTIP) \
@@ -200,9 +109,6 @@ create_tab_popover(GtkWidget *widget, MqTabLabel *tab_label)
{
GtkWidget *button_grid;
GtkWidget *buttons[BUTTON_ROWS * BUTTON_COLS];
- GtkWidget *tab_list;
- GtkWidget *tab_list_scrolled_window;
- GtkWidget *box;
/* Set up button grid. */
button_grid = gtk_grid_new();
@@ -216,48 +122,17 @@ create_tab_popover(GtkWidget *widget, MqTabLabel *tab_label)
NEW_BUTTON(1, 0, "tab-new-symbolic", "New tab");
NEW_BUTTON(1, 1, "window-new", "New window");
NEW_BUTTON(1, 2, "edit-undo", "Undo close tab");
- NEW_TOGGLE(1, 3, "view-list-symbolic", "Tab list...");
CLICKED_CB(0, 0, G_CALLBACK(reload_tab_clicked_cb));
CLICKED_CB(1, 0, G_CALLBACK(new_tab_clicked_cb));
CLICKED_CB(1, 1, G_CALLBACK(new_window_clicked_cb));
- /* Set up the tab list. */
- tab_list = create_tab_list(tab_label);
-
- /* Set up the tab list scrolled window.
- *
- * The following GtkScrolledWindow widget has a hardcoded minimum size,
- * because there seems to be (in GTK+ versions before 3.22) no way to
- * set the natural size of GtkScrolledWindow and its GtkViewport.
- *
- * See tab-chrome.c for more information. */
- tab_list_scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_min_content_width(
- GTK_SCROLLED_WINDOW(tab_list_scrolled_window), 400);
- gtk_scrolled_window_set_min_content_height(
- GTK_SCROLLED_WINDOW(tab_list_scrolled_window), 200);
- gtk_container_add(GTK_CONTAINER(tab_list_scrolled_window), tab_list);
-
- /* Add tab list toggle button handler. */
- g_signal_connect(buttons[1 * BUTTON_COLS + 3], "toggled",
- G_CALLBACK(tab_list_button_toggled_cb),
- tab_list_scrolled_window);
-
- /* Set up the button rows box. */
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_pack_start(GTK_BOX(box), button_grid,
- TRUE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(box), tab_list_scrolled_window,
- TRUE, FALSE, 0);
-
/* Set up the popover. */
tab_label->popover = gtk_popover_new(widget);
- gtk_container_add(GTK_CONTAINER(tab_label->popover), box);
+ gtk_container_add(GTK_CONTAINER(tab_label->popover), button_grid);
/* NB: gtk_popover_popup() is new in GTK+ 3.22. */
gtk_widget_show_all(tab_label->popover);
- gtk_widget_hide(tab_list_scrolled_window);
}
#undef BUTTON_ROWS