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  GtkStyleContext* createStyleContext(gtk_widget_path_iter_set_object_nameFunc set_object_name, GtkControlPart ePart);
135  GtkStyleContext* createNewContext(GtkControlPart ePart, gtk_widget_path_iter_set_object_nameFunc set_object_name);
136  GtkStyleContext* createOldContext(GtkControlPart ePart);
137  GtkStyleContext* makeContext(GtkWidgetPath *pPath, GtkStyleContext *pParent);
138 private:
139  GtkWidget * const mpWindow;
140  static GtkStyleContext *mpWindowStyle;
141  static GtkStyleContext *mpButtonStyle;
142  static GtkStyleContext *mpLinkButtonStyle;
143  static GtkStyleContext *mpEntryStyle;
144  static GtkStyleContext *mpTextViewStyle;
145  static GtkStyleContext *mpVScrollbarStyle;
146  static GtkStyleContext *mpVScrollbarContentsStyle;
147  static GtkStyleContext *mpVScrollbarTroughStyle;
148  static GtkStyleContext *mpVScrollbarSliderStyle;
149  static GtkStyleContext *mpVScrollbarButtonStyle;
150  static GtkStyleContext *mpHScrollbarStyle;
151  static GtkStyleContext *mpHScrollbarContentsStyle;
152  static GtkStyleContext *mpHScrollbarTroughStyle;
153  static GtkStyleContext *mpHScrollbarSliderStyle;
154  static GtkStyleContext *mpHScrollbarButtonStyle;
155  static GtkStyleContext *mpToolbarStyle;
156  static GtkStyleContext *mpToolButtonStyle;
157  static GtkStyleContext *mpToolbarSeperatorStyle;
158  static GtkStyleContext *mpCheckButtonStyle;
159  static GtkStyleContext *mpCheckButtonCheckStyle;
160  static GtkStyleContext *mpRadioButtonStyle;
161  static GtkStyleContext *mpRadioButtonRadioStyle;
162  static GtkStyleContext *mpSpinStyle;
163  static GtkStyleContext *mpSpinEntryStyle;
164  static GtkStyleContext *mpSpinUpStyle;
165  static GtkStyleContext *mpSpinDownStyle;
166  static GtkStyleContext *mpComboboxStyle;
167  static GtkStyleContext *mpComboboxBoxStyle;
168  static GtkStyleContext *mpComboboxEntryStyle;
169  static GtkStyleContext *mpComboboxButtonStyle;
170  static GtkStyleContext *mpComboboxButtonBoxStyle;
171  static GtkStyleContext *mpComboboxButtonArrowStyle;
172  static GtkStyleContext *mpListboxStyle;
173  static GtkStyleContext *mpListboxBoxStyle;
174  static GtkStyleContext *mpListboxButtonStyle;
175  static GtkStyleContext *mpListboxButtonBoxStyle;
176  static GtkStyleContext *mpListboxButtonArrowStyle;
177  static GtkStyleContext *mpFrameInStyle;
178  static GtkStyleContext *mpFrameOutStyle;
179  static GtkStyleContext *mpFixedHoriLineStyle;
180  static GtkStyleContext *mpFixedVertLineStyle;
181  static GtkStyleContext *mpTreeHeaderButtonStyle;
182  static GtkStyleContext *mpProgressBarStyle;
183  static GtkStyleContext *mpProgressBarTroughStyle;
184  static GtkStyleContext *mpProgressBarProgressStyle;
185  static GtkStyleContext *mpNotebookStyle;
186  static GtkStyleContext *mpNotebookStackStyle;
187  static GtkStyleContext *mpNotebookHeaderStyle;
188  static GtkStyleContext *mpNotebookHeaderTabsStyle;
189  static GtkStyleContext *mpNotebookHeaderTabsTabStyle;
190  static GtkStyleContext *mpNotebookHeaderTabsTabLabelStyle;
192  static GtkStyleContext *mpNotebookHeaderTabsTabHoverLabelStyle;
193  static GtkStyleContext *mpMenuBarStyle;
194  static GtkStyleContext *mpMenuBarItemStyle;
195  static GtkStyleContext *mpMenuWindowStyle;
196  static GtkStyleContext *mpMenuStyle;
197  static GtkStyleContext *mpMenuItemStyle;
198  static GtkStyleContext *mpMenuItemLabelStyle;
199  static GtkStyleContext *mpMenuItemArrowStyle;
200  static GtkStyleContext *mpCheckMenuItemStyle;
201  static GtkStyleContext *mpCheckMenuItemCheckStyle;
202  static GtkStyleContext *mpRadioMenuItemStyle;
203  static GtkStyleContext *mpRadioMenuItemRadioStyle;
204  static GtkStyleContext *mpSeparatorMenuItemStyle;
205  static GtkStyleContext *mpSeparatorMenuItemSeparatorStyle;
206 
210 
211  static void PaintScrollbar(GtkStyleContext *context,
212  cairo_t *cr,
213  const tools::Rectangle& rControlRectangle,
214  ControlPart nPart,
215  const ImplControlValue& aValue );
216  void PaintOneSpinButton( GtkStyleContext *context,
217  cairo_t *cr,
218  ControlPart nPart,
219  tools::Rectangle aAreaRect,
220  ControlState nState );
221  void PaintSpinButton(GtkStateFlags flags,
222  cairo_t *cr,
223  const tools::Rectangle& rControlRectangle,
224  ControlPart nPart,
225  const ImplControlValue& aValue);
226  static void PaintCombobox(GtkStateFlags flags,
227  cairo_t *cr,
228  const tools::Rectangle& rControlRectangle,
229  ControlType nType,
230  ControlPart nPart);
231  static void PaintCheckOrRadio(cairo_t *cr, GtkStyleContext *context,
232  const tools::Rectangle& rControlRectangle,
233  bool bIsCheck, bool bInMenu);
234 
235  static void PaintCheck(cairo_t *cr, GtkStyleContext *context,
236  const tools::Rectangle& rControlRectangle, bool bInMenu);
237 
238  static void PaintRadio(cairo_t *cr, GtkStyleContext *context,
239  const tools::Rectangle& rControlRectangle, bool bInMenu);
240 
241 
242  static bool style_loaded;
243 };
244 
245 #else
246 #include <unx/salgdi.h>
247 
248 class GdkX11Pixmap;
249 class GtkSalGraphics : public X11SalGraphics
250 {
251  GtkWidget *m_pWindow;
253 
254 public:
255  GtkSalGraphics(GtkSalFrame *, GtkWidget *window, SalX11Screen nXScreen);
256  virtual ~GtkSalGraphics() override;
257 
258  GtkWidget* GetGtkWidget() const { return m_pWindow; }
259  GdkWindow* GetGdkWindow() const { return m_pWindow->window; }
260  GtkSalFrame* GetGtkFrame() const { return static_cast<GtkSalFrame*>(m_pFrame); }
261  void SetWindow( GtkWidget* window ) { m_pWindow = window; }
262 
263  // will be set when UI theme was changed
264  static bool bThemeChanged;
265  static bool bNeedPixmapPaint;
266  static bool bNeedTwoPasses;
267 
268 protected:
269  // native widget methods
271  virtual bool hitTestNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion,
272  const Point& aPos, bool& rIsInside ) override;
273  virtual bool drawNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion,
274  ControlState nState, const ImplControlValue& aValue,
275  const OUString& rCaption ) override;
276  virtual bool getNativeControlRegion( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, ControlState nState,
277  const ImplControlValue& aValue, const OUString& rCaption,
278  tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion ) override;
279  bool updateSettings(AllSettings&) override;
280 
281 public:
282  //helper methods for frame's UpdateSettings
283  static void refreshFontconfig( GtkSettings *pSettings );
284  static void signalSettingsNotify( GObject*, GParamSpec *pSpec, gpointer );
285 
286  virtual bool setClipRegion( const vcl::Region& ) override;
287  virtual void ResetClipRegion() override;
288 
289  // some themes set the background pixmap of our window EVERY time
290  // a control is painted; but presentation effects need
291  // the background set to None; workaround: set the background
292  // before copyBits
293  virtual void copyBits( const SalTwoRect& rPosAry,
294  SalGraphics* pSrcGraphics ) override;
295 
296 protected:
297 
298  std::unique_ptr<GdkX11Pixmap> NWGetPixmapFromScreen( tools::Rectangle srcRect, int nBgColor = 0 );
299  bool NWRenderPixmapToScreen( GdkX11Pixmap* pPixmap, GdkX11Pixmap* pMask, tools::Rectangle dstRect );
300 
301  bool DoDrawNativeControl( GdkDrawable* pDrawable,
302  ControlType nType,
303  ControlPart nPart,
304  const tools::Rectangle& aCtrlRect,
305  const std::vector< tools::Rectangle >& aClip,
306  ControlState nState,
307  const ImplControlValue& aValue,
308  ControlCacheKey& rControlCacheKey);
309 
310  bool NWPaintGTKArrow( GdkDrawable* gdkDrawable,
311  const tools::Rectangle& rControlRectangle,
312  const std::vector< tools::Rectangle >& rClipList,
313  ControlState nState, const ImplControlValue& aValue );
314  bool NWPaintGTKListHeader( GdkDrawable* gdkDrawable,
315  const tools::Rectangle& rControlRectangle,
316  const std::vector< tools::Rectangle >& rClipList,
317  ControlState nState );
318  bool NWPaintGTKFixedLine( GdkDrawable* gdkDrawable, ControlPart nPart,
319  const tools::Rectangle& rControlRectangle );
320  bool NWPaintGTKFrame( GdkDrawable* gdkDrawable,
321  const tools::Rectangle& rControlRectangle,
322  const std::vector< tools::Rectangle >& rClipList,
323  const ImplControlValue& aValue );
324  bool NWPaintGTKWindowBackground( GdkDrawable* gdkDrawable,
325  const tools::Rectangle& rControlRectangle,
326  const std::vector< tools::Rectangle >& rClipList );
327  bool NWPaintGTKButtonReal( GtkWidget* button, GdkDrawable* gdkDrawable,
328  const tools::Rectangle& rControlRectangle,
329  const std::vector< tools::Rectangle >& rClipList,
330  ControlState nState );
331  bool NWPaintGTKButton( GdkDrawable* gdkDrawable,
332  const tools::Rectangle& rControlRectangle,
333  const std::vector< tools::Rectangle >& rClipList,
334  ControlState nState );
335  bool NWPaintGTKRadio( GdkDrawable* gdkDrawable,
336  const tools::Rectangle& rControlRectangle,
337  const std::vector< tools::Rectangle >& rClipList,
338  ControlState nState, const ImplControlValue& aValue );
339  bool NWPaintGTKCheck( GdkDrawable* gdkDrawable,
340  const tools::Rectangle& rControlRectangle,
341  const std::vector< tools::Rectangle >& rClipList,
342  ControlState nState, const ImplControlValue& aValue );
343  bool NWPaintGTKScrollbar( ControlPart nPart,
344  const tools::Rectangle& rControlRectangle,
345  ControlState nState, const ImplControlValue& aValue );
346  bool NWPaintGTKEditBox( GdkDrawable* gdkDrawable, ControlType nType,
347  const tools::Rectangle& rControlRectangle,
348  const std::vector< tools::Rectangle >& rClipList,
349  ControlState nState );
350  bool NWPaintGTKSpinBox(ControlType nType, ControlPart nPart,
351  const tools::Rectangle& rControlRectangle,
352  ControlState nState, const ImplControlValue& aValue,
353  ControlCacheKey& rControlCacheKey);
354  bool NWPaintGTKComboBox( GdkDrawable* gdkDrawable, ControlType nType, ControlPart nPart,
355  const tools::Rectangle& rControlRectangle,
356  const std::vector< tools::Rectangle >& rClipList,
357  ControlState nState );
358  bool NWPaintGTKTabItem( ControlType nType,
359  const tools::Rectangle& rControlRectangle,
360  ControlState nState, const ImplControlValue& aValue );
361  bool NWPaintGTKListBox( GdkDrawable* gdkDrawable, ControlPart nPart,
362  const tools::Rectangle& rControlRectangle,
363  const std::vector< tools::Rectangle >& rClipList,
364  ControlState nState );
365 
366  bool NWPaintGTKToolbar( GdkDrawable* gdkDrawable, ControlPart nPart,
367  const tools::Rectangle& rControlRectangle,
368  const std::vector< tools::Rectangle >& rClipList,
369  ControlState nState, const ImplControlValue& aValue );
370  bool NWPaintGTKMenubar( GdkDrawable* gdkDrawable, ControlPart nPart,
371  const tools::Rectangle& rControlRectangle,
372  const std::vector< tools::Rectangle >& rClipList,
373  ControlState nState );
374  bool NWPaintGTKPopupMenu( GdkDrawable* gdkDrawable, ControlPart nPart,
375  const tools::Rectangle& rControlRectangle,
376  const std::vector< tools::Rectangle >& rClipList,
377  ControlState nState );
378  bool NWPaintGTKTooltip( GdkDrawable* gdkDrawable,
379  const tools::Rectangle& rControlRectangle,
380  const std::vector< tools::Rectangle >& rClipList );
381  bool NWPaintGTKProgress(
382  const tools::Rectangle& rControlRectangle,
383  const ImplControlValue& aValue );
384  bool NWPaintGTKSlider( GdkDrawable* gdkDrawable, ControlPart nPart,
385  const tools::Rectangle& rControlRectangle,
386  ControlState nState, const ImplControlValue& aValue );
387  bool NWPaintGTKListNode( GdkDrawable* gdkDrawable,
388  const tools::Rectangle& rControlRectangle,
389  ControlState nState, const ImplControlValue& aValue );
390 };
391 
392 #endif // INCLUDED_VCL_INC_UNX_GTK_GTKGDI_HXX
393 
394 /* 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:204
static GtkStyleContext * mpMenuItemArrowStyle
Definition: gtkgdi.hxx:199
GtkStyleContext * createStyleContext(gtk_widget_path_iter_set_object_nameFunc set_object_name, GtkControlPart ePart)
static GtkStyleContext * mpListboxButtonStyle
Definition: gtkgdi.hxx:174
static GtkStyleContext * mpNotebookHeaderTabsTabStyle
Definition: gtkgdi.hxx:189
static GtkStyleContext * mpToolbarSeperatorStyle
Definition: gtkgdi.hxx:157
static GtkStyleContext * mpWindowStyle
Definition: gtkgdi.hxx:140
virtual void GetResolution(sal_Int32 &rDPIX, sal_Int32 &rDPIY) override
static GtkStyleContext * mpToolButtonStyle
Definition: gtkgdi.hxx:156
static GtkStyleContext * mpMenuStyle
Definition: gtkgdi.hxx:196
static GtkStyleContext * mpVScrollbarTroughStyle
Definition: gtkgdi.hxx:147
static tools::Rectangle NWGetScrollButtonRect(ControlPart nPart, tools::Rectangle aAreaRect)
static GtkStyleContext * mpComboboxButtonBoxStyle
Definition: gtkgdi.hxx:170
static GtkStyleContext * mpComboboxButtonArrowStyle
Definition: gtkgdi.hxx:171
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:172
static GtkStyleContext * mpNotebookHeaderStyle
Definition: gtkgdi.hxx:187
static GtkStyleContext * mpListboxBoxStyle
Definition: gtkgdi.hxx:173
bool updateSettings(AllSettings &) override
static GtkStyleContext * mpVScrollbarSliderStyle
Definition: gtkgdi.hxx:148
GtkSalGraphics(GtkSalFrame *pFrame, GtkWidget *pWindow)
GtkSalFrame *const mpFrame
Definition: gtkgdi.hxx:101
static GtkStyleContext * mpTreeHeaderButtonStyle
Definition: gtkgdi.hxx:181
static GtkStyleContext * mpNotebookHeaderTabsStyle
Definition: gtkgdi.hxx:188
virtual void copyBits(const SalTwoRect &rPosAry, SalGraphics *pSrcGraphics) override
static GtkStyleContext * mpVScrollbarContentsStyle
Definition: gtkgdi.hxx:146
static GtkStyleContext * mpVScrollbarStyle
Definition: gtkgdi.hxx:145
static GtkStyleContext * mpProgressBarStyle
Definition: gtkgdi.hxx:182
void handleDamage(const tools::Rectangle &) override
Handle damage done by drawing with a widget draw override.
static GtkStyleContext * mpFixedVertLineStyle
Definition: gtkgdi.hxx:180
static GtkStyleContext * mpNotebookHeaderTabsTabHoverLabelStyle
Definition: gtkgdi.hxx:192
static GtkStyleContext * mpRadioButtonStyle
Definition: gtkgdi.hxx:160
static GtkStyleContext * mpProgressBarProgressStyle
Definition: gtkgdi.hxx:184
static GtkStyleContext * mpButtonStyle
Definition: gtkgdi.hxx:141
static GtkStyleContext * mpHScrollbarSliderStyle
Definition: gtkgdi.hxx:153
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:205
std::shared_ptr< Surface > SurfaceSharedPtr
Definition: cairo.hxx:36
static GtkStyleContext * mpVScrollbarButtonStyle
Definition: gtkgdi.hxx:149
static GtkStyleContext * mpHScrollbarButtonStyle
Definition: gtkgdi.hxx:154
static GtkStyleContext * mpLinkButtonStyle
Definition: gtkgdi.hxx:142
static GtkStyleContext * mpFrameOutStyle
Definition: gtkgdi.hxx:178
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:185
static GtkStyleContext * mpCheckButtonCheckStyle
Definition: gtkgdi.hxx:159
static GtkStyleContext * mpComboboxStyle
Definition: gtkgdi.hxx:166
static GtkStyleContext * mpCheckMenuItemCheckStyle
Definition: gtkgdi.hxx:201
GtkWidget *const mpWindow
Definition: gtkgdi.hxx:139
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:304
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:165
static GtkStyleContext * mpHScrollbarStyle
Definition: gtkgdi.hxx:150
static tools::Rectangle NWGetComboBoxButtonRect(ControlType nType, ControlPart nPart, tools::Rectangle aAreaRect)
static GtkStyleContext * mpComboboxEntryStyle
Definition: gtkgdi.hxx:168
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:69
static GtkStyleContext * mpMenuWindowStyle
Definition: gtkgdi.hxx:195
static GtkStyleContext * mpMenuBarItemStyle
Definition: gtkgdi.hxx:194
static GtkStyleContext * mpToolbarStyle
Definition: gtkgdi.hxx:155
GtkStyleContext * createOldContext(GtkControlPart ePart)
static GtkStyleContext * mpRadioMenuItemRadioStyle
Definition: gtkgdi.hxx:203
static GtkStyleContext * mpComboboxBoxStyle
Definition: gtkgdi.hxx:167
static GtkStyleContext * mpMenuBarStyle
Definition: gtkgdi.hxx:193
static GtkStyleContext * mpProgressBarTroughStyle
Definition: gtkgdi.hxx:183
static GtkStyleContext * mpListboxButtonArrowStyle
Definition: gtkgdi.hxx:176
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:186
vcl::Region m_aClipRegion
Definition: svpgdi.hxx:131
bool isNativeControlSupported(ControlType, ControlPart) override
Query the platform layer for native control support.
static GtkStyleContext * mpHScrollbarContentsStyle
Definition: gtkgdi.hxx:151
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:144
static GtkStyleContext * mpCheckMenuItemStyle
Definition: gtkgdi.hxx:200
static GtkStyleContext * mpSpinEntryStyle
Definition: gtkgdi.hxx:163
static GtkStyleContext * mpRadioButtonRadioStyle
Definition: gtkgdi.hxx:161
static GtkStyleContext * mpHScrollbarTroughStyle
Definition: gtkgdi.hxx:152
virtual bool setClipRegion(const vcl::Region &) override
static GtkStyleContext * mpEntryStyle
Definition: gtkgdi.hxx:143
static GtkStyleContext * mpListboxButtonBoxStyle
Definition: gtkgdi.hxx:175
static GtkStyleContext * mpMenuItemLabelStyle
Definition: gtkgdi.hxx:198
static GtkStyleContext * mpMenuItemStyle
Definition: gtkgdi.hxx:197
static GtkStyleContext * mpRadioMenuItemStyle
Definition: gtkgdi.hxx:202
static void PaintRadio(cairo_t *cr, GtkStyleContext *context, const tools::Rectangle &rControlRectangle, bool bInMenu)
static GtkStyleContext * mpSpinUpStyle
Definition: gtkgdi.hxx:164
GtkControlPart
Definition: gtkgdi.hxx:35
static GtkStyleContext * mpCheckButtonStyle
Definition: gtkgdi.hxx:158
static GtkStyleContext * mpNotebookHeaderTabsTabActiveLabelStyle
Definition: gtkgdi.hxx:191
static GtkStyleContext * mpFrameInStyle
Definition: gtkgdi.hxx:177
static GtkStyleContext * mpFixedHoriLineStyle
Definition: gtkgdi.hxx:179
static GtkStyleContext * mpNotebookHeaderTabsTabLabelStyle
Definition: gtkgdi.hxx:190
static GtkStyleContext * mpComboboxButtonStyle
Definition: gtkgdi.hxx:169
static bool style_loaded
Definition: gtkgdi.hxx:242
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:162
static void PaintCheckOrRadio(cairo_t *cr, GtkStyleContext *context, const tools::Rectangle &rControlRectangle, bool bIsCheck, bool bInMenu)
typedef void(CALLTYPE *GetFuncDataPtr)(sal_uInt16 &nNo