diff options
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/ntqstyle.h | 71 | ||||
-rw-r--r-- | src/kernel/qapplication.cpp | 37 | ||||
-rw-r--r-- | src/kernel/qapplication_x11.cpp | 4 | ||||
-rw-r--r-- | src/kernel/qstyle.cpp | 35 |
4 files changed, 117 insertions, 30 deletions
diff --git a/src/kernel/ntqstyle.h b/src/kernel/ntqstyle.h index 75a79c79a..a045e21eb 100644 --- a/src/kernel/ntqstyle.h +++ b/src/kernel/ntqstyle.h @@ -63,26 +63,26 @@ class TQStyleOption { public: enum StyleOptionDefault { Default }; - TQStyleOption(StyleOptionDefault=Default) : def(TRUE), tb(NULL), cli(NULL) {} + TQStyleOption(StyleOptionDefault=Default) : def(TRUE), tb(NULL), cli(NULL), tbh(NULL) {} // Note: we don't use default arguments since that is unnecessary // initialization. TQStyleOption(int in1) : - def(FALSE), tb(NULL), i1(in1), cli(NULL) {} + def(FALSE), tb(NULL), i1(in1), cli(NULL), tbh(NULL) {} TQStyleOption(int in1, int in2) : - def(FALSE), tb(NULL), i1(in1), i2(in2), cli(NULL) {} + def(FALSE), tb(NULL), i1(in1), i2(in2), cli(NULL), tbh(NULL) {} TQStyleOption(int in1, int in2, int in3, int in4) : - def(FALSE), tb(NULL), i1(in1), i2(in2), i3(in3), i4(in4), cli(NULL) {} - TQStyleOption(TQMenuItem* m) : def(FALSE), mi(m), tb(NULL), cli(NULL) {} - TQStyleOption(TQMenuItem* m, int in1) : def(FALSE), mi(m), tb(NULL), i1(in1), cli(NULL) {} - TQStyleOption(TQMenuItem* m, int in1, int in2) : def(FALSE), mi(m), tb(NULL), i1(in1), i2(in2), cli(NULL) {} - TQStyleOption(const TQColor& c) : def(FALSE), tb(NULL), cl(&c), cli(NULL) {} - TQStyleOption(TQTab* t) : def(FALSE), tb(t), cli(NULL) {} - TQStyleOption(TQListViewItem* i) : def(FALSE), tb(NULL), li(i), cli(NULL) {} - TQStyleOption(TQCheckListItem* i) : def(FALSE), tb(NULL), cli(i) {} - TQStyleOption(TQt::ArrowType a) : def(FALSE), tb(NULL), i1((int)a), cli(NULL) {} - TQStyleOption(const TQRect& r) : def(FALSE), tb(NULL), i1(r.x()), i2(r.y()), i3(r.width()), i4(r.height()), cli(NULL) {} - TQStyleOption(TQWidget *w) : def(FALSE), tb(NULL), cli(NULL), p1((void*)w) {} + def(FALSE), tb(NULL), i1(in1), i2(in2), i3(in3), i4(in4), cli(NULL), tbh(NULL) {} + TQStyleOption(TQMenuItem* m) : def(FALSE), mi(m), tb(NULL), cli(NULL), tbh(NULL) {} + TQStyleOption(TQMenuItem* m, int in1) : def(FALSE), mi(m), tb(NULL), i1(in1), cli(NULL), tbh(NULL) {} + TQStyleOption(TQMenuItem* m, int in1, int in2) : def(FALSE), mi(m), tb(NULL), i1(in1), i2(in2), cli(NULL), tbh(NULL) {} + TQStyleOption(const TQColor& c) : def(FALSE), tb(NULL), cl(&c), cli(NULL), tbh(NULL) {} + TQStyleOption(TQTab* t) : def(FALSE), tb(t), cli(NULL), tbh(NULL) {} + TQStyleOption(TQListViewItem* i) : def(FALSE), tb(NULL), li(i), cli(NULL), tbh(NULL) {} + TQStyleOption(TQCheckListItem* i) : def(FALSE), tb(NULL), cli(i), tbh(NULL) {} + TQStyleOption(TQt::ArrowType a) : def(FALSE), tb(NULL), i1((int)a), cli(NULL), tbh(NULL) {} + TQStyleOption(const TQRect& r) : def(FALSE), tb(NULL), i1(r.x()), i2(r.y()), i3(r.width()), i4(r.height()), cli(NULL), tbh(NULL) {} + TQStyleOption(TQWidget *w) : def(FALSE), tb(NULL), cli(NULL), p1((void*)w), tbh(NULL) {} bool isDefault() const { return def; } @@ -109,6 +109,9 @@ public: TQRect rect() const { return TQRect( i1, i2, i3, i4 ); } TQWidget* widget() const { return (TQWidget*)p1; } + TQStyleOption(TQTab* t, TQTab* h) : def(FALSE), tb(t), cli(NULL), tbh(h) {} + TQTab* hoverTab() const { return tbh; } + private: // NOTE: none of these components have constructors. bool def; @@ -121,6 +124,7 @@ private: int i5, i6; // reserved TQCheckListItem* cli; void *p1, *p2, *p3, *p4; // reserved + TQTab* tbh; // (padded to 64 bytes on some architectures) }; @@ -129,6 +133,8 @@ class TQStyleHintReturn; // not defined yet typedef TQMap<TQ_UINT32, TQSize> DialogButtonSizeMap; typedef TQMap<TQ_INT32, TQ_INT32> TabIdentifierIndexMap; +class TQStyleControlElementGenericWidgetData; + class TQStyleControlElementPopupMenuData { public: // @@ -142,13 +148,6 @@ class TQStyleControlElementCheckListItemData { int height; }; -class TQStyleControlElementTabBarData { - public: - int tabCount; - TQTabBar::Shape shape; - TabIdentifierIndexMap identIndexMap; -}; - class TQStyleControlElementListViewData { public: bool rootDecorated; @@ -200,7 +199,23 @@ class TQStyleControlElementGenericWidgetData { TQFont font; }; -class TQStyleControlElementData { +class TQStyleControlElementTabBarData { + public: + int tabCount; + int currentTabIndex; + TQTabBar::Shape shape; + TabIdentifierIndexMap identIndexMap; + TQStyleControlElementGenericWidgetData cornerWidgets[4]; + + enum CornerWidgetLocation { + CWL_TopLeft = 0, + CWL_TopRight = 1, + CWL_BottomLeft = 2, + CWL_BottomRight = 3 + }; +}; + +class Q_EXPORT TQStyleControlElementData { public: TQStringList widgetObjectTypes; bool allDataPopulated; @@ -251,6 +266,10 @@ class TQStyleControlElementData { TQ_UINT32 comboBoxLineEditFlags; TQ_UINT32 frameStyle; TQRect sliderRect; + TQPainter* activePainter; + + public: + TQStyleControlElementData(); }; class Q_EXPORT TQStyleWidgetActionRequestData { @@ -260,6 +279,7 @@ class Q_EXPORT TQStyleWidgetActionRequestData { TQStyleWidgetActionRequestData(TQPalette palette, bool informWidgets = FALSE, const char* className = 0); TQStyleWidgetActionRequestData(TQFont font, bool informWidgets = FALSE, const char* className = 0); TQStyleWidgetActionRequestData(TQRect rect); + TQStyleWidgetActionRequestData(TQPaintEvent* paintEvent); ~TQStyleWidgetActionRequestData(); public: bool bool1; @@ -271,6 +291,7 @@ class Q_EXPORT TQStyleWidgetActionRequestData { TQRect rect; const char * cstr; TQString string; + TQPaintEvent * paintEvent; }; typedef TQStyleWidgetActionRequestData TQStyleApplicationActionRequestData; @@ -309,6 +330,7 @@ public: CEF_IsActiveWindow = 0x00200000, CEF_IsTopLevel = 0x00400000, CEF_IsVisible = 0x00800000, + CEF_HasMouse = 0x01000000 }; // New TQStyle API - most of these should probably be pure virtual @@ -1094,7 +1116,10 @@ public: WAR_SetBackgroundMode, WAR_SetBackgroundOrigin, WAR_SetFont, - WAR_RepaintAllAccelerators + WAR_RepaintAllAccelerators, + WAR_SetDefault, + WAR_UnSetDefault, + WAR_SendPaintEvent }; typedef bool (*WidgetActionRequestHook)(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, WidgetActionRequest request, TQStyleWidgetActionRequestData requestData); diff --git a/src/kernel/qapplication.cpp b/src/kernel/qapplication.cpp index 3dc3db748..71b87ffe0 100644 --- a/src/kernel/qapplication.cpp +++ b/src/kernel/qapplication.cpp @@ -2557,6 +2557,21 @@ bool TQApplication::event( TQEvent *e ) return TQObject::event(e); } +#define HOVER_SENSITIVE_WIDGET_SELECT if ( widget->inherits("TQPushButton") \ + || widget->inherits("TQComboBox") \ + || widget->inherits("TQSpinWidget") \ + || widget->inherits("TQCheckBox") \ + || widget->inherits("TQRadioButton") \ + || widget->inherits("TQToolButton") \ + || widget->inherits("TQSlider") \ + || widget->inherits("TQScrollBar") \ + || widget->inherits("TQTabBar") \ + || widget->inherits("TQDockWindowHandle") \ + || widget->inherits("TQSplitterHandle") ) + +#define FOCUS_SENSITIVE_WIDGET_SELECT if ( widget->inherits("TQLineEdit") ) +#define FOCUS_SENSITIVE_PARENT_WIDGET_SELECT if ( widget->parentWidget() && widget->parentWidget()->inherits("TQSpinWidget") ) + /*!\internal Helper function called by notify() @@ -2579,10 +2594,28 @@ bool TQApplication::internalNotify( TQObject *receiver, TQEvent * e) TQWidget *widget = (TQWidget*)receiver; // toggle HasMouse widget state on enter and leave - if ( e->type() == TQEvent::Enter || e->type() == TQEvent::DragEnter ) + if ( e->type() == TQEvent::Enter || e->type() == TQEvent::DragEnter ) { widget->setWState( WState_HasMouse ); - else if ( e->type() == TQEvent::Leave || e->type() == TQEvent::DragLeave ) + HOVER_SENSITIVE_WIDGET_SELECT { + widget->repaint(false); + } + } + else if ( e->type() == TQEvent::Leave || e->type() == TQEvent::DragLeave ) { widget->clearWState( WState_HasMouse ); + HOVER_SENSITIVE_WIDGET_SELECT { + widget->repaint(false); + } + } + + // repaint information entry widgets on focus set/unset + if ( e->type() == TQEvent::FocusIn || e->type() == TQEvent::FocusOut ) { + FOCUS_SENSITIVE_WIDGET_SELECT { + widget->repaint(false); + } + FOCUS_SENSITIVE_PARENT_WIDGET_SELECT { + widget->parentWidget()->repaint(false); + } + } // throw away any mouse-tracking-only mouse events if ( e->type() == TQEvent::MouseMove && diff --git a/src/kernel/qapplication_x11.cpp b/src/kernel/qapplication_x11.cpp index aba4fcd50..e76dd1d72 100644 --- a/src/kernel/qapplication_x11.cpp +++ b/src/kernel/qapplication_x11.cpp @@ -5184,8 +5184,6 @@ bool TQETWidget::translateKeyEventInternal( const XEvent *event, int& count, tqAddPostRoutine( deleteKeyDicts ); } - TQWidget* tlw = topLevelWidget(); - XKeyEvent xkeyevent = event->xkey; // save the modifier state, we will use the keystate uint later by passing @@ -5211,7 +5209,6 @@ bool TQETWidget::translateKeyEventInternal( const XEvent *event, int& count, // Implementation for X11R5 and newer, using XIM int keycode = event->xkey.keycode; - Status status; if ( type == TQEvent::KeyPress ) { bool mb=FALSE; @@ -5295,7 +5292,6 @@ bool TQETWidget::translateKeyEventInternal( const XEvent *event, int& count, // and independent of whether char is signed or not. textDict->replace( keycode, (void*)(long)(256+ascii) ); } - tlw = 0; } else { key = (int)(long)keyDict->find( keycode ); if ( key ) diff --git a/src/kernel/qstyle.cpp b/src/kernel/qstyle.cpp index 7aa144091..ef31c25ca 100644 --- a/src/kernel/qstyle.cpp +++ b/src/kernel/qstyle.cpp @@ -48,6 +48,7 @@ #include "ntqlayout.h" #include "ntqlistview.h" #include "ntqpopupmenu.h" +#include "ntqpushbutton.h" #include "ntqobjectlist.h" #include "ntqwidgetlist.h" @@ -2165,7 +2166,16 @@ bool TQStyle::eventFilter(TQObject *o, TQEvent *e) { TQStyle* handler = m_objectEventSourceToHandlerMap[o]; TQStyleControlElementData ceData = m_objectEventSourceDataToHandlerMap[o]; ControlElementFlags elementFlags = m_objectEventSourceFlagsToHandlerMap[o]; - bool ret = handler->objectEventHandler(ceData, elementFlags, o, e); + bool ret; + TQWidget* w = dynamic_cast<TQWidget*>(o); + if ((w) && (e->type() == TQEvent::Paint)) { + TQPainter p(w); + ceData.activePainter = &p; + ret = handler->objectEventHandler(ceData, elementFlags, o, e); + } + else { + ret = handler->objectEventHandler(ceData, elementFlags, o, e); + } if (ret) { return ret; } @@ -2291,6 +2301,21 @@ bool TQStyle::widgetActionRequest( TQStyleControlElementData ceData, ControlElem } delete list; } + else if (request == WAR_SetDefault) { + TQPushButton *button = dynamic_cast<TQPushButton*>(widget); + if (button) { + button->setDefault(TRUE); + } + } + else if (request == WAR_UnSetDefault) { + TQPushButton *button = dynamic_cast<TQPushButton*>(widget); + if (button) { + button->setDefault(FALSE); + } + } + else if (request == WAR_SendPaintEvent) { + static_cast<TQObject*>(widget)->event(requestData.paintEvent); + } return true; } } @@ -2395,6 +2420,10 @@ TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQRect param) { rect = param; } +TQStyleWidgetActionRequestData::TQStyleWidgetActionRequestData(TQPaintEvent* param) { + paintEvent = param; +} + TQStyleWidgetActionRequestData::~TQStyleWidgetActionRequestData() { // } @@ -2575,4 +2604,8 @@ TQPixmap TQStyle::stylePixmap(StylePixmap sp, const TQWidget *w, const TQStyleOp \obsolete */ +TQStyleControlElementData::TQStyleControlElementData() { + activePainter = 0; +} + #endif // QT_NO_STYLE |