Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/styles/qgtkstyle_p.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||||||||
9 | - | |||||||||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||||||||
11 | - | |||||||||||||||||||||||||||||||
12 | namespace { namespace Q_QGS_styleScheduler { typedef QGtkStyleUpdateScheduler Type; QBasicAtomicInt guard = { QtGlobalStatic::Uninitialized }; __attribute__((visibility("hidden"))) __inline__ Type *innerFunction() { struct HolderBase { ~HolderBase() noexcept { if (guard.load() == QtGlobalStatic::Initialized
never executed: }guard.store(QtGlobalStatic::Destroyed); never executed: }; static struct Holder : public HolderBase { Type value; Holder() noexcept(noexcept(Type ())) : value () { guard.store(QtGlobalStatic::Initialized); } } holder; returnend of block never executed: &holder.value;return &holder.value; never executed: } } } static QGlobalStatic<QGtkStyleUpdateScheduler, Q_QGS_styleScheduler::innerFunction, Q_QGS_styleScheduler::guard> styleScheduler;return &holder.value; | 0 | ||||||||||||||||||||||||||||||
13 | - | |||||||||||||||||||||||||||||||
14 | Ptr_gtk_container_forall QGtkStylePrivate::gtk_container_forall = 0; | - | ||||||||||||||||||||||||||||||
15 | Ptr_gtk_init QGtkStylePrivate::gtk_init = 0; | - | ||||||||||||||||||||||||||||||
16 | Ptr_gtk_style_attach QGtkStylePrivate::gtk_style_attach = 0; | - | ||||||||||||||||||||||||||||||
17 | Ptr_gtk_window_new QGtkStylePrivate::gtk_window_new = 0; | - | ||||||||||||||||||||||||||||||
18 | Ptr_gtk_widget_destroy QGtkStylePrivate::gtk_widget_destroy = 0; | - | ||||||||||||||||||||||||||||||
19 | Ptr_gtk_widget_realize QGtkStylePrivate::gtk_widget_realize = 0; | - | ||||||||||||||||||||||||||||||
20 | Ptr_gtk_widget_set_default_direction QGtkStylePrivate::gtk_widget_set_default_direction = 0; | - | ||||||||||||||||||||||||||||||
21 | Ptr_gtk_widget_modify_color QGtkStylePrivate::gtk_widget_modify_fg = 0; | - | ||||||||||||||||||||||||||||||
22 | Ptr_gtk_widget_modify_color QGtkStylePrivate::gtk_widget_modify_bg = 0; | - | ||||||||||||||||||||||||||||||
23 | Ptr_gtk_arrow_new QGtkStylePrivate::gtk_arrow_new = 0; | - | ||||||||||||||||||||||||||||||
24 | Ptr_gtk_menu_item_new_with_label QGtkStylePrivate::gtk_menu_item_new_with_label = 0; | - | ||||||||||||||||||||||||||||||
25 | Ptr_gtk_check_menu_item_new_with_label QGtkStylePrivate::gtk_check_menu_item_new_with_label = 0; | - | ||||||||||||||||||||||||||||||
26 | Ptr_gtk_menu_bar_new QGtkStylePrivate::gtk_menu_bar_new = 0; | - | ||||||||||||||||||||||||||||||
27 | Ptr_gtk_menu_new QGtkStylePrivate::gtk_menu_new = 0; | - | ||||||||||||||||||||||||||||||
28 | Ptr_gtk_button_new QGtkStylePrivate::gtk_button_new = 0; | - | ||||||||||||||||||||||||||||||
29 | Ptr_gtk_tool_button_new QGtkStylePrivate::gtk_tool_button_new = 0; | - | ||||||||||||||||||||||||||||||
30 | Ptr_gtk_hbutton_box_new QGtkStylePrivate::gtk_hbutton_box_new = 0; | - | ||||||||||||||||||||||||||||||
31 | Ptr_gtk_check_button_new QGtkStylePrivate::gtk_check_button_new = 0; | - | ||||||||||||||||||||||||||||||
32 | Ptr_gtk_radio_button_new QGtkStylePrivate::gtk_radio_button_new = 0; | - | ||||||||||||||||||||||||||||||
33 | Ptr_gtk_spin_button_new QGtkStylePrivate::gtk_spin_button_new = 0; | - | ||||||||||||||||||||||||||||||
34 | Ptr_gtk_frame_new QGtkStylePrivate::gtk_frame_new = 0; | - | ||||||||||||||||||||||||||||||
35 | Ptr_gtk_expander_new QGtkStylePrivate::gtk_expander_new = 0; | - | ||||||||||||||||||||||||||||||
36 | Ptr_gtk_statusbar_new QGtkStylePrivate::gtk_statusbar_new = 0; | - | ||||||||||||||||||||||||||||||
37 | Ptr_gtk_entry_new QGtkStylePrivate::gtk_entry_new = 0; | - | ||||||||||||||||||||||||||||||
38 | Ptr_gtk_hscale_new QGtkStylePrivate::gtk_hscale_new = 0; | - | ||||||||||||||||||||||||||||||
39 | Ptr_gtk_vscale_new QGtkStylePrivate::gtk_vscale_new = 0; | - | ||||||||||||||||||||||||||||||
40 | Ptr_gtk_hscrollbar_new QGtkStylePrivate::gtk_hscrollbar_new = 0; | - | ||||||||||||||||||||||||||||||
41 | Ptr_gtk_vscrollbar_new QGtkStylePrivate::gtk_vscrollbar_new = 0; | - | ||||||||||||||||||||||||||||||
42 | Ptr_gtk_scrolled_window_new QGtkStylePrivate::gtk_scrolled_window_new = 0; | - | ||||||||||||||||||||||||||||||
43 | Ptr_gtk_notebook_new QGtkStylePrivate::gtk_notebook_new = 0; | - | ||||||||||||||||||||||||||||||
44 | Ptr_gtk_toolbar_new QGtkStylePrivate::gtk_toolbar_new = 0; | - | ||||||||||||||||||||||||||||||
45 | Ptr_gtk_toolbar_insert QGtkStylePrivate::gtk_toolbar_insert = 0; | - | ||||||||||||||||||||||||||||||
46 | Ptr_gtk_separator_tool_item_new QGtkStylePrivate::gtk_separator_tool_item_new = 0; | - | ||||||||||||||||||||||||||||||
47 | Ptr_gtk_tree_view_new QGtkStylePrivate::gtk_tree_view_new = 0; | - | ||||||||||||||||||||||||||||||
48 | Ptr_gtk_combo_box_new QGtkStylePrivate::gtk_combo_box_new = 0; | - | ||||||||||||||||||||||||||||||
49 | Ptr_gtk_combo_box_entry_new QGtkStylePrivate::gtk_combo_box_entry_new = 0; | - | ||||||||||||||||||||||||||||||
50 | Ptr_gtk_progress_bar_new QGtkStylePrivate::gtk_progress_bar_new = 0; | - | ||||||||||||||||||||||||||||||
51 | Ptr_gtk_container_add QGtkStylePrivate::gtk_container_add = 0; | - | ||||||||||||||||||||||||||||||
52 | Ptr_gtk_menu_shell_append QGtkStylePrivate::gtk_menu_shell_append = 0; | - | ||||||||||||||||||||||||||||||
53 | Ptr_gtk_range_get_adjustment QGtkStylePrivate::gtk_range_get_adjustment = 0; | - | ||||||||||||||||||||||||||||||
54 | Ptr_gtk_range_set_adjustment QGtkStylePrivate::gtk_range_set_adjustment = 0; | - | ||||||||||||||||||||||||||||||
55 | Ptr_gtk_range_set_inverted QGtkStylePrivate::gtk_range_set_inverted = 0; | - | ||||||||||||||||||||||||||||||
56 | Ptr_gtk_icon_factory_lookup_default QGtkStylePrivate::gtk_icon_factory_lookup_default = 0; | - | ||||||||||||||||||||||||||||||
57 | Ptr_gtk_icon_theme_get_default QGtkStylePrivate::gtk_icon_theme_get_default = 0; | - | ||||||||||||||||||||||||||||||
58 | Ptr_gtk_widget_get_style QGtkStylePrivate::gtk_widget_get_style = 0; | - | ||||||||||||||||||||||||||||||
59 | Ptr_gtk_widget_style_get QGtkStylePrivate::gtk_widget_style_get = 0; | - | ||||||||||||||||||||||||||||||
60 | Ptr_gtk_icon_set_render_icon QGtkStylePrivate::gtk_icon_set_render_icon = 0; | - | ||||||||||||||||||||||||||||||
61 | Ptr_gtk_fixed_new QGtkStylePrivate::gtk_fixed_new = 0; | - | ||||||||||||||||||||||||||||||
62 | Ptr_gtk_tree_view_column_new QGtkStylePrivate::gtk_tree_view_column_new = 0; | - | ||||||||||||||||||||||||||||||
63 | Ptr_gtk_tree_view_get_column QGtkStylePrivate::gtk_tree_view_get_column = 0; | - | ||||||||||||||||||||||||||||||
64 | Ptr_gtk_tree_view_append_column QGtkStylePrivate::gtk_tree_view_append_column = 0; | - | ||||||||||||||||||||||||||||||
65 | Ptr_gtk_adjustment_configure QGtkStylePrivate::gtk_adjustment_configure = 0; | - | ||||||||||||||||||||||||||||||
66 | Ptr_gtk_adjustment_new QGtkStylePrivate::gtk_adjustment_new = 0; | - | ||||||||||||||||||||||||||||||
67 | Ptr_gtk_menu_item_set_submenu QGtkStylePrivate::gtk_menu_item_set_submenu = 0; | - | ||||||||||||||||||||||||||||||
68 | Ptr_gtk_settings_get_default QGtkStylePrivate::gtk_settings_get_default = 0; | - | ||||||||||||||||||||||||||||||
69 | Ptr_gtk_separator_menu_item_new QGtkStylePrivate::gtk_separator_menu_item_new = 0; | - | ||||||||||||||||||||||||||||||
70 | Ptr_gtk_widget_size_allocate QGtkStylePrivate::gtk_widget_size_allocate = 0; | - | ||||||||||||||||||||||||||||||
71 | Ptr_gtk_widget_size_request QGtkStylePrivate::gtk_widget_size_request = 0; | - | ||||||||||||||||||||||||||||||
72 | Ptr_gtk_widget_set_direction QGtkStylePrivate::gtk_widget_set_direction = 0; | - | ||||||||||||||||||||||||||||||
73 | Ptr_gtk_widget_path QGtkStylePrivate::gtk_widget_path = 0; | - | ||||||||||||||||||||||||||||||
74 | Ptr_gtk_container_get_type QGtkStylePrivate::gtk_container_get_type = 0; | - | ||||||||||||||||||||||||||||||
75 | Ptr_gtk_window_get_type QGtkStylePrivate::gtk_window_get_type = 0; | - | ||||||||||||||||||||||||||||||
76 | Ptr_gtk_widget_get_type QGtkStylePrivate::gtk_widget_get_type = 0; | - | ||||||||||||||||||||||||||||||
77 | Ptr_gtk_widget_get_parent QGtkStylePrivate::gtk_widget_get_parent = 0; | - | ||||||||||||||||||||||||||||||
78 | Ptr_gtk_widget_is_toplevel QGtkStylePrivate::gtk_widget_is_toplevel = 0; | - | ||||||||||||||||||||||||||||||
79 | Ptr_gtk_widget_get_toplevel QGtkStylePrivate::gtk_widget_get_toplevel = 0; | - | ||||||||||||||||||||||||||||||
80 | Ptr_gtk_rc_get_style_by_paths QGtkStylePrivate::gtk_rc_get_style_by_paths = 0; | - | ||||||||||||||||||||||||||||||
81 | Ptr_gtk_check_version QGtkStylePrivate::gtk_check_version = 0; | - | ||||||||||||||||||||||||||||||
82 | Ptr_gtk_border_free QGtkStylePrivate::gtk_border_free = 0; | - | ||||||||||||||||||||||||||||||
83 | Ptr_gtk_widget_get_allocation QGtkStylePrivate::gtk_widget_get_allocation = 0; | - | ||||||||||||||||||||||||||||||
84 | Ptr_gtk_widget_set_allocation QGtkStylePrivate::gtk_widget_set_allocation = 0; | - | ||||||||||||||||||||||||||||||
85 | Ptr_gtk_widget_set_can_default QGtkStylePrivate::gtk_widget_set_can_default = 0; | - | ||||||||||||||||||||||||||||||
86 | Ptr_gtk_window_set_default QGtkStylePrivate::gtk_window_set_default = 0; | - | ||||||||||||||||||||||||||||||
87 | - | |||||||||||||||||||||||||||||||
88 | Ptr_gdk_event_new QGtkStylePrivate::gdk_event_new = 0; | - | ||||||||||||||||||||||||||||||
89 | Ptr_gdk_event_free QGtkStylePrivate::gdk_event_free = 0; | - | ||||||||||||||||||||||||||||||
90 | Ptr_gtk_widget_send_focus_change QGtkStylePrivate::gtk_widget_send_focus_change = 0; | - | ||||||||||||||||||||||||||||||
91 | - | |||||||||||||||||||||||||||||||
92 | Ptr_pango_font_description_get_size QGtkStylePrivate::pango_font_description_get_size = 0; | - | ||||||||||||||||||||||||||||||
93 | Ptr_pango_font_description_get_weight QGtkStylePrivate::pango_font_description_get_weight = 0; | - | ||||||||||||||||||||||||||||||
94 | Ptr_pango_font_description_get_family QGtkStylePrivate::pango_font_description_get_family = 0; | - | ||||||||||||||||||||||||||||||
95 | Ptr_pango_font_description_get_style QGtkStylePrivate::pango_font_description_get_style = 0; | - | ||||||||||||||||||||||||||||||
96 | - | |||||||||||||||||||||||||||||||
97 | Ptr_gdk_pixbuf_get_pixels QGtkStylePrivate::gdk_pixbuf_get_pixels = 0; | - | ||||||||||||||||||||||||||||||
98 | Ptr_gdk_pixbuf_get_width QGtkStylePrivate::gdk_pixbuf_get_width = 0; | - | ||||||||||||||||||||||||||||||
99 | Ptr_gdk_pixbuf_get_height QGtkStylePrivate::gdk_pixbuf_get_height = 0; | - | ||||||||||||||||||||||||||||||
100 | Ptr_gdk_pixbuf_new QGtkStylePrivate::gdk_pixbuf_new = 0; | - | ||||||||||||||||||||||||||||||
101 | Ptr_gdk_pixbuf_unref QGtkStylePrivate::gdk_pixbuf_unref = 0; | - | ||||||||||||||||||||||||||||||
102 | Ptr_gdk_color_free QGtkStylePrivate::gdk_color_free = 0; | - | ||||||||||||||||||||||||||||||
103 | Ptr_gdk_x11_window_set_user_time QGtkStylePrivate::gdk_x11_window_set_user_time = 0; | - | ||||||||||||||||||||||||||||||
104 | Ptr_gdk_x11_drawable_get_xid QGtkStylePrivate::gdk_x11_drawable_get_xid = 0; | - | ||||||||||||||||||||||||||||||
105 | Ptr_gdk_x11_drawable_get_xdisplay QGtkStylePrivate::gdk_x11_drawable_get_xdisplay = 0; | - | ||||||||||||||||||||||||||||||
106 | - | |||||||||||||||||||||||||||||||
107 | Ptr_gconf_client_get_default QGtkStylePrivate::gconf_client_get_default = 0; | - | ||||||||||||||||||||||||||||||
108 | Ptr_gconf_client_get_string QGtkStylePrivate::gconf_client_get_string = 0; | - | ||||||||||||||||||||||||||||||
109 | Ptr_gconf_client_get_bool QGtkStylePrivate::gconf_client_get_bool = 0; | - | ||||||||||||||||||||||||||||||
110 | - | |||||||||||||||||||||||||||||||
111 | Ptr_gnome_icon_lookup_sync QGtkStylePrivate::gnome_icon_lookup_sync = 0; | - | ||||||||||||||||||||||||||||||
112 | Ptr_gnome_vfs_init QGtkStylePrivate::gnome_vfs_init = 0; | - | ||||||||||||||||||||||||||||||
113 | - | |||||||||||||||||||||||||||||||
114 | - | |||||||||||||||||||||||||||||||
115 | typedef int (*x11ErrorHandler)(Display*, XErrorEvent*); | - | ||||||||||||||||||||||||||||||
116 | - | |||||||||||||||||||||||||||||||
117 | - | |||||||||||||||||||||||||||||||
118 | - | |||||||||||||||||||||||||||||||
119 | - | |||||||||||||||||||||||||||||||
120 | template <> struct QMetaTypeId< QGtkStylePrivate* > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = { 0 }; if (const int id = metatype_id.loadAcquire()) return id; const int newId = qRegisterMetaType< QGtkStylePrivate* >("QGtkStylePrivate*", reinterpret_cast< QGtkStylePrivate* *>(quintptr(-1))); metatype_id.storeRelease(newId); return newId; } }; ; | - | ||||||||||||||||||||||||||||||
121 | - | |||||||||||||||||||||||||||||||
122 | - | |||||||||||||||||||||||||||||||
123 | - | |||||||||||||||||||||||||||||||
124 | static void gtkStyleSetCallback(GtkWidget*) | - | ||||||||||||||||||||||||||||||
125 | { | - | ||||||||||||||||||||||||||||||
126 | qRegisterMetaType<QGtkStylePrivate *>(); | - | ||||||||||||||||||||||||||||||
127 | - | |||||||||||||||||||||||||||||||
128 | - | |||||||||||||||||||||||||||||||
129 | - | |||||||||||||||||||||||||||||||
130 | - | |||||||||||||||||||||||||||||||
131 | QMetaObject::invokeMethod(styleScheduler(), "updateTheme", Qt::QueuedConnection); | - | ||||||||||||||||||||||||||||||
132 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
133 | - | |||||||||||||||||||||||||||||||
134 | static void update_toolbar_style(GtkWidget *gtkToolBar, GParamSpec *, gpointer) | - | ||||||||||||||||||||||||||||||
135 | { | - | ||||||||||||||||||||||||||||||
136 | GtkToolbarStyle toolbar_style = GTK_TOOLBAR_ICONS; | - | ||||||||||||||||||||||||||||||
137 | g_object_get(gtkToolBar, "toolbar-style", &toolbar_style, __null); | - | ||||||||||||||||||||||||||||||
138 | QWidgetList widgets = QApplication::allWidgets(); | - | ||||||||||||||||||||||||||||||
139 | for (int i = 0; i < widgets.size()
| 0 | ||||||||||||||||||||||||||||||
140 | QWidget *widget = widgets.at(i); | - | ||||||||||||||||||||||||||||||
141 | if (qobject_cast<QToolButton*>(widget)
| 0 | ||||||||||||||||||||||||||||||
142 | QEvent event(QEvent::StyleChange); | - | ||||||||||||||||||||||||||||||
143 | QApplication::sendEvent(widget, &event); | - | ||||||||||||||||||||||||||||||
144 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
145 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
146 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||||||||
148 | static QHashableLatin1Literal classPath(GtkWidget *widget) | - | ||||||||||||||||||||||||||||||
149 | { | - | ||||||||||||||||||||||||||||||
150 | char *class_path; | - | ||||||||||||||||||||||||||||||
151 | QGtkStylePrivate::gtk_widget_path (widget, __null, &class_path, __null); | - | ||||||||||||||||||||||||||||||
152 | - | |||||||||||||||||||||||||||||||
153 | char *copy = class_path; | - | ||||||||||||||||||||||||||||||
154 | if (strncmp(copy, "GtkWindow.", 10) == 0
| 0 | ||||||||||||||||||||||||||||||
155 | copy += 10; never executed: copy += 10; | 0 | ||||||||||||||||||||||||||||||
156 | if (strncmp(copy, "GtkFixed.", 9) == 0
| 0 | ||||||||||||||||||||||||||||||
157 | copy += 9; never executed: copy += 9; | 0 | ||||||||||||||||||||||||||||||
158 | - | |||||||||||||||||||||||||||||||
159 | copy = strdup(copy); | - | ||||||||||||||||||||||||||||||
160 | - | |||||||||||||||||||||||||||||||
161 | g_free(class_path); | - | ||||||||||||||||||||||||||||||
162 | - | |||||||||||||||||||||||||||||||
163 | return never executed: QHashableLatin1Literal::fromData(copy);return QHashableLatin1Literal::fromData(copy); never executed: return QHashableLatin1Literal::fromData(copy); | 0 | ||||||||||||||||||||||||||||||
164 | } | - | ||||||||||||||||||||||||||||||
165 | - | |||||||||||||||||||||||||||||||
166 | - | |||||||||||||||||||||||||||||||
167 | - | |||||||||||||||||||||||||||||||
168 | bool QGtkStyleFilter::eventFilter(QObject *obj, QEvent *e) | - | ||||||||||||||||||||||||||||||
169 | { | - | ||||||||||||||||||||||||||||||
170 | if (e->type() == QEvent::ApplicationPaletteChange
| 0 | ||||||||||||||||||||||||||||||
171 | - | |||||||||||||||||||||||||||||||
172 | - | |||||||||||||||||||||||||||||||
173 | if (!qt_app_palettes_hash()
| 0 | ||||||||||||||||||||||||||||||
174 | stylePrivate->applyCustomPaletteHash(); | - | ||||||||||||||||||||||||||||||
175 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
176 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
177 | return never executed: QObject::eventFilter(obj, e);return QObject::eventFilter(obj, e); never executed: return QObject::eventFilter(obj, e); | 0 | ||||||||||||||||||||||||||||||
178 | } | - | ||||||||||||||||||||||||||||||
179 | - | |||||||||||||||||||||||||||||||
180 | QList<QGtkStylePrivate *> QGtkStylePrivate::instances; | - | ||||||||||||||||||||||||||||||
181 | QGtkStylePrivate::WidgetMap *QGtkStylePrivate::widgetMap = 0; | - | ||||||||||||||||||||||||||||||
182 | - | |||||||||||||||||||||||||||||||
183 | QGtkStylePrivate::QGtkStylePrivate() | - | ||||||||||||||||||||||||||||||
184 | : QCommonStylePrivate() | - | ||||||||||||||||||||||||||||||
185 | , filter(this) | - | ||||||||||||||||||||||||||||||
186 | { | - | ||||||||||||||||||||||||||||||
187 | instances.append(this); | - | ||||||||||||||||||||||||||||||
188 | animationFps = 60; | - | ||||||||||||||||||||||||||||||
189 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
190 | - | |||||||||||||||||||||||||||||||
191 | QGtkStylePrivate::~QGtkStylePrivate() | - | ||||||||||||||||||||||||||||||
192 | { | - | ||||||||||||||||||||||||||||||
193 | instances.removeOne(this); | - | ||||||||||||||||||||||||||||||
194 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
195 | - | |||||||||||||||||||||||||||||||
196 | void QGtkStylePrivate::init() | - | ||||||||||||||||||||||||||||||
197 | { | - | ||||||||||||||||||||||||||||||
198 | resolveGtk(); | - | ||||||||||||||||||||||||||||||
199 | initGtkWidgets(); | - | ||||||||||||||||||||||||||||||
200 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
201 | - | |||||||||||||||||||||||||||||||
202 | QGtkPainter* QGtkStylePrivate::gtkPainter(QPainter *painter) | - | ||||||||||||||||||||||||||||||
203 | { | - | ||||||||||||||||||||||||||||||
204 | - | |||||||||||||||||||||||||||||||
205 | static QGtk2Painter instance; | - | ||||||||||||||||||||||||||||||
206 | instance.reset(painter); | - | ||||||||||||||||||||||||||||||
207 | return never executed: &instance;return &instance; never executed: return &instance; | 0 | ||||||||||||||||||||||||||||||
208 | } | - | ||||||||||||||||||||||||||||||
209 | - | |||||||||||||||||||||||||||||||
210 | GtkWidget* QGtkStylePrivate::gtkWidget(const QHashableLatin1Literal &path) | - | ||||||||||||||||||||||||||||||
211 | { | - | ||||||||||||||||||||||||||||||
212 | GtkWidget *widget = gtkWidgetMap()->value(path); | - | ||||||||||||||||||||||||||||||
213 | if (!widget
| 0 | ||||||||||||||||||||||||||||||
214 | - | |||||||||||||||||||||||||||||||
215 | widget = gtkWidgetMap()->value(path); | - | ||||||||||||||||||||||||||||||
216 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
217 | return never executed: widget;return widget; never executed: return widget; | 0 | ||||||||||||||||||||||||||||||
218 | } | - | ||||||||||||||||||||||||||||||
219 | - | |||||||||||||||||||||||||||||||
220 | GtkStyle* QGtkStylePrivate::gtkStyle(const QHashableLatin1Literal &path) | - | ||||||||||||||||||||||||||||||
221 | { | - | ||||||||||||||||||||||||||||||
222 | if (GtkWidget *w = gtkWidgetMap()->value(path)
| 0 | ||||||||||||||||||||||||||||||
223 | return never executed: QGtkStylePrivate::gtk_widget_get_style(w);return QGtkStylePrivate::gtk_widget_get_style(w); never executed: return QGtkStylePrivate::gtk_widget_get_style(w); | 0 | ||||||||||||||||||||||||||||||
224 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||||||||
225 | } | - | ||||||||||||||||||||||||||||||
226 | - | |||||||||||||||||||||||||||||||
227 | void QGtkStylePrivate::gtkWidgetSetFocus(GtkWidget *widget, bool focus) | - | ||||||||||||||||||||||||||||||
228 | { | - | ||||||||||||||||||||||||||||||
229 | if (QGtkStylePrivate::gtk_widget_send_focus_change
| 0 | ||||||||||||||||||||||||||||||
230 | GdkEvent *event = QGtkStylePrivate::gdk_event_new(GDK_FOCUS_CHANGE); | - | ||||||||||||||||||||||||||||||
231 | event->focus_change.type = GDK_FOCUS_CHANGE; | - | ||||||||||||||||||||||||||||||
232 | event->focus_change.in = focus; | - | ||||||||||||||||||||||||||||||
233 | QGtkStylePrivate::gtk_widget_send_focus_change(widget, event); | - | ||||||||||||||||||||||||||||||
234 | QGtkStylePrivate::gdk_event_free(event); | - | ||||||||||||||||||||||||||||||
235 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
236 | - | |||||||||||||||||||||||||||||||
237 | if (focus
| 0 | ||||||||||||||||||||||||||||||
238 | do{ (((((GtkObject*)(widget))->flags)) |= (GTK_HAS_FOCUS)); } never executed: while (0);end of block | 0 | ||||||||||||||||||||||||||||||
239 | else | - | ||||||||||||||||||||||||||||||
240 | do{ (((((GtkObject*)(widget))->flags)) &= ~(GTK_HAS_FOCUS)); } never executed: while (0);end of block | 0 | ||||||||||||||||||||||||||||||
241 | - | |||||||||||||||||||||||||||||||
242 | } | - | ||||||||||||||||||||||||||||||
243 | } | - | ||||||||||||||||||||||||||||||
244 | - | |||||||||||||||||||||||||||||||
245 | - | |||||||||||||||||||||||||||||||
246 | - | |||||||||||||||||||||||||||||||
247 | - | |||||||||||||||||||||||||||||||
248 | void QGtkStylePrivate::resolveGtk() const | - | ||||||||||||||||||||||||||||||
249 | { | - | ||||||||||||||||||||||||||||||
250 | - | |||||||||||||||||||||||||||||||
251 | - | |||||||||||||||||||||||||||||||
252 | QLibrary libgtk(QLatin1String("gtk-x11-2.0"), 0, 0); | - | ||||||||||||||||||||||||||||||
253 | - | |||||||||||||||||||||||||||||||
254 | gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init"); | - | ||||||||||||||||||||||||||||||
255 | gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new"); | - | ||||||||||||||||||||||||||||||
256 | gtk_style_attach = (Ptr_gtk_style_attach)libgtk.resolve("gtk_style_attach"); | - | ||||||||||||||||||||||||||||||
257 | gtk_widget_destroy = (Ptr_gtk_widget_destroy)libgtk.resolve("gtk_widget_destroy"); | - | ||||||||||||||||||||||||||||||
258 | gtk_widget_realize = (Ptr_gtk_widget_realize)libgtk.resolve("gtk_widget_realize"); | - | ||||||||||||||||||||||||||||||
259 | - | |||||||||||||||||||||||||||||||
260 | gdk_pixbuf_get_pixels = (Ptr_gdk_pixbuf_get_pixels)libgtk.resolve("gdk_pixbuf_get_pixels"); | - | ||||||||||||||||||||||||||||||
261 | gdk_pixbuf_get_width = (Ptr_gdk_pixbuf_get_width)libgtk.resolve("gdk_pixbuf_get_width"); | - | ||||||||||||||||||||||||||||||
262 | gdk_pixbuf_get_height = (Ptr_gdk_pixbuf_get_height)libgtk.resolve("gdk_pixbuf_get_height"); | - | ||||||||||||||||||||||||||||||
263 | gdk_pixbuf_new = (Ptr_gdk_pixbuf_new)libgtk.resolve("gdk_pixbuf_new"); | - | ||||||||||||||||||||||||||||||
264 | gdk_pixbuf_unref = (Ptr_gdk_pixbuf_unref)libgtk.resolve("gdk_pixbuf_unref"); | - | ||||||||||||||||||||||||||||||
265 | gdk_color_free = (Ptr_gdk_color_free)libgtk.resolve("gdk_color_free"); | - | ||||||||||||||||||||||||||||||
266 | gdk_x11_window_set_user_time = (Ptr_gdk_x11_window_set_user_time)libgtk.resolve("gdk_x11_window_set_user_time"); | - | ||||||||||||||||||||||||||||||
267 | gdk_x11_drawable_get_xid = (Ptr_gdk_x11_drawable_get_xid)libgtk.resolve("gdk_x11_drawable_get_xid"); | - | ||||||||||||||||||||||||||||||
268 | gdk_x11_drawable_get_xdisplay = (Ptr_gdk_x11_drawable_get_xdisplay)libgtk.resolve("gdk_x11_drawable_get_xdisplay"); | - | ||||||||||||||||||||||||||||||
269 | - | |||||||||||||||||||||||||||||||
270 | gtk_widget_set_default_direction = (Ptr_gtk_widget_set_default_direction)libgtk.resolve("gtk_widget_set_default_direction"); | - | ||||||||||||||||||||||||||||||
271 | gtk_widget_modify_fg = (Ptr_gtk_widget_modify_color)libgtk.resolve("gtk_widget_modify_fg"); | - | ||||||||||||||||||||||||||||||
272 | gtk_widget_modify_bg = (Ptr_gtk_widget_modify_color)libgtk.resolve("gtk_widget_modify_bg"); | - | ||||||||||||||||||||||||||||||
273 | gtk_arrow_new = (Ptr_gtk_arrow_new)libgtk.resolve("gtk_arrow_new"); | - | ||||||||||||||||||||||||||||||
274 | gtk_menu_item_new_with_label = (Ptr_gtk_menu_item_new_with_label)libgtk.resolve("gtk_menu_item_new_with_label"); | - | ||||||||||||||||||||||||||||||
275 | gtk_check_menu_item_new_with_label = (Ptr_gtk_check_menu_item_new_with_label)libgtk.resolve("gtk_check_menu_item_new_with_label"); | - | ||||||||||||||||||||||||||||||
276 | gtk_menu_bar_new = (Ptr_gtk_menu_bar_new)libgtk.resolve("gtk_menu_bar_new"); | - | ||||||||||||||||||||||||||||||
277 | gtk_menu_new = (Ptr_gtk_menu_new)libgtk.resolve("gtk_menu_new"); | - | ||||||||||||||||||||||||||||||
278 | gtk_toolbar_new = (Ptr_gtk_toolbar_new)libgtk.resolve("gtk_toolbar_new"); | - | ||||||||||||||||||||||||||||||
279 | gtk_separator_tool_item_new = (Ptr_gtk_separator_tool_item_new)libgtk.resolve("gtk_separator_tool_item_new"); | - | ||||||||||||||||||||||||||||||
280 | gtk_toolbar_insert = (Ptr_gtk_toolbar_insert)libgtk.resolve("gtk_toolbar_insert"); | - | ||||||||||||||||||||||||||||||
281 | gtk_button_new = (Ptr_gtk_button_new)libgtk.resolve("gtk_button_new"); | - | ||||||||||||||||||||||||||||||
282 | gtk_tool_button_new = (Ptr_gtk_tool_button_new)libgtk.resolve("gtk_tool_button_new"); | - | ||||||||||||||||||||||||||||||
283 | gtk_hbutton_box_new = (Ptr_gtk_hbutton_box_new)libgtk.resolve("gtk_hbutton_box_new"); | - | ||||||||||||||||||||||||||||||
284 | gtk_check_button_new = (Ptr_gtk_check_button_new)libgtk.resolve("gtk_check_button_new"); | - | ||||||||||||||||||||||||||||||
285 | gtk_radio_button_new = (Ptr_gtk_radio_button_new)libgtk.resolve("gtk_radio_button_new"); | - | ||||||||||||||||||||||||||||||
286 | gtk_notebook_new = (Ptr_gtk_notebook_new)libgtk.resolve("gtk_notebook_new"); | - | ||||||||||||||||||||||||||||||
287 | gtk_progress_bar_new = (Ptr_gtk_progress_bar_new)libgtk.resolve("gtk_progress_bar_new"); | - | ||||||||||||||||||||||||||||||
288 | gtk_spin_button_new = (Ptr_gtk_spin_button_new)libgtk.resolve("gtk_spin_button_new"); | - | ||||||||||||||||||||||||||||||
289 | gtk_hscale_new = (Ptr_gtk_hscale_new)libgtk.resolve("gtk_hscale_new"); | - | ||||||||||||||||||||||||||||||
290 | gtk_vscale_new = (Ptr_gtk_vscale_new)libgtk.resolve("gtk_vscale_new"); | - | ||||||||||||||||||||||||||||||
291 | gtk_hscrollbar_new = (Ptr_gtk_hscrollbar_new)libgtk.resolve("gtk_hscrollbar_new"); | - | ||||||||||||||||||||||||||||||
292 | gtk_vscrollbar_new = (Ptr_gtk_vscrollbar_new)libgtk.resolve("gtk_vscrollbar_new"); | - | ||||||||||||||||||||||||||||||
293 | gtk_scrolled_window_new = (Ptr_gtk_scrolled_window_new)libgtk.resolve("gtk_scrolled_window_new"); | - | ||||||||||||||||||||||||||||||
294 | gtk_menu_shell_append = (Ptr_gtk_menu_shell_append)libgtk.resolve("gtk_menu_shell_append"); | - | ||||||||||||||||||||||||||||||
295 | gtk_entry_new = (Ptr_gtk_entry_new)libgtk.resolve("gtk_entry_new"); | - | ||||||||||||||||||||||||||||||
296 | gtk_tree_view_new = (Ptr_gtk_tree_view_new)libgtk.resolve("gtk_tree_view_new"); | - | ||||||||||||||||||||||||||||||
297 | gtk_combo_box_new = (Ptr_gtk_combo_box_new)libgtk.resolve("gtk_combo_box_new"); | - | ||||||||||||||||||||||||||||||
298 | gtk_combo_box_entry_new = (Ptr_gtk_combo_box_entry_new)libgtk.resolve("gtk_combo_box_entry_new"); | - | ||||||||||||||||||||||||||||||
299 | gtk_range_get_adjustment = (Ptr_gtk_range_get_adjustment)libgtk.resolve("gtk_range_get_adjustment"); | - | ||||||||||||||||||||||||||||||
300 | gtk_range_set_adjustment = (Ptr_gtk_range_set_adjustment)libgtk.resolve("gtk_range_set_adjustment"); | - | ||||||||||||||||||||||||||||||
301 | gtk_range_set_inverted = (Ptr_gtk_range_set_inverted)libgtk.resolve("gtk_range_set_inverted"); | - | ||||||||||||||||||||||||||||||
302 | gtk_container_add = (Ptr_gtk_container_add)libgtk.resolve("gtk_container_add"); | - | ||||||||||||||||||||||||||||||
303 | gtk_icon_factory_lookup_default = (Ptr_gtk_icon_factory_lookup_default)libgtk.resolve("gtk_icon_factory_lookup_default"); | - | ||||||||||||||||||||||||||||||
304 | gtk_icon_theme_get_default = (Ptr_gtk_icon_theme_get_default)libgtk.resolve("gtk_icon_theme_get_default"); | - | ||||||||||||||||||||||||||||||
305 | gtk_widget_get_style = (Ptr_gtk_widget_get_style)libgtk.resolve("gtk_widget_get_style"); | - | ||||||||||||||||||||||||||||||
306 | gtk_widget_style_get = (Ptr_gtk_widget_style_get)libgtk.resolve("gtk_widget_style_get"); | - | ||||||||||||||||||||||||||||||
307 | gtk_icon_set_render_icon = (Ptr_gtk_icon_set_render_icon)libgtk.resolve("gtk_icon_set_render_icon"); | - | ||||||||||||||||||||||||||||||
308 | gtk_fixed_new = (Ptr_gtk_fixed_new)libgtk.resolve("gtk_fixed_new"); | - | ||||||||||||||||||||||||||||||
309 | gtk_tree_view_column_new = (Ptr_gtk_tree_view_column_new)libgtk.resolve("gtk_tree_view_column_new"); | - | ||||||||||||||||||||||||||||||
310 | gtk_tree_view_append_column= (Ptr_gtk_tree_view_append_column )libgtk.resolve("gtk_tree_view_append_column"); | - | ||||||||||||||||||||||||||||||
311 | gtk_tree_view_get_column = (Ptr_gtk_tree_view_get_column )libgtk.resolve("gtk_tree_view_get_column"); | - | ||||||||||||||||||||||||||||||
312 | gtk_adjustment_configure = (Ptr_gtk_adjustment_configure)libgtk.resolve("gtk_adjustment_configure"); | - | ||||||||||||||||||||||||||||||
313 | gtk_adjustment_new = (Ptr_gtk_adjustment_new)libgtk.resolve("gtk_adjustment_new"); | - | ||||||||||||||||||||||||||||||
314 | gtk_menu_item_set_submenu = (Ptr_gtk_menu_item_set_submenu)libgtk.resolve("gtk_menu_item_set_submenu"); | - | ||||||||||||||||||||||||||||||
315 | gtk_settings_get_default = (Ptr_gtk_settings_get_default)libgtk.resolve("gtk_settings_get_default"); | - | ||||||||||||||||||||||||||||||
316 | gtk_separator_menu_item_new = (Ptr_gtk_separator_menu_item_new)libgtk.resolve("gtk_separator_menu_item_new"); | - | ||||||||||||||||||||||||||||||
317 | gtk_frame_new = (Ptr_gtk_frame_new)libgtk.resolve("gtk_frame_new"); | - | ||||||||||||||||||||||||||||||
318 | gtk_expander_new = (Ptr_gtk_expander_new)libgtk.resolve("gtk_expander_new"); | - | ||||||||||||||||||||||||||||||
319 | gtk_statusbar_new = (Ptr_gtk_statusbar_new)libgtk.resolve("gtk_statusbar_new"); | - | ||||||||||||||||||||||||||||||
320 | gtk_container_forall = (Ptr_gtk_container_forall)libgtk.resolve("gtk_container_forall"); | - | ||||||||||||||||||||||||||||||
321 | gtk_widget_size_allocate =(Ptr_gtk_widget_size_allocate)libgtk.resolve("gtk_widget_size_allocate"); | - | ||||||||||||||||||||||||||||||
322 | gtk_widget_size_request =(Ptr_gtk_widget_size_request)libgtk.resolve("gtk_widget_size_request"); | - | ||||||||||||||||||||||||||||||
323 | gtk_widget_set_direction =(Ptr_gtk_widget_set_direction)libgtk.resolve("gtk_widget_set_direction"); | - | ||||||||||||||||||||||||||||||
324 | gtk_widget_path =(Ptr_gtk_widget_path)libgtk.resolve("gtk_widget_path"); | - | ||||||||||||||||||||||||||||||
325 | gtk_container_get_type =(Ptr_gtk_container_get_type)libgtk.resolve("gtk_container_get_type"); | - | ||||||||||||||||||||||||||||||
326 | gtk_window_get_type =(Ptr_gtk_window_get_type)libgtk.resolve("gtk_window_get_type"); | - | ||||||||||||||||||||||||||||||
327 | gtk_widget_get_type =(Ptr_gtk_widget_get_type)libgtk.resolve("gtk_widget_get_type"); | - | ||||||||||||||||||||||||||||||
328 | gtk_widget_get_parent =(Ptr_gtk_widget_get_parent)libgtk.resolve("gtk_widget_get_parent"); | - | ||||||||||||||||||||||||||||||
329 | gtk_widget_is_toplevel =(Ptr_gtk_widget_is_toplevel)libgtk.resolve("gtk_widget_is_toplevel"); | - | ||||||||||||||||||||||||||||||
330 | gtk_widget_get_toplevel =(Ptr_gtk_widget_get_toplevel)libgtk.resolve("gtk_widget_get_toplevel"); | - | ||||||||||||||||||||||||||||||
331 | - | |||||||||||||||||||||||||||||||
332 | gtk_rc_get_style_by_paths =(Ptr_gtk_rc_get_style_by_paths)libgtk.resolve("gtk_rc_get_style_by_paths"); | - | ||||||||||||||||||||||||||||||
333 | gtk_check_version =(Ptr_gtk_check_version)libgtk.resolve("gtk_check_version"); | - | ||||||||||||||||||||||||||||||
334 | gtk_border_free =(Ptr_gtk_border_free)libgtk.resolve("gtk_border_free"); | - | ||||||||||||||||||||||||||||||
335 | gtk_widget_get_allocation = (Ptr_gtk_widget_get_allocation)libgtk.resolve("gtk_widget_get_allocation"); | - | ||||||||||||||||||||||||||||||
336 | gtk_widget_set_allocation = (Ptr_gtk_widget_set_allocation)libgtk.resolve("gtk_widget_set_allocation"); | - | ||||||||||||||||||||||||||||||
337 | - | |||||||||||||||||||||||||||||||
338 | gtk_widget_set_can_default = (Ptr_gtk_widget_set_can_default)libgtk.resolve("gtk_widget_set_can_default"); | - | ||||||||||||||||||||||||||||||
339 | gtk_window_set_default = (Ptr_gtk_window_set_default)libgtk.resolve("gtk_window_set_default"); | - | ||||||||||||||||||||||||||||||
340 | - | |||||||||||||||||||||||||||||||
341 | gdk_event_new = (Ptr_gdk_event_new)libgtk.resolve("gdk_event_new"); | - | ||||||||||||||||||||||||||||||
342 | gdk_event_free = (Ptr_gdk_event_free)libgtk.resolve("gdk_event_free"); | - | ||||||||||||||||||||||||||||||
343 | gtk_widget_send_focus_change = (Ptr_gtk_widget_send_focus_change)libgtk.resolve("gtk_widget_send_focus_change"); | - | ||||||||||||||||||||||||||||||
344 | - | |||||||||||||||||||||||||||||||
345 | pango_font_description_get_size = (Ptr_pango_font_description_get_size)libgtk.resolve("pango_font_description_get_size"); | - | ||||||||||||||||||||||||||||||
346 | pango_font_description_get_weight = (Ptr_pango_font_description_get_weight)libgtk.resolve("pango_font_description_get_weight"); | - | ||||||||||||||||||||||||||||||
347 | pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family"); | - | ||||||||||||||||||||||||||||||
348 | pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style"); | - | ||||||||||||||||||||||||||||||
349 | - | |||||||||||||||||||||||||||||||
350 | gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLatin1String("gnomeui-2"), 0, "gnome_icon_lookup_sync"); | - | ||||||||||||||||||||||||||||||
351 | gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLatin1String("gnomevfs-2"), 0, "gnome_vfs_init"); | - | ||||||||||||||||||||||||||||||
352 | - | |||||||||||||||||||||||||||||||
353 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
354 | - | |||||||||||||||||||||||||||||||
355 | - | |||||||||||||||||||||||||||||||
356 | - | |||||||||||||||||||||||||||||||
357 | - | |||||||||||||||||||||||||||||||
358 | - | |||||||||||||||||||||||||||||||
359 | void QGtkStylePrivate::initGtkMenu() const | - | ||||||||||||||||||||||||||||||
360 | { | - | ||||||||||||||||||||||||||||||
361 | - | |||||||||||||||||||||||||||||||
362 | GtkWidget *gtkMenuBar = QGtkStylePrivate::gtk_menu_bar_new(); | - | ||||||||||||||||||||||||||||||
363 | setupGtkWidget(gtkMenuBar); | - | ||||||||||||||||||||||||||||||
364 | - | |||||||||||||||||||||||||||||||
365 | GtkWidget *gtkMenuBarItem = QGtkStylePrivate::gtk_menu_item_new_with_label("X"); | - | ||||||||||||||||||||||||||||||
366 | gtk_menu_shell_append((GtkMenuShell*)(gtkMenuBar), gtkMenuBarItem); | - | ||||||||||||||||||||||||||||||
367 | gtk_widget_realize(gtkMenuBarItem); | - | ||||||||||||||||||||||||||||||
368 | - | |||||||||||||||||||||||||||||||
369 | - | |||||||||||||||||||||||||||||||
370 | GtkWidget *gtkMenu = QGtkStylePrivate::gtk_menu_new(); | - | ||||||||||||||||||||||||||||||
371 | gtk_menu_item_set_submenu((GtkMenuItem*)(gtkMenuBarItem), gtkMenu); | - | ||||||||||||||||||||||||||||||
372 | gtk_widget_realize(gtkMenu); | - | ||||||||||||||||||||||||||||||
373 | - | |||||||||||||||||||||||||||||||
374 | GtkWidget *gtkMenuItem = QGtkStylePrivate::gtk_menu_item_new_with_label("X"); | - | ||||||||||||||||||||||||||||||
375 | gtk_menu_shell_append((GtkMenuShell*)gtkMenu, gtkMenuItem); | - | ||||||||||||||||||||||||||||||
376 | gtk_widget_realize(gtkMenuItem); | - | ||||||||||||||||||||||||||||||
377 | - | |||||||||||||||||||||||||||||||
378 | GtkWidget *gtkCheckMenuItem = QGtkStylePrivate::gtk_check_menu_item_new_with_label("X"); | - | ||||||||||||||||||||||||||||||
379 | gtk_menu_shell_append((GtkMenuShell*)gtkMenu, gtkCheckMenuItem); | - | ||||||||||||||||||||||||||||||
380 | gtk_widget_realize(gtkCheckMenuItem); | - | ||||||||||||||||||||||||||||||
381 | - | |||||||||||||||||||||||||||||||
382 | GtkWidget *gtkMenuSeparator = QGtkStylePrivate::gtk_separator_menu_item_new(); | - | ||||||||||||||||||||||||||||||
383 | gtk_menu_shell_append((GtkMenuShell*)gtkMenu, gtkMenuSeparator); | - | ||||||||||||||||||||||||||||||
384 | - | |||||||||||||||||||||||||||||||
385 | addAllSubWidgets(gtkMenuBar); | - | ||||||||||||||||||||||||||||||
386 | addAllSubWidgets(gtkMenu); | - | ||||||||||||||||||||||||||||||
387 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
388 | - | |||||||||||||||||||||||||||||||
389 | - | |||||||||||||||||||||||||||||||
390 | void QGtkStylePrivate::initGtkTreeview() const | - | ||||||||||||||||||||||||||||||
391 | { | - | ||||||||||||||||||||||||||||||
392 | GtkWidget *gtkTreeView = gtk_tree_view_new(); | - | ||||||||||||||||||||||||||||||
393 | gtk_tree_view_append_column((GtkTreeView*)gtkTreeView, gtk_tree_view_column_new()); | - | ||||||||||||||||||||||||||||||
394 | gtk_tree_view_append_column((GtkTreeView*)gtkTreeView, gtk_tree_view_column_new()); | - | ||||||||||||||||||||||||||||||
395 | gtk_tree_view_append_column((GtkTreeView*)gtkTreeView, gtk_tree_view_column_new()); | - | ||||||||||||||||||||||||||||||
396 | addWidget(gtkTreeView); | - | ||||||||||||||||||||||||||||||
397 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
398 | - | |||||||||||||||||||||||||||||||
399 | - | |||||||||||||||||||||||||||||||
400 | - | |||||||||||||||||||||||||||||||
401 | - | |||||||||||||||||||||||||||||||
402 | - | |||||||||||||||||||||||||||||||
403 | - | |||||||||||||||||||||||||||||||
404 | void QGtkStylePrivate::initGtkWidgets() const | - | ||||||||||||||||||||||||||||||
405 | { | - | ||||||||||||||||||||||||||||||
406 | - | |||||||||||||||||||||||||||||||
407 | uid_t ruid = getuid (); | - | ||||||||||||||||||||||||||||||
408 | uid_t rgid = getgid (); | - | ||||||||||||||||||||||||||||||
409 | uid_t euid = geteuid (); | - | ||||||||||||||||||||||||||||||
410 | uid_t egid = getegid (); | - | ||||||||||||||||||||||||||||||
411 | if (ruid != euid
| 0 | ||||||||||||||||||||||||||||||
412 | QMessageLogger(__FILE__, 491, __PRETTY_FUNCTION__).warning("\nThis process is currently running setuid or setgid.\nGTK+ does not allow this " | - | ||||||||||||||||||||||||||||||
413 | "therefore Qt cannot use the GTK+ integration.\nTry launching your app using \'gksudo\', " | - | ||||||||||||||||||||||||||||||
414 | "\'kdesudo\' or a similar tool.\n\n" | - | ||||||||||||||||||||||||||||||
415 | "See http://www.gtk.org/setuid.html for more information.\n"); | - | ||||||||||||||||||||||||||||||
416 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||
417 | } | - | ||||||||||||||||||||||||||||||
418 | - | |||||||||||||||||||||||||||||||
419 | if (QGtkStylePrivate::gtk_init
| 0 | ||||||||||||||||||||||||||||||
420 | - | |||||||||||||||||||||||||||||||
421 | - | |||||||||||||||||||||||||||||||
422 | x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0); | - | ||||||||||||||||||||||||||||||
423 | - | |||||||||||||||||||||||||||||||
424 | QGtkStylePrivate::gtk_init (__null, __null); | - | ||||||||||||||||||||||||||||||
425 | - | |||||||||||||||||||||||||||||||
426 | XSetErrorHandler(qt_x_errhandler); | - | ||||||||||||||||||||||||||||||
427 | - | |||||||||||||||||||||||||||||||
428 | - | |||||||||||||||||||||||||||||||
429 | - | |||||||||||||||||||||||||||||||
430 | GtkWidget* gtkWindow = QGtkStylePrivate::gtk_window_new(GTK_WINDOW_POPUP); | - | ||||||||||||||||||||||||||||||
431 | QGtkStylePrivate::gtk_widget_realize(gtkWindow); | - | ||||||||||||||||||||||||||||||
432 | QHashableLatin1Literal widgetPath = QHashableLatin1Literal::fromData(strdup("GtkWindow")); | - | ||||||||||||||||||||||||||||||
433 | removeWidgetFromMap(widgetPath); | - | ||||||||||||||||||||||||||||||
434 | gtkWidgetMap()->insert(widgetPath, gtkWindow); | - | ||||||||||||||||||||||||||||||
435 | - | |||||||||||||||||||||||||||||||
436 | - | |||||||||||||||||||||||||||||||
437 | - | |||||||||||||||||||||||||||||||
438 | if ((static_cast<
| 0 | ||||||||||||||||||||||||||||||
439 | QGtkStylePrivate::gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL); never executed: QGtkStylePrivate::gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL); | 0 | ||||||||||||||||||||||||||||||
440 | - | |||||||||||||||||||||||||||||||
441 | if (!gtkWidgetMap()->contains("GtkButton")
| 0 | ||||||||||||||||||||||||||||||
442 | GtkWidget *gtkButton = QGtkStylePrivate::gtk_button_new(); | - | ||||||||||||||||||||||||||||||
443 | addWidget(gtkButton); | - | ||||||||||||||||||||||||||||||
444 | g_signal_connect_data ((gtkButton), ("style-set"), (((GCallback) (gtkStyleSetCallback))), (0), __null, (GConnectFlags) 0); | - | ||||||||||||||||||||||||||||||
445 | addWidget(QGtkStylePrivate::gtk_tool_button_new(__null, "Qt")); | - | ||||||||||||||||||||||||||||||
446 | addWidget(QGtkStylePrivate::gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE)); | - | ||||||||||||||||||||||||||||||
447 | addWidget(QGtkStylePrivate::gtk_hbutton_box_new()); | - | ||||||||||||||||||||||||||||||
448 | addWidget(QGtkStylePrivate::gtk_check_button_new()); | - | ||||||||||||||||||||||||||||||
449 | addWidget(QGtkStylePrivate::gtk_radio_button_new(__null)); | - | ||||||||||||||||||||||||||||||
450 | addWidget(QGtkStylePrivate::gtk_combo_box_new()); | - | ||||||||||||||||||||||||||||||
451 | addWidget(QGtkStylePrivate::gtk_combo_box_entry_new()); | - | ||||||||||||||||||||||||||||||
452 | GtkWidget *entry = QGtkStylePrivate::gtk_entry_new(); | - | ||||||||||||||||||||||||||||||
453 | g_object_set(entry, "im-module", "gtk-im-context-none", __null); | - | ||||||||||||||||||||||||||||||
454 | addWidget(entry); | - | ||||||||||||||||||||||||||||||
455 | addWidget(QGtkStylePrivate::gtk_frame_new(__null)); | - | ||||||||||||||||||||||||||||||
456 | addWidget(QGtkStylePrivate::gtk_expander_new("")); | - | ||||||||||||||||||||||||||||||
457 | addWidget(QGtkStylePrivate::gtk_statusbar_new()); | - | ||||||||||||||||||||||||||||||
458 | addWidget(QGtkStylePrivate::gtk_hscale_new((QGtkStylePrivate::gtk_adjustment_new(1, 0, 1, 0, 0, 0)))); | - | ||||||||||||||||||||||||||||||
459 | addWidget(QGtkStylePrivate::gtk_hscrollbar_new(__null)); | - | ||||||||||||||||||||||||||||||
460 | addWidget(QGtkStylePrivate::gtk_scrolled_window_new(__null, __null)); | - | ||||||||||||||||||||||||||||||
461 | - | |||||||||||||||||||||||||||||||
462 | initGtkMenu(); | - | ||||||||||||||||||||||||||||||
463 | addWidget(QGtkStylePrivate::gtk_notebook_new()); | - | ||||||||||||||||||||||||||||||
464 | addWidget(QGtkStylePrivate::gtk_progress_bar_new()); | - | ||||||||||||||||||||||||||||||
465 | addWidget(QGtkStylePrivate::gtk_spin_button_new((QGtkStylePrivate::gtk_adjustment_new(1, 0, 1, 0, 0, 0)), 0.1, 3)); | - | ||||||||||||||||||||||||||||||
466 | GtkWidget *toolbar = gtk_toolbar_new(); | - | ||||||||||||||||||||||||||||||
467 | g_signal_connect_data ((toolbar), ("notify::toolbar-style"), (((GCallback) (update_toolbar_style))), (toolbar), __null, (GConnectFlags) 0); | - | ||||||||||||||||||||||||||||||
468 | gtk_toolbar_insert((GtkToolbar*)toolbar, gtk_separator_tool_item_new(), -1); | - | ||||||||||||||||||||||||||||||
469 | addWidget(toolbar); | - | ||||||||||||||||||||||||||||||
470 | initGtkTreeview(); | - | ||||||||||||||||||||||||||||||
471 | addWidget(gtk_vscale_new((QGtkStylePrivate::gtk_adjustment_new(1, 0, 1, 0, 0, 0)))); | - | ||||||||||||||||||||||||||||||
472 | addWidget(gtk_vscrollbar_new(__null)); | - | ||||||||||||||||||||||||||||||
473 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
474 | else | - | ||||||||||||||||||||||||||||||
475 | { | - | ||||||||||||||||||||||||||||||
476 | - | |||||||||||||||||||||||||||||||
477 | - | |||||||||||||||||||||||||||||||
478 | - | |||||||||||||||||||||||||||||||
479 | QHash<QHashableLatin1Literal, GtkWidget*> oldMap = *gtkWidgetMap(); | - | ||||||||||||||||||||||||||||||
480 | gtkWidgetMap()->clear(); | - | ||||||||||||||||||||||||||||||
481 | QHashIterator<QHashableLatin1Literal, GtkWidget*> it(oldMap); | - | ||||||||||||||||||||||||||||||
482 | while (it.hasNext()
| 0 | ||||||||||||||||||||||||||||||
483 | it.next(); | - | ||||||||||||||||||||||||||||||
484 | if (!strchr(it.key().data(), '.')
| 0 | ||||||||||||||||||||||||||||||
485 | addAllSubWidgets(it.value()); | - | ||||||||||||||||||||||||||||||
486 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
487 | free(const_cast<char *>(it.key().data())); | - | ||||||||||||||||||||||||||||||
488 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
489 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
490 | } else { | - | ||||||||||||||||||||||||||||||
491 | QMessageLogger(__FILE__, 578, __PRETTY_FUNCTION__).warning("QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries."); | - | ||||||||||||||||||||||||||||||
492 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
493 | } | - | ||||||||||||||||||||||||||||||
494 | - | |||||||||||||||||||||||||||||||
495 | - | |||||||||||||||||||||||||||||||
496 | - | |||||||||||||||||||||||||||||||
497 | - | |||||||||||||||||||||||||||||||
498 | void QGtkStylePrivate::cleanupGtkWidgets() | - | ||||||||||||||||||||||||||||||
499 | { | - | ||||||||||||||||||||||||||||||
500 | if (!widgetMap
| 0 | ||||||||||||||||||||||||||||||
501 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||
502 | if (widgetMap->contains("GtkWindow")
| 0 | ||||||||||||||||||||||||||||||
503 | gtk_widget_destroy(widgetMap->value("GtkWindow")); never executed: gtk_widget_destroy(widgetMap->value("GtkWindow")); | 0 | ||||||||||||||||||||||||||||||
504 | for (QHash<QHashableLatin1Literal, GtkWidget *>::const_iterator it = widgetMap->constBegin(); | - | ||||||||||||||||||||||||||||||
505 | it != widgetMap->constEnd()
| 0 | ||||||||||||||||||||||||||||||
506 | free(const_cast<char *>(it.key().data())); never executed: free(const_cast<char *>(it.key().data())); | 0 | ||||||||||||||||||||||||||||||
507 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
508 | - | |||||||||||||||||||||||||||||||
509 | static bool resolveGConf() | - | ||||||||||||||||||||||||||||||
510 | { | - | ||||||||||||||||||||||||||||||
511 | - | |||||||||||||||||||||||||||||||
512 | if (!QGtkStylePrivate::gconf_client_get_default
| 0 | ||||||||||||||||||||||||||||||
513 | QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLatin1String("gconf-2"), 4, "gconf_client_get_default"); | - | ||||||||||||||||||||||||||||||
514 | QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLatin1String("gconf-2"), 4, "gconf_client_get_string"); | - | ||||||||||||||||||||||||||||||
515 | QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLatin1String("gconf-2"), 4, "gconf_client_get_bool"); | - | ||||||||||||||||||||||||||||||
516 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
517 | - | |||||||||||||||||||||||||||||||
518 | return never executed: (QGtkStylePrivate::gconf_client_get_default !=0);return (QGtkStylePrivate::gconf_client_get_default !=0); never executed: return (QGtkStylePrivate::gconf_client_get_default !=0); | 0 | ||||||||||||||||||||||||||||||
519 | } | - | ||||||||||||||||||||||||||||||
520 | - | |||||||||||||||||||||||||||||||
521 | QString QGtkStylePrivate::getGConfString(const QString &value, const QString &fallback) | - | ||||||||||||||||||||||||||||||
522 | { | - | ||||||||||||||||||||||||||||||
523 | QString retVal = fallback; | - | ||||||||||||||||||||||||||||||
524 | if (resolveGConf()
| 0 | ||||||||||||||||||||||||||||||
525 | - | |||||||||||||||||||||||||||||||
526 | - | |||||||||||||||||||||||||||||||
527 | - | |||||||||||||||||||||||||||||||
528 | GConfClient* client = gconf_client_get_default(); | - | ||||||||||||||||||||||||||||||
529 | GError *err = 0; | - | ||||||||||||||||||||||||||||||
530 | char *str = gconf_client_get_string(client, QString(value).toLocal8Bit().constData(), &err); | - | ||||||||||||||||||||||||||||||
531 | if (!err
| 0 | ||||||||||||||||||||||||||||||
532 | retVal = QString::fromUtf8(str); | - | ||||||||||||||||||||||||||||||
533 | g_free(str); | - | ||||||||||||||||||||||||||||||
534 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
535 | g_object_unref(client); | - | ||||||||||||||||||||||||||||||
536 | if (err
| 0 | ||||||||||||||||||||||||||||||
537 | g_error_free (err); never executed: g_error_free (err); | 0 | ||||||||||||||||||||||||||||||
538 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
539 | return never executed: retVal;return retVal; never executed: return retVal; | 0 | ||||||||||||||||||||||||||||||
540 | } | - | ||||||||||||||||||||||||||||||
541 | - | |||||||||||||||||||||||||||||||
542 | bool QGtkStylePrivate::getGConfBool(const QString &key, bool fallback) | - | ||||||||||||||||||||||||||||||
543 | { | - | ||||||||||||||||||||||||||||||
544 | bool retVal = fallback; | - | ||||||||||||||||||||||||||||||
545 | if (resolveGConf()
| 0 | ||||||||||||||||||||||||||||||
546 | - | |||||||||||||||||||||||||||||||
547 | - | |||||||||||||||||||||||||||||||
548 | - | |||||||||||||||||||||||||||||||
549 | GConfClient* client = gconf_client_get_default(); | - | ||||||||||||||||||||||||||||||
550 | GError *err = 0; | - | ||||||||||||||||||||||||||||||
551 | bool result = gconf_client_get_bool(client, QString(key).toLocal8Bit().constData(), &err); | - | ||||||||||||||||||||||||||||||
552 | g_object_unref(client); | - | ||||||||||||||||||||||||||||||
553 | if (!err
| 0 | ||||||||||||||||||||||||||||||
554 | retVal = result; never executed: retVal = result; | 0 | ||||||||||||||||||||||||||||||
555 | else | - | ||||||||||||||||||||||||||||||
556 | g_error_free (err); never executed: g_error_free (err); | 0 | ||||||||||||||||||||||||||||||
557 | } | - | ||||||||||||||||||||||||||||||
558 | return never executed: retVal;return retVal; never executed: return retVal; | 0 | ||||||||||||||||||||||||||||||
559 | } | - | ||||||||||||||||||||||||||||||
560 | - | |||||||||||||||||||||||||||||||
561 | QString QGtkStylePrivate::getThemeName() | - | ||||||||||||||||||||||||||||||
562 | { | - | ||||||||||||||||||||||||||||||
563 | QString themeName; | - | ||||||||||||||||||||||||||||||
564 | - | |||||||||||||||||||||||||||||||
565 | GtkSettings *settings = QGtkStylePrivate::gtk_settings_get_default(); | - | ||||||||||||||||||||||||||||||
566 | gchararray value; | - | ||||||||||||||||||||||||||||||
567 | g_object_get(settings, "gtk-theme-name", &value, __null); | - | ||||||||||||||||||||||||||||||
568 | themeName = QString::fromUtf8(value); | - | ||||||||||||||||||||||||||||||
569 | g_free(value); | - | ||||||||||||||||||||||||||||||
570 | return never executed: themeName;return themeName; never executed: return themeName; | 0 | ||||||||||||||||||||||||||||||
571 | } | - | ||||||||||||||||||||||||||||||
572 | - | |||||||||||||||||||||||||||||||
573 | - | |||||||||||||||||||||||||||||||
574 | int QGtkStylePrivate::getSpinboxArrowSize() const | - | ||||||||||||||||||||||||||||||
575 | { | - | ||||||||||||||||||||||||||||||
576 | const int MIN_ARROW_WIDTH = 6; | - | ||||||||||||||||||||||||||||||
577 | GtkWidget *spinButton = gtkWidget("GtkSpinButton"); | - | ||||||||||||||||||||||||||||||
578 | GtkStyle *style = QGtkStylePrivate::gtk_widget_get_style(spinButton); | - | ||||||||||||||||||||||||||||||
579 | gint size = pango_font_description_get_size (style->font_desc); | - | ||||||||||||||||||||||||||||||
580 | gint arrow_size; | - | ||||||||||||||||||||||||||||||
581 | arrow_size = qMax((((int)(size) + 512) >> 10), MIN_ARROW_WIDTH) + style->xthickness; | - | ||||||||||||||||||||||||||||||
582 | arrow_size += arrow_size%2 + 1; | - | ||||||||||||||||||||||||||||||
583 | return never executed: arrow_size;return arrow_size; never executed: return arrow_size; | 0 | ||||||||||||||||||||||||||||||
584 | } | - | ||||||||||||||||||||||||||||||
585 | - | |||||||||||||||||||||||||||||||
586 | - | |||||||||||||||||||||||||||||||
587 | bool QGtkStylePrivate::isKDE4Session() | - | ||||||||||||||||||||||||||||||
588 | { | - | ||||||||||||||||||||||||||||||
589 | static int version = -1; | - | ||||||||||||||||||||||||||||||
590 | if (version == -1
| 0 | ||||||||||||||||||||||||||||||
591 | version = qgetenv("KDE_SESSION_VERSION").toInt(); never executed: version = qgetenv("KDE_SESSION_VERSION").toInt(); | 0 | ||||||||||||||||||||||||||||||
592 | return never executed: (version == 4);return (version == 4); never executed: return (version == 4); | 0 | ||||||||||||||||||||||||||||||
593 | } | - | ||||||||||||||||||||||||||||||
594 | - | |||||||||||||||||||||||||||||||
595 | void QGtkStylePrivate::applyCustomPaletteHash() | - | ||||||||||||||||||||||||||||||
596 | { | - | ||||||||||||||||||||||||||||||
597 | QPalette menuPal = gtkWidgetPalette("GtkMenu"); | - | ||||||||||||||||||||||||||||||
598 | GdkColor gdkBg = QGtkStylePrivate::gtk_widget_get_style(gtkWidget("GtkMenu"))->bg[GTK_STATE_NORMAL]; | - | ||||||||||||||||||||||||||||||
599 | QColor bgColor(gdkBg.red>>8, gdkBg.green>>8, gdkBg.blue>>8); | - | ||||||||||||||||||||||||||||||
600 | menuPal.setBrush(QPalette::Base, bgColor); | - | ||||||||||||||||||||||||||||||
601 | menuPal.setBrush(QPalette::Window, bgColor); | - | ||||||||||||||||||||||||||||||
602 | (static_cast<QApplication *>(QCoreApplication::instance()))->setPalette(menuPal, "QMenu"); | - | ||||||||||||||||||||||||||||||
603 | - | |||||||||||||||||||||||||||||||
604 | QPalette toolbarPal = gtkWidgetPalette("GtkToolbar"); | - | ||||||||||||||||||||||||||||||
605 | (static_cast<QApplication *>(QCoreApplication::instance()))->setPalette(toolbarPal, "QToolBar"); | - | ||||||||||||||||||||||||||||||
606 | - | |||||||||||||||||||||||||||||||
607 | QPalette menuBarPal = gtkWidgetPalette("GtkMenuBar"); | - | ||||||||||||||||||||||||||||||
608 | (static_cast<QApplication *>(QCoreApplication::instance()))->setPalette(menuBarPal, "QMenuBar"); | - | ||||||||||||||||||||||||||||||
609 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
610 | - | |||||||||||||||||||||||||||||||
611 | - | |||||||||||||||||||||||||||||||
612 | - | |||||||||||||||||||||||||||||||
613 | - | |||||||||||||||||||||||||||||||
614 | GtkWidget* QGtkStylePrivate::getTextColorWidget() const | - | ||||||||||||||||||||||||||||||
615 | { | - | ||||||||||||||||||||||||||||||
616 | return never executed: gtkWidget("GtkEntry");return gtkWidget("GtkEntry"); never executed: return gtkWidget("GtkEntry"); | 0 | ||||||||||||||||||||||||||||||
617 | } | - | ||||||||||||||||||||||||||||||
618 | - | |||||||||||||||||||||||||||||||
619 | void QGtkStylePrivate::setupGtkWidget(GtkWidget* widget) | - | ||||||||||||||||||||||||||||||
620 | { | - | ||||||||||||||||||||||||||||||
621 | if (widget
| 0 | ||||||||||||||||||||||||||||||
622 | GtkWidget *protoLayout = gtkWidgetMap()->value("GtkContainer"); | - | ||||||||||||||||||||||||||||||
623 | if (!protoLayout
| 0 | ||||||||||||||||||||||||||||||
624 | protoLayout = QGtkStylePrivate::gtk_fixed_new(); | - | ||||||||||||||||||||||||||||||
625 | QGtkStylePrivate::gtk_container_add((GtkContainer*)(gtkWidgetMap()->value("GtkWindow")), protoLayout); | - | ||||||||||||||||||||||||||||||
626 | QHashableLatin1Literal widgetPath = QHashableLatin1Literal::fromData(strdup("GtkContainer")); | - | ||||||||||||||||||||||||||||||
627 | gtkWidgetMap()->insert(widgetPath, protoLayout); | - | ||||||||||||||||||||||||||||||
628 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
629 | ((!(protoLayout)) ? qt_assert("protoLayout",__FILE__,716) : qt_noop()); | - | ||||||||||||||||||||||||||||||
630 | - | |||||||||||||||||||||||||||||||
631 | if (!QGtkStylePrivate::gtk_widget_get_parent(widget)
| 0 | ||||||||||||||||||||||||||||||
632 | QGtkStylePrivate::gtk_container_add((GtkContainer*)(protoLayout), widget); never executed: QGtkStylePrivate::gtk_container_add((GtkContainer*)(protoLayout), widget); | 0 | ||||||||||||||||||||||||||||||
633 | QGtkStylePrivate::gtk_widget_realize(widget); | - | ||||||||||||||||||||||||||||||
634 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
635 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
636 | - | |||||||||||||||||||||||||||||||
637 | void QGtkStylePrivate::removeWidgetFromMap(const QHashableLatin1Literal &path) | - | ||||||||||||||||||||||||||||||
638 | { | - | ||||||||||||||||||||||||||||||
639 | WidgetMap *map = gtkWidgetMap(); | - | ||||||||||||||||||||||||||||||
640 | WidgetMap::iterator it = map->find(path); | - | ||||||||||||||||||||||||||||||
641 | if (it != map->end()
| 0 | ||||||||||||||||||||||||||||||
642 | char* keyData = const_cast<char *>(it.key().data()); | - | ||||||||||||||||||||||||||||||
643 | map->erase(it); | - | ||||||||||||||||||||||||||||||
644 | free(keyData); | - | ||||||||||||||||||||||||||||||
645 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
646 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
647 | - | |||||||||||||||||||||||||||||||
648 | void QGtkStylePrivate::addWidgetToMap(GtkWidget *widget) | - | ||||||||||||||||||||||||||||||
649 | { | - | ||||||||||||||||||||||||||||||
650 | if (widget
| 0 | ||||||||||||||||||||||||||||||
651 | gtk_widget_realize(widget); | - | ||||||||||||||||||||||||||||||
652 | QHashableLatin1Literal widgetPath = classPath(widget); | - | ||||||||||||||||||||||||||||||
653 | - | |||||||||||||||||||||||||||||||
654 | removeWidgetFromMap(widgetPath); | - | ||||||||||||||||||||||||||||||
655 | gtkWidgetMap()->insert(widgetPath, widget); | - | ||||||||||||||||||||||||||||||
656 | - | |||||||||||||||||||||||||||||||
657 | - | |||||||||||||||||||||||||||||||
658 | - | |||||||||||||||||||||||||||||||
659 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
660 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
661 | - | |||||||||||||||||||||||||||||||
662 | void QGtkStylePrivate::addAllSubWidgets(GtkWidget *widget, gpointer v) | - | ||||||||||||||||||||||||||||||
663 | { | - | ||||||||||||||||||||||||||||||
664 | (void)v;; | - | ||||||||||||||||||||||||||||||
665 | addWidgetToMap(widget); | - | ||||||||||||||||||||||||||||||
666 | if (((
| 0 | ||||||||||||||||||||||||||||||
667 | gtk_container_forall((GtkContainer*)widget, addAllSubWidgets, __null); never executed: gtk_container_forall((GtkContainer*)widget, addAllSubWidgets, __null); | 0 | ||||||||||||||||||||||||||||||
668 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
669 | - | |||||||||||||||||||||||||||||||
670 | - | |||||||||||||||||||||||||||||||
671 | QPalette QGtkStylePrivate::gtkWidgetPalette(const QHashableLatin1Literal >kWidgetName) const | - | ||||||||||||||||||||||||||||||
672 | { | - | ||||||||||||||||||||||||||||||
673 | GtkWidget *gtkWidget = QGtkStylePrivate::gtkWidget(gtkWidgetName); | - | ||||||||||||||||||||||||||||||
674 | ((!(gtkWidget)) ? qt_assert("gtkWidget",__FILE__,761) : qt_noop()); | - | ||||||||||||||||||||||||||||||
675 | QPalette pal = QApplication::palette(); | - | ||||||||||||||||||||||||||||||
676 | GdkColor gdkBg = gtk_widget_get_style(gtkWidget)->bg[GTK_STATE_NORMAL]; | - | ||||||||||||||||||||||||||||||
677 | GdkColor gdkText = gtk_widget_get_style(gtkWidget)->fg[GTK_STATE_NORMAL]; | - | ||||||||||||||||||||||||||||||
678 | GdkColor gdkDisabledText = gtk_widget_get_style(gtkWidget)->fg[GTK_STATE_INSENSITIVE]; | - | ||||||||||||||||||||||||||||||
679 | QColor bgColor(gdkBg.red>>8, gdkBg.green>>8, gdkBg.blue>>8); | - | ||||||||||||||||||||||||||||||
680 | QColor textColor(gdkText.red>>8, gdkText.green>>8, gdkText.blue>>8); | - | ||||||||||||||||||||||||||||||
681 | QColor disabledTextColor(gdkDisabledText.red>>8, gdkDisabledText.green>>8, gdkDisabledText.blue>>8); | - | ||||||||||||||||||||||||||||||
682 | pal.setBrush(QPalette::Window, bgColor); | - | ||||||||||||||||||||||||||||||
683 | pal.setBrush(QPalette::Button, bgColor); | - | ||||||||||||||||||||||||||||||
684 | pal.setBrush(QPalette::All, QPalette::WindowText, textColor); | - | ||||||||||||||||||||||||||||||
685 | pal.setBrush(QPalette::Disabled, QPalette::WindowText, disabledTextColor); | - | ||||||||||||||||||||||||||||||
686 | pal.setBrush(QPalette::All, QPalette::ButtonText, textColor); | - | ||||||||||||||||||||||||||||||
687 | pal.setBrush(QPalette::Disabled, QPalette::ButtonText, disabledTextColor); | - | ||||||||||||||||||||||||||||||
688 | return never executed: pal;return pal; never executed: return pal; | 0 | ||||||||||||||||||||||||||||||
689 | } | - | ||||||||||||||||||||||||||||||
690 | - | |||||||||||||||||||||||||||||||
691 | - | |||||||||||||||||||||||||||||||
692 | void QGtkStyleUpdateScheduler::updateTheme() | - | ||||||||||||||||||||||||||||||
693 | { | - | ||||||||||||||||||||||||||||||
694 | static QString oldTheme(QLatin1String("qt_not_set")); | - | ||||||||||||||||||||||||||||||
695 | QPixmapCache::clear(); | - | ||||||||||||||||||||||||||||||
696 | - | |||||||||||||||||||||||||||||||
697 | QFont font = QGtkStylePrivate::getThemeFont(); | - | ||||||||||||||||||||||||||||||
698 | if (QApplication::font() != font
| 0 | ||||||||||||||||||||||||||||||
699 | (static_cast< never executed: QApplication *>(QCoreApplication::instance()))->setFont(font);(static_cast<QApplication *>(QCoreApplication::instance()))->setFont(font); never executed: (static_cast<QApplication *>(QCoreApplication::instance()))->setFont(font); | 0 | ||||||||||||||||||||||||||||||
700 | - | |||||||||||||||||||||||||||||||
701 | if (oldTheme != QGtkStylePrivate::getThemeName()
| 0 | ||||||||||||||||||||||||||||||
702 | oldTheme = QGtkStylePrivate::getThemeName(); | - | ||||||||||||||||||||||||||||||
703 | QPalette newPalette = (static_cast<QApplication *>(QCoreApplication::instance()))->style()->standardPalette(); | - | ||||||||||||||||||||||||||||||
704 | QApplicationPrivate::setSystemPalette(newPalette); | - | ||||||||||||||||||||||||||||||
705 | QApplication::setPalette(newPalette); | - | ||||||||||||||||||||||||||||||
706 | if (!QGtkStylePrivate::instances.isEmpty()
| 0 | ||||||||||||||||||||||||||||||
707 | QGtkStylePrivate::instances.last()->initGtkWidgets(); | - | ||||||||||||||||||||||||||||||
708 | QGtkStylePrivate::instances.last()->applyCustomPaletteHash(); | - | ||||||||||||||||||||||||||||||
709 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
710 | QList<QWidget*> widgets = QApplication::allWidgets(); | - | ||||||||||||||||||||||||||||||
711 | - | |||||||||||||||||||||||||||||||
712 | for (QForeachContainer<typename QtPrivate::remove_reference<decltype(widgets)>::type> _container_((widgets)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for (QWidget *widget = *_container_.i; _container_.control; _container_.control = 0) { | - | ||||||||||||||||||||||||||||||
713 | QEvent e(QEvent::StyleChange); | - | ||||||||||||||||||||||||||||||
714 | QApplication::sendEvent(widget, &e); | - | ||||||||||||||||||||||||||||||
715 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
716 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
717 | QIconLoader::instance()->updateSystemTheme(); | - | ||||||||||||||||||||||||||||||
718 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
719 | - | |||||||||||||||||||||||||||||||
720 | void QGtkStylePrivate::addWidget(GtkWidget *widget) | - | ||||||||||||||||||||||||||||||
721 | { | - | ||||||||||||||||||||||||||||||
722 | if (widget
| 0 | ||||||||||||||||||||||||||||||
723 | setupGtkWidget(widget); | - | ||||||||||||||||||||||||||||||
724 | addAllSubWidgets(widget); | - | ||||||||||||||||||||||||||||||
725 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
726 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
727 | - | |||||||||||||||||||||||||||||||
728 | - | |||||||||||||||||||||||||||||||
729 | - | |||||||||||||||||||||||||||||||
730 | - | |||||||||||||||||||||||||||||||
731 | QFont QGtkStylePrivate::getThemeFont() | - | ||||||||||||||||||||||||||||||
732 | { | - | ||||||||||||||||||||||||||||||
733 | QFont font; | - | ||||||||||||||||||||||||||||||
734 | GtkStyle *style = gtkStyle(); | - | ||||||||||||||||||||||||||||||
735 | if (style
| 0 | ||||||||||||||||||||||||||||||
736 | { | - | ||||||||||||||||||||||||||||||
737 | PangoFontDescription *gtk_font = style->font_desc; | - | ||||||||||||||||||||||||||||||
738 | font.setPointSizeF((float)(pango_font_description_get_size(gtk_font))/1024); | - | ||||||||||||||||||||||||||||||
739 | - | |||||||||||||||||||||||||||||||
740 | QString family = QString::fromLatin1(pango_font_description_get_family(gtk_font)); | - | ||||||||||||||||||||||||||||||
741 | if (!family.isEmpty()
| 0 | ||||||||||||||||||||||||||||||
742 | font.setFamily(family); never executed: font.setFamily(family); | 0 | ||||||||||||||||||||||||||||||
743 | - | |||||||||||||||||||||||||||||||
744 | const int weight = pango_font_description_get_weight(gtk_font); | - | ||||||||||||||||||||||||||||||
745 | font.setWeight(QPlatformFontDatabase::weightFromInteger(weight)); | - | ||||||||||||||||||||||||||||||
746 | - | |||||||||||||||||||||||||||||||
747 | PangoStyle fontstyle = pango_font_description_get_style(gtk_font); | - | ||||||||||||||||||||||||||||||
748 | if (fontstyle == PANGO_STYLE_ITALIC
| 0 | ||||||||||||||||||||||||||||||
749 | font.setStyle(QFont::StyleItalic); never executed: font.setStyle(QFont::StyleItalic); | 0 | ||||||||||||||||||||||||||||||
750 | else if (fontstyle == PANGO_STYLE_OBLIQUE
| 0 | ||||||||||||||||||||||||||||||
751 | font.setStyle(QFont::StyleOblique); never executed: font.setStyle(QFont::StyleOblique); | 0 | ||||||||||||||||||||||||||||||
752 | else | - | ||||||||||||||||||||||||||||||
753 | font.setStyle(QFont::StyleNormal); never executed: font.setStyle(QFont::StyleNormal); | 0 | ||||||||||||||||||||||||||||||
754 | } | - | ||||||||||||||||||||||||||||||
755 | return never executed: font;return font; never executed: return font; | 0 | ||||||||||||||||||||||||||||||
756 | } | - | ||||||||||||||||||||||||||||||
757 | - | |||||||||||||||||||||||||||||||
758 | QIcon QGtkStylePrivate::getFilesystemIcon(const QFileInfo &info) | - | ||||||||||||||||||||||||||||||
759 | { | - | ||||||||||||||||||||||||||||||
760 | QIcon icon; | - | ||||||||||||||||||||||||||||||
761 | if (isThemeAvailable()
| 0 | ||||||||||||||||||||||||||||||
762 | gnome_vfs_init(); | - | ||||||||||||||||||||||||||||||
763 | GtkIconTheme *theme = gtk_icon_theme_get_default(); | - | ||||||||||||||||||||||||||||||
764 | QByteArray fileurl = QUrl::fromLocalFile(info.absoluteFilePath()).toEncoded(); | - | ||||||||||||||||||||||||||||||
765 | char * icon_name = gnome_icon_lookup_sync(theme, | - | ||||||||||||||||||||||||||||||
766 | __null, | - | ||||||||||||||||||||||||||||||
767 | fileurl.data(), | - | ||||||||||||||||||||||||||||||
768 | __null, | - | ||||||||||||||||||||||||||||||
769 | GNOME_ICON_LOOKUP_FLAGS_NONE, | - | ||||||||||||||||||||||||||||||
770 | __null); | - | ||||||||||||||||||||||||||||||
771 | QString iconName = QString::fromUtf8(icon_name); | - | ||||||||||||||||||||||||||||||
772 | g_free(icon_name); | - | ||||||||||||||||||||||||||||||
773 | if (iconName.startsWith(QLatin1Char('/'))
| 0 | ||||||||||||||||||||||||||||||
774 | return never executed: QIcon(iconName);return QIcon(iconName); never executed: return QIcon(iconName); | 0 | ||||||||||||||||||||||||||||||
775 | return never executed: QIcon::fromTheme(iconName);return QIcon::fromTheme(iconName); never executed: return QIcon::fromTheme(iconName); | 0 | ||||||||||||||||||||||||||||||
776 | } | - | ||||||||||||||||||||||||||||||
777 | return never executed: icon;return icon; never executed: return icon; | 0 | ||||||||||||||||||||||||||||||
778 | } | - | ||||||||||||||||||||||||||||||
779 | - | |||||||||||||||||||||||||||||||
780 | bool operator==(const QHashableLatin1Literal &l1, const QHashableLatin1Literal &l2) | - | ||||||||||||||||||||||||||||||
781 | { | - | ||||||||||||||||||||||||||||||
782 | return never executed: l1.size() == l2.size()return l1.size() == l2.size() || qstrcmp(l1.data(), l2.data()) == 0;
never executed: return l1.size() == l2.size() || qstrcmp(l1.data(), l2.data()) == 0; | 0 | ||||||||||||||||||||||||||||||
783 | } | - | ||||||||||||||||||||||||||||||
784 | - | |||||||||||||||||||||||||||||||
785 | - | |||||||||||||||||||||||||||||||
786 | uint qHash(const QHashableLatin1Literal &key) | - | ||||||||||||||||||||||||||||||
787 | { | - | ||||||||||||||||||||||||||||||
788 | int n = key.size(); | - | ||||||||||||||||||||||||||||||
789 | const uchar *p = reinterpret_cast<const uchar *>(key.data()); | - | ||||||||||||||||||||||||||||||
790 | uint h = 0; | - | ||||||||||||||||||||||||||||||
791 | uint g; | - | ||||||||||||||||||||||||||||||
792 | - | |||||||||||||||||||||||||||||||
793 | while (n--
| 0 | ||||||||||||||||||||||||||||||
794 | h = (h << 4) + *p++; | - | ||||||||||||||||||||||||||||||
795 | if ((
| 0 | ||||||||||||||||||||||||||||||
796 | h ^= g >> 23; never executed: h ^= g >> 23; | 0 | ||||||||||||||||||||||||||||||
797 | h &= ~g; | - | ||||||||||||||||||||||||||||||
798 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
799 | return never executed: h;return h; never executed: return h; | 0 | ||||||||||||||||||||||||||||||
800 | } | - | ||||||||||||||||||||||||||||||
801 | - | |||||||||||||||||||||||||||||||
802 | - | |||||||||||||||||||||||||||||||
803 | - | |||||||||||||||||||||||||||||||
Switch to Source code | Preprocessed file |