src/gui/kernel/qwidget.cpp File Reference

#include "qapplication.h"
#include "qapplication_p.h"
#include "qbrush.h"
#include "qcursor.h"
#include "qdesktopwidget.h"
#include "qevent.h"
#include "qhash.h"
#include "qlayout.h"
#include "qmenu.h"
#include "qmetaobject.h"
#include "qpixmap.h"
#include "qpointer.h"
#include "qstack.h"
#include "qstyle.h"
#include "qstylefactory.h"
#include "qvariant.h"
#include "qwidget.h"
#include "qstyleoption.h"
#include "qaccessible.h"
#include "qpainter.h"
#include "qtooltip.h"
#include "qwhatsthis.h"
#include "qdebug.h"
#include "private/qstylesheetstyle_p.h"
#include "private/qstyle_p.h"
#include "qinputcontext.h"
#include <private/qpaintengine_x11_p.h>
#include "qx11info_x11.h"
#include <private/qbackingstore_p.h>
#include "qwidget_p.h"
#include "qaction_p.h"
#include "qlayout_p.h"
#include "moc_qwidget.cpp"

Include dependency graph for qwidget.cpp:

Go to the source code of this file.

Defines

#define FILL_RECT_WORKAROUND(painter, rect, brush)

Functions

static QFont qt_naturalWidgetFont (QWidget *w)
static QPalette qt_naturalWidgetPalette (QWidget *w)
QString qt_setWindowTitle_helperHelper (const QString &title, QWidget *widget)
QWidgetDataqt_qwidget_data (QWidget *widget)


Define Documentation

#define FILL_RECT_WORKAROUND ( painter,
rect,
brush   ) 

Value:

if (brush.style() == Qt::TexturePattern)                    \
        painter->drawTiledPixmap(rect, brush.texture(), rect.topLeft()); \
    else                                                        \
        painter->fillRect(rect, brush);

Referenced by QWidgetPrivate::paintBackground().


Function Documentation

static QFont qt_naturalWidgetFont ( QWidget w  )  [static]

Definition at line 758 of file qwidget.cpp.

References QApplication::font(), QFont::isCopyOf(), QFont::resolve(), w, and Qt::WA_WindowPropagation.

Referenced by QWidgetPrivate::resolveFont(), and QWidget::setFont().

00758                                               {
00759     QFont naturalfont = QApplication::font(w);
00760     if (w->parentWidget()
00761         && (!w->isWindow() || w->testAttribute(Qt::WA_WindowPropagation))) {
00762         if (!naturalfont.isCopyOf(QApplication::font()))
00763             naturalfont = naturalfont.resolve(w->parentWidget()->font());
00764         else
00765             naturalfont = w->parentWidget()->font();
00766     }
00767     naturalfont.resolve(0);
00768     return naturalfont;
00769 }

Here is the call graph for this function:

static QPalette qt_naturalWidgetPalette ( QWidget w  )  [static]

Definition at line 771 of file qwidget.cpp.

References QPalette::isCopyOf(), QApplication::palette(), QPalette::resolve(), w, and Qt::WA_WindowPropagation.

Referenced by QWidgetPrivate::resolvePalette(), and QWidget::setPalette().

00771                                                     {
00772     QPalette naturalpalette = QApplication::palette(w);
00773     if (w->parentWidget()
00774         && (!w->isWindow() || w->testAttribute(Qt::WA_WindowPropagation))) {
00775         if (!naturalpalette.isCopyOf(QApplication::palette()))
00776             naturalpalette = naturalpalette.resolve(w->parentWidget()->palette());
00777         else
00778             naturalpalette = w->parentWidget()->palette();
00779     }
00780     naturalpalette.resolve(0);
00781     return naturalpalette;
00782 }

Here is the call graph for this function:

QWidgetData* qt_qwidget_data ( QWidget widget  ) 

Definition at line 8468 of file qwidget.cpp.

Referenced by QX11WindowSurface::flush(), and QRasterWindowSurface::flush().

08469 {
08470     return widget->data;
08471 }

QString qt_setWindowTitle_helperHelper ( const QString title,
QWidget widget 
)

Definition at line 3836 of file qwidget.cpp.

References index, QString::indexOf(), QWidget::isWindowModified(), QString::lastIndexOf(), QString::length(), QString::replace(), QStyle::SH_TitleBar_ModifyNotification, QWidget::style(), and QStyle::styleHint().

03837 {
03838     Q_ASSERT(widget);
03839 
03840 #ifdef QT_EVAL
03841     extern QString qt_eval_adapt_window_title(const QString &title);
03842     QString cap = qt_eval_adapt_window_title(title);
03843 #else
03844     QString cap = title;
03845 #endif
03846 
03847     QString placeHolder(QLatin1String("[*]"));
03848 
03849     int index = cap.indexOf(placeHolder);
03850 
03851     while (index != -1) {
03852         index += placeHolder.length();
03853         int count = 1;
03854         while (cap.indexOf(placeHolder, index) == index) {
03855             ++count;
03856             index += placeHolder.length();
03857         }
03858 
03859         if (count%2) { // odd number of [*] -> replace last one
03860             int lastIndex = cap.lastIndexOf(placeHolder, index - 1);
03861             if (widget->isWindowModified()
03862              && widget->style()->styleHint(QStyle::SH_TitleBar_ModifyNotification, 0, widget))
03863                 cap.replace(lastIndex, 3, QWidget::tr("*"));
03864             else
03865                 cap.replace(lastIndex, 3, QLatin1String(""));
03866         }
03867 
03868         index = cap.indexOf(placeHolder, index);
03869     }
03870 
03871     cap.replace(QLatin1String("[*][*]"), QLatin1String("[*]"));
03872 
03873     return cap;
03874 }

Here is the call graph for this function:


Generated on Thu Mar 15 13:29:29 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1