|
1 /**************************************************************************** |
|
2 ** |
|
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4 ** All rights reserved. |
|
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
|
6 ** |
|
7 ** This file is part of the QtGui module of the Qt Toolkit. |
|
8 ** |
|
9 ** $QT_BEGIN_LICENSE:LGPL$ |
|
10 ** No Commercial Usage |
|
11 ** This file contains pre-release code and may not be distributed. |
|
12 ** You may use this file in accordance with the terms and conditions |
|
13 ** contained in the Technology Preview License Agreement accompanying |
|
14 ** this package. |
|
15 ** |
|
16 ** GNU Lesser General Public License Usage |
|
17 ** Alternatively, this file may be used under the terms of the GNU Lesser |
|
18 ** General Public License version 2.1 as published by the Free Software |
|
19 ** Foundation and appearing in the file LICENSE.LGPL included in the |
|
20 ** packaging of this file. Please review the following information to |
|
21 ** ensure the GNU Lesser General Public License version 2.1 requirements |
|
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
|
23 ** |
|
24 ** In addition, as a special exception, Nokia gives you certain additional |
|
25 ** rights. These rights are described in the Nokia Qt LGPL Exception |
|
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
|
27 ** |
|
28 ** If you have questions regarding the use of this file, please contact |
|
29 ** Nokia at qt-info@nokia.com. |
|
30 ** |
|
31 ** |
|
32 ** |
|
33 ** |
|
34 ** |
|
35 ** |
|
36 ** |
|
37 ** |
|
38 ** $QT_END_LICENSE$ |
|
39 ** |
|
40 ****************************************************************************/ |
|
41 |
|
42 #ifndef QSTYLE_H |
|
43 #define QSTYLE_H |
|
44 |
|
45 #include <QtCore/qobject.h> |
|
46 #include <QtCore/qrect.h> |
|
47 #include <QtCore/qsize.h> |
|
48 #include <QtGui/qicon.h> |
|
49 #include <QtGui/qpixmap.h> |
|
50 #include <QtGui/qpalette.h> |
|
51 #include <QtGui/qsizepolicy.h> |
|
52 |
|
53 QT_BEGIN_HEADER |
|
54 |
|
55 QT_BEGIN_NAMESPACE |
|
56 |
|
57 QT_MODULE(Gui) |
|
58 |
|
59 class QAction; |
|
60 class QDebug; |
|
61 class QTab; |
|
62 class QFontMetrics; |
|
63 class QStyleHintReturn; |
|
64 class QStyleOption; |
|
65 class QStyleOptionComplex; |
|
66 class QStylePrivate; |
|
67 |
|
68 class Q_GUI_EXPORT QStyle : public QObject |
|
69 { |
|
70 Q_OBJECT |
|
71 Q_DECLARE_PRIVATE(QStyle) |
|
72 |
|
73 protected: |
|
74 QStyle(QStylePrivate &dd); |
|
75 |
|
76 public: |
|
77 QStyle(); |
|
78 virtual ~QStyle(); |
|
79 |
|
80 virtual void polish(QWidget *); |
|
81 virtual void unpolish(QWidget *); |
|
82 |
|
83 virtual void polish(QApplication *); |
|
84 virtual void unpolish(QApplication *); |
|
85 |
|
86 virtual void polish(QPalette &); |
|
87 |
|
88 virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, |
|
89 int flags, bool enabled, |
|
90 const QString &text) const; |
|
91 |
|
92 virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; |
|
93 |
|
94 virtual void drawItemText(QPainter *painter, const QRect &rect, |
|
95 int flags, const QPalette &pal, bool enabled, |
|
96 const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; |
|
97 |
|
98 virtual void drawItemPixmap(QPainter *painter, const QRect &rect, |
|
99 int alignment, const QPixmap &pixmap) const; |
|
100 |
|
101 virtual QPalette standardPalette() const; |
|
102 |
|
103 enum StateFlag { |
|
104 State_None = 0x00000000, |
|
105 #ifdef QT3_SUPPORT |
|
106 State_Default = State_None, |
|
107 #endif |
|
108 State_Enabled = 0x00000001, |
|
109 State_Raised = 0x00000002, |
|
110 State_Sunken = 0x00000004, |
|
111 State_Off = 0x00000008, |
|
112 State_NoChange = 0x00000010, |
|
113 State_On = 0x00000020, |
|
114 State_DownArrow = 0x00000040, |
|
115 State_Horizontal = 0x00000080, |
|
116 State_HasFocus = 0x00000100, |
|
117 State_Top = 0x00000200, |
|
118 State_Bottom = 0x00000400, |
|
119 State_FocusAtBorder = 0x00000800, |
|
120 State_AutoRaise = 0x00001000, |
|
121 State_MouseOver = 0x00002000, |
|
122 State_UpArrow = 0x00004000, |
|
123 State_Selected = 0x00008000, |
|
124 State_Active = 0x00010000, |
|
125 State_Window = 0x00020000, |
|
126 State_Open = 0x00040000, |
|
127 State_Children = 0x00080000, |
|
128 State_Item = 0x00100000, |
|
129 State_Sibling = 0x00200000, |
|
130 State_Editing = 0x00400000, |
|
131 State_KeyboardFocusChange = 0x00800000, |
|
132 #ifdef QT_KEYPAD_NAVIGATION |
|
133 State_HasEditFocus = 0x01000000, |
|
134 #endif |
|
135 State_ReadOnly = 0x02000000, |
|
136 State_Small = 0x04000000, |
|
137 State_Mini = 0x08000000 |
|
138 }; |
|
139 Q_DECLARE_FLAGS(State, StateFlag) |
|
140 |
|
141 #ifdef QT3_SUPPORT |
|
142 typedef State SFlags; |
|
143 #endif |
|
144 |
|
145 enum PrimitiveElement { |
|
146 PE_Q3CheckListController, |
|
147 PE_Q3CheckListExclusiveIndicator, |
|
148 PE_Q3CheckListIndicator, |
|
149 PE_Q3DockWindowSeparator, |
|
150 PE_Q3Separator, |
|
151 |
|
152 PE_Frame, |
|
153 PE_FrameDefaultButton, |
|
154 PE_FrameDockWidget, |
|
155 PE_FrameFocusRect, |
|
156 PE_FrameGroupBox, |
|
157 PE_FrameLineEdit, |
|
158 PE_FrameMenu, |
|
159 PE_FrameStatusBar, // obsolete |
|
160 PE_FrameStatusBarItem = PE_FrameStatusBar, |
|
161 PE_FrameTabWidget, |
|
162 PE_FrameWindow, |
|
163 PE_FrameButtonBevel, |
|
164 PE_FrameButtonTool, |
|
165 PE_FrameTabBarBase, |
|
166 |
|
167 PE_PanelButtonCommand, |
|
168 PE_PanelButtonBevel, |
|
169 PE_PanelButtonTool, |
|
170 PE_PanelMenuBar, |
|
171 PE_PanelToolBar, |
|
172 PE_PanelLineEdit, |
|
173 |
|
174 PE_IndicatorArrowDown, |
|
175 PE_IndicatorArrowLeft, |
|
176 PE_IndicatorArrowRight, |
|
177 PE_IndicatorArrowUp, |
|
178 PE_IndicatorBranch, |
|
179 PE_IndicatorButtonDropDown, |
|
180 PE_IndicatorViewItemCheck, |
|
181 PE_IndicatorItemViewItemCheck = PE_IndicatorViewItemCheck, |
|
182 PE_IndicatorCheckBox, |
|
183 PE_IndicatorDockWidgetResizeHandle, |
|
184 PE_IndicatorHeaderArrow, |
|
185 PE_IndicatorMenuCheckMark, |
|
186 PE_IndicatorProgressChunk, |
|
187 PE_IndicatorRadioButton, |
|
188 PE_IndicatorSpinDown, |
|
189 PE_IndicatorSpinMinus, |
|
190 PE_IndicatorSpinPlus, |
|
191 PE_IndicatorSpinUp, |
|
192 PE_IndicatorToolBarHandle, |
|
193 PE_IndicatorToolBarSeparator, |
|
194 PE_PanelTipLabel, |
|
195 PE_IndicatorTabTear, |
|
196 PE_PanelScrollAreaCorner, |
|
197 |
|
198 PE_Widget, |
|
199 |
|
200 PE_IndicatorColumnViewArrow, |
|
201 PE_IndicatorItemViewItemDrop, |
|
202 |
|
203 PE_PanelItemViewItem, |
|
204 PE_PanelItemViewRow, // ### Qt 5: remove |
|
205 |
|
206 PE_PanelStatusBar, |
|
207 |
|
208 PE_IndicatorTabClose, |
|
209 PE_PanelMenu, |
|
210 |
|
211 // do not add any values below/greater this |
|
212 PE_CustomBase = 0xf000000 |
|
213 }; |
|
214 |
|
215 virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, |
|
216 const QWidget *w = 0) const = 0; |
|
217 enum ControlElement { |
|
218 CE_PushButton, |
|
219 CE_PushButtonBevel, |
|
220 CE_PushButtonLabel, |
|
221 |
|
222 CE_CheckBox, |
|
223 CE_CheckBoxLabel, |
|
224 |
|
225 CE_RadioButton, |
|
226 CE_RadioButtonLabel, |
|
227 |
|
228 CE_TabBarTab, |
|
229 CE_TabBarTabShape, |
|
230 CE_TabBarTabLabel, |
|
231 |
|
232 CE_ProgressBar, |
|
233 CE_ProgressBarGroove, |
|
234 CE_ProgressBarContents, |
|
235 CE_ProgressBarLabel, |
|
236 |
|
237 CE_MenuItem, |
|
238 CE_MenuScroller, |
|
239 CE_MenuVMargin, |
|
240 CE_MenuHMargin, |
|
241 CE_MenuTearoff, |
|
242 CE_MenuEmptyArea, |
|
243 |
|
244 CE_MenuBarItem, |
|
245 CE_MenuBarEmptyArea, |
|
246 |
|
247 CE_ToolButtonLabel, |
|
248 |
|
249 CE_Header, |
|
250 CE_HeaderSection, |
|
251 CE_HeaderLabel, |
|
252 |
|
253 CE_Q3DockWindowEmptyArea, |
|
254 CE_ToolBoxTab, |
|
255 CE_SizeGrip, |
|
256 CE_Splitter, |
|
257 CE_RubberBand, |
|
258 CE_DockWidgetTitle, |
|
259 |
|
260 CE_ScrollBarAddLine, |
|
261 CE_ScrollBarSubLine, |
|
262 CE_ScrollBarAddPage, |
|
263 CE_ScrollBarSubPage, |
|
264 CE_ScrollBarSlider, |
|
265 CE_ScrollBarFirst, |
|
266 CE_ScrollBarLast, |
|
267 |
|
268 CE_FocusFrame, |
|
269 CE_ComboBoxLabel, |
|
270 |
|
271 CE_ToolBar, |
|
272 CE_ToolBoxTabShape, |
|
273 CE_ToolBoxTabLabel, |
|
274 CE_HeaderEmptyArea, |
|
275 |
|
276 CE_ColumnViewGrip, |
|
277 |
|
278 CE_ItemViewItem, |
|
279 |
|
280 CE_ShapedFrame, |
|
281 |
|
282 // do not add any values below/greater than this |
|
283 CE_CustomBase = 0xf0000000 |
|
284 }; |
|
285 |
|
286 virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p, |
|
287 const QWidget *w = 0) const = 0; |
|
288 |
|
289 enum SubElement { |
|
290 SE_PushButtonContents, |
|
291 SE_PushButtonFocusRect, |
|
292 |
|
293 SE_CheckBoxIndicator, |
|
294 SE_CheckBoxContents, |
|
295 SE_CheckBoxFocusRect, |
|
296 SE_CheckBoxClickRect, |
|
297 |
|
298 SE_RadioButtonIndicator, |
|
299 SE_RadioButtonContents, |
|
300 SE_RadioButtonFocusRect, |
|
301 SE_RadioButtonClickRect, |
|
302 |
|
303 SE_ComboBoxFocusRect, |
|
304 |
|
305 SE_SliderFocusRect, |
|
306 |
|
307 SE_Q3DockWindowHandleRect, |
|
308 |
|
309 SE_ProgressBarGroove, |
|
310 SE_ProgressBarContents, |
|
311 SE_ProgressBarLabel, |
|
312 |
|
313 // ### Qt 5: These values are unused; eliminate them |
|
314 SE_DialogButtonAccept, |
|
315 SE_DialogButtonReject, |
|
316 SE_DialogButtonApply, |
|
317 SE_DialogButtonHelp, |
|
318 SE_DialogButtonAll, |
|
319 SE_DialogButtonAbort, |
|
320 SE_DialogButtonIgnore, |
|
321 SE_DialogButtonRetry, |
|
322 SE_DialogButtonCustom, |
|
323 |
|
324 SE_ToolBoxTabContents, |
|
325 |
|
326 SE_HeaderLabel, |
|
327 SE_HeaderArrow, |
|
328 |
|
329 SE_TabWidgetTabBar, |
|
330 SE_TabWidgetTabPane, |
|
331 SE_TabWidgetTabContents, |
|
332 SE_TabWidgetLeftCorner, |
|
333 SE_TabWidgetRightCorner, |
|
334 |
|
335 SE_ViewItemCheckIndicator, |
|
336 SE_ItemViewItemCheckIndicator = SE_ViewItemCheckIndicator, |
|
337 |
|
338 SE_TabBarTearIndicator, |
|
339 |
|
340 SE_TreeViewDisclosureItem, |
|
341 |
|
342 SE_LineEditContents, |
|
343 SE_FrameContents, |
|
344 |
|
345 SE_DockWidgetCloseButton, |
|
346 SE_DockWidgetFloatButton, |
|
347 SE_DockWidgetTitleBarText, |
|
348 SE_DockWidgetIcon, |
|
349 |
|
350 SE_CheckBoxLayoutItem, |
|
351 SE_ComboBoxLayoutItem, |
|
352 SE_DateTimeEditLayoutItem, |
|
353 SE_DialogButtonBoxLayoutItem, // ### remove |
|
354 SE_LabelLayoutItem, |
|
355 SE_ProgressBarLayoutItem, |
|
356 SE_PushButtonLayoutItem, |
|
357 SE_RadioButtonLayoutItem, |
|
358 SE_SliderLayoutItem, |
|
359 SE_SpinBoxLayoutItem, |
|
360 SE_ToolButtonLayoutItem, |
|
361 |
|
362 SE_FrameLayoutItem, |
|
363 SE_GroupBoxLayoutItem, |
|
364 SE_TabWidgetLayoutItem, |
|
365 |
|
366 SE_ItemViewItemDecoration, |
|
367 SE_ItemViewItemText, |
|
368 SE_ItemViewItemFocusRect, |
|
369 |
|
370 SE_TabBarTabLeftButton, |
|
371 SE_TabBarTabRightButton, |
|
372 SE_TabBarTabText, |
|
373 |
|
374 SE_ShapedFrameContents, |
|
375 |
|
376 SE_ToolBarHandle, |
|
377 |
|
378 // do not add any values below/greater than this |
|
379 SE_CustomBase = 0xf0000000 |
|
380 }; |
|
381 |
|
382 virtual QRect subElementRect(SubElement subElement, const QStyleOption *option, |
|
383 const QWidget *widget = 0) const = 0; |
|
384 |
|
385 |
|
386 enum ComplexControl { |
|
387 CC_SpinBox, |
|
388 CC_ComboBox, |
|
389 CC_ScrollBar, |
|
390 CC_Slider, |
|
391 CC_ToolButton, |
|
392 CC_TitleBar, |
|
393 CC_Q3ListView, |
|
394 CC_Dial, |
|
395 CC_GroupBox, |
|
396 CC_MdiControls, |
|
397 |
|
398 // do not add any values below/greater than this |
|
399 CC_CustomBase = 0xf0000000 |
|
400 }; |
|
401 |
|
402 enum SubControl { |
|
403 SC_None = 0x00000000, |
|
404 |
|
405 SC_ScrollBarAddLine = 0x00000001, |
|
406 SC_ScrollBarSubLine = 0x00000002, |
|
407 SC_ScrollBarAddPage = 0x00000004, |
|
408 SC_ScrollBarSubPage = 0x00000008, |
|
409 SC_ScrollBarFirst = 0x00000010, |
|
410 SC_ScrollBarLast = 0x00000020, |
|
411 SC_ScrollBarSlider = 0x00000040, |
|
412 SC_ScrollBarGroove = 0x00000080, |
|
413 |
|
414 SC_SpinBoxUp = 0x00000001, |
|
415 SC_SpinBoxDown = 0x00000002, |
|
416 SC_SpinBoxFrame = 0x00000004, |
|
417 SC_SpinBoxEditField = 0x00000008, |
|
418 |
|
419 SC_ComboBoxFrame = 0x00000001, |
|
420 SC_ComboBoxEditField = 0x00000002, |
|
421 SC_ComboBoxArrow = 0x00000004, |
|
422 SC_ComboBoxListBoxPopup = 0x00000008, |
|
423 |
|
424 SC_SliderGroove = 0x00000001, |
|
425 SC_SliderHandle = 0x00000002, |
|
426 SC_SliderTickmarks = 0x00000004, |
|
427 |
|
428 SC_ToolButton = 0x00000001, |
|
429 SC_ToolButtonMenu = 0x00000002, |
|
430 |
|
431 SC_TitleBarSysMenu = 0x00000001, |
|
432 SC_TitleBarMinButton = 0x00000002, |
|
433 SC_TitleBarMaxButton = 0x00000004, |
|
434 SC_TitleBarCloseButton = 0x00000008, |
|
435 SC_TitleBarNormalButton = 0x00000010, |
|
436 SC_TitleBarShadeButton = 0x00000020, |
|
437 SC_TitleBarUnshadeButton = 0x00000040, |
|
438 SC_TitleBarContextHelpButton = 0x00000080, |
|
439 SC_TitleBarLabel = 0x00000100, |
|
440 |
|
441 SC_Q3ListView = 0x00000001, |
|
442 SC_Q3ListViewBranch = 0x00000002, |
|
443 SC_Q3ListViewExpand = 0x00000004, |
|
444 |
|
445 SC_DialGroove = 0x00000001, |
|
446 SC_DialHandle = 0x00000002, |
|
447 SC_DialTickmarks = 0x00000004, |
|
448 |
|
449 SC_GroupBoxCheckBox = 0x00000001, |
|
450 SC_GroupBoxLabel = 0x00000002, |
|
451 SC_GroupBoxContents = 0x00000004, |
|
452 SC_GroupBoxFrame = 0x00000008, |
|
453 |
|
454 SC_MdiMinButton = 0x00000001, |
|
455 SC_MdiNormalButton = 0x00000002, |
|
456 SC_MdiCloseButton = 0x00000004, |
|
457 |
|
458 SC_CustomBase = 0xf0000000, |
|
459 SC_All = 0xffffffff |
|
460 }; |
|
461 Q_DECLARE_FLAGS(SubControls, SubControl) |
|
462 |
|
463 #ifdef QT3_SUPPORT |
|
464 typedef SubControls SCFlags; |
|
465 #endif |
|
466 |
|
467 virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, |
|
468 const QWidget *widget = 0) const = 0; |
|
469 virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, |
|
470 const QPoint &pt, const QWidget *widget = 0) const = 0; |
|
471 virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, |
|
472 SubControl sc, const QWidget *widget = 0) const = 0; |
|
473 |
|
474 enum PixelMetric { |
|
475 PM_ButtonMargin, |
|
476 PM_ButtonDefaultIndicator, |
|
477 PM_MenuButtonIndicator, |
|
478 PM_ButtonShiftHorizontal, |
|
479 PM_ButtonShiftVertical, |
|
480 |
|
481 PM_DefaultFrameWidth, |
|
482 PM_SpinBoxFrameWidth, |
|
483 PM_ComboBoxFrameWidth, |
|
484 |
|
485 PM_MaximumDragDistance, |
|
486 |
|
487 PM_ScrollBarExtent, |
|
488 PM_ScrollBarSliderMin, |
|
489 |
|
490 PM_SliderThickness, // total slider thickness |
|
491 PM_SliderControlThickness, // thickness of the business part |
|
492 PM_SliderLength, // total length of slider |
|
493 PM_SliderTickmarkOffset, // |
|
494 PM_SliderSpaceAvailable, // available space for slider to move |
|
495 |
|
496 PM_DockWidgetSeparatorExtent, |
|
497 PM_DockWidgetHandleExtent, |
|
498 PM_DockWidgetFrameWidth, |
|
499 |
|
500 PM_TabBarTabOverlap, |
|
501 PM_TabBarTabHSpace, |
|
502 PM_TabBarTabVSpace, |
|
503 PM_TabBarBaseHeight, |
|
504 PM_TabBarBaseOverlap, |
|
505 |
|
506 PM_ProgressBarChunkWidth, |
|
507 |
|
508 PM_SplitterWidth, |
|
509 PM_TitleBarHeight, |
|
510 |
|
511 PM_MenuScrollerHeight, |
|
512 PM_MenuHMargin, |
|
513 PM_MenuVMargin, |
|
514 PM_MenuPanelWidth, |
|
515 PM_MenuTearoffHeight, |
|
516 PM_MenuDesktopFrameWidth, |
|
517 |
|
518 PM_MenuBarPanelWidth, |
|
519 PM_MenuBarItemSpacing, |
|
520 PM_MenuBarVMargin, |
|
521 PM_MenuBarHMargin, |
|
522 |
|
523 PM_IndicatorWidth, |
|
524 PM_IndicatorHeight, |
|
525 PM_ExclusiveIndicatorWidth, |
|
526 PM_ExclusiveIndicatorHeight, |
|
527 PM_CheckListButtonSize, |
|
528 PM_CheckListControllerSize, |
|
529 |
|
530 PM_DialogButtonsSeparator, |
|
531 PM_DialogButtonsButtonWidth, |
|
532 PM_DialogButtonsButtonHeight, |
|
533 |
|
534 PM_MdiSubWindowFrameWidth, |
|
535 PM_MDIFrameWidth = PM_MdiSubWindowFrameWidth, //obsolete |
|
536 PM_MdiSubWindowMinimizedWidth, |
|
537 PM_MDIMinimizedWidth = PM_MdiSubWindowMinimizedWidth, //obsolete |
|
538 |
|
539 PM_HeaderMargin, |
|
540 PM_HeaderMarkSize, |
|
541 PM_HeaderGripMargin, |
|
542 PM_TabBarTabShiftHorizontal, |
|
543 PM_TabBarTabShiftVertical, |
|
544 PM_TabBarScrollButtonWidth, |
|
545 |
|
546 PM_ToolBarFrameWidth, |
|
547 PM_ToolBarHandleExtent, |
|
548 PM_ToolBarItemSpacing, |
|
549 PM_ToolBarItemMargin, |
|
550 PM_ToolBarSeparatorExtent, |
|
551 PM_ToolBarExtensionExtent, |
|
552 |
|
553 PM_SpinBoxSliderHeight, |
|
554 |
|
555 PM_DefaultTopLevelMargin, |
|
556 PM_DefaultChildMargin, |
|
557 PM_DefaultLayoutSpacing, |
|
558 |
|
559 PM_ToolBarIconSize, |
|
560 PM_ListViewIconSize, |
|
561 PM_IconViewIconSize, |
|
562 PM_SmallIconSize, |
|
563 PM_LargeIconSize, |
|
564 |
|
565 PM_FocusFrameVMargin, |
|
566 PM_FocusFrameHMargin, |
|
567 |
|
568 PM_ToolTipLabelFrameWidth, |
|
569 PM_CheckBoxLabelSpacing, |
|
570 PM_TabBarIconSize, |
|
571 PM_SizeGripSize, |
|
572 PM_DockWidgetTitleMargin, |
|
573 PM_MessageBoxIconSize, |
|
574 PM_ButtonIconSize, |
|
575 |
|
576 PM_DockWidgetTitleBarButtonMargin, |
|
577 |
|
578 PM_RadioButtonLabelSpacing, |
|
579 PM_LayoutLeftMargin, |
|
580 PM_LayoutTopMargin, |
|
581 PM_LayoutRightMargin, |
|
582 PM_LayoutBottomMargin, |
|
583 PM_LayoutHorizontalSpacing, |
|
584 PM_LayoutVerticalSpacing, |
|
585 PM_TabBar_ScrollButtonOverlap, |
|
586 |
|
587 PM_TextCursorWidth, |
|
588 |
|
589 PM_TabCloseIndicatorWidth, |
|
590 PM_TabCloseIndicatorHeight, |
|
591 |
|
592 PM_ScrollView_ScrollBarSpacing, |
|
593 PM_SubMenuOverlap, |
|
594 |
|
595 // do not add any values below/greater than this |
|
596 PM_CustomBase = 0xf0000000 |
|
597 }; |
|
598 |
|
599 virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, |
|
600 const QWidget *widget = 0) const = 0; |
|
601 |
|
602 enum ContentsType { |
|
603 CT_PushButton, |
|
604 CT_CheckBox, |
|
605 CT_RadioButton, |
|
606 CT_ToolButton, |
|
607 CT_ComboBox, |
|
608 CT_Splitter, |
|
609 CT_Q3DockWindow, |
|
610 CT_ProgressBar, |
|
611 CT_MenuItem, |
|
612 CT_MenuBarItem, |
|
613 CT_MenuBar, |
|
614 CT_Menu, |
|
615 CT_TabBarTab, |
|
616 CT_Slider, |
|
617 CT_ScrollBar, |
|
618 CT_Q3Header, |
|
619 CT_LineEdit, |
|
620 CT_SpinBox, |
|
621 CT_SizeGrip, |
|
622 CT_TabWidget, |
|
623 CT_DialogButtons, |
|
624 CT_HeaderSection, |
|
625 CT_GroupBox, |
|
626 CT_MdiControls, |
|
627 CT_ItemViewItem, |
|
628 // do not add any values below/greater than this |
|
629 CT_CustomBase = 0xf0000000 |
|
630 }; |
|
631 |
|
632 virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, |
|
633 const QSize &contentsSize, const QWidget *w = 0) const = 0; |
|
634 |
|
635 enum RequestSoftwareInputPanel { |
|
636 RSIP_OnMouseClickAndAlreadyFocused, |
|
637 RSIP_OnMouseClick |
|
638 }; |
|
639 |
|
640 enum StyleHint { |
|
641 SH_EtchDisabledText, |
|
642 SH_DitherDisabledText, |
|
643 SH_ScrollBar_MiddleClickAbsolutePosition, |
|
644 SH_ScrollBar_ScrollWhenPointerLeavesControl, |
|
645 SH_TabBar_SelectMouseType, |
|
646 SH_TabBar_Alignment, |
|
647 SH_Header_ArrowAlignment, |
|
648 SH_Slider_SnapToValue, |
|
649 SH_Slider_SloppyKeyEvents, |
|
650 SH_ProgressDialog_CenterCancelButton, |
|
651 SH_ProgressDialog_TextLabelAlignment, |
|
652 SH_PrintDialog_RightAlignButtons, |
|
653 SH_MainWindow_SpaceBelowMenuBar, |
|
654 SH_FontDialog_SelectAssociatedText, |
|
655 SH_Menu_AllowActiveAndDisabled, |
|
656 SH_Menu_SpaceActivatesItem, |
|
657 SH_Menu_SubMenuPopupDelay, |
|
658 SH_ScrollView_FrameOnlyAroundContents, |
|
659 SH_MenuBar_AltKeyNavigation, |
|
660 SH_ComboBox_ListMouseTracking, |
|
661 SH_Menu_MouseTracking, |
|
662 SH_MenuBar_MouseTracking, |
|
663 SH_ItemView_ChangeHighlightOnFocus, |
|
664 SH_Widget_ShareActivation, |
|
665 SH_Workspace_FillSpaceOnMaximize, |
|
666 SH_ComboBox_Popup, |
|
667 SH_TitleBar_NoBorder, |
|
668 SH_Slider_StopMouseOverSlider, |
|
669 SH_ScrollBar_StopMouseOverSlider = SH_Slider_StopMouseOverSlider, // obsolete |
|
670 SH_BlinkCursorWhenTextSelected, |
|
671 SH_RichText_FullWidthSelection, |
|
672 SH_Menu_Scrollable, |
|
673 SH_GroupBox_TextLabelVerticalAlignment, |
|
674 SH_GroupBox_TextLabelColor, |
|
675 SH_Menu_SloppySubMenus, |
|
676 SH_Table_GridLineColor, |
|
677 SH_LineEdit_PasswordCharacter, |
|
678 SH_DialogButtons_DefaultButton, |
|
679 SH_ToolBox_SelectedPageTitleBold, |
|
680 SH_TabBar_PreferNoArrows, |
|
681 SH_ScrollBar_LeftClickAbsolutePosition, |
|
682 SH_Q3ListViewExpand_SelectMouseType, |
|
683 SH_UnderlineShortcut, |
|
684 SH_SpinBox_AnimateButton, |
|
685 SH_SpinBox_KeyPressAutoRepeatRate, |
|
686 SH_SpinBox_ClickAutoRepeatRate, |
|
687 SH_Menu_FillScreenWithScroll, |
|
688 SH_ToolTipLabel_Opacity, |
|
689 SH_DrawMenuBarSeparator, |
|
690 SH_TitleBar_ModifyNotification, |
|
691 SH_Button_FocusPolicy, |
|
692 SH_MenuBar_DismissOnSecondClick, |
|
693 SH_MessageBox_UseBorderForButtonSpacing, |
|
694 SH_TitleBar_AutoRaise, |
|
695 SH_ToolButton_PopupDelay, |
|
696 SH_FocusFrame_Mask, |
|
697 SH_RubberBand_Mask, |
|
698 SH_WindowFrame_Mask, |
|
699 SH_SpinControls_DisableOnBounds, |
|
700 SH_Dial_BackgroundRole, |
|
701 SH_ComboBox_LayoutDirection, |
|
702 SH_ItemView_EllipsisLocation, |
|
703 SH_ItemView_ShowDecorationSelected, |
|
704 SH_ItemView_ActivateItemOnSingleClick, |
|
705 SH_ScrollBar_ContextMenu, |
|
706 SH_ScrollBar_RollBetweenButtons, |
|
707 SH_Slider_AbsoluteSetButtons, |
|
708 SH_Slider_PageSetButtons, |
|
709 SH_Menu_KeyboardSearch, |
|
710 SH_TabBar_ElideMode, |
|
711 SH_DialogButtonLayout, |
|
712 SH_ComboBox_PopupFrameStyle, |
|
713 SH_MessageBox_TextInteractionFlags, |
|
714 SH_DialogButtonBox_ButtonsHaveIcons, |
|
715 SH_SpellCheckUnderlineStyle, |
|
716 SH_MessageBox_CenterButtons, |
|
717 SH_Menu_SelectionWrap, |
|
718 SH_ItemView_MovementWithoutUpdatingSelection, |
|
719 SH_ToolTip_Mask, |
|
720 SH_FocusFrame_AboveWidget, |
|
721 SH_TextControl_FocusIndicatorTextCharFormat, |
|
722 SH_WizardStyle, |
|
723 SH_ItemView_ArrowKeysNavigateIntoChildren, |
|
724 SH_Menu_Mask, |
|
725 SH_Menu_FlashTriggeredItem, |
|
726 SH_Menu_FadeOutOnHide, |
|
727 SH_SpinBox_ClickAutoRepeatThreshold, |
|
728 SH_ItemView_PaintAlternatingRowColorsForEmptyArea, |
|
729 SH_FormLayoutWrapPolicy, |
|
730 SH_TabWidget_DefaultTabPosition, |
|
731 SH_ToolBar_Movable, |
|
732 SH_FormLayoutFieldGrowthPolicy, |
|
733 SH_FormLayoutFormAlignment, |
|
734 SH_FormLayoutLabelAlignment, |
|
735 SH_ItemView_DrawDelegateFrame, |
|
736 SH_TabBar_CloseButtonPosition, |
|
737 SH_DockWidget_ButtonsHaveFrame, |
|
738 SH_ToolButtonStyle, |
|
739 SH_RequestSoftwareInputPanel, |
|
740 // Add new style hint values here |
|
741 |
|
742 #ifdef QT3_SUPPORT |
|
743 SH_GUIStyle = 0x00000100, |
|
744 SH_ScrollBar_BackgroundMode, |
|
745 // Add other compat values here |
|
746 |
|
747 SH_UnderlineAccelerator = SH_UnderlineShortcut, |
|
748 #endif |
|
749 SH_CustomBase = 0xf0000000 |
|
750 }; |
|
751 |
|
752 virtual int styleHint(StyleHint stylehint, const QStyleOption *opt = 0, |
|
753 const QWidget *widget = 0, QStyleHintReturn* returnData = 0) const = 0; |
|
754 |
|
755 enum StandardPixmap { |
|
756 SP_TitleBarMenuButton, |
|
757 SP_TitleBarMinButton, |
|
758 SP_TitleBarMaxButton, |
|
759 SP_TitleBarCloseButton, |
|
760 SP_TitleBarNormalButton, |
|
761 SP_TitleBarShadeButton, |
|
762 SP_TitleBarUnshadeButton, |
|
763 SP_TitleBarContextHelpButton, |
|
764 SP_DockWidgetCloseButton, |
|
765 SP_MessageBoxInformation, |
|
766 SP_MessageBoxWarning, |
|
767 SP_MessageBoxCritical, |
|
768 SP_MessageBoxQuestion, |
|
769 SP_DesktopIcon, |
|
770 SP_TrashIcon, |
|
771 SP_ComputerIcon, |
|
772 SP_DriveFDIcon, |
|
773 SP_DriveHDIcon, |
|
774 SP_DriveCDIcon, |
|
775 SP_DriveDVDIcon, |
|
776 SP_DriveNetIcon, |
|
777 SP_DirOpenIcon, |
|
778 SP_DirClosedIcon, |
|
779 SP_DirLinkIcon, |
|
780 SP_FileIcon, |
|
781 SP_FileLinkIcon, |
|
782 SP_ToolBarHorizontalExtensionButton, |
|
783 SP_ToolBarVerticalExtensionButton, |
|
784 SP_FileDialogStart, |
|
785 SP_FileDialogEnd, |
|
786 SP_FileDialogToParent, |
|
787 SP_FileDialogNewFolder, |
|
788 SP_FileDialogDetailedView, |
|
789 SP_FileDialogInfoView, |
|
790 SP_FileDialogContentsView, |
|
791 SP_FileDialogListView, |
|
792 SP_FileDialogBack, |
|
793 SP_DirIcon, |
|
794 SP_DialogOkButton, |
|
795 SP_DialogCancelButton, |
|
796 SP_DialogHelpButton, |
|
797 SP_DialogOpenButton, |
|
798 SP_DialogSaveButton, |
|
799 SP_DialogCloseButton, |
|
800 SP_DialogApplyButton, |
|
801 SP_DialogResetButton, |
|
802 SP_DialogDiscardButton, |
|
803 SP_DialogYesButton, |
|
804 SP_DialogNoButton, |
|
805 SP_ArrowUp, |
|
806 SP_ArrowDown, |
|
807 SP_ArrowLeft, |
|
808 SP_ArrowRight, |
|
809 SP_ArrowBack, |
|
810 SP_ArrowForward, |
|
811 SP_DirHomeIcon, |
|
812 SP_CommandLink, |
|
813 SP_VistaShield, |
|
814 SP_BrowserReload, |
|
815 SP_BrowserStop, |
|
816 SP_MediaPlay, |
|
817 SP_MediaStop, |
|
818 SP_MediaPause, |
|
819 SP_MediaSkipForward, |
|
820 SP_MediaSkipBackward, |
|
821 SP_MediaSeekForward, |
|
822 SP_MediaSeekBackward, |
|
823 SP_MediaVolume, |
|
824 SP_MediaVolumeMuted, |
|
825 // do not add any values below/greater than this |
|
826 SP_CustomBase = 0xf0000000 |
|
827 }; |
|
828 |
|
829 virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt = 0, |
|
830 const QWidget *widget = 0) const = 0; |
|
831 |
|
832 QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0, |
|
833 const QWidget *widget = 0) const; |
|
834 |
|
835 virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, |
|
836 const QStyleOption *opt) const = 0; |
|
837 |
|
838 static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, |
|
839 const QRect &logicalRect); |
|
840 static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, |
|
841 const QPoint &logicalPos); |
|
842 static int sliderPositionFromValue(int min, int max, int val, int space, |
|
843 bool upsideDown = false); |
|
844 static int sliderValueFromPosition(int min, int max, int pos, int space, |
|
845 bool upsideDown = false); |
|
846 static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment); |
|
847 static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, |
|
848 const QSize &size, const QRect &rectangle); |
|
849 |
|
850 int layoutSpacing(QSizePolicy::ControlType control1, |
|
851 QSizePolicy::ControlType control2, Qt::Orientation orientation, |
|
852 const QStyleOption *option = 0, const QWidget *widget = 0) const; |
|
853 int combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, |
|
854 QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, |
|
855 QStyleOption *option = 0, QWidget *widget = 0) const; |
|
856 |
|
857 const QStyle * proxy() const; |
|
858 |
|
859 protected Q_SLOTS: |
|
860 QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *opt = 0, |
|
861 const QWidget *widget = 0) const; |
|
862 int layoutSpacingImplementation(QSizePolicy::ControlType control1, |
|
863 QSizePolicy::ControlType control2, |
|
864 Qt::Orientation orientation, |
|
865 const QStyleOption *option = 0, |
|
866 const QWidget *widget = 0) const; |
|
867 |
|
868 private: |
|
869 Q_DISABLE_COPY(QStyle) |
|
870 friend class QWidget; |
|
871 friend class QWidgetPrivate; |
|
872 friend class QApplication; |
|
873 friend class QProxyStyle; |
|
874 friend class QProxyStylePrivate; |
|
875 void setProxy(QStyle *style); |
|
876 }; |
|
877 |
|
878 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::State) |
|
879 Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::SubControls) |
|
880 |
|
881 #if !defined(QT_NO_DEBUG_STREAM) && !defined(QT_NO_DEBUG) |
|
882 Q_GUI_EXPORT QDebug operator<<(QDebug debug, QStyle::State state); |
|
883 #endif |
|
884 |
|
885 QT_END_NAMESPACE |
|
886 |
|
887 QT_END_HEADER |
|
888 |
|
889 #endif // QSTYLE_H |