/* * Tab * * 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 . */ typedef struct MqTab MqTab; #ifndef MQ_TAB_H #define MQ_TAB_H #include #include "application.h" #include "window.h" #include "tab-chrome.h" #include "web-view.h" struct MqTab { MqTab *root; MqTab *parent; MqTab *prev; MqTab *next; MqTab *first_child; MqTab *last_child; guint position; guint tree_size; MqApplication *application; MqWindow *window; GtkWidget *container; MqTabChrome *chrome; GtkWidget *tab; GtkWidget *tab_image; GtkWidget *tab_label; const gchar *title; WebKitWebView *web_view; GtkWidget *popover; gboolean scrolling; gchar *scrolled_title; }; MqTab * mq_tab_new(const gchar *uri, MqTab *source); MqTab * mq_tab_new_relative(const gchar *uri, MqTab *source); MqTab * mq_tab_new_root(MqWindow *window); void mq_tab_quit(MqTab *tab); MqApplication * mq_tab_get_application(MqTab *tab); MqWindow * mq_tab_get_window(MqTab *tab); void mq_tab_update_position(MqTab *tab, guint position); guint mq_tab_get_position(MqTab *tab); guint mq_tab_get_tree_size(MqTab *tab); const gchar * mq_tab_get_title(MqTab *tab); MqTab * mq_tab_seek(MqTab *node, guint position); void mq_tab_scroll_tab_labels(MqTab *root); void mq_tab_begin_scrolling_tab_labels(MqTab *root); void mq_tab_end_scrolling_tab_labels(MqTab *root); #endif