GtkWidget* mainwindow_get_terminal_at(int index) { GtkWidget *page = gtk_notebook_get_nth_page(tabbar, index); GtkWidget *term = NULL; GList *children = gtk_container_get_children(GTK_CONTAINER(page)); if (conf_get_scrollbar() == POS_LEFT) { term = g_list_nth_data(children, 1); } else { term = g_list_nth_data(children, 0); } return term; }
void mainwindow_create_tab(void) { GtkWidget* tmp_term = build_term(); GtkVScrollbar *sbar= NULL; GtkHBox *tmp_box = GTK_HBOX(gtk_hbox_new(FALSE, 0)); if (conf_get_scrollbar() == -1) gtk_box_pack_start(GTK_BOX(tmp_box), tmp_term, TRUE, TRUE, 0); else if (conf_get_scrollbar() == POS_LEFT) { sbar = GTK_VSCROLLBAR(gtk_vscrollbar_new(vte_terminal_get_adjustment( VTE_TERMINAL(tmp_term)))); gtk_box_pack_start(GTK_BOX(tmp_box), GTK_WIDGET(sbar), FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(tmp_box), GTK_WIDGET(tmp_term), TRUE, TRUE, 0); } else // (conf_get_scrollbar() == POS_RIGHT) { sbar = GTK_VSCROLLBAR(gtk_vscrollbar_new(vte_terminal_get_adjustment( VTE_TERMINAL(tmp_term)))); gtk_box_pack_start(GTK_BOX(tmp_box), GTK_WIDGET(tmp_term), TRUE, TRUE, 0); gtk_box_pack_end(GTK_BOX(tmp_box), GTK_WIDGET(sbar), FALSE, FALSE, 0); } char buffer [100]; sprintf(buffer, "%s %d", conf_get_term_name(), activetab + 1); GtkLabel* tmp_label = GTK_LABEL(gtk_label_new(buffer)); if (conf_get_opacity() < 100) { if (screen_is_composited) { vte_terminal_set_background_transparent(VTE_TERMINAL(tmp_term), FALSE); vte_terminal_set_opacity(VTE_TERMINAL(tmp_term), conf_get_opacity()/100 * 0xffff); } else { vte_terminal_set_background_saturation(VTE_TERMINAL(tmp_term), 1.0 - conf_get_opacity()/100); if (conf_get_bg_image() == NULL) vte_terminal_set_background_transparent(VTE_TERMINAL(tmp_term), TRUE); } } if (conf_get_opacity() < 100 && screen_is_composited) { vte_terminal_set_background_transparent(VTE_TERMINAL(tmp_term), FALSE); vte_terminal_set_opacity(VTE_TERMINAL(tmp_term), conf_get_opacity()/100 * 0xffff); } g_signal_connect(G_OBJECT(tmp_term), "window-title-changed", G_CALLBACK(mainwindow_window_title_changed), tmp_label); g_array_append_val(tabs, tmp_term); tabcount++; gtk_widget_show_all(GTK_WIDGET(tmp_box)); gtk_notebook_append_page(tabbar, GTK_WIDGET(tmp_box), GTK_WIDGET(tmp_label)); if (conf_get_tab_fill()) gtk_container_child_set(GTK_CONTAINER(tabbar), GTK_WIDGET(tmp_box), "tab-expand", TRUE, "tab-fill", TRUE, NULL); if (conf_get_show_tab() == TABS_ONE&& tabcount > 1) gtk_notebook_set_show_tabs(tabbar, TRUE); activetab = tabcount - 1; gtk_notebook_set_current_page(tabbar, activetab); }