LibreOffice Module vcl (master)  1
gtkgdi.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_VCL_INC_UNX_GTK_GTKGDI_HXX
21 #define INCLUDED_VCL_INC_UNX_GTK_GTKGDI_HXX
22 
23 #include <config_cairo_canvas.h>
24 
25 #include <gtk/gtk.h>
26 #include "gtkbackend.hxx"
27 #include <gdk/gdkkeysyms.h>
28 
29 #include <unx/gtk/gtkframe.hxx>
30 #include <ControlCacheKey.hxx>
31 
32 #include <headless/svpgdi.hxx>
33 #include <textrender.hxx>
34 
35 enum class GtkControlPart
36 {
38  Button,
39  LinkButton,
44  Entry,
45  Combobox,
51  Listbox,
52  ListboxBox,
56  SpinButton,
73  Notebook,
82  MenuBar,
84  MenuWindow,
85  Menu,
86  MenuItem,
95 };
96 
97 typedef void (*gtk_widget_path_iter_set_object_nameFunc)(GtkWidgetPath *, guint, const char*);
98 
100 {
102 
103 protected:
105  virtual bool drawNativeControl( ControlType nType, ControlPart nPart,
106  const tools::Rectangle& rControlRegion,
107  ControlState nState, const ImplControlValue& aValue,
108  const OUString& rCaption ) override;
109  virtual bool getNativeControlRegion( ControlType nType, ControlPart nPart,
110  const tools::Rectangle& rControlRegion,
111  ControlState nState,
112  const ImplControlValue& aValue,
113  const OUString& rCaption,
114  tools::Rectangle &rNativeBoundingRegion,
115  tools::Rectangle &rNativeContentRegion ) override;
116  bool updateSettings(AllSettings&) override;
117  void handleDamage(const tools::Rectangle&) override;
118 
119 public:
120  GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow );
121 
122 #if ENABLE_CAIRO_CANVAS
123 
124  virtual bool SupportsCairo() const override;
125  virtual cairo::SurfaceSharedPtr CreateSurface(const cairo::CairoSurfaceSharedPtr& rSurface) const override;
126  virtual cairo::SurfaceSharedPtr CreateSurface(const OutputDevice& rRefDevice, int x, int y, int width, int height) const override;
127 
128 #endif
129 
130  void WidgetQueueDraw() const;
131 
132  virtual void GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY) override;
133 
134  virtual OUString getRenderBackendName() const override { return "gtk3svp"; }
135 
136  GtkStyleContext* createStyleContext(gtk_widget_path_iter_set_object_nameFunc set_object_name, GtkControlPart ePart);
137  GtkStyleContext* createNewContext(GtkControlPart ePart, gtk_widget_path_iter_set_object_nameFunc set_object_name);
138  GtkStyleContext* createOldContext(GtkControlPart ePart);
139  GtkStyleContext* makeContext(GtkWidgetPath *pPath, GtkStyleContext *pParent);
140 private:
141  GtkWidget *mpWindow;
142  static GtkStyleContext *mpWindowStyle;
143  static GtkStyleContext *mpButtonStyle;
144  static GtkStyleContext *mpLinkButtonStyle;
145  static GtkStyleContext *mpEntryStyle;
146  static GtkStyleContext *mpTextViewStyle;
147  static GtkStyleContext *mpVScrollbarStyle;
148  static GtkStyleContext *mpVScrollbarContentsStyle;
149  static GtkStyleContext *mpVScrollbarTroughStyle;
150  static GtkStyleContext *mpVScrollbarSliderStyle;
151  static GtkStyleContext *mpVScrollbarButtonStyle;
152  static GtkStyleContext *mpHScrollbarStyle;
153  static GtkStyleContext *mpHScrollbarContentsStyle;
154  static GtkStyleContext *mpHScrollbarTroughStyle;
155  static GtkStyleContext *mpHScrollbarSliderStyle;
156  static GtkStyleContext *mpHScrollbarButtonStyle;
157  static GtkStyleContext *mpToolbarStyle;
158  static GtkStyleContext *mpToolButtonStyle;
159  static GtkStyleContext *mpToolbarSeperatorStyle;
160  static GtkStyleContext *mpCheckButtonStyle;
161  static GtkStyleContext *mpCheckButtonCheckStyle;
162  static GtkStyleContext *mpRadioButtonStyle;
163  static GtkStyleContext *mpRadioButtonRadioStyle;
164  static GtkStyleContext *mpSpinStyle;
165  static GtkStyleContext *mpSpinEntryStyle;
166  static GtkStyleContext *mpSpinUpStyle;
167  static GtkStyleContext *mpSpinDownStyle;
168  static GtkStyleContext *mpComboboxStyle;
169  static GtkStyleContext *mpComboboxBoxStyle;
170  static GtkStyleContext *mpComboboxEntryStyle;
171  static GtkStyleContext *mpComboboxButtonStyle;
172  static GtkStyleContext *mpComboboxButtonBoxStyle;
173  static GtkStyleContext *mpComboboxButtonArrowStyle;
174  static GtkStyleContext *mpListboxStyle;
175  static GtkStyleContext *mpListboxBoxStyle;
176  static GtkStyleContext *mpListboxButtonStyle;
177  static GtkStyleContext *mpListboxButtonBoxStyle;
178  static GtkStyleContext *mpListboxButtonArrowStyle;
179  static GtkStyleContext *mpFrameInStyle;
180  static GtkStyleContext *mpFrameOutStyle;
181  static GtkStyleContext *mpFixedHoriLineStyle;
182  static GtkStyleContext *mpFixedVertLineStyle;
183  static GtkStyleContext *mpTreeHeaderButtonStyle;
184  static GtkStyleContext *mpProgressBarStyle;
185  static GtkStyleContext *mpProgressBarTroughStyle;
186  static GtkStyleContext *mpProgressBarProgressStyle;
187  static GtkStyleContext *mpNotebookStyle;
188  static GtkStyleContext *mpNotebookStackStyle;
189  static GtkStyleContext *mpNotebookHeaderStyle;
190  static GtkStyleContext *mpNotebookHeaderTabsStyle;
191  static GtkStyleContext *mpNotebookHeaderTabsTabStyle;
192  static GtkStyleContext *mpNotebookHeaderTabsTabLabelStyle;
194  static GtkStyleContext *mpNotebookHeaderTabsTabHoverLabelStyle;
195  static GtkStyleContext *mpMenuBarStyle;
196  static GtkStyleContext *mpMenuBarItemStyle;
197  static GtkStyleContext *mpMenuWindowStyle;
198  static GtkStyleContext *mpMenuStyle;
199  static GtkStyleContext *mpMenuItemStyle;
200  static GtkStyleContext *mpMenuItemLabelStyle;
201  static GtkStyleContext *mpMenuItemArrowStyle;
202  static GtkStyleContext *mpCheckMenuItemStyle;
203  static GtkStyleContext *mpCheckMenuItemCheckStyle;
204  static GtkStyleContext *mpRadioMenuItemStyle;
205  static GtkStyleContext *mpRadioMenuItemRadioStyle;
206  static GtkStyleContext *mpSeparatorMenuItemStyle;
207  static GtkStyleContext *mpSeparatorMenuItemSeparatorStyle;
208 
212 
213  static void PaintScrollbar(GtkStyleContext *context,
214  cairo_t *cr,
215  const tools::Rectangle& rControlRectangle,
216  ControlPart nPart,
217  const ImplControlValue& aValue );
218  void PaintOneSpinButton( GtkStyleContext *context,
219  cairo_t *cr,
220  ControlPart nPart,
221  tools::Rectangle aAreaRect,
222  ControlState nState );
223  void PaintSpinButton(GtkStateFlags flags,
224  cairo_t *cr,
225  const tools::Rectangle& rControlRectangle,
226  ControlPart nPart,
227  const ImplControlValue& aValue);
228  static void PaintCombobox(GtkStateFlags flags,
229  cairo_t *cr,
230  const tools::Rectangle& rControlRectangle,
231  ControlType nType,
232  ControlPart nPart);
233  static void PaintCheckOrRadio(cairo_t *cr, GtkStyleContext *context,
234  const tools::Rectangle& rControlRectangle,
235  bool bIsCheck, bool bInMenu);
236 
237  static void PaintCheck(cairo_t *cr, GtkStyleContext *context,
238  const tools::Rectangle& rControlRectangle, bool bInMenu);
239 
240  static void PaintRadio(cairo_t *cr, GtkStyleContext *context,
241  const tools::Rectangle& rControlRectangle, bool bInMenu);
242 
243 
244  static bool style_loaded;
245 };
246 
247 #else
248 #include <unx/salgdi.h>
249 
250 class GdkX11Pixmap;
251 class GtkSalGraphics : public X11SalGraphics
252 {
253  GtkWidget *m_pWindow;
255 
256 public:
257  GtkSalGraphics(GtkSalFrame *, GtkWidget *window, SalX11Screen nXScreen);
258  virtual ~GtkSalGraphics() override;
259 
260  GtkWidget* GetGtkWidget() const { return m_pWindow; }
261  GdkWindow* GetGdkWindow() const { return m_pWindow->window; }
262  GtkSalFrame* GetGtkFrame() const { return static_cast<GtkSalFrame*>(m_pFrame); }
263  void SetWindow( GtkWidget* window ) { m_pWindow = window; }
264 
265  // will be set when UI theme was changed
266  static bool bThemeChanged;
267  static bool bNeedPixmapPaint;
268  static bool bNeedTwoPasses;
269 
270 protected:
271  // native widget methods
273  virtual bool hitTestNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion,
274  const Point& aPos, bool& rIsInside ) override;
275  virtual bool drawNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion,
276  ControlState nState, const ImplControlValue& aValue,
277  const OUString& rCaption ) override;
278  virtual bool getNativeControlRegion( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, ControlState nState,
279  const ImplControlValue& aValue, const OUString& rCaption,
280  tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion ) override;
281  bool updateSettings(AllSettings&) override;
282 
283 public:
284  //helper methods for frame's UpdateSettings
285  static void refreshFontconfig( GtkSettings *pSettings );
286  static void signalSettingsNotify( GObject*, GParamSpec *pSpec, gpointer );
287 
288  virtual bool setClipRegion( const vcl::Region& ) override;
289  virtual void ResetClipRegion() override;
290 
291  // some themes set the background pixmap of our window EVERY time
292  // a control is painted; but presentation effects need
293  // the background set to None; workaround: set the background
294  // before copyBits
295  virtual void copyBits( const SalTwoRect& rPosAry,
296  SalGraphics* pSrcGraphics ) override;
297 
298  virtual OUString getRenderBackendName() const override { return "gtk3"; }
299 
300 protected:
301 
302  std::unique_ptr<GdkX11Pixmap> NWGetPixmapFromScreen( tools::Rectangle srcRect, int nBgColor = 0 );
303  bool NWRenderPixmapToScreen( GdkX11Pixmap* pPixmap, GdkX11Pixmap* pMask, tools::Rectangle dstRect );
304 
305  bool DoDrawNativeControl( GdkDrawable* pDrawable,
306  ControlType nType,
307  ControlPart nPart,
308  const tools::Rectangle& aCtrlRect,
309  const std::vector< tools::Rectangle >& aClip,
310  ControlState nState,
311  const ImplControlValue& aValue,
312  ControlCacheKey& rControlCacheKey);
313 
314  bool NWPaintGTKArrow( GdkDrawable* gdkDrawable,
315  const tools::Rectangle& rControlRectangle,
316  const std::vector< tools::Rectangle >& rClipList,
317  ControlState nState, const ImplControlValue& aValue );
318  bool NWPaintGTKListHeader( GdkDrawable* gdkDrawable,
319  const tools::Rectangle& rControlRectangle,
320  const std::vector< tools::Rectangle >& rClipList,
321  ControlState nState );
322  bool NWPaintGTKFixedLine( GdkDrawable* gdkDrawable, ControlPart nPart,
323  const tools::Rectangle& rControlRectangle );
324  bool NWPaintGTKFrame( GdkDrawable* gdkDrawable,
325  const tools::Rectangle& rControlRectangle,
326  const std::vector< tools::Rectangle >& rClipList,
327  const ImplControlValue& aValue );
328  bool NWPaintGTKWindowBackground( GdkDrawable* gdkDrawable,
329  const tools::Rectangle& rControlRectangle,
330  const std::vector< tools::Rectangle >& rClipList );
331  bool NWPaintGTKButtonReal( GtkWidget* button, GdkDrawable* gdkDrawable,
332  const tools::Rectangle& rControlRectangle,
333  const std::vector< tools::Rectangle >& rClipList,
334  ControlState nState );
335  bool NWPaintGTKButton( GdkDrawable* gdkDrawable,
336  const tools::Rectangle& rControlRectangle,
337  const std::vector< tools::Rectangle >& rClipList,
338  ControlState nState );
339  bool NWPaintGTKRadio( GdkDrawable* gdkDrawable,
340  const tools::Rectangle& rControlRectangle,
341  const std::vector< tools::Rectangle >& rClipList,
342  ControlState nState, const ImplControlValue& aValue );
343  bool NWPaintGTKCheck( GdkDrawable* gdkDrawable,
344  const tools::Rectangle& rControlRectangle,
345  const std::vector< tools::Rectangle >& rClipList,
346  ControlState nState, const ImplControlValue& aValue );
347  bool NWPaintGTKScrollbar( ControlPart nPart,
348  const tools::Rectangle& rControlRectangle,
349  ControlState nState, const ImplControlValue& aValue );
350  bool NWPaintGTKEditBox( GdkDrawable* gdkDrawable, ControlType nType,
351  const tools::Rectangle& rControlRectangle,
352  const std::vector< tools::Rectangle >& rClipList,
353  ControlState nState );
354  bool NWPaintGTKSpinBox(ControlType nType, ControlPart nPart,
355  const tools::Rectangle& rControlRectangle,
356  ControlState nState, const ImplControlValue& aValue,
357  ControlCacheKey& rControlCacheKey);
358  bool NWPaintGTKComboBox( GdkDrawable* gdkDrawable, ControlType nType, ControlPart nPart,
359  const tools::Rectangle& rControlRectangle,
360  const std::vector< tools::Rectangle >& rClipList,
361  ControlState nState );
362  bool NWPaintGTKTabItem( ControlType nType,
363  const tools::Rectangle& rControlRectangle,
364  ControlState nState, const ImplControlValue& aValue );
365  bool NWPaintGTKListBox( GdkDrawable* gdkDrawable, ControlPart nPart,
366  const tools::Rectangle& rControlRectangle,
367  const std::vector< tools::Rectangle >& rClipList,
368  ControlState nState );
369 
370  bool NWPaintGTKToolbar( GdkDrawable* gdkDrawable, ControlPart nPart,
371  const tools::Rectangle& rControlRectangle,
372  const std::vector< tools::Rectangle >& rClipList,
373  ControlState nState, const ImplControlValue& aValue );
374  bool NWPaintGTKMenubar( GdkDrawable* gdkDrawable, ControlPart nPart,
375  const tools::Rectangle& rControlRectangle,
376  const std::vector< tools::Rectangle >& rClipList,
377  ControlState nState );
378  bool NWPaintGTKPopupMenu( GdkDrawable* gdkDrawable, ControlPart nPart,
379  const tools::Rectangle& rControlRectangle,
380  const std::vector< tools::Rectangle >& rClipList,
381  ControlState nState );
382  bool NWPaintGTKTooltip( GdkDrawable* gdkDrawable,
383  const tools::Rectangle& rControlRectangle,
384  const std::vector< tools::Rectangle >& rClipList );
385  bool NWPaintGTKProgress(
386  const tools::Rectangle& rControlRectangle,
387  const ImplControlValue& aValue );
388  bool NWPaintGTKSlider( GdkDrawable* gdkDrawable, ControlPart nPart,
389  const tools::Rectangle& rControlRectangle,
390  ControlState nState, const ImplControlValue& aValue );
391  bool NWPaintGTKListNode( GdkDrawable* gdkDrawable,
392  const tools::Rectangle& rControlRectangle,
393  ControlState nState, const ImplControlValue& aValue );
394 };
395 
396 #endif // INCLUDED_VCL_INC_UNX_GTK_GTKGDI_HXX
397 
398 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void PaintOneSpinButton(GtkStyleContext *context, cairo_t *cr, ControlPart nPart, tools::Rectangle aAreaRect, ControlState nState)
static GtkStyleContext * mpSeparatorMenuItemStyle
Definition: gtkgdi.hxx:206
static GtkStyleContext * mpMenuItemArrowStyle
Definition: gtkgdi.hxx:201
GtkStyleContext * createStyleContext(gtk_widget_path_iter_set_object_nameFunc set_object_name, GtkControlPart ePart)
static GtkStyleContext * mpListboxButtonStyle
Definition: gtkgdi.hxx:176
static GtkStyleContext * mpNotebookHeaderTabsTabStyle
Definition: gtkgdi.hxx:191
static GtkStyleContext * mpToolbarSeperatorStyle
Definition: gtkgdi.hxx:159
static GtkStyleContext * mpWindowStyle
Definition: gtkgdi.hxx:142
virtual void GetResolution(sal_Int32 &rDPIX, sal_Int32 &rDPIY) override
GtkWidget * mpWindow
Definition: gtkgdi.hxx:141
static GtkStyleContext * mpToolButtonStyle
Definition: gtkgdi.hxx:158
static GtkStyleContext * mpMenuStyle
Definition: gtkgdi.hxx:198
static GtkStyleContext * mpVScrollbarTroughStyle
Definition: gtkgdi.hxx:149
static tools::Rectangle NWGetScrollButtonRect(ControlPart nPart, tools::Rectangle aAreaRect)
static GtkStyleContext * mpComboboxButtonBoxStyle
Definition: gtkgdi.hxx:172
static GtkStyleContext * mpComboboxButtonArrowStyle
Definition: gtkgdi.hxx:173
GtkStyleContext * makeContext(GtkWidgetPath *pPath, GtkStyleContext *pParent)
void PaintSpinButton(GtkStateFlags flags, cairo_t *cr, const tools::Rectangle &rControlRectangle, ControlPart nPart, const ImplControlValue &aValue)
static GtkStyleContext * mpListboxStyle
Definition: gtkgdi.hxx:174
static GtkStyleContext * mpNotebookHeaderStyle
Definition: gtkgdi.hxx:189
static GtkStyleContext * mpListboxBoxStyle
Definition: gtkgdi.hxx:175
bool updateSettings(AllSettings &) override
static GtkStyleContext * mpVScrollbarSliderStyle
Definition: gtkgdi.hxx:150
GtkSalGraphics(GtkSalFrame *pFrame, GtkWidget *pWindow)
GtkSalFrame *const mpFrame
Definition: gtkgdi.hxx:101
static GtkStyleContext * mpTreeHeaderButtonStyle
Definition: gtkgdi.hxx:183
static GtkStyleContext * mpNotebookHeaderTabsStyle
Definition: gtkgdi.hxx:190
virtual void copyBits(const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics) override
static GtkStyleContext * mpVScrollbarContentsStyle
Definition: gtkgdi.hxx:148
static GtkStyleContext * mpVScrollbarStyle
Definition: gtkgdi.hxx:147
static GtkStyleContext * mpProgressBarStyle
Definition: gtkgdi.hxx:184
void handleDamage(const tools::Rectangle &) override
Handle damage done by drawing with a widget draw override.
static GtkStyleContext * mpFixedVertLineStyle
Definition: gtkgdi.hxx:182
static GtkStyleContext * mpNotebookHeaderTabsTabHoverLabelStyle
Definition: gtkgdi.hxx:194
static GtkStyleContext * mpRadioButtonStyle
Definition: gtkgdi.hxx:162
static GtkStyleContext * mpProgressBarProgressStyle
Definition: gtkgdi.hxx:186
static GtkStyleContext * mpButtonStyle
Definition: gtkgdi.hxx:143
static GtkStyleContext * mpHScrollbarSliderStyle
Definition: gtkgdi.hxx:155
virtual bool hitTestNativeControl(ControlType eType, ControlPart ePart, const tools::Rectangle &rBoundingControlRegion, const Point &aPos, bool &rIsInside)
Query if a position is inside the native widget part.
static void PaintCombobox(GtkStateFlags flags, cairo_t *cr, const tools::Rectangle &rControlRectangle, ControlType nType, ControlPart nPart)
static GtkStyleContext * mpSeparatorMenuItemSeparatorStyle
Definition: gtkgdi.hxx:207
std::shared_ptr< Surface > SurfaceSharedPtr
Definition: cairo.hxx:36
static GtkStyleContext * mpVScrollbarButtonStyle
Definition: gtkgdi.hxx:151
static GtkStyleContext * mpHScrollbarButtonStyle
Definition: gtkgdi.hxx:156
static GtkStyleContext * mpLinkButtonStyle
Definition: gtkgdi.hxx:144
static GtkStyleContext * mpFrameOutStyle
Definition: gtkgdi.hxx:180
void WidgetQueueDraw() const
static void PaintScrollbar(GtkStyleContext *context, cairo_t *cr, const tools::Rectangle &rControlRectangle, ControlPart nPart, const ImplControlValue &aValue)
static GtkStyleContext * mpNotebookStyle
Definition: gtkgdi.hxx:187
static GtkStyleContext * mpCheckButtonCheckStyle
Definition: gtkgdi.hxx:161
static GtkStyleContext * mpComboboxStyle
Definition: gtkgdi.hxx:168
static GtkStyleContext * mpCheckMenuItemCheckStyle
Definition: gtkgdi.hxx:203
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:302
virtual bool drawNativeControl(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &rCaption) override
Draw the requested control.
static GtkStyleContext * mpSpinDownStyle
Definition: gtkgdi.hxx:167
static GtkStyleContext * mpHScrollbarStyle
Definition: gtkgdi.hxx:152
static tools::Rectangle NWGetComboBoxButtonRect(ControlType nType, ControlPart nPart, tools::Rectangle aAreaRect)
static GtkStyleContext * mpComboboxEntryStyle
Definition: gtkgdi.hxx:170
virtual void ResetClipRegion() override
std::shared_ptr< cairo_surface_t > CairoSurfaceSharedPtr
Definition: cairo.hxx:34
virtual bool getNativeControlRegion(ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &rCaption, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) override
Get the native control regions for the control part.
struct _cairo cairo_t
Definition: svpgdi.hxx:70
static GtkStyleContext * mpMenuWindowStyle
Definition: gtkgdi.hxx:197
static GtkStyleContext * mpMenuBarItemStyle
Definition: gtkgdi.hxx:196
static GtkStyleContext * mpToolbarStyle
Definition: gtkgdi.hxx:157
GtkStyleContext * createOldContext(GtkControlPart ePart)
static GtkStyleContext * mpRadioMenuItemRadioStyle
Definition: gtkgdi.hxx:205
static GtkStyleContext * mpComboboxBoxStyle
Definition: gtkgdi.hxx:169
static GtkStyleContext * mpMenuBarStyle
Definition: gtkgdi.hxx:195
static GtkStyleContext * mpProgressBarTroughStyle
Definition: gtkgdi.hxx:185
static GtkStyleContext * mpListboxButtonArrowStyle
Definition: gtkgdi.hxx:178
ControlType
These types are all based on the supported variants vcl/salnativewidgets.hxx and must be kept in-sync...
static GtkStyleContext * mpNotebookStackStyle
Definition: gtkgdi.hxx:188
vcl::Region m_aClipRegion
Definition: svpgdi.hxx:132
bool isNativeControlSupported(ControlType, ControlPart) override
Query the platform layer for native control support.
static GtkStyleContext * mpHScrollbarContentsStyle
Definition: gtkgdi.hxx:153
static void PaintCheck(cairo_t *cr, GtkStyleContext *context, const tools::Rectangle &rControlRectangle, bool bInMenu)
static tools::Rectangle NWGetSpinButtonRect(ControlPart nPart, tools::Rectangle aAreaRect)
static GtkStyleContext * mpTextViewStyle
Definition: gtkgdi.hxx:146
static GtkStyleContext * mpCheckMenuItemStyle
Definition: gtkgdi.hxx:202
static GtkStyleContext * mpSpinEntryStyle
Definition: gtkgdi.hxx:165
static GtkStyleContext * mpRadioButtonRadioStyle
Definition: gtkgdi.hxx:163
static GtkStyleContext * mpHScrollbarTroughStyle
Definition: gtkgdi.hxx:154
virtual bool setClipRegion(const vcl::Region &) override
static GtkStyleContext * mpEntryStyle
Definition: gtkgdi.hxx:145
virtual OUString getRenderBackendName() const override
Definition: gtkgdi.hxx:134
static GtkStyleContext * mpListboxButtonBoxStyle
Definition: gtkgdi.hxx:177
static GtkStyleContext * mpMenuItemLabelStyle
Definition: gtkgdi.hxx:200
static GtkStyleContext * mpMenuItemStyle
Definition: gtkgdi.hxx:199
static GtkStyleContext * mpRadioMenuItemStyle
Definition: gtkgdi.hxx:204
static void PaintRadio(cairo_t *cr, GtkStyleContext *context, const tools::Rectangle &rControlRectangle, bool bInMenu)
static GtkStyleContext * mpSpinUpStyle
Definition: gtkgdi.hxx:166
GtkControlPart
Definition: gtkgdi.hxx:35
static GtkStyleContext * mpCheckButtonStyle
Definition: gtkgdi.hxx:160
static GtkStyleContext * mpNotebookHeaderTabsTabActiveLabelStyle
Definition: gtkgdi.hxx:193
static GtkStyleContext * mpFrameInStyle
Definition: gtkgdi.hxx:179
static GtkStyleContext * mpFixedHoriLineStyle
Definition: gtkgdi.hxx:181
static GtkStyleContext * mpNotebookHeaderTabsTabLabelStyle
Definition: gtkgdi.hxx:192
static GtkStyleContext * mpComboboxButtonStyle
Definition: gtkgdi.hxx:171
static bool style_loaded
Definition: gtkgdi.hxx:244
void(* gtk_widget_path_iter_set_object_nameFunc)(GtkWidgetPath *, guint, const char *)
Definition: gtkgdi.hxx:97
GtkStyleContext * createNewContext(GtkControlPart ePart, gtk_widget_path_iter_set_object_nameFunc set_object_name)
static GtkStyleContext * mpSpinStyle
Definition: gtkgdi.hxx:164
static void PaintCheckOrRadio(cairo_t *cr, GtkStyleContext *context, const tools::Rectangle &rControlRectangle, bool bIsCheck, bool bInMenu)
typedef void(CALLTYPE *GetFuncDataPtr)(sal_uInt16 &nNo