1 | /****************************************************************************
|
---|
2 | ** $Id: qstyle.cpp 2 2005-11-16 15:49:26Z dmik $
|
---|
3 | **
|
---|
4 | ** Implementation of QStyle class
|
---|
5 | **
|
---|
6 | ** Created : 981231
|
---|
7 | **
|
---|
8 | ** Copyright (C) 1998-2002 Trolltech AS. All rights reserved.
|
---|
9 | **
|
---|
10 | ** This file is part of the kernel module of the Qt GUI Toolkit.
|
---|
11 | **
|
---|
12 | ** This file may be distributed under the terms of the Q Public License
|
---|
13 | ** as defined by Trolltech AS of Norway and appearing in the file
|
---|
14 | ** LICENSE.QPL included in the packaging of this file.
|
---|
15 | **
|
---|
16 | ** This file may be distributed and/or modified under the terms of the
|
---|
17 | ** GNU General Public License version 2 as published by the Free Software
|
---|
18 | ** Foundation and appearing in the file LICENSE.GPL included in the
|
---|
19 | ** packaging of this file.
|
---|
20 | **
|
---|
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
|
---|
22 | ** licenses may use this file in accordance with the Qt Commercial License
|
---|
23 | ** Agreement provided with the Software.
|
---|
24 | **
|
---|
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
---|
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
---|
27 | **
|
---|
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
|
---|
29 | ** information about Qt Commercial License Agreements.
|
---|
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information.
|
---|
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information.
|
---|
32 | **
|
---|
33 | ** Contact info@trolltech.com if any conditions of this licensing are
|
---|
34 | ** not clear to you.
|
---|
35 | **
|
---|
36 | **********************************************************************/
|
---|
37 |
|
---|
38 | #include "qstyle.h"
|
---|
39 | #ifndef QT_NO_STYLE
|
---|
40 | #include "qapplication.h"
|
---|
41 | #include "qpainter.h"
|
---|
42 | #include "qbitmap.h"
|
---|
43 | #include "qpixmapcache.h"
|
---|
44 |
|
---|
45 | #include <limits.h>
|
---|
46 |
|
---|
47 |
|
---|
48 | class QStylePrivate
|
---|
49 | {
|
---|
50 | public:
|
---|
51 | QStylePrivate()
|
---|
52 | {
|
---|
53 | }
|
---|
54 | };
|
---|
55 |
|
---|
56 | /*!
|
---|
57 | \class QStyleOption qstyle.h
|
---|
58 | \brief The QStyleOption class specifies optional parameters for QStyle functions.
|
---|
59 | \ingroup appearance
|
---|
60 |
|
---|
61 | Some QStyle functions take an optional argument specifying extra
|
---|
62 | information that is required for a paritical primitive or control.
|
---|
63 | So that the QStyle class can be extended, QStyleOption is used to
|
---|
64 | provide a variable-argument for these options.
|
---|
65 |
|
---|
66 | The QStyleOption class has constructors for each type of optional
|
---|
67 | argument, and this set of constructors may be extended in future
|
---|
68 | Qt releases. There are also corresponding access functions that
|
---|
69 | return the optional arguments: these too may be extended.
|
---|
70 |
|
---|
71 | For each constructor, you should refer to the documentation of the
|
---|
72 | QStyle functions to see the meaning of the arguments.
|
---|
73 |
|
---|
74 | When calling QStyle functions from your own widgets, you must only
|
---|
75 | pass the default QStyleOption or the argument that QStyle is
|
---|
76 | documented to accept. For example, if the function expects
|
---|
77 | QStyleOption(QMenuItem *, int), passing QStyleOption(QMenuItem *)
|
---|
78 | leaves the optional integer argument uninitialized.
|
---|
79 |
|
---|
80 | When subclassing QStyle, you must similarly only expect the
|
---|
81 | default or documented arguments. The other arguments will have
|
---|
82 | uninitialized values.
|
---|
83 |
|
---|
84 | If you make your own QStyle subclasses and your own widgets, you
|
---|
85 | can make a subclass of QStyleOption to pass additional arguments
|
---|
86 | to your QStyle subclass. You will need to cast the "const
|
---|
87 | QStyleOption&" argument to your subclass, so be sure your style
|
---|
88 | has been called from your widget.
|
---|
89 | */
|
---|
90 |
|
---|
91 | /*!
|
---|
92 | \enum QStyleOption::StyleOptionDefault
|
---|
93 |
|
---|
94 | This enum value can be passed as the optional argument to any
|
---|
95 | QStyle function.
|
---|
96 |
|
---|
97 | \value Default
|
---|
98 | */
|
---|
99 |
|
---|
100 | /*!
|
---|
101 | \fn QStyleOption::QStyleOption(StyleOptionDefault)
|
---|
102 |
|
---|
103 | The default option. This can always be passed as the optional
|
---|
104 | argument to QStyle functions.
|
---|
105 | */
|
---|
106 |
|
---|
107 | /*!
|
---|
108 | \fn QStyleOption::QStyleOption(int)
|
---|
109 |
|
---|
110 | Pass one integer, \a in1. For example, headerSection.
|
---|
111 | */
|
---|
112 |
|
---|
113 | /*!
|
---|
114 | \fn QStyleOption::QStyleOption(int, int)
|
---|
115 |
|
---|
116 | Pass two integers, \a in1 and \a in2. For example, linewidth and
|
---|
117 | midlinewidth.
|
---|
118 | */
|
---|
119 |
|
---|
120 | /*!
|
---|
121 | \fn QStyleOption::QStyleOption(int, int, int, int)
|
---|
122 |
|
---|
123 | Pass four integers, \a in1, \a in2, \a in3 and \a in4.
|
---|
124 | */
|
---|
125 |
|
---|
126 | /*!
|
---|
127 | \fn QStyleOption::QStyleOption(QMenuItem*)
|
---|
128 |
|
---|
129 | Pass a menu item, \a m.
|
---|
130 | */
|
---|
131 |
|
---|
132 | /*!
|
---|
133 | \fn QStyleOption::QStyleOption(QMenuItem*, int)
|
---|
134 |
|
---|
135 | Pass a menu item and an integer, \a m and \a in1.
|
---|
136 | */
|
---|
137 |
|
---|
138 | /*!
|
---|
139 | \fn QStyleOption::QStyleOption(QMenuItem*, int, int)
|
---|
140 |
|
---|
141 | Pass a menu item and two integers, \a m, \a in1 and \a in2.
|
---|
142 | */
|
---|
143 |
|
---|
144 | /*!
|
---|
145 | \fn QStyleOption::QStyleOption(const QColor&)
|
---|
146 |
|
---|
147 | Pass a color, \a c.
|
---|
148 | */
|
---|
149 |
|
---|
150 | /*!
|
---|
151 | \fn QStyleOption::QStyleOption(QTab*)
|
---|
152 |
|
---|
153 | Pass a QTab, \a t.
|
---|
154 | */
|
---|
155 |
|
---|
156 | /*!
|
---|
157 | \fn QStyleOption::QStyleOption(QListViewItem*)
|
---|
158 |
|
---|
159 | Pass a QListViewItem, \a i.
|
---|
160 | */
|
---|
161 |
|
---|
162 | /*!
|
---|
163 | \fn QStyleOption::QStyleOption(Qt::ArrowType)
|
---|
164 |
|
---|
165 | Pass an Qt::ArrowType, \a a.
|
---|
166 | */
|
---|
167 |
|
---|
168 | /*!
|
---|
169 | \fn QStyleOption::QStyleOption(QCheckListItem* i)
|
---|
170 |
|
---|
171 | Pass a QCheckListItem, \a i.
|
---|
172 | */
|
---|
173 |
|
---|
174 | /*!
|
---|
175 | \fn QStyleOption::QStyleOption( const QRect &r )
|
---|
176 |
|
---|
177 | Pass a QRect, \a r.
|
---|
178 | */
|
---|
179 |
|
---|
180 | /*!
|
---|
181 | \fn QStyleOption::QStyleOption( QWidget *w )
|
---|
182 |
|
---|
183 | Pass a QWidget, \a w.
|
---|
184 | */
|
---|
185 |
|
---|
186 | /*!
|
---|
187 | \fn bool QStyleOption::isDefault() const
|
---|
188 |
|
---|
189 | Returns TRUE if the option was constructed with the default
|
---|
190 | constructor; otherwise returns FALSE.
|
---|
191 | */
|
---|
192 |
|
---|
193 | /*!
|
---|
194 | \fn int QStyleOption::day() const
|
---|
195 |
|
---|
196 | Returns the index of the day in the month if the appropriate
|
---|
197 | constructor was called; otherwise the return value is undefined.
|
---|
198 | */
|
---|
199 |
|
---|
200 | /*!
|
---|
201 | \fn int QStyleOption::lineWidth() const
|
---|
202 |
|
---|
203 | Returns the line width if the appropriate constructor was called;
|
---|
204 | otherwise the return value is undefined.
|
---|
205 | */
|
---|
206 |
|
---|
207 | /*!
|
---|
208 | \fn int QStyleOption::midLineWidth() const
|
---|
209 |
|
---|
210 | Returns the mid-line width if the appropriate constructor was
|
---|
211 | called; otherwise the return value is undefined.
|
---|
212 | */
|
---|
213 |
|
---|
214 | /*!
|
---|
215 | \fn int QStyleOption::frameShape() const
|
---|
216 |
|
---|
217 | Returns a QFrame::Shape value if the appropriate constructor was
|
---|
218 | called; otherwise the return value is undefined.
|
---|
219 | */
|
---|
220 |
|
---|
221 | /*!
|
---|
222 | \fn int QStyleOption::frameShadow() const
|
---|
223 |
|
---|
224 | Returns a QFrame::Shadow value if the appropriate constructor was
|
---|
225 | called; otherwise the return value is undefined.
|
---|
226 | */
|
---|
227 |
|
---|
228 | /*!
|
---|
229 | \fn QMenuItem* QStyleOption::menuItem() const
|
---|
230 |
|
---|
231 | Returns a menu item if the appropriate constructor was called;
|
---|
232 | otherwise the return value is undefined.
|
---|
233 | */
|
---|
234 |
|
---|
235 | /*!
|
---|
236 | \fn int QStyleOption::maxIconWidth() const
|
---|
237 |
|
---|
238 | Returns the maximum width of the menu item check area if the
|
---|
239 | appropriate constructor was called; otherwise the return value is
|
---|
240 | undefined.
|
---|
241 | */
|
---|
242 |
|
---|
243 | /*!
|
---|
244 | \fn int QStyleOption::tabWidth() const
|
---|
245 |
|
---|
246 | Returns the tab indent width if the appropriate constructor was
|
---|
247 | called; otherwise the return value is undefined.
|
---|
248 | */
|
---|
249 |
|
---|
250 | /*!
|
---|
251 | \fn int QStyleOption::headerSection() const
|
---|
252 |
|
---|
253 | Returns the header section if the appropriate constructor was
|
---|
254 | called; otherwise the return value is undefined.
|
---|
255 | */
|
---|
256 |
|
---|
257 | /*!
|
---|
258 | \fn const QColor& QStyleOption::color() const
|
---|
259 |
|
---|
260 | Returns a color if the appropriate constructor was called;
|
---|
261 | otherwise the return value is undefined.
|
---|
262 | */
|
---|
263 |
|
---|
264 | /*!
|
---|
265 | \fn QTab* QStyleOption::tab() const
|
---|
266 |
|
---|
267 | Returns a QTabBar tab if the appropriate constructor was called;
|
---|
268 | otherwise the return value is undefined.
|
---|
269 | */
|
---|
270 |
|
---|
271 | /*!
|
---|
272 | \fn QListViewItem* QStyleOption::listViewItem() const
|
---|
273 |
|
---|
274 | Returns a QListView item if the appropriate constructor was
|
---|
275 | called; otherwise the return value is undefined.
|
---|
276 | */
|
---|
277 |
|
---|
278 | /*!
|
---|
279 | \fn Qt::ArrowType QStyleOption::arrowType() const
|
---|
280 |
|
---|
281 | Returns an arrow type if the appropriate constructor was called;
|
---|
282 | otherwise the return value is undefined.
|
---|
283 | */
|
---|
284 |
|
---|
285 | /*!
|
---|
286 | \fn QCheckListItem* QStyleOption::checkListItem() const
|
---|
287 |
|
---|
288 | Returns a check list item if the appropriate constructor was
|
---|
289 | called; otherwise the return value is undefined.
|
---|
290 | */
|
---|
291 |
|
---|
292 | /*!
|
---|
293 | \fn QRect QStyleOption::rect() const
|
---|
294 |
|
---|
295 | Returns a rectangle if the appropriate constructor was called;
|
---|
296 | otherwise the return value is undefined.
|
---|
297 | */
|
---|
298 |
|
---|
299 | /*!
|
---|
300 | \fn QWidget* QStyleOption::widget() const
|
---|
301 |
|
---|
302 | Returns a pointer to a widget if the appropriate constructor was called;
|
---|
303 | otherwise the return value is undefined.
|
---|
304 | */
|
---|
305 |
|
---|
306 | /*!
|
---|
307 | \class QStyle qstyle.h
|
---|
308 | \brief The QStyle class specifies the look and feel of a GUI.
|
---|
309 | \ingroup appearance
|
---|
310 |
|
---|
311 | A large number of GUI elements are common to many widgets. The
|
---|
312 | QStyle class allows the look of these elements to be modified
|
---|
313 | across all widgets that use the QStyle functions. It also
|
---|
314 | provides two feel options: Motif and Windows.
|
---|
315 |
|
---|
316 | Although it is not possible to fully enumerate the look of
|
---|
317 | graphical elements and the feel of widgets in a GUI, QStyle
|
---|
318 | provides a considerable amount of control and customisability.
|
---|
319 |
|
---|
320 | In Qt 1.x the look and feel option for widgets was specified by a
|
---|
321 | single value: the GUIStyle. Starting with Qt 2.0, this notion was
|
---|
322 | expanded to allow the look to be specified by virtual drawing
|
---|
323 | functions.
|
---|
324 |
|
---|
325 | Derived classes may reimplement some or all of the drawing
|
---|
326 | functions to modify the look of all widgets that use those
|
---|
327 | functions.
|
---|
328 |
|
---|
329 | Languages written from right to left (such as Arabic and Hebrew)
|
---|
330 | usually also mirror the whole layout of widgets. If you design a
|
---|
331 | style, you should take special care when drawing asymmetric
|
---|
332 | elements to make sure that they also look correct in a mirrored
|
---|
333 | layout. You can start your application with \c -reverse to check
|
---|
334 | the mirrored layout. Also notice, that for a reversed layout, the
|
---|
335 | light usually comes from top right instead of top left.
|
---|
336 |
|
---|
337 | The actual reverse layout is performed automatically when
|
---|
338 | possible. However, for the sake of flexibility, the translation
|
---|
339 | cannot be performed everywhere. The documentation for each
|
---|
340 | function in the QStyle API states whether the function
|
---|
341 | expects/returns logical or screen coordinates. Using logical
|
---|
342 | coordinates (in ComplexControls, for example) provides great
|
---|
343 | flexibility in controlling the look of a widget. Use visualRect()
|
---|
344 | when necessary to translate logical coordinates into screen
|
---|
345 | coordinates for drawing.
|
---|
346 |
|
---|
347 | In Qt versions prior to 3.0, if you wanted a low level route into
|
---|
348 | changing the appearance of a widget, you would reimplement
|
---|
349 | polish(). With the new 3.0 style engine the recommended approach
|
---|
350 | is to reimplement the draw functions, for example drawItem(),
|
---|
351 | drawPrimitive(), drawControl(), drawControlMask(),
|
---|
352 | drawComplexControl() and drawComplexControlMask(). Each of these
|
---|
353 | functions is called with a range of parameters that provide
|
---|
354 | information that you can use to determine how to draw them, e.g.
|
---|
355 | style flags, rectangle, color group, etc.
|
---|
356 |
|
---|
357 | For information on changing elements of an existing style or
|
---|
358 | creating your own style see the \link customstyles.html Style
|
---|
359 | overview\endlink.
|
---|
360 |
|
---|
361 | Styles can also be created as \link plugins-howto.html
|
---|
362 | plugins\endlink.
|
---|
363 | */
|
---|
364 |
|
---|
365 | /*!
|
---|
366 | \enum Qt::GUIStyle
|
---|
367 |
|
---|
368 | \obsolete
|
---|
369 |
|
---|
370 | \value WindowsStyle
|
---|
371 | \value MotifStyle
|
---|
372 | \value MacStyle
|
---|
373 | \value Win3Style
|
---|
374 | \value PMStyle
|
---|
375 | */
|
---|
376 |
|
---|
377 | /*!
|
---|
378 | \enum Qt::UIEffect
|
---|
379 |
|
---|
380 | \value UI_General
|
---|
381 | \value UI_AnimateMenu
|
---|
382 | \value UI_FadeMenu
|
---|
383 | \value UI_AnimateCombo
|
---|
384 | \value UI_AnimateTooltip
|
---|
385 | \value UI_FadeTooltip
|
---|
386 | \value UI_AnimateToolBox Reserved
|
---|
387 | */
|
---|
388 |
|
---|
389 | /*!
|
---|
390 | Constructs a QStyle.
|
---|
391 | */
|
---|
392 | QStyle::QStyle()
|
---|
393 | {
|
---|
394 | d = new QStylePrivate;
|
---|
395 | }
|
---|
396 |
|
---|
397 | /*!
|
---|
398 | Destroys the style and frees all allocated resources.
|
---|
399 | */
|
---|
400 | QStyle::~QStyle()
|
---|
401 | {
|
---|
402 | delete d;
|
---|
403 | d = 0;
|
---|
404 | }
|
---|
405 |
|
---|
406 | /*
|
---|
407 | \fn GUIStyle QStyle::guiStyle() const
|
---|
408 | \obsolete
|
---|
409 |
|
---|
410 | Returns an indicator to the additional "feel" component of a
|
---|
411 | style. Current supported values are Qt::WindowsStyle and Qt::MotifStyle.
|
---|
412 | */
|
---|
413 |
|
---|
414 |
|
---|
415 |
|
---|
416 | /*!
|
---|
417 | Initializes the appearance of a widget.
|
---|
418 |
|
---|
419 | This function is called for every widget at some point after it
|
---|
420 | has been fully created but just \e before it is shown the very
|
---|
421 | first time.
|
---|
422 |
|
---|
423 | Reasonable actions in this function might be to call
|
---|
424 | QWidget::setBackgroundMode() for the widget. An example of highly
|
---|
425 | unreasonable use would be setting the geometry! Reimplementing
|
---|
426 | this function gives you a back-door through which you can change
|
---|
427 | the appearance of a widget. With Qt 3.0's style engine you will
|
---|
428 | rarely need to write your own polish(); instead reimplement
|
---|
429 | drawItem(), drawPrimitive(), etc.
|
---|
430 |
|
---|
431 | The QWidget::inherits() function may provide enough information to
|
---|
432 | allow class-specific customizations. But be careful not to
|
---|
433 | hard-code things too much because new QStyle subclasses are
|
---|
434 | expected to work reasonably with all current and \e future
|
---|
435 | widgets.
|
---|
436 |
|
---|
437 | \sa unPolish()
|
---|
438 | */
|
---|
439 | void QStyle::polish( QWidget*)
|
---|
440 | {
|
---|
441 | }
|
---|
442 |
|
---|
443 | /*!
|
---|
444 | Undoes the initialization of a widget's appearance.
|
---|
445 |
|
---|
446 | This function is the counterpart to polish. It is called for every
|
---|
447 | polished widget when the style is dynamically changed. The former
|
---|
448 | style has to unpolish its settings before the new style can polish
|
---|
449 | them again.
|
---|
450 |
|
---|
451 | \sa polish()
|
---|
452 | */
|
---|
453 | void QStyle::unPolish( QWidget*)
|
---|
454 | {
|
---|
455 | }
|
---|
456 |
|
---|
457 |
|
---|
458 | /*!
|
---|
459 | \overload
|
---|
460 |
|
---|
461 | Late initialization of the QApplication object.
|
---|
462 |
|
---|
463 | \sa unPolish()
|
---|
464 | */
|
---|
465 | void QStyle::polish( QApplication*)
|
---|
466 | {
|
---|
467 | }
|
---|
468 |
|
---|
469 | /*!
|
---|
470 | \overload
|
---|
471 |
|
---|
472 | Undoes the application polish.
|
---|
473 |
|
---|
474 | \sa polish()
|
---|
475 | */
|
---|
476 | void QStyle::unPolish( QApplication*)
|
---|
477 | {
|
---|
478 | }
|
---|
479 |
|
---|
480 | /*!
|
---|
481 | \overload
|
---|
482 |
|
---|
483 | The style may have certain requirements for color palettes. In
|
---|
484 | this function it has the chance to change the palette according to
|
---|
485 | these requirements.
|
---|
486 |
|
---|
487 | \sa QPalette, QApplication::setPalette()
|
---|
488 | */
|
---|
489 | void QStyle::polish( QPalette&)
|
---|
490 | {
|
---|
491 | }
|
---|
492 |
|
---|
493 | /*!
|
---|
494 | Polishes the popup menu according to the GUI style. This usually
|
---|
495 | means setting the mouse tracking
|
---|
496 | (\l{QPopupMenu::setMouseTracking()}) and whether the menu is
|
---|
497 | checkable by default (\l{QPopupMenu::setCheckable()}).
|
---|
498 | */
|
---|
499 | void QStyle::polishPopupMenu( QPopupMenu *)
|
---|
500 | {
|
---|
501 | }
|
---|
502 |
|
---|
503 | /*!
|
---|
504 | Returns the appropriate area (see below) within rectangle \a r in
|
---|
505 | which to draw the \a text or \a pixmap using painter \a p. If \a
|
---|
506 | len is -1 (the default) all the \a text is drawn; otherwise only
|
---|
507 | the first \a len characters of \a text are drawn. The text is
|
---|
508 | aligned in accordance with the alignment \a flags (see
|
---|
509 | \l{Qt::AlignmentFlags}). The \a enabled bool indicates whether or
|
---|
510 | not the item is enabled.
|
---|
511 |
|
---|
512 | If \a r is larger than the area needed to render the \a text the
|
---|
513 | rectangle that is returned will be offset within \a r in
|
---|
514 | accordance with the alignment \a flags. For example if \a flags is
|
---|
515 | \c AlignCenter the returned rectangle will be centered within \a
|
---|
516 | r. If \a r is smaller than the area needed the rectangle that is
|
---|
517 | returned will be \e larger than \a r (the smallest rectangle large
|
---|
518 | enough to render the \a text or \a pixmap).
|
---|
519 |
|
---|
520 | By default, if both the text and the pixmap are not null, the
|
---|
521 | pixmap is drawn and the text is ignored.
|
---|
522 | */
|
---|
523 | QRect QStyle::itemRect( QPainter *p, const QRect &r,
|
---|
524 | int flags, bool enabled, const QPixmap *pixmap,
|
---|
525 | const QString& text, int len ) const
|
---|
526 | {
|
---|
527 | QRect result;
|
---|
528 | int x = r.x();
|
---|
529 | int y = r.y();
|
---|
530 | int w = r.width();
|
---|
531 | int h = r.height();
|
---|
532 | GUIStyle gs = (GUIStyle)styleHint( SH_GUIStyle );
|
---|
533 |
|
---|
534 | if ( pixmap ) {
|
---|
535 | if ( (flags & Qt::AlignVCenter) == Qt::AlignVCenter )
|
---|
536 | y += h/2 - pixmap->height()/2;
|
---|
537 | else if ( (flags & Qt::AlignBottom) == Qt::AlignBottom)
|
---|
538 | y += h - pixmap->height();
|
---|
539 | if ( (flags & Qt::AlignRight) == Qt::AlignRight )
|
---|
540 | x += w - pixmap->width();
|
---|
541 | else if ( (flags & Qt::AlignHCenter) == Qt::AlignHCenter )
|
---|
542 | x += w/2 - pixmap->width()/2;
|
---|
543 | else if ( (flags & Qt::AlignLeft) != Qt::AlignLeft && QApplication::reverseLayout() )
|
---|
544 | x += w - pixmap->width();
|
---|
545 | result = QRect(x, y, pixmap->width(), pixmap->height());
|
---|
546 | } else if ( !text.isNull() && p ) {
|
---|
547 | result = p->boundingRect( x, y, w, h, flags, text, len );
|
---|
548 | if ( gs == Qt::WindowsStyle && !enabled ) {
|
---|
549 | result.setWidth(result.width()+1);
|
---|
550 | result.setHeight(result.height()+1);
|
---|
551 | }
|
---|
552 | } else {
|
---|
553 | result = QRect(x, y, w, h);
|
---|
554 | }
|
---|
555 |
|
---|
556 | return result;
|
---|
557 | }
|
---|
558 |
|
---|
559 |
|
---|
560 | /*!
|
---|
561 | Draws the \a text or \a pixmap in rectangle \a r using painter \a
|
---|
562 | p and color group \a g. The pen color is specified with \a
|
---|
563 | penColor. The \a enabled bool indicates whether or not the item is
|
---|
564 | enabled; when reimplementing this bool should influence how the
|
---|
565 | item is drawn. If \a len is -1 (the default) all the \a text is
|
---|
566 | drawn; otherwise only the first \a len characters of \a text are
|
---|
567 | drawn. The text is aligned and wrapped according to the alignment
|
---|
568 | \a flags (see \l{Qt::AlignmentFlags}).
|
---|
569 |
|
---|
570 | By default, if both the text and the pixmap are not null, the
|
---|
571 | pixmap is drawn and the text is ignored.
|
---|
572 | */
|
---|
573 | void QStyle::drawItem( QPainter *p, const QRect &r,
|
---|
574 | int flags, const QColorGroup &g, bool enabled,
|
---|
575 | const QPixmap *pixmap, const QString& text, int len,
|
---|
576 | const QColor* penColor ) const
|
---|
577 | {
|
---|
578 | int x = r.x();
|
---|
579 | int y = r.y();
|
---|
580 | int w = r.width();
|
---|
581 | int h = r.height();
|
---|
582 | GUIStyle gs = (GUIStyle)styleHint( SH_GUIStyle );
|
---|
583 |
|
---|
584 | p->setPen( penColor?*penColor:g.foreground() );
|
---|
585 | if ( pixmap ) {
|
---|
586 | QPixmap pm( *pixmap );
|
---|
587 | bool clip = (flags & Qt::DontClip) == 0;
|
---|
588 | if ( clip ) {
|
---|
589 | if ( pm.width() < w && pm.height() < h ) {
|
---|
590 | clip = FALSE;
|
---|
591 | } else {
|
---|
592 | p->save();
|
---|
593 | QRegion cr = QRect(x, y, w, h);
|
---|
594 | if (p->hasClipping())
|
---|
595 | cr &= p->clipRegion(QPainter::CoordPainter);
|
---|
596 | p->setClipRegion(cr);
|
---|
597 | }
|
---|
598 | }
|
---|
599 | if ( (flags & Qt::AlignVCenter) == Qt::AlignVCenter )
|
---|
600 | y += h/2 - pm.height()/2;
|
---|
601 | else if ( (flags & Qt::AlignBottom) == Qt::AlignBottom)
|
---|
602 | y += h - pm.height();
|
---|
603 | if ( (flags & Qt::AlignRight) == Qt::AlignRight )
|
---|
604 | x += w - pm.width();
|
---|
605 | else if ( (flags & Qt::AlignHCenter) == Qt::AlignHCenter )
|
---|
606 | x += w/2 - pm.width()/2;
|
---|
607 | else if ( ((flags & Qt::AlignLeft) != Qt::AlignLeft) && QApplication::reverseLayout() ) // AlignAuto && rightToLeft
|
---|
608 | x += w - pm.width();
|
---|
609 |
|
---|
610 | if ( !enabled ) {
|
---|
611 | if ( pm.mask() ) { // pixmap with a mask
|
---|
612 | if ( !pm.selfMask() ) { // mask is not pixmap itself
|
---|
613 | QPixmap pmm( *pm.mask() );
|
---|
614 | pmm.setMask( *((QBitmap *)&pmm) );
|
---|
615 | pm = pmm;
|
---|
616 | }
|
---|
617 | } else if ( pm.depth() == 1 ) { // monochrome pixmap, no mask
|
---|
618 | pm.setMask( *((QBitmap *)&pm) );
|
---|
619 | #ifndef QT_NO_IMAGE_HEURISTIC_MASK
|
---|
620 | } else { // color pixmap, no mask
|
---|
621 | QString k;
|
---|
622 | k.sprintf( "$qt-drawitem-%x", pm.serialNumber() );
|
---|
623 | QPixmap *mask = QPixmapCache::find(k);
|
---|
624 | bool del=FALSE;
|
---|
625 | if ( !mask ) {
|
---|
626 | mask = new QPixmap( pm.createHeuristicMask() );
|
---|
627 | mask->setMask( *((QBitmap*)mask) );
|
---|
628 | del = !QPixmapCache::insert( k, mask );
|
---|
629 | }
|
---|
630 | pm = *mask;
|
---|
631 | if (del) delete mask;
|
---|
632 | #endif
|
---|
633 | }
|
---|
634 | if ( gs == Qt::WindowsStyle ) {
|
---|
635 | p->setPen( g.light() );
|
---|
636 | p->drawPixmap( x+1, y+1, pm );
|
---|
637 | p->setPen( g.text() );
|
---|
638 | }
|
---|
639 | }
|
---|
640 | p->drawPixmap( x, y, pm );
|
---|
641 | if ( clip )
|
---|
642 | p->restore();
|
---|
643 | } else if ( !text.isNull() ) {
|
---|
644 | if ( gs == Qt::WindowsStyle && !enabled ) {
|
---|
645 | p->setPen( g.light() );
|
---|
646 | p->drawText( x+1, y+1, w, h, flags, text, len );
|
---|
647 | p->setPen( g.text() );
|
---|
648 | }
|
---|
649 | p->drawText( x, y, w, h, flags, text, len );
|
---|
650 | }
|
---|
651 | }
|
---|
652 |
|
---|
653 | /*!
|
---|
654 | \enum QStyle::PrimitiveElement
|
---|
655 |
|
---|
656 | This enum represents the PrimitiveElements of a style. A
|
---|
657 | PrimitiveElement is a common GUI element, such as a checkbox
|
---|
658 | indicator or pushbutton bevel.
|
---|
659 |
|
---|
660 | \value PE_ButtonCommand button used to initiate an action, for
|
---|
661 | example, a QPushButton.
|
---|
662 | \value PE_ButtonDefault this button is the default button, e.g.
|
---|
663 | in a dialog.
|
---|
664 | \value PE_ButtonBevel generic button bevel.
|
---|
665 | \value PE_ButtonTool tool button, for example, a QToolButton.
|
---|
666 | \value PE_ButtonDropDown drop down button, for example, a tool
|
---|
667 | button that displays a popup menu, for example, QPopupMenu.
|
---|
668 |
|
---|
669 |
|
---|
670 | \value PE_FocusRect generic focus indicator.
|
---|
671 |
|
---|
672 |
|
---|
673 | \value PE_ArrowUp up arrow.
|
---|
674 | \value PE_ArrowDown down arrow.
|
---|
675 | \value PE_ArrowRight right arrow.
|
---|
676 | \value PE_ArrowLeft left arrow.
|
---|
677 |
|
---|
678 |
|
---|
679 | \value PE_SpinWidgetUp up symbol for a spin widget, for example a
|
---|
680 | QSpinBox.
|
---|
681 | \value PE_SpinWidgetDown down symbol for a spin widget.
|
---|
682 | \value PE_SpinWidgetPlus increase symbol for a spin widget.
|
---|
683 | \value PE_SpinWidgetMinus decrease symbol for a spin widget.
|
---|
684 |
|
---|
685 |
|
---|
686 | \value PE_Indicator on/off indicator, for example, a QCheckBox.
|
---|
687 | \value PE_IndicatorMask bitmap mask for an indicator.
|
---|
688 | \value PE_ExclusiveIndicator exclusive on/off indicator, for
|
---|
689 | example, a QRadioButton.
|
---|
690 | \value PE_ExclusiveIndicatorMask bitmap mask for an exclusive indicator.
|
---|
691 |
|
---|
692 |
|
---|
693 | \value PE_DockWindowHandle tear off handle for dock windows and
|
---|
694 | toolbars, for example \l{QDockWindow}s and \l{QToolBar}s.
|
---|
695 | \value PE_DockWindowSeparator item separator for dock window and
|
---|
696 | toolbar contents.
|
---|
697 | \value PE_DockWindowResizeHandle resize handle for dock windows.
|
---|
698 |
|
---|
699 | \value PE_Splitter splitter handle; see also QSplitter.
|
---|
700 |
|
---|
701 |
|
---|
702 | \value PE_Panel generic panel frame; see also QFrame.
|
---|
703 | \value PE_PanelPopup panel frame for popup windows/menus; see also
|
---|
704 | QPopupMenu.
|
---|
705 | \value PE_PanelMenuBar panel frame for menu bars.
|
---|
706 | \value PE_PanelDockWindow panel frame for dock windows and toolbars.
|
---|
707 | \value PE_PanelTabWidget panel frame for tab widgets.
|
---|
708 | \value PE_PanelLineEdit panel frame for line edits.
|
---|
709 | \value PE_PanelGroupBox panel frame for group boxes.
|
---|
710 |
|
---|
711 | \value PE_TabBarBase area below tabs in a tab widget, for example,
|
---|
712 | QTab.
|
---|
713 |
|
---|
714 |
|
---|
715 | \value PE_HeaderSection section of a list or table header; see also
|
---|
716 | QHeader.
|
---|
717 | \value PE_HeaderArrow arrow used to indicate sorting on a list or table
|
---|
718 | header
|
---|
719 | \value PE_StatusBarSection section of a status bar; see also
|
---|
720 | QStatusBar.
|
---|
721 |
|
---|
722 |
|
---|
723 | \value PE_GroupBoxFrame frame around a group box; see also
|
---|
724 | QGroupBox.
|
---|
725 | \value PE_WindowFrame frame around a MDI window or a docking window
|
---|
726 |
|
---|
727 |
|
---|
728 | \value PE_Separator generic separator.
|
---|
729 |
|
---|
730 |
|
---|
731 | \value PE_SizeGrip window resize handle; see also QSizeGrip.
|
---|
732 |
|
---|
733 |
|
---|
734 | \value PE_CheckMark generic check mark; see also QCheckBox.
|
---|
735 |
|
---|
736 |
|
---|
737 | \value PE_ScrollBarAddLine scrollbar line increase indicator
|
---|
738 | (i.e. scroll down); see also QScrollBar.
|
---|
739 | \value PE_ScrollBarSubLine scrollbar line decrease indicator (i.e. scroll up).
|
---|
740 | \value PE_ScrollBarAddPage scolllbar page increase indicator (i.e. page down).
|
---|
741 | \value PE_ScrollBarSubPage scrollbar page decrease indicator (i.e. page up).
|
---|
742 | \value PE_ScrollBarSlider scrollbar slider
|
---|
743 | \value PE_ScrollBarFirst scrollbar first line indicator (i.e. home).
|
---|
744 | \value PE_ScrollBarLast scrollbar last line indicator (i.e. end).
|
---|
745 |
|
---|
746 |
|
---|
747 | \value PE_ProgressBarChunk section of a progress bar indicator; see
|
---|
748 | also QProgressBar.
|
---|
749 |
|
---|
750 | \value PE_CheckListController controller part of a listview item
|
---|
751 | \value PE_CheckListIndicator checkbox part of a listview item
|
---|
752 | \value PE_CheckListExclusiveIndicator radiobutton part of a listview item
|
---|
753 | \value PE_RubberBand rubber band used in such things as iconview
|
---|
754 |
|
---|
755 | \value PE_CustomBase base value for custom PrimitiveElements.
|
---|
756 | All values above this are reserved for custom use. Custom
|
---|
757 | values must be greater than this value.
|
---|
758 |
|
---|
759 | \sa drawPrimitive()
|
---|
760 | */
|
---|
761 | /*! \enum QStyle::SFlags
|
---|
762 | \internal
|
---|
763 | */
|
---|
764 | /*! \enum QStyle::SCFlags
|
---|
765 | \internal
|
---|
766 | */
|
---|
767 |
|
---|
768 | /*!
|
---|
769 | \enum QStyle::StyleFlags
|
---|
770 |
|
---|
771 | This enum represents flags for drawing PrimitiveElements. Not all
|
---|
772 | primitives use all of these flags. Note that these flags may mean
|
---|
773 | different things to different primitives. For an explanation of
|
---|
774 | the relationship between primitives and their flags, as well as
|
---|
775 | the different meanings of the flags, see the \link
|
---|
776 | customstyles.html Style overview\endlink.
|
---|
777 |
|
---|
778 | \value Style_Default
|
---|
779 | \value Style_Enabled
|
---|
780 | \value Style_Raised
|
---|
781 | \value Style_Sunken
|
---|
782 | \value Style_Off
|
---|
783 | \value Style_NoChange
|
---|
784 | \value Style_On
|
---|
785 | \value Style_Down
|
---|
786 | \value Style_Horizontal
|
---|
787 | \value Style_HasFocus
|
---|
788 | \value Style_Top
|
---|
789 | \value Style_Bottom
|
---|
790 | \value Style_FocusAtBorder
|
---|
791 | \value Style_AutoRaise
|
---|
792 | \value Style_MouseOver
|
---|
793 | \value Style_Up
|
---|
794 | \value Style_Selected
|
---|
795 | \value Style_HasFocus
|
---|
796 | \value Style_Active
|
---|
797 | \value Style_ButtonDefault
|
---|
798 |
|
---|
799 | \sa drawPrimitive()
|
---|
800 | */
|
---|
801 |
|
---|
802 | /*!
|
---|
803 | \fn void QStyle::drawPrimitive( PrimitiveElement pe, QPainter *p, const QRect &r, const QColorGroup &cg, SFlags flags, const QStyleOption& opt) const
|
---|
804 |
|
---|
805 | Draws the style PrimitiveElement \a pe using the painter \a p in
|
---|
806 | the area \a r. Colors are used from the color group \a cg.
|
---|
807 |
|
---|
808 | The rect \a r should be in screen coordinates.
|
---|
809 |
|
---|
810 | The \a flags argument is used to control how the PrimitiveElement
|
---|
811 | is drawn. Multiple flags can be OR'ed together.
|
---|
812 |
|
---|
813 | For example, a pressed button would be drawn with the flags \c
|
---|
814 | Style_Enabled and \c Style_Down.
|
---|
815 |
|
---|
816 | The \a opt argument can be used to control how various
|
---|
817 | PrimitiveElements are drawn. Note that \a opt may be the default
|
---|
818 | value even for PrimitiveElements that make use of extra options.
|
---|
819 | When \a opt is non-default, it is used as follows:
|
---|
820 |
|
---|
821 | \table
|
---|
822 | \header \i PrimitiveElement \i Options \i Notes
|
---|
823 | \row \i \l PE_FocusRect
|
---|
824 | \i \l QStyleOption ( const \l QColor & bg )
|
---|
825 | \list
|
---|
826 | \i opt.\link QStyleOption::color() color\endlink()
|
---|
827 | \endlist
|
---|
828 | \i \e bg is the background color on which the focus rect is being drawn.
|
---|
829 | \row \i12 \l PE_Panel
|
---|
830 | \i12 \l QStyleOption ( int linewidth, int midlinewidth )
|
---|
831 | \list
|
---|
832 | \i opt.\link QStyleOption::lineWidth() lineWidth\endlink()
|
---|
833 | \i opt.\link QStyleOption::midLineWidth() midLineWidth\endlink()
|
---|
834 | \endlist
|
---|
835 | \i \e linewidth is the line width for drawing the panel.
|
---|
836 | \row \i \e midlinewidth is the mid-line width for drawing the panel.
|
---|
837 | \row \i12 \l PE_PanelPopup
|
---|
838 | \i12 \l QStyleOption ( int linewidth, int midlinewidth )
|
---|
839 | \list
|
---|
840 | \i opt.\link QStyleOption::lineWidth() lineWidth\endlink()
|
---|
841 | \i opt.\link QStyleOption::midLineWidth() midLineWidth\endlink()
|
---|
842 | \endlist
|
---|
843 | \i \e linewidth is the line width for drawing the panel.
|
---|
844 | \row \i \e midlinewidth is the mid-line width for drawing the panel.
|
---|
845 | \row \i12 \l PE_PanelMenuBar
|
---|
846 | \i12 \l QStyleOption ( int linewidth, int midlinewidth )
|
---|
847 | \list
|
---|
848 | \i opt.\link QStyleOption::lineWidth() lineWidth\endlink()
|
---|
849 | \i opt.\link QStyleOption::midLineWidth() midLineWidth\endlink()
|
---|
850 | \endlist
|
---|
851 | \i \e linewidth is the line width for drawing the panel.
|
---|
852 | \row \i \e midlinewidth is the mid-line width for drawing the panel.
|
---|
853 | \row \i12 \l PE_PanelDockWindow
|
---|
854 | \i12 \l QStyleOption ( int linewidth, int midlinewidth )
|
---|
855 | \list
|
---|
856 | \i opt.\link QStyleOption::lineWidth() lineWidth\endlink()
|
---|
857 | \i opt.\link QStyleOption::midLineWidth() midLineWidth\endlink()
|
---|
858 | \endlist
|
---|
859 | \i \e linewidth is the line width for drawing the panel.
|
---|
860 | \row \i \e midlinewidth is the mid-line width for drawing the panel.
|
---|
861 | \row \i14 \l PE_GroupBoxFrame
|
---|
862 | \i14 \l QStyleOption ( int linewidth, int midlinewidth, int shape, int shadow )
|
---|
863 | \list
|
---|
864 | \i opt.\link QStyleOption::lineWidth() lineWidth\endlink()
|
---|
865 | \i opt.\link QStyleOption::midLineWidth() midLineWidth\endlink()
|
---|
866 | \i opt.\link QStyleOption::frameShape() frameShape\endlink()
|
---|
867 | \i opt.\link QStyleOption::frameShadow() frameShadow\endlink()
|
---|
868 | \endlist
|
---|
869 | \i \e linewidth is the line width for the group box.
|
---|
870 | \row \i \e midlinewidth is the mid-line width for the group box.
|
---|
871 | \row \i \e shape is the \link QFrame::frameShape frame shape \endlink
|
---|
872 | for the group box.
|
---|
873 | \row \i \e shadow is the \link QFrame::frameShadow frame shadow \endlink
|
---|
874 | for the group box.
|
---|
875 | \endtable
|
---|
876 |
|
---|
877 |
|
---|
878 | For all other \link QStyle::PrimitiveElement
|
---|
879 | PrimitiveElements\endlink, \a opt is unused.
|
---|
880 |
|
---|
881 | \sa StyleFlags
|
---|
882 | */
|
---|
883 |
|
---|
884 | /*!
|
---|
885 | \enum QStyle::ControlElement
|
---|
886 |
|
---|
887 | This enum represents a ControlElement. A ControlElement is part of
|
---|
888 | a widget that performs some action or displays information to the
|
---|
889 | user.
|
---|
890 |
|
---|
891 | \value CE_PushButton the bevel and default indicator of a QPushButton.
|
---|
892 | \value CE_PushButtonLabel the label (iconset with text or pixmap)
|
---|
893 | of a QPushButton.
|
---|
894 |
|
---|
895 | \value CE_CheckBox the indicator of a QCheckBox.
|
---|
896 | \value CE_CheckBoxLabel the label (text or pixmap) of a QCheckBox.
|
---|
897 |
|
---|
898 | \value CE_RadioButton the indicator of a QRadioButton.
|
---|
899 | \value CE_RadioButtonLabel the label (text or pixmap) of a QRadioButton.
|
---|
900 |
|
---|
901 | \value CE_TabBarTab the tab within a QTabBar (a QTab).
|
---|
902 | \value CE_TabBarLabel the label within a QTab.
|
---|
903 |
|
---|
904 | \value CE_ProgressBarGroove the groove where the progress
|
---|
905 | indicator is drawn in a QProgressBar.
|
---|
906 | \value CE_ProgressBarContents the progress indicator of a QProgressBar.
|
---|
907 | \value CE_ProgressBarLabel the text label of a QProgressBar.
|
---|
908 |
|
---|
909 | \value CE_PopupMenuItem a menu item in a QPopupMenu.
|
---|
910 | \value CE_PopupMenuScroller scrolling areas in a popumenu when the
|
---|
911 | style supports scrolling.
|
---|
912 | \value CE_PopupMenuHorizontalExtra extra frame area set aside with PM_PopupMenuFrameHorizontalExtra
|
---|
913 | \value CE_PopupMenuVerticalExtra extra frame area set aside with PM_PopupMenuFrameVerticalExtra
|
---|
914 |
|
---|
915 | \value CE_MenuBarItem a menu item in a QMenuBar.
|
---|
916 |
|
---|
917 | \value CE_ToolButtonLabel a tool button's label.
|
---|
918 |
|
---|
919 | \value CE_MenuBarEmptyArea the empty area of a QMenuBar.
|
---|
920 | \value CE_DockWindowEmptyArea the empty area of a QDockWindow.
|
---|
921 |
|
---|
922 | \value CE_ToolBoxTab the toolbox's tab area
|
---|
923 | \value CE_HeaderLabel the header's label
|
---|
924 |
|
---|
925 | \value CE_CustomBase base value for custom ControlElements. All values above
|
---|
926 | this are reserved for custom use. Therefore, custom values must be
|
---|
927 | greater than this value.
|
---|
928 |
|
---|
929 | \sa drawControl()
|
---|
930 | */
|
---|
931 |
|
---|
932 | /*!
|
---|
933 | \fn void QStyle::drawControl( ControlElement element, QPainter *p, const QWidget *widget, const QRect &r, const QColorGroup &cg, SFlags how, const QStyleOption& opt) const
|
---|
934 |
|
---|
935 | Draws the ControlElement \a element using the painter \a p in the
|
---|
936 | area \a r. Colors are used from the color group \a cg.
|
---|
937 |
|
---|
938 | The rect \a r should be in screen coordinates.
|
---|
939 |
|
---|
940 | The \a how argument is used to control how the ControlElement is
|
---|
941 | drawn. Multiple flags can be OR'ed together. See the table below
|
---|
942 | for an explanation of which flags are used with the various
|
---|
943 | ControlElements.
|
---|
944 |
|
---|
945 | The \a widget argument is a pointer to a QWidget or one of its
|
---|
946 | subclasses. The widget can be cast to the appropriate type based
|
---|
947 | on the value of \a element. The \a opt argument can be used to
|
---|
948 | pass extra information required when drawing the ControlElement.
|
---|
949 | Note that \a opt may be the default value even for ControlElements
|
---|
950 | that can make use of the extra options. See the table below for
|
---|
951 | the appropriate \a widget and \a opt usage:
|
---|
952 |
|
---|
953 | \table
|
---|
954 | \header \i ControlElement<br>\& Widget Cast
|
---|
955 | \i Style Flags
|
---|
956 | \i Notes
|
---|
957 | \i Options
|
---|
958 | \i Notes
|
---|
959 |
|
---|
960 | \row \i16 \l{CE_PushButton}(const \l QPushButton *)
|
---|
961 |
|
---|
962 | and
|
---|
963 |
|
---|
964 | \l{CE_PushButtonLabel}(const \l QPushButton *)
|
---|
965 | \i \l Style_Enabled \i Set if the button is enabled.
|
---|
966 | \i16 Unused.
|
---|
967 | \i16
|
---|
968 | \row \i \l Style_HasFocus \i Set if the button has input focus.
|
---|
969 | \row \i \l Style_Raised \i Set if the button is not down, not on and not flat.
|
---|
970 | \row \i \l Style_On \i Set if the button is a toggle button and toggled on.
|
---|
971 | \row \i \l Style_Down \i Set if the button is down (i.e., the mouse button or
|
---|
972 | space bar is pressed on the button).
|
---|
973 | \row \i \l Style_ButtonDefault \i Set if the button is a default button.
|
---|
974 |
|
---|
975 | \row \i16 \l{CE_CheckBox}(const \l QCheckBox *)
|
---|
976 |
|
---|
977 | and
|
---|
978 |
|
---|
979 | \l{CE_CheckBoxLabel}(const \l QCheckBox *)
|
---|
980 |
|
---|
981 | \i \l Style_Enabled \i Set if the checkbox is enabled.
|
---|
982 | \i16 Unused.
|
---|
983 | \i16
|
---|
984 | \row \i \l Style_HasFocus \i Set if the checkbox has input focus.
|
---|
985 | \row \i \l Style_On \i Set if the checkbox is checked.
|
---|
986 | \row \i \l Style_Off \i Set if the checkbox is not checked.
|
---|
987 | \row \i \l Style_NoChange \i Set if the checkbox is in the NoChange state.
|
---|
988 | \row \i \l Style_Down \i Set if the checkbox is down (i.e., the mouse button or
|
---|
989 | space bar is pressed on the button).
|
---|
990 |
|
---|
991 | \row \i15 \l{CE_RadioButton}(const QRadioButton *)
|
---|
992 |
|
---|
993 | and
|
---|
994 |
|
---|
995 | \l{CE_RadioButtonLabel}(const QRadioButton *)
|
---|
996 | \i \l Style_Enabled \i Set if the radiobutton is enabled.
|
---|
997 | \i15 Unused.
|
---|
998 | \i15
|
---|
999 | \row \i \l Style_HasFocus \i Set if the radiobutton has input focus.
|
---|
1000 | \row \i \l Style_On \i Set if the radiobutton is checked.
|
---|
1001 | \row \i \l Style_Off \i Set if the radiobutton is not checked.
|
---|
1002 | \row \i \l Style_Down \i Set if the radiobutton is down (i.e., the mouse
|
---|
1003 | button or space bar is pressed on the radiobutton).
|
---|
1004 |
|
---|
1005 | \row \i12 \l{CE_TabBarTab}(const \l QTabBar *)
|
---|
1006 |
|
---|
1007 | and
|
---|
1008 |
|
---|
1009 | \l{CE_TabBarLabel}(const \l QTabBar *)
|
---|
1010 |
|
---|
1011 | \i \l Style_Enabled \i Set if the tabbar and tab is enabled.
|
---|
1012 | \i12 \l QStyleOption ( \l QTab *t )
|
---|
1013 | \list
|
---|
1014 | \i opt.\link QStyleOption::tab() tab\endlink()
|
---|
1015 | \endlist
|
---|
1016 | \i12 \e t is the QTab being drawn.
|
---|
1017 | \row \i \l Style_Selected \i Set if the tab is the current tab.
|
---|
1018 |
|
---|
1019 | \row \i12 \l{CE_ProgressBarGroove}(const QProgressBar *)
|
---|
1020 |
|
---|
1021 | and
|
---|
1022 |
|
---|
1023 | \l{CE_ProgressBarContents}(const QProgressBar *)
|
---|
1024 |
|
---|
1025 | and
|
---|
1026 |
|
---|
1027 | \l{CE_ProgressBarLabel}(const QProgressBar *)
|
---|
1028 |
|
---|
1029 | \i \l Style_Enabled \i Set if the progressbar is enabled.
|
---|
1030 | \i12 Unused.
|
---|
1031 | \i12
|
---|
1032 | \row \i \l Style_HasFocus \i Set if the progressbar has input focus.
|
---|
1033 |
|
---|
1034 | \row \i13 \l{CE_PopupMenuItem}(const \l QPopupMenu *)
|
---|
1035 | \i \l Style_Enabled \i Set if the menuitem is enabled.
|
---|
1036 | \i13 \l QStyleOption ( QMenuItem *mi, int tabwidth, int maxpmwidth )
|
---|
1037 | \list
|
---|
1038 | \i opt.\link QStyleOption::menuItem() menuItem\endlink()
|
---|
1039 | \i opt.\link QStyleOption::tabWidth() tabWidth\endlink()
|
---|
1040 | \i opt.\link QStyleOption::maxIconWidth() maxIconWidth\endlink()
|
---|
1041 | \endlist
|
---|
1042 | \i \e mi is the menu item being drawn. QMenuItem is currently an
|
---|
1043 | internal class.
|
---|
1044 | \row \i \l Style_Active \i Set if the menuitem is the current item.
|
---|
1045 | \i \e tabwidth is the width of the tab column where key accelerators
|
---|
1046 | are drawn.
|
---|
1047 | \row \i \l Style_Down \i Set if the menuitem is down (i.e., the mouse button
|
---|
1048 | or space bar is pressed).
|
---|
1049 | \i \e maxpmwidth is the maximum width of the check column where
|
---|
1050 | checkmarks and iconsets are drawn.
|
---|
1051 |
|
---|
1052 | \row \i14 \l{CE_MenuBarItem}(const \l QMenuBar *)
|
---|
1053 | \i \l Style_Enabled \i Set if the menuitem is enabled
|
---|
1054 | \i14 \l QStyleOption ( QMenuItem *mi )
|
---|
1055 | \list
|
---|
1056 | \i opt.\link QStyleOption::menuItem() menuItem\endlink()
|
---|
1057 | \endlist
|
---|
1058 | \i14 \e mi is the menu item being drawn.
|
---|
1059 | \row \i \l Style_Active \i Set if the menuitem is the current item.
|
---|
1060 | \row \i \l Style_Down \i Set if the menuitem is down (i.e., a mouse button or
|
---|
1061 | the space bar is pressed).
|
---|
1062 | \row \i \l Style_HasFocus \i Set if the menubar has input focus.
|
---|
1063 |
|
---|
1064 | \row \i17 \l{CE_ToolButtonLabel}(const \l QToolButton *)
|
---|
1065 | \i \l Style_Enabled \i Set if the toolbutton is enabled.
|
---|
1066 | \i17 \l QStyleOption ( \l ArrowType t )
|
---|
1067 | \list
|
---|
1068 | \i opt.\link QStyleOption::arrowType() arrowType\endlink()
|
---|
1069 | \endlist
|
---|
1070 | \i17 When the tool button only contains an arrow, \e t is the
|
---|
1071 | arrow's type.
|
---|
1072 | \row \i \l Style_HasFocus \i Set if the toolbutton has input focus.
|
---|
1073 | \row \i \l Style_Down \i Set if the toolbutton is down (i.e., a
|
---|
1074 | mouse button or the space is pressed).
|
---|
1075 | \row \i \l Style_On \i Set if the toolbutton is a toggle button
|
---|
1076 | and is toggled on.
|
---|
1077 | \row \i \l Style_AutoRaise \i Set if the toolbutton has auto-raise enabled.
|
---|
1078 | \row \i \l Style_MouseOver \i Set if the mouse pointer is over the toolbutton.
|
---|
1079 | \row \i \l Style_Raised \i Set if the button is not down, not on and doesn't
|
---|
1080 | contain the mouse when auto-raise is enabled.
|
---|
1081 | \endtable
|
---|
1082 |
|
---|
1083 | \sa ControlElement, StyleFlags
|
---|
1084 | */
|
---|
1085 |
|
---|
1086 | /*!
|
---|
1087 | \fn void QStyle::drawControlMask( ControlElement element, QPainter *p, const QWidget *widget, const QRect &r, const QStyleOption& opt) const
|
---|
1088 |
|
---|
1089 | Draw a bitmask for the ControlElement \a element using the painter
|
---|
1090 | \a p in the area \a r. See drawControl() for an explanation of the
|
---|
1091 | use of the \a widget and \a opt arguments.
|
---|
1092 |
|
---|
1093 | The rect \a r should be in screen coordinates.
|
---|
1094 |
|
---|
1095 | \sa drawControl(), ControlElement
|
---|
1096 | */
|
---|
1097 |
|
---|
1098 | /*!
|
---|
1099 | \enum QStyle::SubRect
|
---|
1100 |
|
---|
1101 | This enum represents a sub-area of a widget. Style implementations
|
---|
1102 | would use these areas to draw the different parts of a widget.
|
---|
1103 |
|
---|
1104 | \value SR_PushButtonContents area containing the label (iconset
|
---|
1105 | with text or pixmap).
|
---|
1106 | \value SR_PushButtonFocusRect area for the focus rect (usually
|
---|
1107 | larger than the contents rect).
|
---|
1108 |
|
---|
1109 | \value SR_CheckBoxIndicator area for the state indicator (e.g. check mark).
|
---|
1110 | \value SR_CheckBoxContents area for the label (text or pixmap).
|
---|
1111 | \value SR_CheckBoxFocusRect area for the focus indicator.
|
---|
1112 |
|
---|
1113 |
|
---|
1114 | \value SR_RadioButtonIndicator area for the state indicator.
|
---|
1115 | \value SR_RadioButtonContents area for the label.
|
---|
1116 | \value SR_RadioButtonFocusRect area for the focus indicator.
|
---|
1117 |
|
---|
1118 |
|
---|
1119 | \value SR_ComboBoxFocusRect area for the focus indicator.
|
---|
1120 |
|
---|
1121 |
|
---|
1122 | \value SR_SliderFocusRect area for the focus indicator.
|
---|
1123 |
|
---|
1124 |
|
---|
1125 | \value SR_DockWindowHandleRect area for the tear-off handle.
|
---|
1126 |
|
---|
1127 |
|
---|
1128 | \value SR_ProgressBarGroove area for the groove.
|
---|
1129 | \value SR_ProgressBarContents area for the progress indicator.
|
---|
1130 | \value SR_ProgressBarLabel area for the text label.
|
---|
1131 |
|
---|
1132 |
|
---|
1133 | \value SR_ToolButtonContents area for the tool button's label.
|
---|
1134 |
|
---|
1135 | \value SR_DialogButtonAccept area for a dialog's accept button.
|
---|
1136 | \value SR_DialogButtonReject area for a dialog's reject button.
|
---|
1137 | \value SR_DialogButtonApply area for a dialog's apply button.
|
---|
1138 | \value SR_DialogButtonHelp area for a dialog's help button.
|
---|
1139 | \value SR_DialogButtonAll area for a dialog's all button.
|
---|
1140 | \value SR_DialogButtonRetry area for a dialog's retry button.
|
---|
1141 | \value SR_DialogButtonAbort area for a dialog's abort button.
|
---|
1142 | \value SR_DialogButtonIgnore area for a dialog's ignore button.
|
---|
1143 | \value SR_DialogButtonCustom area for a dialog's custom widget area (in button row).
|
---|
1144 |
|
---|
1145 | \value SR_ToolBoxTabContents area for a toolbox tab's icon and label
|
---|
1146 |
|
---|
1147 | \value SR_CustomBase base value for custom ControlElements. All values above
|
---|
1148 | this are reserved for custom use. Therefore, custom values must be
|
---|
1149 | greater than this value.
|
---|
1150 |
|
---|
1151 | \sa subRect()
|
---|
1152 | */
|
---|
1153 |
|
---|
1154 | /*!
|
---|
1155 | \fn QRect QStyle::subRect( SubRect subrect, const QWidget *widget ) const;
|
---|
1156 |
|
---|
1157 | Returns the sub-area \a subrect for the \a widget in logical
|
---|
1158 | coordinates.
|
---|
1159 |
|
---|
1160 | The \a widget argument is a pointer to a QWidget or one of its
|
---|
1161 | subclasses. The widget can be cast to the appropriate type based
|
---|
1162 | on the value of \a subrect. See the table below for the
|
---|
1163 | appropriate \a widget casts:
|
---|
1164 |
|
---|
1165 | \table
|
---|
1166 | \header \i SubRect \i Widget Cast
|
---|
1167 | \row \i \l SR_PushButtonContents \i (const \l QPushButton *)
|
---|
1168 | \row \i \l SR_PushButtonFocusRect \i (const \l QPushButton *)
|
---|
1169 | \row \i \l SR_CheckBoxIndicator \i (const \l QCheckBox *)
|
---|
1170 | \row \i \l SR_CheckBoxContents \i (const \l QCheckBox *)
|
---|
1171 | \row \i \l SR_CheckBoxFocusRect \i (const \l QCheckBox *)
|
---|
1172 | \row \i \l SR_RadioButtonIndicator \i (const \l QRadioButton *)
|
---|
1173 | \row \i \l SR_RadioButtonContents \i (const \l QRadioButton *)
|
---|
1174 | \row \i \l SR_RadioButtonFocusRect \i (const \l QRadioButton *)
|
---|
1175 | \row \i \l SR_ComboBoxFocusRect \i (const \l QComboBox *)
|
---|
1176 | \row \i \l SR_DockWindowHandleRect \i (const \l QWidget *)
|
---|
1177 | \row \i \l SR_ProgressBarGroove \i (const \l QProgressBar *)
|
---|
1178 | \row \i \l SR_ProgressBarContents \i (const \l QProgressBar *)
|
---|
1179 | \row \i \l SR_ProgressBarLabel \i (const \l QProgressBar *)
|
---|
1180 | \endtable
|
---|
1181 |
|
---|
1182 | The tear-off handle (SR_DockWindowHandleRect) for QDockWindow
|
---|
1183 | is a private class. Use QWidget::parentWidget() to access the
|
---|
1184 | QDockWindow:
|
---|
1185 |
|
---|
1186 | \code
|
---|
1187 | if ( !widget->parentWidget() )
|
---|
1188 | return;
|
---|
1189 | const QDockWindow *dw = (const QDockWindow *) widget->parentWidget();
|
---|
1190 | \endcode
|
---|
1191 |
|
---|
1192 | \sa SubRect
|
---|
1193 | */
|
---|
1194 |
|
---|
1195 | /*!
|
---|
1196 | \enum QStyle::ComplexControl
|
---|
1197 |
|
---|
1198 | This enum represents a ComplexControl. ComplexControls have
|
---|
1199 | different behaviour depending upon where the user clicks on them
|
---|
1200 | or which keys are pressed.
|
---|
1201 |
|
---|
1202 | \value CC_SpinWidget
|
---|
1203 | \value CC_ComboBox
|
---|
1204 | \value CC_ScrollBar
|
---|
1205 | \value CC_Slider
|
---|
1206 | \value CC_ToolButton
|
---|
1207 | \value CC_TitleBar
|
---|
1208 | \value CC_ListView
|
---|
1209 |
|
---|
1210 |
|
---|
1211 | \value CC_CustomBase base value for custom ControlElements. All
|
---|
1212 | values above this are reserved for custom use. Therefore,
|
---|
1213 | custom values must be greater than this value.
|
---|
1214 |
|
---|
1215 | \sa SubControl drawComplexControl()
|
---|
1216 | */
|
---|
1217 |
|
---|
1218 | /*!
|
---|
1219 | \enum QStyle::SubControl
|
---|
1220 |
|
---|
1221 | This enum represents a SubControl within a ComplexControl.
|
---|
1222 |
|
---|
1223 | \value SC_None special value that matches no other SubControl.
|
---|
1224 |
|
---|
1225 |
|
---|
1226 | \value SC_ScrollBarAddLine scrollbar add line (i.e. down/right
|
---|
1227 | arrow); see also QScrollbar.
|
---|
1228 | \value SC_ScrollBarSubLine scrollbar sub line (i.e. up/left arrow).
|
---|
1229 | \value SC_ScrollBarAddPage scrollbar add page (i.e. page down).
|
---|
1230 | \value SC_ScrollBarSubPage scrollbar sub page (i.e. page up).
|
---|
1231 | \value SC_ScrollBarFirst scrollbar first line (i.e. home).
|
---|
1232 | \value SC_ScrollBarLast scrollbar last line (i.e. end).
|
---|
1233 | \value SC_ScrollBarSlider scrollbar slider handle.
|
---|
1234 | \value SC_ScrollBarGroove special subcontrol which contains the
|
---|
1235 | area in which the slider handle may move.
|
---|
1236 |
|
---|
1237 |
|
---|
1238 | \value SC_SpinWidgetUp spinwidget up/increase; see also QSpinBox.
|
---|
1239 | \value SC_SpinWidgetDown spinwidget down/decrease.
|
---|
1240 | \value SC_SpinWidgetFrame spinwidget frame.
|
---|
1241 | \value SC_SpinWidgetEditField spinwidget edit field.
|
---|
1242 | \value SC_SpinWidgetButtonField spinwidget button field.
|
---|
1243 |
|
---|
1244 |
|
---|
1245 | \value SC_ComboBoxEditField combobox edit field; see also QComboBox.
|
---|
1246 | \value SC_ComboBoxArrow combobox arrow
|
---|
1247 | \value SC_ComboBoxFrame combobox frame
|
---|
1248 | \value SC_ComboBoxListBoxPopup combobox list box
|
---|
1249 |
|
---|
1250 | \value SC_SliderGroove special subcontrol which contains the area
|
---|
1251 | in which the slider handle may move.
|
---|
1252 | \value SC_SliderHandle slider handle.
|
---|
1253 | \value SC_SliderTickmarks slider tickmarks.
|
---|
1254 |
|
---|
1255 |
|
---|
1256 | \value SC_ToolButton tool button; see also QToolbutton.
|
---|
1257 | \value SC_ToolButtonMenu subcontrol for opening a popup menu in a
|
---|
1258 | tool button; see also QPopupMenu.
|
---|
1259 |
|
---|
1260 |
|
---|
1261 | \value SC_TitleBarSysMenu system menu button (i.e. restore, close, etc.).
|
---|
1262 | \value SC_TitleBarMinButton minimize button.
|
---|
1263 | \value SC_TitleBarMaxButton maximize button.
|
---|
1264 | \value SC_TitleBarCloseButton close button.
|
---|
1265 | \value SC_TitleBarLabel window title label.
|
---|
1266 | \value SC_TitleBarNormalButton normal (restore) button.
|
---|
1267 | \value SC_TitleBarShadeButton shade button.
|
---|
1268 | \value SC_TitleBarUnshadeButton unshade button.
|
---|
1269 |
|
---|
1270 |
|
---|
1271 | \value SC_ListView the list view area.
|
---|
1272 | \value SC_ListViewBranch (internal)
|
---|
1273 | \value SC_ListViewExpand expand item (i.e. show/hide child items).
|
---|
1274 |
|
---|
1275 |
|
---|
1276 | \value SC_All special value that matches all SubControls.
|
---|
1277 |
|
---|
1278 |
|
---|
1279 | \sa ComplexControl
|
---|
1280 | */
|
---|
1281 |
|
---|
1282 | /*!
|
---|
1283 | \fn void QStyle::drawComplexControl( ComplexControl control, QPainter *p, const QWidget *widget, const QRect &r, const QColorGroup &cg, SFlags how, SCFlags sub, SCFlags subActive, const QStyleOption& opt ) const
|
---|
1284 |
|
---|
1285 | Draws the ComplexControl \a control using the painter \a p in the
|
---|
1286 | area \a r. Colors are used from the color group \a cg. The \a sub
|
---|
1287 | argument specifies which SubControls to draw. Multiple SubControls
|
---|
1288 | can be OR'ed together. The \a subActive argument specifies which
|
---|
1289 | SubControl is active.
|
---|
1290 |
|
---|
1291 | The rect \a r should be in logical coordinates. Reimplementations
|
---|
1292 | of this function should use visualRect() to change the logical
|
---|
1293 | coordinates into screen coordinates when using drawPrimitive() and
|
---|
1294 | drawControl().
|
---|
1295 |
|
---|
1296 | The \a how argument is used to control how the ComplexControl is
|
---|
1297 | drawn. Multiple flags can OR'ed together. See the table below for
|
---|
1298 | an explanation of which flags are used with the various
|
---|
1299 | ComplexControls.
|
---|
1300 |
|
---|
1301 | The \a widget argument is a pointer to a QWidget or one of its
|
---|
1302 | subclasses. The widget can be cast to the appropriate type based
|
---|
1303 | on the value of \a control. The \a opt argument can be used to
|
---|
1304 | pass extra information required when drawing the ComplexControl.
|
---|
1305 | Note that \a opt may be the default value even for ComplexControls
|
---|
1306 | that can make use of the extra options. See the table below for
|
---|
1307 | the appropriate \a widget and \a opt usage:
|
---|
1308 |
|
---|
1309 | \table
|
---|
1310 | \header \i ComplexControl<br>\& Widget Cast
|
---|
1311 | \i Style Flags
|
---|
1312 | \i Notes
|
---|
1313 | \i Options
|
---|
1314 | \i Notes
|
---|
1315 |
|
---|
1316 | \row \i12 \l{CC_SpinWidget}(const QSpinWidget *)
|
---|
1317 | \i \l Style_Enabled \i Set if the spinwidget is enabled.
|
---|
1318 | \i12 Unused.
|
---|
1319 | \i12
|
---|
1320 | \row \i \l Style_HasFocus \i Set if the spinwidget has input focus.
|
---|
1321 |
|
---|
1322 | \row \i12 \l{CC_ComboBox}(const \l QComboBox *)
|
---|
1323 | \i \l Style_Enabled \i Set if the combobox is enabled.
|
---|
1324 | \i12 Unused.
|
---|
1325 | \i12
|
---|
1326 | \row \i \l Style_HasFocus \i Set if the combobox has input focus.
|
---|
1327 |
|
---|
1328 | \row \i12 \l{CC_ScrollBar}(const \l QScrollBar *)
|
---|
1329 | \i \l Style_Enabled \i Set if the scrollbar is enabled.
|
---|
1330 | \i12 Unused.
|
---|
1331 | \i12
|
---|
1332 | \row \i \l Style_HasFocus \i Set if the scrollbar has input focus.
|
---|
1333 |
|
---|
1334 | \row \i12 \l{CC_Slider}(const \l QSlider *)
|
---|
1335 | \i \l Style_Enabled \i Set if the slider is enabled.
|
---|
1336 | \i12 Unused.
|
---|
1337 | \i12
|
---|
1338 |
|
---|
1339 | \row \i \l Style_HasFocus \i Set if the slider has input focus.
|
---|
1340 |
|
---|
1341 | \row \i16 \l{CC_ToolButton}(const \l QToolButton *)
|
---|
1342 | \i \l Style_Enabled \i Set if the toolbutton is enabled.
|
---|
1343 | \i16 \l QStyleOption ( \l ArrowType t )
|
---|
1344 | \list
|
---|
1345 | \i opt.\link QStyleOption::arrowType() arrowType\endlink()
|
---|
1346 | \endlist
|
---|
1347 | \i16 When the tool button only contains an arrow, \e t is the
|
---|
1348 | arrow's type.
|
---|
1349 | \row \i \l Style_HasFocus \i Set if the toolbutton has input focus.
|
---|
1350 | \row \i \l Style_Down \i Set if the toolbutton is down (ie. mouse
|
---|
1351 | button or space pressed).
|
---|
1352 | \row \i \l Style_On \i Set if the toolbutton is a toggle button
|
---|
1353 | and is toggled on.
|
---|
1354 | \row \i \l Style_AutoRaise \i Set if the toolbutton has auto-raise enabled.
|
---|
1355 | \row \i \l Style_Raised \i Set if the button is not down, not on and doesn't
|
---|
1356 | contain the mouse when auto-raise is enabled.
|
---|
1357 |
|
---|
1358 | \row \i \l{CC_TitleBar}(const \l QWidget *)
|
---|
1359 | \i \l Style_Enabled \i Set if the titlebar is enabled.
|
---|
1360 | \i Unused.
|
---|
1361 | \i
|
---|
1362 |
|
---|
1363 | \row \i \l{CC_ListView}(const \l QListView *)
|
---|
1364 | \i \l Style_Enabled \i Set if the titlebar is enabled.
|
---|
1365 | \i \l QStyleOption ( \l QListViewItem *item )
|
---|
1366 | \list
|
---|
1367 | \i opt.\link QStyleOption::listViewItem() listViewItem\endlink()
|
---|
1368 | \endlist
|
---|
1369 | \i \e item is the item that needs branches drawn
|
---|
1370 | \endtable
|
---|
1371 |
|
---|
1372 | \sa ComplexControl, SubControl
|
---|
1373 | */
|
---|
1374 |
|
---|
1375 | /*!
|
---|
1376 | \fn void QStyle::drawComplexControlMask( ComplexControl control, QPainter *p, const QWidget *widget, const QRect &r, const QStyleOption& opt) const
|
---|
1377 |
|
---|
1378 | Draw a bitmask for the ComplexControl \a control using the painter
|
---|
1379 | \a p in the area \a r. See drawComplexControl() for an explanation
|
---|
1380 | of the use of the \a widget and \a opt arguments.
|
---|
1381 |
|
---|
1382 | The rect \a r should be in logical coordinates. Reimplementations
|
---|
1383 | of this function should use visualRect() to change the logical
|
---|
1384 | corrdinates into screen coordinates when using drawPrimitive() and
|
---|
1385 | drawControl().
|
---|
1386 |
|
---|
1387 | \sa drawComplexControl() ComplexControl
|
---|
1388 | */
|
---|
1389 |
|
---|
1390 | /*!
|
---|
1391 | \fn QRect QStyle::querySubControlMetrics( ComplexControl control, const QWidget *widget, SubControl subcontrol, const QStyleOption& opt = QStyleOption::Default ) const;
|
---|
1392 |
|
---|
1393 | Returns the rect for the SubControl \a subcontrol for \a widget in
|
---|
1394 | logical coordinates.
|
---|
1395 |
|
---|
1396 | The \a widget argument is a pointer to a QWidget or one of its
|
---|
1397 | subclasses. The widget can be cast to the appropriate type based
|
---|
1398 | on the value of \a control. The \a opt argument can be used to
|
---|
1399 | pass extra information required when drawing the ComplexControl.
|
---|
1400 | Note that \a opt may be the default value even for ComplexControls
|
---|
1401 | that can make use of the extra options. See drawComplexControl()
|
---|
1402 | for an explanation of the \a widget and \a opt arguments.
|
---|
1403 |
|
---|
1404 | \sa drawComplexControl(), ComplexControl, SubControl
|
---|
1405 | */
|
---|
1406 |
|
---|
1407 | /*!
|
---|
1408 | \fn SubControl QStyle::querySubControl( ComplexControl control, const QWidget *widget, const QPoint &pos, const QStyleOption& opt = QStyleOption::Default ) const;
|
---|
1409 |
|
---|
1410 | Returns the SubControl for \a widget at the point \a pos. The \a
|
---|
1411 | widget argument is a pointer to a QWidget or one of its
|
---|
1412 | subclasses. The widget can be cast to the appropriate type based
|
---|
1413 | on the value of \a control. The \a opt argument can be used to
|
---|
1414 | pass extra information required when drawing the ComplexControl.
|
---|
1415 | Note that \a opt may be the default value even for ComplexControls
|
---|
1416 | that can make use of the extra options. See drawComplexControl()
|
---|
1417 | for an explanation of the \a widget and \a opt arguments.
|
---|
1418 |
|
---|
1419 | Note that \a pos is passed in screen coordinates. When using
|
---|
1420 | querySubControlMetrics() to check for hits and misses, use
|
---|
1421 | visualRect() to change the logical coordinates into screen
|
---|
1422 | coordinates.
|
---|
1423 |
|
---|
1424 | \sa drawComplexControl(), ComplexControl, SubControl, querySubControlMetrics()
|
---|
1425 | */
|
---|
1426 |
|
---|
1427 | /*!
|
---|
1428 | \enum QStyle::PixelMetric
|
---|
1429 |
|
---|
1430 | This enum represents a PixelMetric. A PixelMetric is a style
|
---|
1431 | dependent size represented as a single pixel value.
|
---|
1432 |
|
---|
1433 | \value PM_ButtonMargin amount of whitespace between pushbutton
|
---|
1434 | labels and the frame.
|
---|
1435 | \value PM_ButtonDefaultIndicator width of the default-button indicator frame.
|
---|
1436 | \value PM_MenuButtonIndicator width of the menu button indicator
|
---|
1437 | proportional to the widget height.
|
---|
1438 | \value PM_ButtonShiftHorizontal horizontal contents shift of a
|
---|
1439 | button when the button is down.
|
---|
1440 | \value PM_ButtonShiftVertical vertical contents shift of a button when the
|
---|
1441 | button is down.
|
---|
1442 |
|
---|
1443 | \value PM_DefaultFrameWidth default frame width, usually 2.
|
---|
1444 | \value PM_SpinBoxFrameWidth frame width of a spin box.
|
---|
1445 | \value PM_MDIFrameWidth frame width of an MDI window.
|
---|
1446 | \value PM_MDIMinimizedWidth width of a minimized MSI window.
|
---|
1447 |
|
---|
1448 | \value PM_MaximumDragDistance Some feels require the scrollbar or
|
---|
1449 | other sliders to jump back to the original position when the
|
---|
1450 | mouse pointer is too far away while dragging. A value of -1
|
---|
1451 | disables this behavior.
|
---|
1452 |
|
---|
1453 | \value PM_ScrollBarExtent width of a vertical scrollbar and the
|
---|
1454 | height of a horizontal scrollbar.
|
---|
1455 | \value PM_ScrollBarSliderMin the minimum height of a vertical
|
---|
1456 | scrollbar's slider and the minimum width of a horiztonal
|
---|
1457 | scrollbar slider.
|
---|
1458 |
|
---|
1459 | \value PM_SliderThickness total slider thickness.
|
---|
1460 | \value PM_SliderControlThickness thickness of the slider handle.
|
---|
1461 | \value PM_SliderLength length of the slider.
|
---|
1462 | \value PM_SliderTickmarkOffset the offset between the tickmarks
|
---|
1463 | and the slider.
|
---|
1464 | \value PM_SliderSpaceAvailable the available space for the slider to move.
|
---|
1465 |
|
---|
1466 | \value PM_DockWindowSeparatorExtent width of a separator in a
|
---|
1467 | horiztonal dock window and the height of a separator in a
|
---|
1468 | vertical dock window.
|
---|
1469 | \value PM_DockWindowHandleExtent width of the handle in a
|
---|
1470 | horizontal dock window and the height of the handle in a
|
---|
1471 | vertical dock window.
|
---|
1472 | \value PM_DockWindowFrameWidth frame width of a dock window.
|
---|
1473 |
|
---|
1474 | \value PM_MenuBarFrameWidth frame width of a menubar.
|
---|
1475 |
|
---|
1476 | \value PM_MenuBarItemSpacing spacing between menubar items.
|
---|
1477 | \value PM_ToolBarItemSpacing spacing between toolbar items.
|
---|
1478 |
|
---|
1479 | \value PM_TabBarTabOverlap number of pixels the tabs should overlap.
|
---|
1480 | \value PM_TabBarTabHSpace extra space added to the tab width.
|
---|
1481 | \value PM_TabBarTabVSpace extra space added to the tab height.
|
---|
1482 | \value PM_TabBarBaseHeight height of the area between the tab bar
|
---|
1483 | and the tab pages.
|
---|
1484 | \value PM_TabBarBaseOverlap number of pixels the tab bar overlaps
|
---|
1485 | the tab bar base.
|
---|
1486 | \value PM_TabBarScrollButtonWidth
|
---|
1487 | \value PM_TabBarTabShiftHorizontal horizontal pixel shift when a
|
---|
1488 | tab is selected.
|
---|
1489 | \value PM_TabBarTabShiftVertical vertical pixel shift when a
|
---|
1490 | tab is selected.
|
---|
1491 |
|
---|
1492 | \value PM_ProgressBarChunkWidth width of a chunk in a progress bar indicator.
|
---|
1493 |
|
---|
1494 | \value PM_SplitterWidth width of a splitter.
|
---|
1495 |
|
---|
1496 | \value PM_TitleBarHeight height of the title bar.
|
---|
1497 | \value PM_PopupMenuFrameHorizontalExtra additional border, e.g. for panels
|
---|
1498 | \value PM_PopupMenuFrameVerticalExtra additional border, e.g. for panels
|
---|
1499 |
|
---|
1500 | \value PM_IndicatorWidth width of a check box indicator.
|
---|
1501 | \value PM_IndicatorHeight height of a checkbox indicator.
|
---|
1502 | \value PM_ExclusiveIndicatorWidth width of a radio button indicator.
|
---|
1503 | \value PM_ExclusiveIndicatorHeight height of a radio button indicator.
|
---|
1504 |
|
---|
1505 | \value PM_PopupMenuScrollerHeight height of the scroller area in a popupmenu.
|
---|
1506 | \value PM_PopupMenuScrollerHeight height of the scroller area in a popupmenu.
|
---|
1507 | \value PM_CheckListButtonSize area (width/height) of the
|
---|
1508 | checkbox/radiobutton in a QCheckListItem
|
---|
1509 | \value PM_CheckListControllerSize area (width/height) of the
|
---|
1510 | controller in a QCheckListItem
|
---|
1511 |
|
---|
1512 | \value PM_DialogButtonsSeparator distance between buttons in a dialog buttons widget.
|
---|
1513 | \value PM_DialogButtonsButtonWidth minimum width of a button in a dialog buttons widget.
|
---|
1514 | \value PM_DialogButtonsButtonHeight minimum height of a button in a dialog buttons widget.
|
---|
1515 |
|
---|
1516 | \value PM_HeaderMarkSize
|
---|
1517 | \value PM_HeaderGripMargin
|
---|
1518 | \value PM_HeaderMargin
|
---|
1519 |
|
---|
1520 | \value PM_CustomBase base value for custom ControlElements. All
|
---|
1521 | values above this are reserved for custom use. Therefore,
|
---|
1522 | custom values must be greater than this value.
|
---|
1523 |
|
---|
1524 |
|
---|
1525 | \sa pixelMetric()
|
---|
1526 | */
|
---|
1527 |
|
---|
1528 | /*!
|
---|
1529 | \fn int QStyle::pixelMetric( PixelMetric metric, const QWidget *widget = 0 ) const;
|
---|
1530 |
|
---|
1531 | Returns the pixel metric for \a metric. The \a widget argument is
|
---|
1532 | a pointer to a QWidget or one of its subclasses. The widget can be
|
---|
1533 | cast to the appropriate type based on the value of \a metric. Note
|
---|
1534 | that \a widget may be zero even for PixelMetrics that can make use
|
---|
1535 | of \a widget. See the table below for the appropriate \a widget
|
---|
1536 | casts:
|
---|
1537 |
|
---|
1538 | \table
|
---|
1539 | \header \i PixelMetric \i Widget Cast
|
---|
1540 | \row \i \l PM_SliderControlThickness \i (const \l QSlider *)
|
---|
1541 | \row \i \l PM_SliderLength \i (const \l QSlider *)
|
---|
1542 | \row \i \l PM_SliderTickmarkOffset \i (const \l QSlider *)
|
---|
1543 | \row \i \l PM_SliderSpaceAvailable \i (const \l QSlider *)
|
---|
1544 | \row \i \l PM_TabBarTabOverlap \i (const \l QTabBar *)
|
---|
1545 | \row \i \l PM_TabBarTabHSpace \i (const \l QTabBar *)
|
---|
1546 | \row \i \l PM_TabBarTabVSpace \i (const \l QTabBar *)
|
---|
1547 | \row \i \l PM_TabBarBaseHeight \i (const \l QTabBar *)
|
---|
1548 | \row \i \l PM_TabBarBaseOverlap \i (const \l QTabBar *)
|
---|
1549 | \endtable
|
---|
1550 | */
|
---|
1551 |
|
---|
1552 | /*!
|
---|
1553 | \enum QStyle::ContentsType
|
---|
1554 |
|
---|
1555 | This enum represents a ContentsType. It is used to calculate sizes
|
---|
1556 | for the contents of various widgets.
|
---|
1557 |
|
---|
1558 | \value CT_PushButton
|
---|
1559 | \value CT_CheckBox
|
---|
1560 | \value CT_RadioButton
|
---|
1561 | \value CT_ToolButton
|
---|
1562 | \value CT_ComboBox
|
---|
1563 | \value CT_Splitter
|
---|
1564 | \value CT_DockWindow
|
---|
1565 | \value CT_ProgressBar
|
---|
1566 | \value CT_PopupMenuItem
|
---|
1567 | \value CT_TabBarTab
|
---|
1568 | \value CT_Slider
|
---|
1569 | \value CT_Header
|
---|
1570 | \value CT_LineEdit
|
---|
1571 | \value CT_MenuBar
|
---|
1572 | \value CT_SpinBox
|
---|
1573 | \value CT_SizeGrip
|
---|
1574 | \value CT_TabWidget
|
---|
1575 | \value CT_DialogButtons
|
---|
1576 |
|
---|
1577 | \value CT_CustomBase base value for custom ControlElements. All
|
---|
1578 | values above this are reserved for custom use. Custom values
|
---|
1579 | must be greater than this value.
|
---|
1580 |
|
---|
1581 | \sa sizeFromContents()
|
---|
1582 | */
|
---|
1583 |
|
---|
1584 | /*!
|
---|
1585 | \fn QSize QStyle::sizeFromContents( ContentsType contents, const QWidget *widget, const QSize &contentsSize, const QStyleOption& opt = QStyleOption::Default ) const;
|
---|
1586 |
|
---|
1587 | Returns the size of \a widget based on the contents size \a
|
---|
1588 | contentsSize.
|
---|
1589 |
|
---|
1590 | The \a widget argument is a pointer to a QWidget or one of its
|
---|
1591 | subclasses. The widget can be cast to the appropriate type based
|
---|
1592 | on the value of \a contents. The \a opt argument can be used to
|
---|
1593 | pass extra information required when calculating the size. Note
|
---|
1594 | that \a opt may be the default value even for ContentsTypes that
|
---|
1595 | can make use of the extra options. See the table below for the
|
---|
1596 | appropriate \a widget and \a opt usage:
|
---|
1597 |
|
---|
1598 | \table
|
---|
1599 | \header \i ContentsType \i Widget Cast \i Options \i Notes
|
---|
1600 | \row \i \l CT_PushButton \i (const \l QPushButton *) \i Unused. \i
|
---|
1601 | \row \i \l CT_CheckBox \i (const \l QCheckBox *) \i Unused. \i
|
---|
1602 | \row \i \l CT_RadioButton \i (const \l QRadioButton *) \i Unused. \i
|
---|
1603 | \row \i \l CT_ToolButton \i (const \l QToolButton *) \i Unused. \i
|
---|
1604 | \row \i \l CT_ComboBox \i (const \l QComboBox *) \i Unused. \i
|
---|
1605 | \row \i \l CT_Splitter \i (const \l QSplitter *) \i Unused. \i
|
---|
1606 | \row \i \l CT_DockWindow \i (const \l QDockWindow *) \i Unused. \i
|
---|
1607 | \row \i \l CT_ProgressBar \i (const \l QProgressBar *) \i Unused. \i
|
---|
1608 | \row \i \l CT_PopupMenuItem \i (const QPopupMenu *)
|
---|
1609 | \i \l QStyleOption ( QMenuItem *mi )
|
---|
1610 | \list
|
---|
1611 | \i opt.\link QStyleOption::menuItem() menuItem\endlink()
|
---|
1612 | \endlist
|
---|
1613 | \i \e mi is the menu item to use when calculating the size.
|
---|
1614 | QMenuItem is currently an internal class.
|
---|
1615 | \endtable
|
---|
1616 | */
|
---|
1617 |
|
---|
1618 | /*!
|
---|
1619 | \enum QStyle::StyleHint
|
---|
1620 |
|
---|
1621 | This enum represents a StyleHint. A StyleHint is a general look
|
---|
1622 | and/or feel hint.
|
---|
1623 |
|
---|
1624 | \value SH_EtchDisabledText disabled text is "etched" like Windows.
|
---|
1625 |
|
---|
1626 | \value SH_GUIStyle the GUI style to use.
|
---|
1627 |
|
---|
1628 | \value SH_ScrollBar_BackgroundMode the background mode for a
|
---|
1629 | QScrollBar. Possible values are any of those in the \link
|
---|
1630 | Qt::BackgroundMode BackgroundMode\endlink enum.
|
---|
1631 |
|
---|
1632 | \value SH_ScrollBar_MiddleClickAbsolutePosition a boolean value.
|
---|
1633 | If TRUE, middle clicking on a scrollbar causes the slider to
|
---|
1634 | jump to that position. If FALSE, the middle clicking is
|
---|
1635 | ignored.
|
---|
1636 |
|
---|
1637 | \value SH_ScrollBar_LeftClickAbsolutePosition a boolean value.
|
---|
1638 | If TRUE, left clicking on a scrollbar causes the slider to
|
---|
1639 | jump to that position. If FALSE, the left clicking will
|
---|
1640 | behave as appropriate for each control.
|
---|
1641 |
|
---|
1642 | \value SH_ScrollBar_ScrollWhenPointerLeavesControl a boolean
|
---|
1643 | value. If TRUE, when clicking a scrollbar SubControl, holding
|
---|
1644 | the mouse button down and moving the pointer outside the
|
---|
1645 | SubControl, the scrollbar continues to scroll. If FALSE, the
|
---|
1646 | scollbar stops scrolling when the pointer leaves the
|
---|
1647 | SubControl.
|
---|
1648 |
|
---|
1649 | \value SH_TabBar_Alignment the alignment for tabs in a
|
---|
1650 | QTabWidget. Possible values are \c Qt::AlignLeft, \c
|
---|
1651 | Qt::AlignCenter and \c Qt::AlignRight.
|
---|
1652 |
|
---|
1653 | \value SH_Header_ArrowAlignment the placement of the sorting
|
---|
1654 | indicator may appear in list or table headers. Possible values
|
---|
1655 | are \c Qt::Left or \c Qt::Right.
|
---|
1656 |
|
---|
1657 | \value SH_Slider_SnapToValue sliders snap to values while moving,
|
---|
1658 | like Windows
|
---|
1659 |
|
---|
1660 | \value SH_Slider_SloppyKeyEvents key presses handled in a sloppy
|
---|
1661 | manner, i.e. left on a vertical slider subtracts a line.
|
---|
1662 |
|
---|
1663 | \value SH_ProgressDialog_CenterCancelButton center button on
|
---|
1664 | progress dialogs, like Motif, otherwise right aligned.
|
---|
1665 |
|
---|
1666 | \value SH_ProgressDialog_TextLabelAlignment Qt::AlignmentFlags --
|
---|
1667 | text label alignment in progress dialogs; Center on windows,
|
---|
1668 | Auto|VCenter otherwise.
|
---|
1669 |
|
---|
1670 | \value SH_PrintDialog_RightAlignButtons right align buttons in
|
---|
1671 | the print dialog, like Windows.
|
---|
1672 |
|
---|
1673 | \value SH_MainWindow_SpaceBelowMenuBar 1 or 2 pixel space between
|
---|
1674 | the menubar and the dockarea, like Windows.
|
---|
1675 |
|
---|
1676 | \value SH_FontDialog_SelectAssociatedText select the text in the
|
---|
1677 | line edit, or when selecting an item from the listbox, or when
|
---|
1678 | the line edit receives focus, like Windows.
|
---|
1679 |
|
---|
1680 | \value SH_PopupMenu_AllowActiveAndDisabled allows disabled menu
|
---|
1681 | items to be active.
|
---|
1682 |
|
---|
1683 | \value SH_PopupMenu_SpaceActivatesItem pressing Space activates
|
---|
1684 | the item, like Motif.
|
---|
1685 |
|
---|
1686 | \value SH_PopupMenu_SubMenuPopupDelay the number of milliseconds
|
---|
1687 | to wait before opening a submenu; 256 on windows, 96 on Motif.
|
---|
1688 |
|
---|
1689 | \value SH_PopupMenu_Scrollable whether popupmenu's must support
|
---|
1690 | scrolling.
|
---|
1691 |
|
---|
1692 | \value SH_PopupMenu_SloppySubMenus whether popupmenu's must support
|
---|
1693 | sloppy submenu; as implemented on Mac OS.
|
---|
1694 |
|
---|
1695 | \value SH_ScrollView_FrameOnlyAroundContents whether scrollviews
|
---|
1696 | draw their frame only around contents (like Motif), or around
|
---|
1697 | contents, scrollbars and corner widgets (like Windows).
|
---|
1698 |
|
---|
1699 | \value SH_MenuBar_AltKeyNavigation menubars items are navigable
|
---|
1700 | by pressing Alt, followed by using the arrow keys to select
|
---|
1701 | the desired item.
|
---|
1702 |
|
---|
1703 | \value SH_ComboBox_ListMouseTracking mouse tracking in combobox
|
---|
1704 | dropdown lists.
|
---|
1705 |
|
---|
1706 | \value SH_PopupMenu_MouseTracking mouse tracking in popup menus.
|
---|
1707 |
|
---|
1708 | \value SH_MenuBar_MouseTracking mouse tracking in menubars.
|
---|
1709 |
|
---|
1710 | \value SH_ItemView_ChangeHighlightOnFocus gray out selected items
|
---|
1711 | when losing focus.
|
---|
1712 |
|
---|
1713 | \value SH_Widget_ShareActivation turn on sharing activation with
|
---|
1714 | floating modeless dialogs.
|
---|
1715 |
|
---|
1716 | \value SH_TabBar_SelectMouseType which type of mouse event should
|
---|
1717 | cause a tab to be selected.
|
---|
1718 |
|
---|
1719 | \value SH_ListViewExpand_SelectMouseType which type of mouse event should
|
---|
1720 | cause a listview expansion to be selected.
|
---|
1721 |
|
---|
1722 | \value SH_TabBar_PreferNoArrows whether a tabbar should suggest a size
|
---|
1723 | to prevent scoll arrows.
|
---|
1724 |
|
---|
1725 | \value SH_ComboBox_Popup allows popups as a combobox dropdown
|
---|
1726 | menu.
|
---|
1727 |
|
---|
1728 | \value SH_Workspace_FillSpaceOnMaximize the workspace should
|
---|
1729 | maximize the client area.
|
---|
1730 |
|
---|
1731 | \value SH_TitleBar_NoBorder the titlebar has no border
|
---|
1732 |
|
---|
1733 | \value SH_ScrollBar_StopMouseOverSlider stops autorepeat when
|
---|
1734 | slider reaches mouse
|
---|
1735 |
|
---|
1736 | \value SH_BlinkCursorWhenTextSelected whether cursor should blink
|
---|
1737 | when text is selected
|
---|
1738 |
|
---|
1739 | \value SH_RichText_FullWidthSelection whether richtext selections
|
---|
1740 | should extend the full width of the document.
|
---|
1741 |
|
---|
1742 | \value SH_GroupBox_TextLabelVerticalAlignment how to vertically align a
|
---|
1743 | groupbox's text label.
|
---|
1744 |
|
---|
1745 | \value SH_GroupBox_TextLabelColor how to paint a groupbox's text label.
|
---|
1746 |
|
---|
1747 | \value SH_DialogButtons_DefaultButton which buttons gets the
|
---|
1748 | default status in a dialog's button widget.
|
---|
1749 |
|
---|
1750 | \value SH_CustomBase base value for custom ControlElements. All
|
---|
1751 | values above this are reserved for custom use. Therefore,
|
---|
1752 | custom values must be greater than this value.
|
---|
1753 |
|
---|
1754 | \value SH_ToolButton_Uses3D indicates whether QToolButtons should
|
---|
1755 | use a 3D frame when the mouse is over them
|
---|
1756 |
|
---|
1757 | \value SH_ToolBox_SelectedPageTitleBold Boldness of the selected
|
---|
1758 | page title in a QToolBox.
|
---|
1759 |
|
---|
1760 | \value SH_LineEdit_PasswordCharacter The QChar Unicode character
|
---|
1761 | to be used for passwords.
|
---|
1762 |
|
---|
1763 | \value SH_Table_GridLineColor
|
---|
1764 |
|
---|
1765 | \value SH_UnderlineAccelerator whether accelerators are underlined
|
---|
1766 |
|
---|
1767 | \sa styleHint()
|
---|
1768 | */
|
---|
1769 |
|
---|
1770 | /*!
|
---|
1771 | \fn int QStyle::styleHint( StyleHint stylehint, const QWidget *widget = 0, const QStyleOption &opt = QStyleOption::Default, QStyleHintReturn *returnData = 0 ) const;
|
---|
1772 |
|
---|
1773 | Returns the style hint \a stylehint for \a widget. Currently, \a
|
---|
1774 | widget, \a opt, and \a returnData are unused; they're included to
|
---|
1775 | allow for future enhancements.
|
---|
1776 |
|
---|
1777 | For an explanation of the return value see \l StyleHint.
|
---|
1778 | */
|
---|
1779 |
|
---|
1780 | /*!
|
---|
1781 | \enum QStyle::StylePixmap
|
---|
1782 |
|
---|
1783 | This enum represents a StylePixmap. A StylePixmap is a pixmap that
|
---|
1784 | can follow some existing GUI style or guideline.
|
---|
1785 |
|
---|
1786 |
|
---|
1787 | \value SP_TitleBarMinButton minimize button on titlebars. For
|
---|
1788 | example, in a QWorkspace.
|
---|
1789 | \value SP_TitleBarMaxButton maximize button on titlebars.
|
---|
1790 | \value SP_TitleBarCloseButton close button on titlebars.
|
---|
1791 | \value SP_TitleBarNormalButton normal (restore) button on titlebars.
|
---|
1792 | \value SP_TitleBarShadeButton shade button on titlebars.
|
---|
1793 | \value SP_TitleBarUnshadeButton unshade button on titlebars.
|
---|
1794 | \value SP_MessageBoxInformation the 'information' icon.
|
---|
1795 | \value SP_MessageBoxWarning the 'warning' icon.
|
---|
1796 | \value SP_MessageBoxCritical the 'critical' icon.
|
---|
1797 | \value SP_MessageBoxQuestion the 'question' icon.
|
---|
1798 |
|
---|
1799 |
|
---|
1800 | \value SP_DockWindowCloseButton close button on dock windows;
|
---|
1801 | see also QDockWindow.
|
---|
1802 |
|
---|
1803 |
|
---|
1804 | \value SP_CustomBase base value for custom ControlElements. All
|
---|
1805 | values above this are reserved for custom use. Therefore,
|
---|
1806 | custom values must be greater than this value.
|
---|
1807 |
|
---|
1808 | \sa stylePixmap()
|
---|
1809 | */
|
---|
1810 |
|
---|
1811 | /*!
|
---|
1812 | \fn QPixmap QStyle::stylePixmap( StylePixmap stylepixmap, const QWidget *widget = 0, const QStyleOption& opt = QStyleOption::Default ) const;
|
---|
1813 |
|
---|
1814 | Returns a pixmap for \a stylepixmap.
|
---|
1815 |
|
---|
1816 | The \a opt argument can be used to pass extra information required
|
---|
1817 | when drawing the ControlElement. Note that \a opt may be the
|
---|
1818 | default value even for StylePixmaps that can make use of the extra
|
---|
1819 | options. Currently, the \a opt argument is unused.
|
---|
1820 |
|
---|
1821 | The \a widget argument is a pointer to a QWidget or one of its
|
---|
1822 | subclasses. The widget can be cast to the appropriate type based
|
---|
1823 | on the value of \a stylepixmap. See the table below for the
|
---|
1824 | appropriate \a widget casts:
|
---|
1825 |
|
---|
1826 | \table
|
---|
1827 | \header \i StylePixmap \i Widget Cast
|
---|
1828 | \row \i \l SP_TitleBarMinButton \i (const \l QWidget *)
|
---|
1829 | \row \i \l SP_TitleBarMaxButton \i (const \l QWidget *)
|
---|
1830 | \row \i \l SP_TitleBarCloseButton \i (const \l QWidget *)
|
---|
1831 | \row \i \l SP_TitleBarNormalButton \i (const \l QWidget *)
|
---|
1832 | \row \i \l SP_TitleBarShadeButton \i (const \l QWidget *)
|
---|
1833 | \row \i \l SP_TitleBarUnshadeButton \i (const \l QWidget *)
|
---|
1834 | \row \i \l SP_DockWindowCloseButton \i (const \l QDockWindow *)
|
---|
1835 | \endtable
|
---|
1836 |
|
---|
1837 | \sa StylePixmap
|
---|
1838 | */
|
---|
1839 |
|
---|
1840 | /*!
|
---|
1841 | \fn QRect QStyle::visualRect( const QRect &logical, const QWidget *w );
|
---|
1842 |
|
---|
1843 | Returns the rect \a logical in screen coordinates. The bounding
|
---|
1844 | rect for widget \a w is used to perform the translation. This
|
---|
1845 | function is provided to aid style implementors in supporting
|
---|
1846 | right-to-left mode.
|
---|
1847 |
|
---|
1848 | \sa QApplication::reverseLayout()
|
---|
1849 | */
|
---|
1850 | QRect QStyle::visualRect( const QRect &logical, const QWidget *w )
|
---|
1851 | {
|
---|
1852 | QRect boundingRect = w->rect();
|
---|
1853 | QRect r = logical;
|
---|
1854 | if ( QApplication::reverseLayout() )
|
---|
1855 | r.moveBy( 2*(boundingRect.right() - logical.right()) +
|
---|
1856 | logical.width() - boundingRect.width(), 0 );
|
---|
1857 | return r;
|
---|
1858 | }
|
---|
1859 |
|
---|
1860 | /*!
|
---|
1861 | \overload QRect QStyle::visualRect( const QRect &logical, const QRect &bounding );
|
---|
1862 |
|
---|
1863 | Returns the rect \a logical in screen coordinates. The rect \a
|
---|
1864 | bounding is used to perform the translation. This function is
|
---|
1865 | provided to aid style implementors in supporting right-to-left
|
---|
1866 | mode.
|
---|
1867 |
|
---|
1868 | \sa QApplication::reverseLayout()
|
---|
1869 | */
|
---|
1870 | QRect QStyle::visualRect( const QRect &logical, const QRect &boundingRect )
|
---|
1871 | {
|
---|
1872 | QRect r = logical;
|
---|
1873 | if ( QApplication::reverseLayout() )
|
---|
1874 | r.moveBy( 2*(boundingRect.right() - logical.right()) +
|
---|
1875 | logical.width() - boundingRect.width(), 0 );
|
---|
1876 | return r;
|
---|
1877 | }
|
---|
1878 |
|
---|
1879 | /*!
|
---|
1880 | \fn int QStyle::defaultFrameWidth() const
|
---|
1881 | \obsolete
|
---|
1882 | */
|
---|
1883 |
|
---|
1884 | /*!
|
---|
1885 | \fn void QStyle::tabbarMetrics( const QWidget *, int &, int &, int & ) const
|
---|
1886 | \obsolete
|
---|
1887 | */
|
---|
1888 |
|
---|
1889 | /*!
|
---|
1890 | \fn QSize QStyle::scrollBarExtent() const
|
---|
1891 | \obsolete
|
---|
1892 | */
|
---|
1893 |
|
---|
1894 | #endif // QT_NO_STYLE
|
---|