/* * Main window * * Copyright (C) 2017 Patrick McDermott * * This file is part of Marquee. * * Marquee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Marquee is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Marquee. If not, see . */ #include #include #include "window.h" #include "tab.h" static void add_tab(MqWindow *window, gchar *uri, gint position) { MqTab *tab; tab = mq_tab_new(uri); /* TODO: Set tab label (container widget with icon and title) */ position = gtk_notebook_insert_page(GTK_NOTEBOOK(window->gtk_notebook), mq_tab_get_container(tab), NULL, position); } MqWindow * mq_window_new(gchar **uris) { MqWindow *window; guint i; window = malloc(sizeof(*window)); window->gtk_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_resize(GTK_WINDOW(window->gtk_window), 1024, 768); /* TODO: Don't quit on window close */ g_signal_connect(window->gtk_window, "destroy", G_CALLBACK(gtk_main_quit), NULL); window->gtk_notebook = gtk_notebook_new(); gtk_notebook_set_scrollable(GTK_NOTEBOOK(window->gtk_notebook), TRUE); gtk_container_add(GTK_CONTAINER(window->gtk_window), window->gtk_notebook); if (uris && uris[0]) { for (i = 0; uris && uris[i]; ++i) { add_tab(window, uris[i], -1); } } else { add_tab(window, "about:new", -1); } gtk_widget_show_all(window->gtk_window); return window; }