Automated update from Qt3

pull/1/head
Timothy Pearson 11 years ago
parent d55c0cef4d
commit 523c1fd99e

@ -68,6 +68,9 @@ struct TQUObject;
class TQThread; class TQThread;
#endif #endif
class TQStyleControlElementData;
class TQStyleControlElementDataPrivate;
class Q_EXPORT TQObject: public TQt class Q_EXPORT TQObject: public TQt
{ {
TQ_OBJECT TQ_OBJECT
@ -140,6 +143,9 @@ public:
void dumpObjectTree(); void dumpObjectTree();
void dumpObjectInfo(); void dumpObjectInfo();
TQStyleControlElementData* controlElementDataObject();
TQStyleControlElementDataPrivate* controlElementDataPrivateObject();
#ifndef QT_NO_PROPERTIES #ifndef QT_NO_PROPERTIES
virtual bool setProperty( const char *name, const TQVariant& value ); virtual bool setProperty( const char *name, const TQVariant& value );
virtual TQVariant property( const char *name ) const; virtual TQVariant property( const char *name ) const;

@ -223,6 +223,7 @@ class TQStyleControlElementTabBarData {
class Q_EXPORT TQStyleControlElementData { class Q_EXPORT TQStyleControlElementData {
public: public:
TQStyleControlElementData(); TQStyleControlElementData();
~TQStyleControlElementData();
public: public:
bool isNull; bool isNull;
@ -285,6 +286,11 @@ class Q_EXPORT TQStyleControlElementData {
TQStyleControlElementGenericWidgetData topLevelWidgetData; TQStyleControlElementGenericWidgetData topLevelWidgetData;
TQ_UINT32 topLevelWidgetFlags; TQ_UINT32 topLevelWidgetFlags;
TQPixmap paletteBgPixmap; TQPixmap paletteBgPixmap;
private:
// Disable copy constructor
TQStyleControlElementData(const TQStyleControlElementData&);
}; };
class Q_EXPORT TQStyleWidgetActionRequestData { class Q_EXPORT TQStyleWidgetActionRequestData {
@ -1222,11 +1228,11 @@ private:
inline TQStyle::ControlElementFlags operator|(const TQStyle::ControlElementFlags a, const TQStyle::ControlElementFlags b) { return static_cast<TQStyle::ControlElementFlags>(static_cast<int>(a) | static_cast<int>(b)); } inline TQStyle::ControlElementFlags operator|(const TQStyle::ControlElementFlags a, const TQStyle::ControlElementFlags b) { return static_cast<TQStyle::ControlElementFlags>(static_cast<int>(a) | static_cast<int>(b)); }
// inline TQStyle::ControlElementFlags operator|=(TQStyle::ControlElementFlags &a, const TQStyle::ControlElementFlags b) { a = static_cast<TQStyle::ControlElementFlags>(static_cast<int>(a) | static_cast<int>(b)); return a; } // inline TQStyle::ControlElementFlags operator|=(TQStyle::ControlElementFlags &a, const TQStyle::ControlElementFlags b) { a = static_cast<TQStyle::ControlElementFlags>(static_cast<int>(a) | static_cast<int>(b)); return a; }
Q_EXPORT TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields=true); Q_EXPORT const TQStyleControlElementData &populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT TQStyleControlElementData populateControlElementDataFromApplication(const TQApplication* app, const TQStyleOption& opt, bool populateReliantFields=true); Q_EXPORT const TQStyleControlElementData &populateControlElementDataFromApplication(const TQApplication* app, const TQStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, TQStringList objectTypeList, const TQStyleOption& opt, bool populateReliantFields=true); Q_EXPORT TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, const TQStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT TQStringList getObjectTypeListForObject(const TQObject* object); Q_EXPORT TQStringList getObjectTypeListForObject(const TQObject* object);
Q_EXPORT TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields, bool populateMinimumNumberOfFields); Q_EXPORT const TQStyleControlElementData &populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields, bool populateMinimumNumberOfFields);
#endif // QT_NO_STYLE #endif // QT_NO_STYLE
#endif // TQSTYLE_H #endif // TQSTYLE_H

@ -49,6 +49,9 @@
#include "qucomextra_p.h" #include "qucomextra_p.h"
#include "ntqptrvector.h" #include "ntqptrvector.h"
// TQStyleControlElementData
#include "ntqstyle.h"
#ifdef QT_THREAD_SUPPORT #ifdef QT_THREAD_SUPPORT
#include "ntqmutex.h" #include "ntqmutex.h"
#include <private/qmutexpool_p.h> #include <private/qmutexpool_p.h>
@ -58,6 +61,33 @@
#include <ctype.h> #include <ctype.h>
#include <stdlib.h> #include <stdlib.h>
// Keep in sync with duplicate definition in qcommonstyle.cpp
class TQStyleControlElementDataPrivate {
public:
bool isTQPushButton;
bool isTQToolButton;
bool isTQButton;
bool isTQTabBar;
bool isTQTitleBar;
bool isTQToolBox;
bool isTQToolBar;
bool isTQProgressBar;
bool isTQPopupMenu;
bool isTQComboBox;
bool isTQCheckBox;
bool isTQRadioButton;
bool isTQHeader;
bool isTQScrollBar;
bool isTQSlider;
bool isTQDialogButtons;
bool isTQSpinWidget;
bool isTQListView;
bool isTQDockWindow;
bool isTQTabWidget;
bool isTQFrame;
bool isTQWidget;
};
#ifndef QT_NO_USERDATA #ifndef QT_NO_USERDATA
class TQObjectPrivate : public TQPtrVector<TQObjectUserData> class TQObjectPrivate : public TQPtrVector<TQObjectUserData>
#else #else
@ -70,14 +100,36 @@ public:
ownThread = NULL; ownThread = NULL;
disableThreadPostedEvents = false; disableThreadPostedEvents = false;
setAutoDelete( TRUE ); setAutoDelete( TRUE );
controlElementData = NULL;
controlElementDataPrivate = NULL;
}
~TQObjectPrivate() {
delete controlElementData;
delete controlElementDataPrivate;
} }
#endif #endif
TQThread* ownThread; TQThread* ownThread;
TQMutex* senderObjectListMutex; TQMutex* senderObjectListMutex;
TQMutex* childObjectListMutex; TQMutex* childObjectListMutex;
bool disableThreadPostedEvents; bool disableThreadPostedEvents;
TQStyleControlElementData* controlElementData;
TQStyleControlElementDataPrivate* controlElementDataPrivate;
}; };
TQStyleControlElementData* TQObject::controlElementDataObject() {
if (!d->controlElementData) {
d->controlElementData = new TQStyleControlElementData();
}
return d->controlElementData;
}
TQStyleControlElementDataPrivate* TQObject::controlElementDataPrivateObject() {
if (!d->controlElementDataPrivate) {
d->controlElementDataPrivate = new TQStyleControlElementDataPrivate();
}
return d->controlElementDataPrivate;
}
#if defined(QT_THREAD_SUPPORT) #if defined(QT_THREAD_SUPPORT)
void TQObject::moveToThread_helper(TQThread *targetThread) void TQObject::moveToThread_helper(TQThread *targetThread)

