Dooble
Loading...
Searching...
No Matches
dooble_tab_bar.h
1/*
2** Copyright (c) 2008 - present, Alexis Megas.
3** All rights reserved.
4**
5** Redistribution and use in source and binary forms, with or without
6** modification, are permitted provided that the following conditions
7** are met:
8** 1. Redistributions of source code must retain the above copyright
9** notice, this list of conditions and the following disclaimer.
10** 2. Redistributions in binary form must reproduce the above copyright
11** notice, this list of conditions and the following disclaimer in the
12** documentation and/or other materials provided with the distribution.
13** 3. The name of the author may not be used to endorse or promote products
14** derived from Dooble without specific prior written permission.
15**
16** DOOBLE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25** DOOBLE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*/
27
28#ifndef dooble_tab_bar_h
29#define dooble_tab_bar_h
30
31#include <QTabBar>
32
33class QToolButton;
34class dooble;
35
36class dooble_tab_bar: public QTabBar
37{
38 Q_OBJECT
39
40 public:
41 dooble_tab_bar(QWidget *parent);
42 void set_corner_widget(QWidget *widget);
43
44 protected:
45 QSize tabSizeHint(int index) const;
46 void hideEvent(QHideEvent *event);
47 void showEvent(QShowEvent *event);
48 void tabLayoutChange(void);
49
50 private:
51 QToolButton *m_next_tool_button;
52 QToolButton *m_previous_tool_button;
53 QWidget *m_corner_widget;
54 bool is_private(void) const;
55 void mouseDoubleClickEvent(QMouseEvent *event);
56 void prepare_icons(void);
57 void prepare_style_sheets(void);
58
59 private slots:
60 void slot_anonymous_tab_headers(void);
61 void slot_application_locked(void);
62 void slot_clone_tab(void);
63 void slot_close_other_tabs(void);
64 void slot_close_tab(void);
65 void slot_decouple_tab(void);
66 void slot_hide_location_frame(void);
67 void slot_javascript(void);
68 void slot_next_tab(void);
69 void slot_open_tab_as_new_private_window(void);
70 void slot_open_tab_as_new_window(void);
71 void slot_previous_tab(void);
72 void slot_reload(void);
73 void slot_reload_periodically(void);
74 void slot_settings_applied(void);
75 void slot_show_context_menu(const QPoint &point);
76 void slot_web_plugins(void);
77 void slot_webgl(void);
78
79 signals:
80 void anonymous_tab_headers(bool state);
81 void application_locked(bool state, dooble *d);
82 void clone_tab(int index);
83 void decouple_tab(int index);
84 void new_tab(void);
85 void open_tab_as_new_private_window(int index);
86 void open_tab_as_new_window(int index);
87 void reload_tab(int index);
88 void reload_tab_periodically(int index, int seconds);
89 void set_visible_corner_button(bool state);
90 void show_corner_widget(bool state);
91};
92
93#endif
Definition dooble_tab_bar.h:37
Definition dooble.h:76