@ -637,8 +637,8 @@ TQStyle::~TQStyle()
\sa unPolish() \sa unPolish()
*/ */
void TQStyle::polish( TQWidget *widget ) { void TQStyle::polish( TQWidget *widget ) {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
polish(ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), widget); polish(ceData, getControlElementFlagsForObject(widget, TQStyleOption()), widget);
} }
/*! /*!
@ -652,8 +652,8 @@ void TQStyle::polish( TQWidget *widget ) {
\sa polish() \sa polish()
*/ */
void TQStyle::unPolish( TQWidget *widget ) { void TQStyle::unPolish( TQWidget *widget ) {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
unPolish(ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), widget); unPolish(ceData, getControlElementFlagsForObject(widget, TQStyleOption()), widget);
} }
/*! /*!
@ -715,8 +715,8 @@ void TQStyle::unPolish( const TQStyleControlElementData &ceData, ControlElementF
\sa unPolish() \sa unPolish()
*/ */
void TQStyle::polish( TQApplication *app ) { void TQStyle::polish( TQApplication *app ) {
TQStyleControlElementData ceData = populateControlElementDataFromApplication(app, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromApplication(app, TQStyleOption());
applicationPolish(ceData, getControlElementFlagsForObject(app, ceData.widgetObjectTypes, TQStyleOption()), app); applicationPolish(ceData, getControlElementFlagsForObject(app, TQStyleOption()), app);
} }
/*! /*!
@ -727,8 +727,8 @@ void TQStyle::polish( TQApplication *app ) {
\sa polish() \sa polish()
*/ */
void TQStyle::unPolish( TQApplication *app ) { void TQStyle::unPolish( TQApplication *app ) {
TQStyleControlElementData ceData = populateControlElementDataFromApplication(app, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromApplication(app, TQStyleOption());
applicationUnPolish(ceData, getControlElementFlagsForObject(app, ceData.widgetObjectTypes, TQStyleOption()), app); applicationUnPolish(ceData, getControlElementFlagsForObject(app, TQStyleOption()), app);
} }
/*! /*!
@ -782,8 +782,8 @@ void TQStyle::polish( TQPalette&)
checkable by default (\l{TQPopupMenu::setCheckable()}). checkable by default (\l{TQPopupMenu::setCheckable()}).
*/ */
void TQStyle::polishPopupMenu( TQPopupMenu *pm ) { void TQStyle::polishPopupMenu( TQPopupMenu *pm ) {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(pm, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(pm, TQStyleOption());
unPolish(ceData, getControlElementFlagsForObject(pm, ceData.widgetObjectTypes, TQStyleOption()), pm); unPolish(ceData, getControlElementFlagsForObject(pm, TQStyleOption()), pm);
} }
/*! /*!
@ -2351,14 +2351,16 @@ bool TQStyle::eventFilter(TQObject *o, TQEvent *e) {
if (m_objectEventSourceToHandlerMap.contains(o)) { if (m_objectEventSourceToHandlerMap.contains(o)) {
TQStyle* handler = m_objectEventSourceToHandlerMap[o]; TQStyle* handler = m_objectEventSourceToHandlerMap[o];
TQStyleControlElementData ceData = m_objectEventSourceDataToHandlerMap[o]; const TQStyleControlElementData &ceData = m_objectEventSourceDataToHandlerMap[o];
ControlElementFlags elementFlags = m_objectEventSourceFlagsToHandlerMap[o]; ControlElementFlags elementFlags = m_objectEventSourceFlagsToHandlerMap[o];
bool ret; bool ret;
TQWidget* w = dynamic_cast<TQWidget*>(o); TQWidget* w = dynamic_cast<TQWidget*>(o);
if ((w) && (e->type() == TQEvent::Paint)) { if ((w) && (e->type() == TQEvent::Paint)) {
TQPainter p(w); TQPainter p(w);
ceData.activePainter = &p; TQPainter* activePainterOrig = ceData.activePainter;
const_cast<TQStyleControlElementData&>(ceData).activePainter = &p;
ret = handler->objectEventHandler(ceData, elementFlags, o, e); ret = handler->objectEventHandler(ceData, elementFlags, o, e);
const_cast<TQStyleControlElementData&>(ceData).activePainter = activePainterOrig;
} }
else { else {
ret = handler->objectEventHandler(ceData, elementFlags, o, e); ret = handler->objectEventHandler(ceData, elementFlags, o, e);
@ -2638,8 +2640,8 @@ void TQStyle::drawPrimitive( PrimitiveElement pe,
} }
} }
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
drawPrimitive(pe, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), r, cg, flags, opt); drawPrimitive(pe, p, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), r, cg, flags, opt);
} }
void TQStyle::drawControl( ControlElement element, void TQStyle::drawControl( ControlElement element,
@ -2657,8 +2659,8 @@ void TQStyle::drawControl( ControlElement element,
} }
#endif #endif
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
drawControl(element, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, opt), r, cg, flags, opt, widget); drawControl(element, p, ceData, getControlElementFlagsForObject(widget, opt), r, cg, flags, opt, widget);
} }
void TQStyle::drawControlMask( ControlElement control, void TQStyle::drawControlMask( ControlElement control,
@ -2667,8 +2669,8 @@ void TQStyle::drawControlMask( ControlElement control,
const TQRect &r, const TQRect &r,
const TQStyleOption& opt ) const const TQStyleOption& opt ) const
{ {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
drawControlMask(control, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, opt), r, opt, widget); drawControlMask(control, p, ceData, getControlElementFlagsForObject(widget, opt), r, opt, widget);
} }
TQRect TQStyle::subRect(SubRect r, const TQWidget *widget) const TQRect TQStyle::subRect(SubRect r, const TQWidget *widget) const
@ -2680,8 +2682,8 @@ TQRect TQStyle::subRect(SubRect r, const TQWidget *widget) const
} }
#endif #endif
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
return subRect(r, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), widget); return subRect(r, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), widget);
} }
void TQStyle::drawComplexControl( ComplexControl control, void TQStyle::drawComplexControl( ComplexControl control,
@ -2701,8 +2703,8 @@ void TQStyle::drawComplexControl( ComplexControl control,
} }
#endif #endif
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
drawComplexControl(control, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), r, cg, flags, controls, active, opt, widget); drawComplexControl(control, p, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), r, cg, flags, controls, active, opt, widget);
} }
void TQStyle::drawComplexControlMask( ComplexControl control, void TQStyle::drawComplexControlMask( ComplexControl control,
@ -2711,8 +2713,8 @@ void TQStyle::drawComplexControlMask( ComplexControl control,
const TQRect &r, const TQRect &r,
const TQStyleOption& opt ) const const TQStyleOption& opt ) const
{ {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
drawComplexControlMask(control, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), r, opt, widget); drawComplexControlMask(control, p, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), r, opt, widget);
} }
TQRect TQStyle::querySubControlMetrics( ComplexControl control, TQRect TQStyle::querySubControlMetrics( ComplexControl control,
@ -2727,8 +2729,8 @@ TQRect TQStyle::querySubControlMetrics( ComplexControl control,
} }
#endif #endif
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt, false); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt, false);
return querySubControlMetrics(control, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), sc, opt, widget); return querySubControlMetrics(control, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), sc, opt, widget);
} }
TQStyle::SubControl TQStyle::querySubControl(ComplexControl control, TQStyle::SubControl TQStyle::querySubControl(ComplexControl control,
@ -2736,14 +2738,14 @@ TQStyle::SubControl TQStyle::querySubControl(ComplexControl control,
const TQPoint &pos, const TQPoint &pos,
const TQStyleOption& opt ) const const TQStyleOption& opt ) const
{ {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
return querySubControl(control, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, opt), pos, opt, widget); return querySubControl(control, ceData, getControlElementFlagsForObject(widget, opt), pos, opt, widget);
} }
int TQStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const int TQStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
{ {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, TQStyleOption(), false);
return pixelMetric(m, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), widget); return pixelMetric(m, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), widget);
} }
TQSize TQStyle::sizeFromContents(ContentsType contents, TQSize TQStyle::sizeFromContents(ContentsType contents,
@ -2760,8 +2762,8 @@ TQSize TQStyle::sizeFromContents(ContentsType contents,
} }
#endif #endif
TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(widget, opt);
return sizeFromContents(contents, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), contentsSize, opt, widget); return sizeFromContents(contents, ceData, getControlElementFlagsForObject(widget, TQStyleOption()), contentsSize, opt, widget);
} }
int TQStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOption &so, TQStyleHintReturn *shr) const int TQStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOption &so, TQStyleHintReturn *shr) const
@ -2770,14 +2772,14 @@ int TQStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOption &so
if (sh == SH_Widget_ShareActivation) { if (sh == SH_Widget_ShareActivation) {
ceDataNotNeeded = true; ceDataNotNeeded = true;
} }
TQStyleControlElementData ceData = populateControlElementDataFromWidget(w, so, false, ceDataNotNeeded); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(w, so, false, ceDataNotNeeded);
return styleHint(sh, ceData, getControlElementFlagsForObject(w, ceData.widgetObjectTypes, TQStyleOption(), false), so, shr, w); return styleHint(sh, ceData, getControlElementFlagsForObject(w, TQStyleOption(), false), so, shr, w);
} }
TQPixmap TQStyle::stylePixmap(StylePixmap sp, const TQWidget *w, const TQStyleOption &so) const TQPixmap TQStyle::stylePixmap(StylePixmap sp, const TQWidget *w, const TQStyleOption &so) const
{ {
TQStyleControlElementData ceData = populateControlElementDataFromWidget(w, so); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(w, so);
return stylePixmap(sp, ceData, getControlElementFlagsForObject(w, ceData.widgetObjectTypes, TQStyleOption()), so, w); return stylePixmap(sp, ceData, getControlElementFlagsForObject(w, TQStyleOption()), so, w);
} }
/*! /*!
@ -2830,4 +2832,8 @@ TQStyleControlElementData::TQStyleControlElementData() {
topLevelWidgetFlags = 0; topLevelWidgetFlags = 0;
} }
TQStyleControlElementData::~TQStyleControlElementData() {
//
}
#endif // QT_NO_STYLE #endif // QT_NO_STYLE

@ -410,7 +410,7 @@ void TQThread::start(Priority priority)
d->args[1] = d; d->args[1] = d;
#if defined(QT_USE_GLIBMAINLOOP) #if defined(QT_USE_GLIBMAINLOOP)
// The correct thread_id is set in TQThreadInstance::start using the value of d->args[1] // The correct thread_id is set in TQThreadInstance::start using the value of d->args[1]
d->thread_id = NULL; d->thread_id = 0;
// Legacy glib versions require this threading system initialization call // Legacy glib versions require this threading system initialization call
if (!GLIB_CHECK_VERSION (2, 32, 0)) { if (!GLIB_CHECK_VERSION (2, 32, 0)) {

@ -147,6 +147,7 @@ static TQString TQButton_static_string("TQButton");
static TQString TQTabBar_static_string("TQTabBar"); static TQString TQTabBar_static_string("TQTabBar");
static TQString TQTitleBar_static_string("TQTitleBar"); static TQString TQTitleBar_static_string("TQTitleBar");
static TQString TQToolBox_static_string("TQToolBox"); static TQString TQToolBox_static_string("TQToolBox");
static TQString TQToolBar_static_string("TQToolBar");
static TQString TQProgressBar_static_string("TQProgressBar"); static TQString TQProgressBar_static_string("TQProgressBar");
static TQString TQPopupMenu_static_string("TQPopupMenu"); static TQString TQPopupMenu_static_string("TQPopupMenu");
static TQString TQComboBox_static_string("TQComboBox"); static TQString TQComboBox_static_string("TQComboBox");
@ -159,17 +160,48 @@ static TQString TQDialogButtons_static_string("TQDialogButtons");
static TQString TQSpinWidget_static_string("TQSpinWidget"); static TQString TQSpinWidget_static_string("TQSpinWidget");
static TQString TQListView_static_string("TQListView"); static TQString TQListView_static_string("TQListView");
static TQString TQDockWindow_static_string("TQDockWindow"); static TQString TQDockWindow_static_string("TQDockWindow");
static TQString TQTabWidget_static_string("TQTabWidget");
static TQString TQFrame_static_string("TQFrame"); static TQString TQFrame_static_string("TQFrame");
static TQString TQWidget_static_string("TQWidget");
static TQStyleControlElementData* TQStyleControlElementData_null = NULL;
#include <ntqmetaobject.h> #include <ntqmetaobject.h>
// Keep in sync with duplicate definition in qobject.cpp
class TQStyleControlElementDataPrivate {
public:
bool isTQPushButton;
bool isTQToolButton;
bool isTQButton;
bool isTQTabBar;
bool isTQTitleBar;
bool isTQToolBox;
bool isTQToolBar;
bool isTQProgressBar;
bool isTQPopupMenu;
bool isTQComboBox;
bool isTQCheckBox;
bool isTQRadioButton;
bool isTQHeader;
bool isTQScrollBar;
bool isTQSlider;
bool isTQDialogButtons;
bool isTQSpinWidget;
bool isTQListView;
bool isTQDockWindow;
bool isTQTabWidget;
bool isTQFrame;
bool isTQWidget;
};
TQStringList getObjectTypeListForObject(const TQObject* object) { TQStringList getObjectTypeListForObject(const TQObject* object) {
TQStringList objectTypes; TQStringList objectTypes;
if (object) { if (object) {
TQMetaObject* objectMetaObject = object->metaObject(); TQMetaObject* objectMetaObject = object->metaObject();
const char* name; const char* name;
while (objectMetaObject) { while (objectMetaObject) {
name = objectMetaObject->className(); name = objectMetaObject->className();
objectTypes.append(TQString(name)); objectTypes.append(TQString(name));
@ -180,12 +212,54 @@ TQStringList getObjectTypeListForObject(const TQObject* object) {
return objectTypes; return objectTypes;
} }
TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, TQStringList objectTypeList, const TQStyleOption& opt, bool populateReliantFields) { void determineObjectTypes(const TQObject* object, TQStyleControlElementData &ceData, TQStyleControlElementDataPrivate* ceDataPrivate) {
ceData.widgetObjectTypes = getObjectTypeListForObject(object);
// Increase speed on repeated calls by checking object types here and caching them
ceDataPrivate->isTQPushButton = ceData.widgetObjectTypes.containsYesNo(TQPushButton_static_string);
ceDataPrivate->isTQToolButton = ceData.widgetObjectTypes.containsYesNo(TQToolButton_static_string);
ceDataPrivate->isTQButton = ceData.widgetObjectTypes.containsYesNo(TQButton_static_string);
ceDataPrivate->isTQTabBar = ceData.widgetObjectTypes.containsYesNo(TQTabBar_static_string);
ceDataPrivate->isTQTitleBar = ceData.widgetObjectTypes.containsYesNo(TQTitleBar_static_string);
ceDataPrivate->isTQToolBox = ceData.widgetObjectTypes.containsYesNo(TQToolBox_static_string);
ceDataPrivate->isTQToolBar = ceData.widgetObjectTypes.containsYesNo(TQToolBar_static_string);
ceDataPrivate->isTQProgressBar = ceData.widgetObjectTypes.containsYesNo(TQProgressBar_static_string);
ceDataPrivate->isTQPopupMenu = ceData.widgetObjectTypes.containsYesNo(TQPopupMenu_static_string);
ceDataPrivate->isTQComboBox = ceData.widgetObjectTypes.containsYesNo(TQComboBox_static_string);
ceDataPrivate->isTQCheckBox = ceData.widgetObjectTypes.containsYesNo(TQCheckBox_static_string);
ceDataPrivate->isTQRadioButton = ceData.widgetObjectTypes.containsYesNo(TQRadioButton_static_string);
ceDataPrivate->isTQHeader = ceData.widgetObjectTypes.containsYesNo(TQHeader_static_string);
ceDataPrivate->isTQScrollBar = ceData.widgetObjectTypes.containsYesNo(TQScrollBar_static_string);
ceDataPrivate->isTQSlider = ceData.widgetObjectTypes.containsYesNo(TQSlider_static_string);
ceDataPrivate->isTQDialogButtons = ceData.widgetObjectTypes.containsYesNo(TQDialogButtons_static_string);
ceDataPrivate->isTQSpinWidget = ceData.widgetObjectTypes.containsYesNo(TQSpinWidget_static_string);
ceDataPrivate->isTQListView = ceData.widgetObjectTypes.containsYesNo(TQListView_static_string);
ceDataPrivate->isTQDockWindow = ceData.widgetObjectTypes.containsYesNo(TQDockWindow_static_string);
ceDataPrivate->isTQTabWidget = ceData.widgetObjectTypes.containsYesNo(TQTabWidget_static_string);
ceDataPrivate->isTQFrame = ceData.widgetObjectTypes.containsYesNo(TQFrame_static_string);
ceDataPrivate->isTQWidget = ceData.widgetObjectTypes.containsYesNo(TQWidget_static_string);
}
void updateObjectTypeListIfNeeded(const TQObject* object) {
TQStyleControlElementData &ceData = *(const_cast<TQObject*>(object)->controlElementDataObject());
TQStyleControlElementDataPrivate* ceDataPrivate = const_cast<TQObject*>(object)->controlElementDataPrivateObject();
// This is much faster than (ceData.widgetObjectTypes[0] != TQString(object->metaObject()->className())) due to TQString constructor/destructor overhead
// Casting to const also increases speed by preventing unneeded calls to detach()
if ((ceData.widgetObjectTypes.isEmpty()) || (strcmp(const_cast<const TQStringList&>(ceData.widgetObjectTypes)[0].ascii(), object->metaObject()->className()) != 0)) {
determineObjectTypes(object, ceData, ceDataPrivate);
}
}
TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, const TQStyleOption& opt, bool populateReliantFields) {
TQStyle::ControlElementFlags cef = TQStyle::CEF_None; TQStyle::ControlElementFlags cef = TQStyle::CEF_None;
if (object) { if (object) {
if (objectTypeList.contains(TQPushButton_static_string)) { TQStyleControlElementDataPrivate* ceDataPrivate = const_cast<TQObject*>(object)->controlElementDataPrivateObject();
const TQPushButton *button = dynamic_cast<const TQPushButton*>(object); updateObjectTypeListIfNeeded(object);
if (ceDataPrivate->isTQPushButton) {
const TQPushButton *button = static_cast<const TQPushButton*>(object);
if (button) { if (button) {
if (button->isDefault()) cef = cef | TQStyle::CEF_IsDefault; if (button->isDefault()) cef = cef | TQStyle::CEF_IsDefault;
if (button->autoDefault()) cef = cef | TQStyle::CEF_AutoDefault; if (button->autoDefault()) cef = cef | TQStyle::CEF_AutoDefault;
@ -194,8 +268,8 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj
if (button->isFlat()) cef = cef | TQStyle::CEF_IsFlat; if (button->isFlat()) cef = cef | TQStyle::CEF_IsFlat;
} }
} }
if (objectTypeList.contains(TQToolButton_static_string)) { if (ceDataPrivate->isTQToolButton) {
const TQToolButton *button = dynamic_cast<const TQToolButton*>(object); const TQToolButton *button = static_cast<const TQToolButton*>(object);
if (button) { if (button) {
if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState; if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState;
if (button->usesTextLabel()) cef = cef | TQStyle::CEF_UsesTextLabel; if (button->usesTextLabel()) cef = cef | TQStyle::CEF_UsesTextLabel;
@ -203,65 +277,67 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj
if (button->popup()) cef = cef | TQStyle::CEF_HasPopupMenu; if (button->popup()) cef = cef | TQStyle::CEF_HasPopupMenu;
} }
} }
if (objectTypeList.contains(TQButton_static_string)) { if (ceDataPrivate->isTQButton) {
const TQButton *button = dynamic_cast<const TQButton*>(object); const TQButton *button = static_cast<const TQButton*>(object);
if (button) { if (button) {
if (button->isDown()) cef = cef | TQStyle::CEF_IsDown; if (button->isDown()) cef = cef | TQStyle::CEF_IsDown;
if (button->isOn()) cef = cef | TQStyle::CEF_IsOn; if (button->isOn()) cef = cef | TQStyle::CEF_IsOn;
if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState; if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState;
} }
} }
if (objectTypeList.contains(TQTabBar_static_string)) { if (ceDataPrivate->isTQTabBar) {
const TQTabBar *tb = dynamic_cast<const TQTabBar*>(object); const TQTabBar *tb = static_cast<const TQTabBar*>(object);
TQTab * t = opt.tab(); TQTab * t = opt.tab();
if ((t) && (tb)) { if ((t) && (tb)) {
if (t->identifier() == tb->currentTab()) cef = cef | TQStyle::CEF_IsActive; if (t->identifier() == tb->currentTab()) cef = cef | TQStyle::CEF_IsActive;
} }
} }
if (objectTypeList.contains(TQTitleBar_static_string)) { if (ceDataPrivate->isTQTitleBar) {
const TQTitleBar *tb = dynamic_cast<const TQTitleBar*>(object); const TQTitleBar *tb = static_cast<const TQTitleBar*>(object);
if (tb) { if (tb) {
if (tb->isActive()) cef = cef | TQStyle::CEF_IsActive; if (tb->isActive()) cef = cef | TQStyle::CEF_IsActive;
} }
} }
if (objectTypeList.contains(TQToolBox_static_string)) { if (ceDataPrivate->isTQToolBox) {
const TQToolBox *tb = dynamic_cast<const TQToolBox*>(object); const TQToolBox *tb = static_cast<const TQToolBox*>(object);
if (tb) { if (tb) {
if (!tb->currentItem()) cef = cef | TQStyle::CEF_IsContainerEmpty; if (!tb->currentItem()) cef = cef | TQStyle::CEF_IsContainerEmpty;
} }
} }
if (objectTypeList.contains(TQProgressBar_static_string)) { if (ceDataPrivate->isTQProgressBar) {
const TQProgressBar *pb = dynamic_cast<const TQProgressBar*>(object); const TQProgressBar *pb = static_cast<const TQProgressBar*>(object);
if (pb) { if (pb) {
if (pb->centerIndicator()) cef = cef | TQStyle::CEF_CenterIndicator; if (pb->centerIndicator()) cef = cef | TQStyle::CEF_CenterIndicator;
if (pb->indicatorFollowsStyle()) cef = cef | TQStyle::CEF_IndicatorFollowsStyle; if (pb->indicatorFollowsStyle()) cef = cef | TQStyle::CEF_IndicatorFollowsStyle;
} }
} }
if (objectTypeList.contains(TQPopupMenu_static_string)) { if (ceDataPrivate->isTQPopupMenu) {
const TQPopupMenu *pm = dynamic_cast<const TQPopupMenu*>(object); const TQPopupMenu *pm = static_cast<const TQPopupMenu*>(object);
if (pm) { if (pm) {
if (pm->isCheckable()) cef = cef | TQStyle::CEF_IsCheckable; if (pm->isCheckable()) cef = cef | TQStyle::CEF_IsCheckable;
} }
} }
if (objectTypeList.contains(TQComboBox_static_string)) { if (ceDataPrivate->isTQComboBox) {
const TQComboBox *cb = dynamic_cast<const TQComboBox*>(object); const TQComboBox *cb = static_cast<const TQComboBox*>(object);
if (cb) { if (cb) {
if (cb->editable()) cef = cef | TQStyle::CEF_IsEditable; if (cb->editable()) cef = cef | TQStyle::CEF_IsEditable;
} }
} }
// Generic flags // Generic flags
const TQWidget* widget = dynamic_cast<const TQWidget*>(object); if (ceDataPrivate->isTQWidget) {
if (widget) { const TQWidget* widget = static_cast<const TQWidget*>(object);
if (widget->isEnabled()) cef = cef | TQStyle::CEF_IsEnabled; if (widget) {
if (widget->parentWidget()) cef = cef | TQStyle::CEF_HasParentWidget; if (widget->isEnabled()) cef = cef | TQStyle::CEF_IsEnabled;
if (widget->focusProxy()) cef = cef | TQStyle::CEF_HasFocusProxy; if (widget->parentWidget()) cef = cef | TQStyle::CEF_HasParentWidget;
if (widget->hasFocus()) cef = cef | TQStyle::CEF_HasFocus; if (widget->focusProxy()) cef = cef | TQStyle::CEF_HasFocusProxy;
if (widget->hasMouse()) cef = cef | TQStyle::CEF_HasMouse; if (widget->hasFocus()) cef = cef | TQStyle::CEF_HasFocus;
if (populateReliantFields) { if (widget->hasMouse()) cef = cef | TQStyle::CEF_HasMouse;
if (widget->isActiveWindow()) cef = cef | TQStyle::CEF_IsActiveWindow; if (populateReliantFields) {
if (widget->isTopLevel()) cef = cef | TQStyle::CEF_IsTopLevel; if (widget->isActiveWindow()) cef = cef | TQStyle::CEF_IsActiveWindow;
if (widget->isVisible()) cef = cef | TQStyle::CEF_IsVisible; if (widget->isTopLevel()) cef = cef | TQStyle::CEF_IsTopLevel;
if (widget->isShown()) cef = cef | TQStyle::CEF_IsShown; if (widget->isVisible()) cef = cef | TQStyle::CEF_IsVisible;
if (widget->isShown()) cef = cef | TQStyle::CEF_IsShown;
}
} }
} }
} }
@ -272,16 +348,18 @@ TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* obj
return cef; return cef;
} }
TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields) { const TQStyleControlElementData &populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields) {
return populateControlElementDataFromWidget(widget, opt, populateReliantFields, false); return populateControlElementDataFromWidget(widget, opt, populateReliantFields, false);
} }
TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields, bool populateMinimumNumberOfFields) { const TQStyleControlElementData &populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields, bool populateMinimumNumberOfFields) {
TQStyleControlElementData ceData;
if (widget) { if (widget) {
TQStyleControlElementData &ceData = *(const_cast<TQWidget*>(widget)->controlElementDataObject());
TQStyleControlElementDataPrivate* ceDataPrivate = const_cast<TQWidget*>(widget)->controlElementDataPrivateObject();
ceData.isNull = false; ceData.isNull = false;
ceData.widgetObjectTypes = getObjectTypeListForObject(widget); updateObjectTypeListIfNeeded(widget);
ceData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields; ceData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
if (!populateMinimumNumberOfFields) { if (!populateMinimumNumberOfFields) {
const TQPixmap* erasePixmap = widget->backgroundPixmap(); const TQPixmap* erasePixmap = widget->backgroundPixmap();
@ -316,8 +394,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.name = widget->name(); ceData.name = widget->name();
ceData.caption = widget->caption(); ceData.caption = widget->caption();
if (!populateMinimumNumberOfFields) { if (!populateMinimumNumberOfFields) {
if (ceData.widgetObjectTypes.contains(TQPushButton_static_string)) { if (ceDataPrivate->isTQPushButton) {
const TQPushButton *button = dynamic_cast<const TQPushButton*>(widget); const TQPushButton *button = static_cast<const TQPushButton*>(widget);
if (button) { if (button) {
TQIconSet* iconSet = 0; TQIconSet* iconSet = 0;
const TQPixmap* fgPixmap = 0; const TQPixmap* fgPixmap = 0;
@ -331,8 +409,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQToolButton_static_string)) { if (ceDataPrivate->isTQToolButton) {
const TQToolButton *button = dynamic_cast<const TQToolButton*>(widget); const TQToolButton *button = static_cast<const TQToolButton*>(widget);
if (button) { if (button) {
const TQPixmap* fgPixmap = 0; const TQPixmap* fgPixmap = 0;
ceData.iconSet = button->iconSet(); ceData.iconSet = button->iconSet();
@ -345,8 +423,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.popupDelay = button->popupDelay(); ceData.popupDelay = button->popupDelay();
} }
} }
if (ceData.widgetObjectTypes.contains(TQCheckBox_static_string)) { if (ceDataPrivate->isTQCheckBox) {
const TQCheckBox *button = dynamic_cast<const TQCheckBox*>(widget); const TQCheckBox *button = static_cast<const TQCheckBox*>(widget);
if (button) { if (button) {
const TQPixmap* fgPixmap = 0; const TQPixmap* fgPixmap = 0;
fgPixmap = button->pixmap(); fgPixmap = button->pixmap();
@ -355,8 +433,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQRadioButton_static_string)) { if (ceDataPrivate->isTQRadioButton) {
const TQRadioButton *button = dynamic_cast<const TQRadioButton*>(widget); const TQRadioButton *button = static_cast<const TQRadioButton*>(widget);
if (button) { if (button) {
const TQPixmap* fgPixmap = 0; const TQPixmap* fgPixmap = 0;
fgPixmap = button->pixmap(); fgPixmap = button->pixmap();
@ -365,8 +443,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQButton_static_string)) { if (ceDataPrivate->isTQButton) {
const TQButton *button = dynamic_cast<const TQButton*>(widget); const TQButton *button = static_cast<const TQButton*>(widget);
if (button) { if (button) {
ceData.text = button->text(); ceData.text = button->text();
const TQPixmap* paletteBgPixmap = 0; const TQPixmap* paletteBgPixmap = 0;
@ -376,8 +454,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQTabBar_static_string)) { if (ceDataPrivate->isTQTabBar) {
const TQTabBar *tb = dynamic_cast<const TQTabBar*>(widget); const TQTabBar *tb = static_cast<const TQTabBar*>(widget);
if (tb) { if (tb) {
ceData.tabBarData.tabCount = tb->count(); ceData.tabBarData.tabCount = tb->count();
ceData.tabBarData.currentTabIndex = tb->currentTab(); ceData.tabBarData.currentTabIndex = tb->currentTab();
@ -390,33 +468,38 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.tabBarData.identIndexMap[currentTab->identifier()] = tb->indexOf(currentTab->identifier()); ceData.tabBarData.identIndexMap[currentTab->identifier()] = tb->indexOf(currentTab->identifier());
} }
} }
const TQTabWidget *tw = dynamic_cast<const TQTabWidget*>(tb->parent()); updateObjectTypeListIfNeeded(tb->parent());
if (tw) { if ((const_cast<TQObject*>(tb->parent())->controlElementDataPrivateObject())->isTQTabWidget) {
const TQTabWidget *tw = static_cast<const TQTabWidget*>(tb->parent());
TQWidget *cw; TQWidget *cw;
cw = tw->cornerWidget(TQt::TopLeft); cw = tw->cornerWidget(TQt::TopLeft);
if(cw) { if (cw) {
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].widgetObjectTypes = getObjectTypeListForObject(cw); updateObjectTypeListIfNeeded(cw);
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].widgetObjectTypes = (const_cast<TQWidget*>(cw)->controlElementDataObject())->widgetObjectTypes;
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].geometry = cw->geometry(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].rect = cw->rect(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].rect = cw->rect();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].pos = cw->pos(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopLeft].pos = cw->pos();
} }
cw = tw->cornerWidget(TQt::TopRight); cw = tw->cornerWidget(TQt::TopRight);
if(cw) { if (cw) {
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].widgetObjectTypes = getObjectTypeListForObject(cw); updateObjectTypeListIfNeeded(cw);
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].widgetObjectTypes = (const_cast<TQWidget*>(cw)->controlElementDataObject())->widgetObjectTypes;
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].geometry = cw->geometry(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].rect = cw->rect(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].rect = cw->rect();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].pos = cw->pos(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_TopRight].pos = cw->pos();
} }
cw = tw->cornerWidget(TQt::BottomLeft); cw = tw->cornerWidget(TQt::BottomLeft);
if(cw) { if (cw) {
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].widgetObjectTypes = getObjectTypeListForObject(cw); updateObjectTypeListIfNeeded(cw);
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].widgetObjectTypes = (const_cast<TQWidget*>(cw)->controlElementDataObject())->widgetObjectTypes;
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].geometry = cw->geometry(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].rect = cw->rect(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].rect = cw->rect();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].pos = cw->pos(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomLeft].pos = cw->pos();
} }
cw = tw->cornerWidget(TQt::BottomRight); cw = tw->cornerWidget(TQt::BottomRight);
if(cw) { if (cw) {
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].widgetObjectTypes = getObjectTypeListForObject(cw); updateObjectTypeListIfNeeded(cw);
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].widgetObjectTypes = (const_cast<TQWidget*>(cw)->controlElementDataObject())->widgetObjectTypes;
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].geometry = cw->geometry(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].rect = cw->rect(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].rect = cw->rect();
ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].pos = cw->pos(); ceData.tabBarData.cornerWidgets[TQStyleControlElementTabBarData::CWL_BottomRight].pos = cw->pos();
@ -424,8 +507,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQToolBox_static_string)) { if (ceDataPrivate->isTQToolBox) {
const TQToolBox *tb = dynamic_cast<const TQToolBox*>(widget); const TQToolBox *tb = static_cast<const TQToolBox*>(widget);
if (tb) { if (tb) {
const TQWidget* currentItem = tb->currentItem(); const TQWidget* currentItem = tb->currentItem();
if (currentItem) { if (currentItem) {
@ -433,8 +516,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQProgressBar_static_string)) { if (ceDataPrivate->isTQProgressBar) {
const TQProgressBar *pb = dynamic_cast<const TQProgressBar*>(widget); const TQProgressBar *pb = static_cast<const TQProgressBar*>(widget);
if (pb) { if (pb) {
ceData.currentStep = pb->progress(); ceData.currentStep = pb->progress();
ceData.totalSteps = pb->totalSteps(); ceData.totalSteps = pb->totalSteps();
@ -443,8 +526,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.orientation = pb->orientation(); ceData.orientation = pb->orientation();
} }
} }
if (ceData.widgetObjectTypes.contains(TQHeader_static_string)) { if (ceDataPrivate->isTQHeader) {
const TQHeader *header = dynamic_cast<const TQHeader*>(widget); const TQHeader *header = static_cast<const TQHeader*>(widget);
if (header) { if (header) {
int section = opt.headerSection(); int section = opt.headerSection();
TQIconSet* iconSet = 0; TQIconSet* iconSet = 0;
@ -456,8 +539,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
// Complex Controls // Complex Controls
if (ceData.widgetObjectTypes.contains(TQScrollBar_static_string)) { if (ceDataPrivate->isTQScrollBar) {
const TQScrollBar *sb = dynamic_cast<const TQScrollBar*>(widget); const TQScrollBar *sb = static_cast<const TQScrollBar*>(widget);
if (sb) { if (sb) {
ceData.orientation = sb->orientation(); ceData.orientation = sb->orientation();
ceData.minSteps = sb->minValue(); ceData.minSteps = sb->minValue();
@ -471,8 +554,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQSlider_static_string)) { if (ceDataPrivate->isTQSlider) {
const TQSlider *sl = dynamic_cast<const TQSlider*>(widget); const TQSlider *sl = static_cast<const TQSlider*>(widget);
if (sl) { if (sl) {
ceData.orientation = sl->orientation(); ceData.orientation = sl->orientation();
ceData.minSteps = sl->minValue(); ceData.minSteps = sl->minValue();
@ -488,8 +571,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQDialogButtons_static_string)) { if (ceDataPrivate->isTQDialogButtons) {
const TQDialogButtons *dlgbtns = dynamic_cast<const TQDialogButtons*>(widget); const TQDialogButtons *dlgbtns = static_cast<const TQDialogButtons*>(widget);
if (dlgbtns) { if (dlgbtns) {
ceData.orientation = dlgbtns->orientation(); ceData.orientation = dlgbtns->orientation();
ceData.dlgVisibleButtons = dlgbtns->visibleButtons(); ceData.dlgVisibleButtons = dlgbtns->visibleButtons();
@ -499,11 +582,11 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.dlgVisibleSizeHints[btns[i]] = dlgbtns->sizeHint(btns[i]); ceData.dlgVisibleSizeHints[btns[i]] = dlgbtns->sizeHint(btns[i]);
} }
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQTitleBar_static_string)) { if (ceDataPrivate->isTQTitleBar) {
const TQTitleBar *tb = dynamic_cast<const TQTitleBar*>(widget); const TQTitleBar *tb = static_cast<const TQTitleBar*>(widget);
if (tb) { if (tb) {
ceData.titleBarData.hasWindow = !!(tb->window()); ceData.titleBarData.hasWindow = !!(tb->window());
if (populateReliantFields) { if (populateReliantFields) {
@ -515,8 +598,8 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.titleBarData.visibleText = tb->visibleText(); ceData.titleBarData.visibleText = tb->visibleText();
} }
} }
if (ceData.widgetObjectTypes.contains(TQSpinWidget_static_string)) { if (ceDataPrivate->isTQSpinWidget) {
const TQSpinWidget *sw = dynamic_cast<const TQSpinWidget*>(widget); const TQSpinWidget *sw = static_cast<const TQSpinWidget*>(widget);
if (sw) { if (sw) {
ceData.spinWidgetData.buttonSymbols = sw->buttonSymbols(); ceData.spinWidgetData.buttonSymbols = sw->buttonSymbols();
ceData.spinWidgetData.upRect = sw->upRect(); ceData.spinWidgetData.upRect = sw->upRect();
@ -525,14 +608,15 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.spinWidgetData.downEnabled = sw->isDownEnabled(); ceData.spinWidgetData.downEnabled = sw->isDownEnabled();
} }
} }
if (ceData.widgetObjectTypes.contains(TQListView_static_string)) { if (ceDataPrivate->isTQListView) {
const TQListView *lv = dynamic_cast<const TQListView*>(widget); const TQListView *lv = static_cast<const TQListView*>(widget);
if (lv) { if (lv) {
ceData.listViewData.rootDecorated = lv->rootIsDecorated(); ceData.listViewData.rootDecorated = lv->rootIsDecorated();
ceData.listViewData.itemMargin = lv->itemMargin(); ceData.listViewData.itemMargin = lv->itemMargin();
TQWidget* viewport = lv->viewport(); TQWidget* viewport = lv->viewport();
if (viewport) { if (viewport) {
ceData.viewportData.widgetObjectTypes = getObjectTypeListForObject(viewport); updateObjectTypeListIfNeeded(viewport);
ceData.viewportData.widgetObjectTypes = (const_cast<TQWidget*>(viewport)->controlElementDataObject())->widgetObjectTypes;
ceData.viewportData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields; ceData.viewportData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
const TQPixmap* erasePixmap = viewport->backgroundPixmap(); const TQPixmap* erasePixmap = viewport->backgroundPixmap();
if (erasePixmap) { if (erasePixmap) {
@ -567,29 +651,31 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQComboBox_static_string)) { if (ceDataPrivate->isTQComboBox) {
const TQComboBox *cb = dynamic_cast<const TQComboBox*>(widget); const TQComboBox *cb = static_cast<const TQComboBox*>(widget);
if (cb) { if (cb) {
const TQLineEdit* lineEdit = cb->lineEdit(); const TQLineEdit* lineEdit = cb->lineEdit();
if (lineEdit) { if (lineEdit) {
ceData.comboBoxLineEditFlags = getControlElementFlagsForObject(lineEdit, ceData.widgetObjectTypes, TQStyleOption::Default); ceData.comboBoxLineEditFlags = getControlElementFlagsForObject(lineEdit, TQStyleOption::Default);
} }
const TQListBox* listBox = cb->listBox(); const TQListBox* listBox = cb->listBox();
if (listBox) { if (listBox) {
ceData.comboBoxListBoxFlags = getControlElementFlagsForObject(listBox, ceData.widgetObjectTypes, TQStyleOption::Default); ceData.comboBoxListBoxFlags = getControlElementFlagsForObject(listBox, TQStyleOption::Default);
} }
} }
} }
if (ceData.widgetObjectTypes.contains(TQFrame_static_string)) { if (ceDataPrivate->isTQFrame) {
const TQFrame *frame = dynamic_cast<const TQFrame*>(widget); const TQFrame *frame = static_cast<const TQFrame*>(widget);
if (frame) { if (frame) {
ceData.frameStyle = frame->frameStyle(); ceData.frameStyle = frame->frameStyle();
} }
} }
const TQWidget* parentWidget = widget->parentWidget(); const TQWidget* parentWidget = widget->parentWidget();
if (parentWidget) { if (parentWidget) {
ceData.parentWidgetData.widgetObjectTypes = getObjectTypeListForObject(parentWidget); updateObjectTypeListIfNeeded(parentWidget);
ceData.parentWidgetData.widgetObjectTypes = (const_cast<TQWidget*>(parentWidget)->controlElementDataObject())->widgetObjectTypes;
TQStyleControlElementDataPrivate* parentWidgetCEDataPrivate = const_cast<TQWidget*>(parentWidget)->controlElementDataPrivateObject();
ceData.parentWidgetData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields; ceData.parentWidgetData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
const TQPixmap* erasePixmap = parentWidget->backgroundPixmap(); const TQPixmap* erasePixmap = parentWidget->backgroundPixmap();
if (erasePixmap) { if (erasePixmap) {
@ -621,9 +707,9 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.parentWidgetData.font = parentWidget->font(); ceData.parentWidgetData.font = parentWidget->font();
ceData.parentWidgetData.name = parentWidget->name(); ceData.parentWidgetData.name = parentWidget->name();
ceData.parentWidgetData.caption = parentWidget->caption(); ceData.parentWidgetData.caption = parentWidget->caption();
const TQDockWindow * dw = dynamic_cast<const TQDockWindow*>(parentWidget); if (parentWidgetCEDataPrivate->isTQDockWindow) {
if (dw) { const TQDockWindow * dw = static_cast<const TQDockWindow*>(parentWidget);
if (dw->area()) { if (dw->area()) {
ceData.dwData.hasDockArea = true; ceData.dwData.hasDockArea = true;
ceData.dwData.areaOrientation = dw->area()->orientation(); ceData.dwData.areaOrientation = dw->area()->orientation();
@ -633,15 +719,17 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
ceData.dwData.closeEnabled = dw->isCloseEnabled(); ceData.dwData.closeEnabled = dw->isCloseEnabled();
} }
const TQToolBar * toolbar = dynamic_cast<const TQToolBar*>(parentWidget); if (parentWidgetCEDataPrivate->isTQToolBar) {
if (toolbar) { const TQToolBar * toolbar = static_cast<const TQToolBar*>(parentWidget);
ceData.toolBarData.orientation = toolbar->orientation(); ceData.toolBarData.orientation = toolbar->orientation();
} }
ceData.parentWidgetFlags = getControlElementFlagsForObject(parentWidget, ceData.parentWidgetData.widgetObjectTypes, TQStyleOption::Default, populateReliantFields); ceData.parentWidgetFlags = getControlElementFlagsForObject(parentWidget, TQStyleOption::Default, populateReliantFields);
} }
const TQWidget* topLevelWidget = widget->topLevelWidget(); const TQWidget* topLevelWidget = widget->topLevelWidget();
if (topLevelWidget) { if (topLevelWidget) {
ceData.topLevelWidgetData.widgetObjectTypes = getObjectTypeListForObject(topLevelWidget); updateObjectTypeListIfNeeded(topLevelWidget);
ceData.topLevelWidgetData.widgetObjectTypes = (const_cast<TQWidget*>(topLevelWidget)->controlElementDataObject())->widgetObjectTypes;
TQStyleControlElementDataPrivate* topLevelWidgetCEDataPrivate = const_cast<TQWidget*>(topLevelWidget)->controlElementDataPrivateObject();
ceData.topLevelWidgetData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields; ceData.topLevelWidgetData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
const TQPixmap* erasePixmap = topLevelWidget->backgroundPixmap(); const TQPixmap* erasePixmap = topLevelWidget->backgroundPixmap();
if (erasePixmap) { if (erasePixmap) {
@ -673,9 +761,9 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.topLevelWidgetData.font = topLevelWidget->font(); ceData.topLevelWidgetData.font = topLevelWidget->font();
ceData.topLevelWidgetData.name = topLevelWidget->name(); ceData.topLevelWidgetData.name = topLevelWidget->name();
ceData.topLevelWidgetData.caption = topLevelWidget->caption(); ceData.topLevelWidgetData.caption = topLevelWidget->caption();
const TQDockWindow * dw = dynamic_cast<const TQDockWindow*>(topLevelWidget); if (topLevelWidgetCEDataPrivate->isTQDockWindow) {
if (dw) { const TQDockWindow * dw = static_cast<const TQDockWindow*>(topLevelWidget);
if (dw->area()) { if (dw->area()) {
ceData.dwData.hasDockArea = true; ceData.dwData.hasDockArea = true;
ceData.dwData.areaOrientation = dw->area()->orientation(); ceData.dwData.areaOrientation = dw->area()->orientation();
@ -685,13 +773,13 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
} }
ceData.dwData.closeEnabled = dw->isCloseEnabled(); ceData.dwData.closeEnabled = dw->isCloseEnabled();
} }
const TQToolBar * toolbar = dynamic_cast<const TQToolBar*>(topLevelWidget); if (topLevelWidgetCEDataPrivate->isTQToolBar) {
if (toolbar) { const TQToolBar * toolbar = static_cast<const TQToolBar*>(topLevelWidget);
ceData.toolBarData.orientation = toolbar->orientation(); ceData.toolBarData.orientation = toolbar->orientation();
} }
ceData.topLevelWidgetFlags = getControlElementFlagsForObject(topLevelWidget, ceData.topLevelWidgetData.widgetObjectTypes, TQStyleOption::Default, populateReliantFields); ceData.topLevelWidgetFlags = getControlElementFlagsForObject(topLevelWidget, TQStyleOption::Default, populateReliantFields);
} }
TQCheckListItem *item = opt.checkListItem(); TQCheckListItem *item = opt.checkListItem();
if (item) { if (item) {
ceData.checkListItemData.dataValid = true; ceData.checkListItemData.dataValid = true;
@ -703,16 +791,24 @@ TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* w
ceData.checkListItemData.dataValid = false; ceData.checkListItemData.dataValid = false;
} }
} }
}
return ceData; return ceData;
}
else {
if (!TQStyleControlElementData_null) {
TQStyleControlElementData_null = new TQStyleControlElementData();
}
TQStyleControlElementData &ceData = *TQStyleControlElementData_null;
return ceData;
}
} }
TQStyleControlElementData populateControlElementDataFromApplication(const TQApplication* app, const TQStyleOption&, bool) { const TQStyleControlElementData &populateControlElementDataFromApplication(const TQApplication* app, const TQStyleOption&, bool) {
TQStyleControlElementData ceData; TQStyleControlElementData &ceData = *(const_cast<TQApplication*>(app)->controlElementDataObject());
if (app) { if (app) {
ceData.widgetObjectTypes = getObjectTypeListForObject(app); updateObjectTypeListIfNeeded(app);
ceData.widgetObjectTypes = (const_cast<TQApplication*>(app)->controlElementDataObject())->widgetObjectTypes;
ceData.palette = app->palette(); ceData.palette = app->palette();
ceData.font = app->font(); ceData.font = app->font();
} }
@ -1179,7 +1275,7 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
activePainter = 0; activePainter = 0;
} }
void qt_style_erase_region(TQPainter* p, const TQRegion& region, TQStyleControlElementData ceData) { void qt_style_erase_region(TQPainter* p, const TQRegion& region, const TQStyleControlElementData &ceData) {
TQRegion reg = region; TQRegion reg = region;
TQPoint offset = ceData.bgOffset; TQPoint offset = ceData.bgOffset;
@ -2797,7 +2893,7 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQStyleControlElementData &c
if ( ceData.wflags & WStyle_Tool ) { if ( ceData.wflags & WStyle_Tool ) {
ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 16 ); ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 16 );
#ifndef QT_NO_MAINWINDOW #ifndef QT_NO_MAINWINDOW
} else if ( ceData.widgetObjectTypes.contains(TQDockWindow_static_string) ) { } else if ( ceData.widgetObjectTypes.containsYesNo(TQDockWindow_static_string) ) {
ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 13 ); ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 13 );
#endif #endif
} else { } else {
@ -2945,7 +3041,7 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQStyleControlElementData &c
#ifndef QT_NO_TABBAR #ifndef QT_NO_TABBAR
case PM_TabBarTabVSpace: case PM_TabBarTabVSpace:
{ {
if ( ceData.widgetObjectTypes.contains(TQTabBar_static_string) && ( ceData.tabBarData.shape == TQTabBar::RoundedAbove || if ( ceData.widgetObjectTypes.containsYesNo(TQTabBar_static_string) && ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ||
ceData.tabBarData.shape == TQTabBar::RoundedBelow ) ) ceData.tabBarData.shape == TQTabBar::RoundedBelow ) )
ret = 10; ret = 10;
else else

@ -250,6 +250,7 @@ public:
NodePtr find( NodePtr start, const T& x ) const; NodePtr find( NodePtr start, const T& x ) const;
int findIndex( NodePtr start, const T& x ) const; int findIndex( NodePtr start, const T& x ) const;
uint contains( const T& x ) const; uint contains( const T& x ) const;
bool containsYesNo( const T& x ) const;
uint remove( const T& x ); uint remove( const T& x );
NodePtr at( size_type i ) const; NodePtr at( size_type i ) const;
void clear(); void clear();
@ -354,6 +355,19 @@ Q_INLINE_TEMPLATES uint TQValueListPrivate<T>::contains( const T& x ) const
return result; return result;
} }
template <class T>
Q_INLINE_TEMPLATES bool TQValueListPrivate<T>::containsYesNo( const T& x ) const
{
Iterator first = Iterator( node->next );
Iterator last = Iterator( node );
while( first != last) {
if ( *first == x )
return true;
++first;
}
return false;
}
template <class T> template <class T>
Q_INLINE_TEMPLATES uint TQValueListPrivate<T>::remove( const T& _x ) Q_INLINE_TEMPLATES uint TQValueListPrivate<T>::remove( const T& _x )
{ {
@ -547,6 +561,7 @@ public:
const_iterator find ( const_iterator it, const T& x ) const { return const_iterator( sh->find( it.node, x ) ); } const_iterator find ( const_iterator it, const T& x ) const { return const_iterator( sh->find( it.node, x ) ); }
int findIndex( const T& x ) const { return sh->findIndex( sh->node->next, x) ; } int findIndex( const T& x ) const { return sh->findIndex( sh->node->next, x) ; }
size_type contains( const T& x ) const { return sh->contains( x ); } size_type contains( const T& x ) const { return sh->contains( x ); }
bool containsYesNo( const T& x ) const { return sh->containsYesNo( x ); }
size_type count() const { return sh->nodes; } size_type count() const { return sh->nodes; }

@ -204,13 +204,15 @@ static int dock_strut( TQDockWindow *w, TQt::Orientation o )
{ {
if ( o != TQt::Horizontal ) { if ( o != TQt::Horizontal ) {
int wid; int wid;
if ( ( wid = w->fixedExtent().width() ) != -1 ) if ( ( wid = w->fixedExtent().width() ) != -1 ) {
return TQMAX( wid, TQMAX( w->minimumSize().width(), w->minimumSizeHint().width() ) ); return TQMAX( wid, TQMAX( w->minimumSize().width(), w->minimumSizeHint().width() ) );
}
return TQMAX( w->sizeHint().width(), TQMAX( w->minimumSize().width(), w->minimumSizeHint().width() ) ); return TQMAX( w->sizeHint().width(), TQMAX( w->minimumSize().width(), w->minimumSizeHint().width() ) );
} else { } else {
int hei; int hei;
if ( ( hei = w->fixedExtent().height() ) != -1 ) if ( ( hei = w->fixedExtent().height() ) != -1 ) {
return TQMAX( hei, TQMAX( w->minimumSizeHint().height(), w->minimumSize().height() ) ); return TQMAX( hei, TQMAX( w->minimumSizeHint().height(), w->minimumSize().height() ) );
}
return TQMAX( w->sizeHint().height(), TQMAX( w->minimumSizeHint().height(), w->minimumSize().height() ) ); return TQMAX( w->sizeHint().height(), TQMAX( w->minimumSizeHint().height(), w->minimumSize().height() ) );
} }
} }

@ -429,8 +429,10 @@ void TQProgressBar::drawContents( TQPainter *p )
TQWMatrix oldMatrix = buffer.painter()->worldMatrix(); TQWMatrix oldMatrix = buffer.painter()->worldMatrix();
TQStyleControlElementData ceData = populateControlElementDataFromWidget(this, TQStyleOption()); const TQStyleControlElementData &ceData = populateControlElementDataFromWidget(this, TQStyleOption());
TQStyle::ControlElementFlags elementFlags = getControlElementFlagsForObject(this, ceData.widgetObjectTypes, TQStyleOption()); TQStyle::ControlElementFlags elementFlags = getControlElementFlagsForObject(this, TQStyleOption());
TQRect ceDataRectOrig = ceData.rect;
// Draw contents // Draw contents
if (m_orientation == TQt::Vertical) { if (m_orientation == TQt::Vertical) {
@ -447,7 +449,7 @@ void TQProgressBar::drawContents( TQPainter *p )
buffer.painter()->setWorldMatrix(m, TRUE); buffer.painter()->setWorldMatrix(m, TRUE);
ceData.rect = TQRect(ceData.rect.y(), ceData.rect.x(), ceData.rect.height(), ceData.rect.width()); const_cast<TQStyleControlElementData&>(ceData).rect = TQRect(ceData.rect.y(), ceData.rect.x(), ceData.rect.height(), ceData.rect.width());
} }
style().drawControl(TQStyle::CE_ProgressBarContents, buffer.painter(), ceData, elementFlags, style().drawControl(TQStyle::CE_ProgressBarContents, buffer.painter(), ceData, elementFlags,
@ -461,6 +463,8 @@ void TQProgressBar::drawContents( TQPainter *p )
TQStyle::visualRect(style().subRect(TQStyle::SR_ProgressBarLabel, this), this ), TQStyle::visualRect(style().subRect(TQStyle::SR_ProgressBarLabel, this), this ),
colorGroup(), flags); colorGroup(), flags);
} }
const_cast<TQStyleControlElementData&>(ceData).rect = ceDataRectOrig;
} }
#endif #endif

Loading…
Cancel
Save