diff --git a/harbour/ChangeLog b/harbour/ChangeLog index fca1da7af7..0239b80a73 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,9 +16,58 @@ The license applies to all entries newer than 2009-04-28. */ +2011-02-26 10:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * contrib/hbqt/qtgui/hbqtgui.ch + * contrib/hbqt/qtgui/hbqt_init.cpp + * contrib/hbqt/qtcore/hbqt_pointer.cpp + * contrib/hbqt/qtcore/hbqt.h + * contrib/hbqt/qtcore/hbqt_hbqevents.cpp + * contrib/hbqt/qtcore/hbqt_misc.prg + * contrib/hbqt/qtcore/hbqt_init.cpp + ! Fixed indentation in recent additions. + + Added new function hbqt_create_objectFromEventType2() which + is supposed to create the object and fill PPTR in C code + (without calling back to .prg) + I didn't make any functional tests so pls do it. + + Added mechanism to register/unregister event types with + object names. + + QTGUI will now register its event types on init. + + Event filter changed to look for registeres event types + and create appropriate object dynamically. + ; TODO: Old code is still there, until the new one gets tested. + Please do tests. + ! Fixed to pull required class wrappers for object types + associated with events. + ; TOFIX: hbqt_create_object()/HBQT_CREATEQTOBJECT() is wrong + because it uses macro expansion to call object instantation, + which means _ALL_ HBQT apps now require to pull and link + every existing QT symbols to work reliably, which is + unacceptable for all apps (except HBIDE which pulls all + these anyway) + We should move to full C++ wrappers to solve this + cleanly. + ; TOFIX: Clean code to never use the unsafe hbqt_create_objectFromEventType(). + ; TOFIX: Just a note: Raw pointers are still used in QLIST f.e., + so even the raw pointer problem is not fully solved yet. + + * contrib/hbqt/qtgui/hbqtgui.hbx + * contrib/hbqt/qtcore/hbqtcore.hbx + * Regenerated automatically. + ; !!! FOR HBQT (AND ALL) DEVELOPERS: Please enable HB_REBUILD_EXTERN=yes !!! + + * contrib/hbtip/sendmail.prg + + Encode .xml attachments in base64. Response to sf.net #3192722 + + Set MIME type for .xml (text/xml) + ; Pls review this. + + * config/postinst.hbs + + Create dynlib symlinks only if the dynlib was actually created + and exists. (different patch from what we've dicussed on the + list, so pls verify it) + 2011-02-25 18:37 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp - ! Fixed: a regression where raw pointer was supplied + ! Fixed: a regression where raw pointer was supplied instead of Harbour object. 2011-02-25 09:15 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) @@ -74,12 +123,12 @@ * contrib/hbide/idethemes.prg + Eliminated: raw pointers available to PRG code totally. - Only a couple of places are left which I will look into - shortly. + Only a couple of places are left which I will look into + shortly. [TOFIX] - INCOMPATIBLE: Now any event fired by the Qt itself, - either via SIGNAL/SLOTS mechanism or QEvent_* constants, - it supplies Harbour object instead of Qt pointer. + INCOMPATIBLE: Now any event fired by the Qt itself, + either via SIGNAL/SLOTS mechanism or QEvent_* constants, + it supplies Harbour object instead of Qt pointer. This is a massive change and hence regression is expected. Please report. diff --git a/harbour/config/postinst.hbs b/harbour/config/postinst.hbs index d976e3e52b..59e75acf39 100644 --- a/harbour/config/postinst.hbs +++ b/harbour/config/postinst.hbs @@ -133,7 +133,8 @@ PROCEDURE Main( ... ) ENDIF IF !( GetEnvC( "HB_PLATFORM" ) $ "win|wce|os2|dos" ) .AND. ; - ! Empty( GetEnvC( "HB_INSTALL_DYN" ) ) + ! Empty( GetEnvC( "HB_INSTALL_DYN" ) ) .AND. ; + hb_FileExists( PathSepToSelf( GetEnvC( "HB_DYNLIB_DIR" ) ) + hb_ps() + GetEnvC( "HB_DYNLIB_PREF" ) + GetEnvC( "HB_DYNLIB_BASE" ) + GetEnvC( "HB_DYNLIB_POST" ) + GetEnvC( "HB_DYNLIB_EXT" ) + GetEnvC( "HB_DYNLIB_PEXT" ) ) ) OutStd( "! Creating dynamic lib symlinks..." + hb_eol() ) diff --git a/harbour/contrib/hbqt/qtcore/hbqt.h b/harbour/contrib/hbqt/qtcore/hbqt.h index 6d8088fc44..9f8e06da2a 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt.h +++ b/harbour/contrib/hbqt/qtcore/hbqt.h @@ -66,6 +66,7 @@ #endif #include +#include #if !( QT_VERSION >= 0x040500 ) # error QT library version 4.5.0 or upper is required for hbqt. @@ -87,6 +88,8 @@ typedef void ( * PHBQT_SLOT_FUNC )( PHB_ITEM * codeblock, void ** arguments, QBy HB_EXTERN_BEGIN +extern HB_EXPORT void hbqt_events_register_createobj( QEvent::Type eventtype, QByteArray szCreateObj ); +extern HB_EXPORT void hbqt_events_unregister_createobj( QEvent::Type eventtype ); extern HB_EXPORT void hbqt_slots_register_callback( QByteArray sig, PHBQT_SLOT_FUNC pCallback ); extern HB_EXPORT void hbqt_slots_unregister_callback( QByteArray sig ); extern HB_EXPORT void * hbqt_gcpointer( int iParam ); @@ -100,6 +103,7 @@ extern HB_EXPORT void hbqt_defineClassEnd( PHB_ITEM s_oClass, PHB_ITEM oClass ); extern HB_EXPORT void * hbqt_getqtptr( void ); extern HB_EXPORT PHB_ITEM hbqt_create_object( void * p, const char * objectList, int iIndex ); extern HB_EXPORT PHB_ITEM hbqt_create_objectFromEventType( void * pEvent, int type ); +extern HB_EXPORT PHB_ITEM hbqt_create_objectFromEventType2( void * pEvent, const char * pszName ); HB_EXTERN_END #define hbqt_par_QString( n ) ( ( QString ) hb_parcx( n ) ) @@ -109,4 +113,3 @@ HB_EXTERN_END #define hbqt_par_char( n ) ( hb_parcx( n ) ) #endif /* __HBQT_H */ - diff --git a/harbour/contrib/hbqt/qtcore/hbqt_hbqevents.cpp b/harbour/contrib/hbqt/qtcore/hbqt_hbqevents.cpp index dd85448198..906be9c279 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_hbqevents.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_hbqevents.cpp @@ -65,6 +65,41 @@ #include #include +/*----------------------------------------------------------------------*/ + +#include + +/*----------------------------------------------------------------------*/ + +static QList s_lstEvent; +static QList s_lstCreateObj; + +void hbqt_events_register_createobj( QEvent::Type eventtype, QByteArray szCreateObj ) +{ + int iIndex = s_lstEvent.indexOf( eventtype ); + + if( iIndex == -1 ) + { + s_lstEvent << eventtype; + s_lstCreateObj << szCreateObj; + } + else + s_lstCreateObj[ eventtype ] = szCreateObj; +} + +void hbqt_events_unregister_createobj( QEvent::Type eventtype ) +{ + int iIndex = s_lstEvent.indexOf( eventtype ); + + if( iIndex > -1 ) + { + s_lstEvent.removeAt( iIndex ); + s_lstCreateObj.removeAt( iIndex ); + } +} + +/*----------------------------------------------------------------------*/ + HBQEvents::HBQEvents( QObject * parent ) : QObject( parent ) { } @@ -170,7 +205,14 @@ bool HBQEvents::eventFilter( QObject * object, QEvent * event ) if( found <= listBlock.size() && hb_vmRequestReenter() ) { - PHB_ITEM pEvent = hbqt_create_objectFromEventType( event, ( int ) eventtype ); + PHB_ITEM pEvent; + + int eventId = s_lstEvent.indexOf( eventtype ); + if( eventId > -1 ) + pEvent = hbqt_create_objectFromEventType2( event, s_lstCreateObj.at( eventId ) ); + else + pEvent = hbqt_create_objectFromEventType( event, ( int ) eventtype ); + ret = hb_itemGetL( hb_vmEvalBlockV( ( PHB_ITEM ) listBlock.at( found - 1 ), 1, pEvent ) ); hb_itemRelease( pEvent ); hb_vmRequestRestore(); diff --git a/harbour/contrib/hbqt/qtcore/hbqt_init.cpp b/harbour/contrib/hbqt/qtcore/hbqt_init.cpp index 50ac26a0c9..2031e9acae 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_init.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_init.cpp @@ -411,4 +411,3 @@ HB_CALL_ON_STARTUP_END( _hbqtcore_init_ ) #endif #endif - diff --git a/harbour/contrib/hbqt/qtcore/hbqt_misc.prg b/harbour/contrib/hbqt/qtcore/hbqt_misc.prg index c8b31ad913..497358cb53 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_misc.prg +++ b/harbour/contrib/hbqt/qtcore/hbqt_misc.prg @@ -53,136 +53,6 @@ #include "hbclass.ch" #include "error.ch" -#define QEvent_None 0 -#define QEvent_Timer 1 -#define QEvent_MouseButtonPress 2 -#define QEvent_MouseButtonRelease 3 -#define QEvent_MouseButtonDblClick 4 -#define QEvent_MouseMove 5 -#define QEvent_KeyPress 6 -#define QEvent_KeyRelease 7 -#define QEvent_FocusIn 8 -#define QEvent_FocusOut 9 -#define QEvent_Enter 10 -#define QEvent_Leave 11 -#define QEvent_Paint 12 -#define QEvent_Move 13 -#define QEvent_Resize 14 -#define QEvent_Show 17 -#define QEvent_Hide 18 -#define QEvent_Close 19 -#define QEvent_ParentChange 21 -#define QEvent_WindowActivate 24 -#define QEvent_WindowDeactivate 25 -#define QEvent_ShowToParent 26 -#define QEvent_HideToParent 27 -#define QEvent_Wheel 31 -#define QEvent_WindowTitleChange 33 -#define QEvent_WindowIconChange 34 -#define QEvent_ApplicationWindowIconChange 35 -#define QEvent_ApplicationFontChange 36 -#define QEvent_ApplicationLayoutDirectionChange 37 -#define QEvent_ApplicationPaletteChange 38 -#define QEvent_PaletteChange 39 -#define QEvent_Clipboard 40 -#define QEvent_MetaCall 43 -#define QEvent_SockAct 50 -#define QEvent_ShortcutOverride 51 -#define QEvent_DeferredDelete 52 -#define QEvent_DragEnter 60 -#define QEvent_DragLeave 62 -#define QEvent_DragMove 61 -#define QEvent_Drop 63 -#define QEvent_ChildAdded 68 -#define QEvent_ChildPolished 69 -#define QEvent_ChildInserted 70 -#define QEvent_ChildRemoved 71 -#define QEvent_PolishRequest 74 -#define QEvent_Polish 75 -#define QEvent_LayoutRequest 76 -#define QEvent_UpdateRequest 77 -#define QEvent_UpdateLater 78 -#define QEvent_ContextMenu 82 -#define QEvent_InputMethod 83 -#define QEvent_AccessibilityPrepare 86 -#define QEvent_TabletMove 87 -#define QEvent_LocaleChange 88 -#define QEvent_LanguageChange 89 -#define QEvent_LayoutDirectionChange 90 -#define QEvent_TabletPress 92 -#define QEvent_TabletRelease 93 -#define QEvent_OkRequest 94 -#define QEvent_IconDrag 96 -#define QEvent_FontChange 97 -#define QEvent_EnabledChange 98 -#define QEvent_ActivationChange 99 -#define QEvent_StyleChange 100 -#define QEvent_IconTextChange 101 -#define QEvent_ModifiedChange 102 -#define QEvent_WindowBlocked 103 -#define QEvent_WindowUnblocked 104 -#define QEvent_WindowStateChange 105 -#define QEvent_MouseTrackingChange 109 -#define QEvent_ToolTip 110 -#define QEvent_WhatsThis 111 -#define QEvent_StatusTip 112 -#define QEvent_ActionChanged 113 -#define QEvent_ActionAdded 114 -#define QEvent_ActionRemoved 115 -#define QEvent_FileOpen 116 -#define QEvent_Shortcut 117 -#define QEvent_WhatsThisClicked 118 -#define QEvent_AccessibilityHelp 119 -#define QEvent_ToolBarChange 120 -#define QEvent_ApplicationActivate 121 -#define QEvent_ApplicationActivated 121 -#define QEvent_ApplicationDeactivate 122 -#define QEvent_QueryWhatsThis 123 -#define QEvent_EnterWhatsThisMode 124 -#define QEvent_LeaveWhatsThisMode 125 -#define QEvent_ZOrderChange 126 -#define QEvent_HoverEnter 127 -#define QEvent_HoverLeave 128 -#define QEvent_HoverMove 129 -#define QEvent_AccessibilityDescription 130 -#define QEvent_ParentAboutToChange 131 -#define QEvent_WinEventAct 132 -#define QEvent_EnterEditFocus 150 -#define QEvent_LeaveEditFocus 151 -#define QEvent_MenubarUpdated 153 -#define QEvent_GraphicsSceneMouseMove 155 -#define QEvent_GraphicsSceneMousePress 156 -#define QEvent_GraphicsSceneMouseRelease 157 -#define QEvent_GraphicsSceneMouseDoubleClick 158 -#define QEvent_GraphicsSceneContextMenu 159 -#define QEvent_GraphicsSceneHoverEnter 160 -#define QEvent_GraphicsSceneHoverMove 161 -#define QEvent_GraphicsSceneHoverLeave 162 -#define QEvent_GraphicsSceneHelp 163 -#define QEvent_GraphicsSceneDragEnter 164 -#define QEvent_GraphicsSceneDragMove 165 -#define QEvent_GraphicsSceneDragLeave 166 -#define QEvent_GraphicsSceneDrop 167 -#define QEvent_GraphicsSceneWheel 168 -#define QEvent_KeyboardLayoutChange 169 -#define QEvent_DynamicPropertyChange 170 -#define QEvent_TabletEnterProximity 171 -#define QEvent_TabletLeaveProximity 172 -#define QEvent_NonClientAreaMouseMove 173 -#define QEvent_NonClientAreaMouseButtonPress 174 -#define QEvent_NonClientAreaMouseButtonRelease 175 -#define QEvent_NonClientAreaMouseButtonDblClick 176 -#define QEvent_MacSizeChange 177 -#define QEvent_ContentsRectChange 178 -#define QEvent_GraphicsSceneResize 181 -#define QEvent_GraphicsSceneMove 182 -#define QEvent_CursorChange 183 -#define QEvent_ToolTipChange 184 -#define QEvent_GrabMouse 186 -#define QEvent_UngrabMouse 187 -#define QEvent_GrabKeyboard 188 -#define QEvent_UngrabKeyboard 189 - /*----------------------------------------------------------------------*/ CREATE CLASS HbQtObjectHandler @@ -341,17 +211,17 @@ FUNCTION hbqt_createQtObject( cObjectList, nIndex, pPtr ) LOCAL cObject, qObj, aObjs IF nIndex > 0 - aObjs := hb_aTokens( cObjectList, "$" ) - IF nIndex <= len( aObjs ) + aObjs := hb_ATokens( cObjectList, "$" ) + IF nIndex <= Len( aObjs ) cObject := aObjs[ nIndex ] ENDIF ELSE cObject := cObjectList ENDIF - IF !empty( cObject ) - cObject := strtran( cObject, "*" ) - qObj := eval( &( "{|| HB_" + cObject + "() }" ) ) + IF ! Empty( cObject ) + /* TODO: Change macro expansion to more efficient solution */ + qObj := Eval( hb_MacroBlock( "HB_" + StrTran( cObject, "*" ) + "()" ) ) qObj:pPtr := pPtr ENDIF @@ -359,151 +229,274 @@ FUNCTION hbqt_createQtObject( cObjectList, nIndex, pPtr ) /*----------------------------------------------------------------------*/ -FUNCTION hbqt_createQtObjectByType( nType, pPtr ) - LOCAL qObj, cObj +/* TOFIX: QTCORE should _NEVER_ refer to any names or parts of higher level + QT components (f.e. QTGUI). */ +#define QEvent_None 0 +#define QEvent_Timer 1 +#define QEvent_MouseButtonPress 2 +#define QEvent_MouseButtonRelease 3 +#define QEvent_MouseButtonDblClick 4 +#define QEvent_MouseMove 5 +#define QEvent_KeyPress 6 +#define QEvent_KeyRelease 7 +#define QEvent_FocusIn 8 +#define QEvent_FocusOut 9 +#define QEvent_Enter 10 +#define QEvent_Leave 11 +#define QEvent_Paint 12 +#define QEvent_Move 13 +#define QEvent_Resize 14 +#define QEvent_Show 17 +#define QEvent_Hide 18 +#define QEvent_Close 19 +#define QEvent_ParentChange 21 +#define QEvent_WindowActivate 24 +#define QEvent_WindowDeactivate 25 +#define QEvent_ShowToParent 26 +#define QEvent_HideToParent 27 +#define QEvent_Wheel 31 +#define QEvent_WindowTitleChange 33 +#define QEvent_WindowIconChange 34 +#define QEvent_ApplicationWindowIconChange 35 +#define QEvent_ApplicationFontChange 36 +#define QEvent_ApplicationLayoutDirectionChange 37 +#define QEvent_ApplicationPaletteChange 38 +#define QEvent_PaletteChange 39 +#define QEvent_Clipboard 40 +#define QEvent_MetaCall 43 +#define QEvent_SockAct 50 +#define QEvent_ShortcutOverride 51 +#define QEvent_DeferredDelete 52 +#define QEvent_DragEnter 60 +#define QEvent_DragLeave 62 +#define QEvent_DragMove 61 +#define QEvent_Drop 63 +#define QEvent_ChildAdded 68 +#define QEvent_ChildPolished 69 +#define QEvent_ChildInserted 70 +#define QEvent_ChildRemoved 71 +#define QEvent_PolishRequest 74 +#define QEvent_Polish 75 +#define QEvent_LayoutRequest 76 +#define QEvent_UpdateRequest 77 +#define QEvent_UpdateLater 78 +#define QEvent_ContextMenu 82 +#define QEvent_InputMethod 83 +#define QEvent_AccessibilityPrepare 86 +#define QEvent_TabletMove 87 +#define QEvent_LocaleChange 88 +#define QEvent_LanguageChange 89 +#define QEvent_LayoutDirectionChange 90 +#define QEvent_TabletPress 92 +#define QEvent_TabletRelease 93 +#define QEvent_OkRequest 94 +#define QEvent_IconDrag 96 +#define QEvent_FontChange 97 +#define QEvent_EnabledChange 98 +#define QEvent_ActivationChange 99 +#define QEvent_StyleChange 100 +#define QEvent_IconTextChange 101 +#define QEvent_ModifiedChange 102 +#define QEvent_WindowBlocked 103 +#define QEvent_WindowUnblocked 104 +#define QEvent_WindowStateChange 105 +#define QEvent_MouseTrackingChange 109 +#define QEvent_ToolTip 110 +#define QEvent_WhatsThis 111 +#define QEvent_StatusTip 112 +#define QEvent_ActionChanged 113 +#define QEvent_ActionAdded 114 +#define QEvent_ActionRemoved 115 +#define QEvent_FileOpen 116 +#define QEvent_Shortcut 117 +#define QEvent_WhatsThisClicked 118 +#define QEvent_AccessibilityHelp 119 +#define QEvent_ToolBarChange 120 +#define QEvent_ApplicationActivate 121 +#define QEvent_ApplicationActivated 121 +#define QEvent_ApplicationDeactivate 122 +#define QEvent_QueryWhatsThis 123 +#define QEvent_EnterWhatsThisMode 124 +#define QEvent_LeaveWhatsThisMode 125 +#define QEvent_ZOrderChange 126 +#define QEvent_HoverEnter 127 +#define QEvent_HoverLeave 128 +#define QEvent_HoverMove 129 +#define QEvent_AccessibilityDescription 130 +#define QEvent_ParentAboutToChange 131 +#define QEvent_WinEventAct 132 +#define QEvent_EnterEditFocus 150 +#define QEvent_LeaveEditFocus 151 +#define QEvent_MenubarUpdated 153 +#define QEvent_GraphicsSceneMouseMove 155 +#define QEvent_GraphicsSceneMousePress 156 +#define QEvent_GraphicsSceneMouseRelease 157 +#define QEvent_GraphicsSceneMouseDoubleClick 158 +#define QEvent_GraphicsSceneContextMenu 159 +#define QEvent_GraphicsSceneHoverEnter 160 +#define QEvent_GraphicsSceneHoverMove 161 +#define QEvent_GraphicsSceneHoverLeave 162 +#define QEvent_GraphicsSceneHelp 163 +#define QEvent_GraphicsSceneDragEnter 164 +#define QEvent_GraphicsSceneDragMove 165 +#define QEvent_GraphicsSceneDragLeave 166 +#define QEvent_GraphicsSceneDrop 167 +#define QEvent_GraphicsSceneWheel 168 +#define QEvent_KeyboardLayoutChange 169 +#define QEvent_DynamicPropertyChange 170 +#define QEvent_TabletEnterProximity 171 +#define QEvent_TabletLeaveProximity 172 +#define QEvent_NonClientAreaMouseMove 173 +#define QEvent_NonClientAreaMouseButtonPress 174 +#define QEvent_NonClientAreaMouseButtonRelease 175 +#define QEvent_NonClientAreaMouseButtonDblClick 176 +#define QEvent_MacSizeChange 177 +#define QEvent_ContentsRectChange 178 +#define QEvent_GraphicsSceneResize 181 +#define QEvent_GraphicsSceneMove 182 +#define QEvent_CursorChange 183 +#define QEvent_ToolTipChange 184 +#define QEvent_GrabMouse 186 +#define QEvent_UngrabMouse 187 +#define QEvent_GrabKeyboard 188 +#define QEvent_UngrabKeyboard 189 +FUNCTION hbqtgui_createQtObjectByType( nType, pPtr ) STATIC s_b_ := { ; - QEvent_Timer => "QEvent" ,; - QEvent_MouseButtonPress => "QMouseEvent" ,; - QEvent_MouseButtonRelease => "QMouseEvent" ,; - QEvent_MouseButtonDblClick => "QMouseEvent" ,; - QEvent_MouseMove => "QMouseEvent" ,; - QEvent_KeyPress => "QKeyEvent" ,; - QEvent_KeyRelease => "QKeyEvent" ,; - QEvent_FocusIn => "QFocusEvent" ,; - QEvent_FocusOut => "QFocusEvent" ,; - QEvent_Enter => "QMouseEvent" ,; - QEvent_Leave => "QMouseEvent" ,; - QEvent_Paint => "QPaintEvent" ,; - QEvent_Move => "QMoveEvent" ,; - QEvent_Resize => "QResizeEvent",; - QEvent_Show => "QShowEvent" ,; - QEvent_Hide => "QHideEvent" ,; - QEvent_Close => "QEvent" ,; - QEvent_ParentChange => "QEvent" ,; - QEvent_WindowActivate => "QEvent" ,; - QEvent_WindowDeactivate => "QEvent" ,; - QEvent_ShowToParent => "QEvent" ,; - QEvent_HideToParent => "QEvent" ,; - QEvent_Wheel => "QWheelEvent" ,; - QEvent_WindowTitleChange => "QEvent" ,; - QEvent_WindowIconChange => "QEvent" ,; - QEvent_ApplicationWindowIconChange => "QEvent" ,; - QEvent_ApplicationFontChange => "QEvent" ,; - QEvent_ApplicationLayoutDirectionChange => "QEvent" ,; - QEvent_ApplicationPaletteChange => "QEvent" ,; - QEvent_PaletteChange => "QEvent" ,; - QEvent_Clipboard => "QEvent" ,; - QEvent_MetaCall => "QEvent" ,; - QEvent_SockAct => "QEvent" ,; - QEvent_ShortcutOverride => "QKeyEvent" ,; - QEvent_DeferredDelete => "QEvent" ,; - QEvent_DragEnter => "QDragEnterEvent" ,; - QEvent_DragLeave => "QDragLeaveEvent" ,; - QEvent_DragMove => "QDragMoveEvent" ,; - QEvent_Drop => "QDropEvent" ,; - QEvent_ChildAdded => "QEvent" ,; - QEvent_ChildPolished => "QEvent" ,; - QEvent_ChildInserted => "QEvent" ,; - QEvent_ChildRemoved => "QEvent" ,; - QEvent_PolishRequest => "QEvent" ,; - QEvent_Polish => "QEvent" ,; - QEvent_LayoutRequest => "QEvent" ,; - QEvent_UpdateRequest => "QEvent" ,; - QEvent_UpdateLater => "QEvent" ,; - QEvent_ContextMenu => "QContextMenuEvent" ,; - QEvent_InputMethod => "QInputMethodEvent" ,; - QEvent_AccessibilityPrepare => "QEvent" ,; - QEvent_TabletMove => "QEvent" ,; - QEvent_LocaleChange => "QEvent" ,; - QEvent_LanguageChange => "QEvent" ,; - QEvent_LayoutDirectionChange => "QEvent" ,; - QEvent_TabletPress => "QEvent" ,; - QEvent_TabletRelease => "QEvent" ,; - QEvent_OkRequest => "QEvent" ,; - QEvent_IconDrag => "QEvent" ,; - QEvent_FontChange => "QEvent" ,; - QEvent_EnabledChange => "QEvent" ,; - QEvent_ActivationChange => "QEvent" ,; - QEvent_StyleChange => "QEvent" ,; - QEvent_IconTextChange => "QEvent" ,; - QEvent_ModifiedChange => "QEvent" ,; - QEvent_WindowBlocked => "QEvent" ,; - QEvent_WindowUnblocked => "QEvent" ,; - QEvent_WindowStateChange => "QWindowStateChangeEvent" ,; - QEvent_MouseTrackingChange => "QEvent" ,; - QEvent_ToolTip => "QHelpEvent" ,; - QEvent_WhatsThis => "QHelpEvent" ,; - QEvent_StatusTip => "QEvent" ,; - QEvent_ActionChanged => "QEvent" ,; - QEvent_ActionAdded => "QEvent" ,; - QEvent_ActionRemoved => "QEvent" ,; - QEvent_FileOpen => "QEvent" ,; - QEvent_Shortcut => "QEvent" ,; - QEvent_WhatsThisClicked => "QEvent" ,; - QEvent_AccessibilityHelp => "QEvent" ,; - QEvent_ToolBarChange => "QEvent" ,; - QEvent_ApplicationActivate => "QEvent" ,; - QEvent_ApplicationActivated => "QEvent" ,; - QEvent_ApplicationDeactivate => "QEvent" ,; - QEvent_QueryWhatsThis => "QEvent" ,; - QEvent_EnterWhatsThisMode => "QEvent" ,; - QEvent_LeaveWhatsThisMode => "QEvent" ,; - QEvent_ZOrderChange => "QEvent" ,; - QEvent_HoverEnter => "QEvent" ,; - QEvent_HoverLeave => "QEvent" ,; - QEvent_HoverMove => "QEvent" ,; - QEvent_AccessibilityDescription => "QEvent" ,; - QEvent_ParentAboutToChange => "QEvent" ,; - QEvent_WinEventAct => "QEvent" ,; - QEvent_EnterEditFocus => "QEvent" ,; - QEvent_LeaveEditFocus => "QEvent" ,; - QEvent_MenubarUpdated => "QEvent" ,; - QEvent_GraphicsSceneMouseMove => "QGraphicsSceneMouseEvent" ,; - QEvent_GraphicsSceneMousePress => "QGraphicsSceneMouseEvent" ,; - QEvent_GraphicsSceneMouseRelease => "QGraphicsSceneMouseEvent" ,; - QEvent_GraphicsSceneMouseDoubleClick => "QGraphicsSceneMouseEvent" ,; - QEvent_GraphicsSceneContextMenu => "QGraphicsSceneContextMenuEvent" ,; - QEvent_GraphicsSceneHoverEnter => "QGraphicsSceneHoverEvent" ,; - QEvent_GraphicsSceneHoverMove => "QGraphicsSceneHoverEvent" ,; - QEvent_GraphicsSceneHoverLeave => "QGraphicsSceneHoverEvent" ,; - QEvent_GraphicsSceneHelp => "QHelpEvent" ,; - QEvent_GraphicsSceneDragEnter => "QGraphicsSceneDragDropEvent" ,; - QEvent_GraphicsSceneDragMove => "QGraphicsSceneDragDropEvent" ,; - QEvent_GraphicsSceneDragLeave => "QGraphicsSceneDragDropEvent" ,; - QEvent_GraphicsSceneDrop => "QGraphicsSceneDragDropEvent" ,; - QEvent_GraphicsSceneWheel => "QGraphicsSceneWheelEvent" ,; - QEvent_KeyboardLayoutChange => "QEvent" ,; - QEvent_DynamicPropertyChange => "QEvent" ,; - QEvent_TabletEnterProximity => "QEvent" ,; - QEvent_TabletLeaveProximity => "QEvent" ,; - QEvent_NonClientAreaMouseMove => "QEvent" ,; - QEvent_NonClientAreaMouseButtonPress => "QEvent" ,; - QEvent_NonClientAreaMouseButtonRelease => "QEvent" ,; - QEvent_NonClientAreaMouseButtonDblClick => "QEvent" ,; - QEvent_MacSizeChange => "QEvent" ,; - QEvent_ContentsRectChange => "QEvent" ,; - QEvent_GraphicsSceneResize => "QGraphicsSceneResizeEvent" ,; - QEvent_GraphicsSceneMove => "QGraphicsSceneMoveEvent" ,; - QEvent_CursorChange => "QEvent" ,; - QEvent_ToolTipChange => "QEvent" ,; - QEvent_GrabMouse => "QEvent" ,; - QEvent_UngrabMouse => "QEvent" ,; - QEvent_GrabKeyboard => "QEvent" ,; - QEvent_UngrabKeyboard => "QEvent" ; - } + QEvent_Timer => "QEvent" ,; + QEvent_MouseButtonPress => "QMouseEvent" ,; + QEvent_MouseButtonRelease => "QMouseEvent" ,; + QEvent_MouseButtonDblClick => "QMouseEvent" ,; + QEvent_MouseMove => "QMouseEvent" ,; + QEvent_KeyPress => "QKeyEvent" ,; + QEvent_KeyRelease => "QKeyEvent" ,; + QEvent_FocusIn => "QFocusEvent" ,; + QEvent_FocusOut => "QFocusEvent" ,; + QEvent_Enter => "QMouseEvent" ,; + QEvent_Leave => "QMouseEvent" ,; + QEvent_Paint => "QPaintEvent" ,; + QEvent_Move => "QMoveEvent" ,; + QEvent_Resize => "QResizeEvent",; + QEvent_Show => "QShowEvent" ,; + QEvent_Hide => "QHideEvent" ,; + QEvent_Close => "QEvent" ,; + QEvent_ParentChange => "QEvent" ,; + QEvent_WindowActivate => "QEvent" ,; + QEvent_WindowDeactivate => "QEvent" ,; + QEvent_ShowToParent => "QEvent" ,; + QEvent_HideToParent => "QEvent" ,; + QEvent_Wheel => "QWheelEvent" ,; + QEvent_WindowTitleChange => "QEvent" ,; + QEvent_WindowIconChange => "QEvent" ,; + QEvent_ApplicationWindowIconChange => "QEvent" ,; + QEvent_ApplicationFontChange => "QEvent" ,; + QEvent_ApplicationLayoutDirectionChange => "QEvent" ,; + QEvent_ApplicationPaletteChange => "QEvent" ,; + QEvent_PaletteChange => "QEvent" ,; + QEvent_Clipboard => "QEvent" ,; + QEvent_MetaCall => "QEvent" ,; + QEvent_SockAct => "QEvent" ,; + QEvent_ShortcutOverride => "QKeyEvent" ,; + QEvent_DeferredDelete => "QEvent" ,; + QEvent_DragEnter => "QDragEnterEvent" ,; + QEvent_DragLeave => "QDragLeaveEvent" ,; + QEvent_DragMove => "QDragMoveEvent" ,; + QEvent_Drop => "QDropEvent" ,; + QEvent_ChildAdded => "QEvent" ,; + QEvent_ChildPolished => "QEvent" ,; + QEvent_ChildInserted => "QEvent" ,; + QEvent_ChildRemoved => "QEvent" ,; + QEvent_PolishRequest => "QEvent" ,; + QEvent_Polish => "QEvent" ,; + QEvent_LayoutRequest => "QEvent" ,; + QEvent_UpdateRequest => "QEvent" ,; + QEvent_UpdateLater => "QEvent" ,; + QEvent_ContextMenu => "QContextMenuEvent" ,; + QEvent_InputMethod => "QInputMethodEvent" ,; + QEvent_AccessibilityPrepare => "QEvent" ,; + QEvent_TabletMove => "QEvent" ,; + QEvent_LocaleChange => "QEvent" ,; + QEvent_LanguageChange => "QEvent" ,; + QEvent_LayoutDirectionChange => "QEvent" ,; + QEvent_TabletPress => "QEvent" ,; + QEvent_TabletRelease => "QEvent" ,; + QEvent_OkRequest => "QEvent" ,; + QEvent_IconDrag => "QEvent" ,; + QEvent_FontChange => "QEvent" ,; + QEvent_EnabledChange => "QEvent" ,; + QEvent_ActivationChange => "QEvent" ,; + QEvent_StyleChange => "QEvent" ,; + QEvent_IconTextChange => "QEvent" ,; + QEvent_ModifiedChange => "QEvent" ,; + QEvent_WindowBlocked => "QEvent" ,; + QEvent_WindowUnblocked => "QEvent" ,; + QEvent_WindowStateChange => "QWindowStateChangeEvent" ,; + QEvent_MouseTrackingChange => "QEvent" ,; + QEvent_ToolTip => "QHelpEvent" ,; + QEvent_WhatsThis => "QHelpEvent" ,; + QEvent_StatusTip => "QEvent" ,; + QEvent_ActionChanged => "QEvent" ,; + QEvent_ActionAdded => "QEvent" ,; + QEvent_ActionRemoved => "QEvent" ,; + QEvent_FileOpen => "QEvent" ,; + QEvent_Shortcut => "QEvent" ,; + QEvent_WhatsThisClicked => "QEvent" ,; + QEvent_AccessibilityHelp => "QEvent" ,; + QEvent_ToolBarChange => "QEvent" ,; + QEvent_ApplicationActivate => "QEvent" ,; + QEvent_ApplicationActivated => "QEvent" ,; + QEvent_ApplicationDeactivate => "QEvent" ,; + QEvent_QueryWhatsThis => "QEvent" ,; + QEvent_EnterWhatsThisMode => "QEvent" ,; + QEvent_LeaveWhatsThisMode => "QEvent" ,; + QEvent_ZOrderChange => "QEvent" ,; + QEvent_HoverEnter => "QEvent" ,; + QEvent_HoverLeave => "QEvent" ,; + QEvent_HoverMove => "QEvent" ,; + QEvent_AccessibilityDescription => "QEvent" ,; + QEvent_ParentAboutToChange => "QEvent" ,; + QEvent_WinEventAct => "QEvent" ,; + QEvent_EnterEditFocus => "QEvent" ,; + QEvent_LeaveEditFocus => "QEvent" ,; + QEvent_MenubarUpdated => "QEvent" ,; + QEvent_GraphicsSceneMouseMove => "QGraphicsSceneMouseEvent" ,; + QEvent_GraphicsSceneMousePress => "QGraphicsSceneMouseEvent" ,; + QEvent_GraphicsSceneMouseRelease => "QGraphicsSceneMouseEvent" ,; + QEvent_GraphicsSceneMouseDoubleClick => "QGraphicsSceneMouseEvent" ,; + QEvent_GraphicsSceneContextMenu => "QGraphicsSceneContextMenuEvent" ,; + QEvent_GraphicsSceneHoverEnter => "QGraphicsSceneHoverEvent" ,; + QEvent_GraphicsSceneHoverMove => "QGraphicsSceneHoverEvent" ,; + QEvent_GraphicsSceneHoverLeave => "QGraphicsSceneHoverEvent" ,; + QEvent_GraphicsSceneHelp => "QHelpEvent" ,; + QEvent_GraphicsSceneDragEnter => "QGraphicsSceneDragDropEvent" ,; + QEvent_GraphicsSceneDragMove => "QGraphicsSceneDragDropEvent" ,; + QEvent_GraphicsSceneDragLeave => "QGraphicsSceneDragDropEvent" ,; + QEvent_GraphicsSceneDrop => "QGraphicsSceneDragDropEvent" ,; + QEvent_GraphicsSceneWheel => "QGraphicsSceneWheelEvent" ,; + QEvent_KeyboardLayoutChange => "QEvent" ,; + QEvent_DynamicPropertyChange => "QEvent" ,; + QEvent_TabletEnterProximity => "QEvent" ,; + QEvent_TabletLeaveProximity => "QEvent" ,; + QEvent_NonClientAreaMouseMove => "QEvent" ,; + QEvent_NonClientAreaMouseButtonPress => "QEvent" ,; + QEvent_NonClientAreaMouseButtonRelease => "QEvent" ,; + QEvent_NonClientAreaMouseButtonDblClick => "QEvent" ,; + QEvent_MacSizeChange => "QEvent" ,; + QEvent_ContentsRectChange => "QEvent" ,; + QEvent_GraphicsSceneResize => "QGraphicsSceneResizeEvent" ,; + QEvent_GraphicsSceneMove => "QGraphicsSceneMoveEvent" ,; + QEvent_CursorChange => "QEvent" ,; + QEvent_ToolTipChange => "QEvent" ,; + QEvent_GrabMouse => "QEvent" ,; + QEvent_UngrabMouse => "QEvent" ,; + QEvent_GrabKeyboard => "QEvent" ,; + QEvent_UngrabKeyboard => "QEvent" } - IF hb_hHasKey( s_b_, nType ) - cObj := s_b_[ nType ] - ELSE - cObj := "QEvent" - ENDIF + /* TODO: Change macro expansion to more efficient solution */ + LOCAL qObj := Eval( hb_MacroBlock( "HB_" + iif( hb_HHasKey( s_b_, nType ), s_b_[ nType ], "QEvent" ) + "()" ) ) - qObj := eval( &( "{|| HB_" + cObj + "() }" ) ) qObj:pPtr := pPtr RETURN qObj /*----------------------------------------------------------------------*/ - - diff --git a/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp b/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp index 612403f5fa..8208cfbfb2 100644 --- a/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp +++ b/harbour/contrib/hbqt/qtcore/hbqt_pointer.cpp @@ -331,102 +331,95 @@ HB_FUNC( __HBQT_SETUTF8 ) PHB_ITEM hbqt_defineClassBegin( const char* szClsName, PHB_ITEM s_oClass, const char* szParentClsStr ) { - static PHB_DYNS s__CLSLOCKDEF = NULL; + static PHB_DYNS s__CLSLOCKDEF = NULL; - PHB_ITEM oClass = NULL; + PHB_ITEM oClass = NULL; - if( s__CLSLOCKDEF == NULL ) - { - s__CLSLOCKDEF = hb_dynsymGetCase( "__CLSLOCKDEF" ); - } + if( s__CLSLOCKDEF == NULL ) + s__CLSLOCKDEF = hb_dynsymGetCase( "__CLSLOCKDEF" ); - hb_vmPushDynSym( s__CLSLOCKDEF ); - hb_vmPushNil(); - hb_vmPushItemRef( s_oClass ); - hb_vmDo( 1 ); + hb_vmPushDynSym( s__CLSLOCKDEF ); + hb_vmPushNil(); + hb_vmPushItemRef( s_oClass ); + hb_vmDo( 1 ); - if( hb_itemGetL( hb_stackReturnItem() ) ) - { - static PHB_DYNS s___HBCLASS = NULL; + if( hb_itemGetL( hb_stackReturnItem() ) ) + { + static PHB_DYNS s___HBCLASS = NULL; - if( s___HBCLASS == NULL ) - { - s___HBCLASS = hb_dynsymGetCase( "HBCLASS" ); - } + if( s___HBCLASS == NULL ) + s___HBCLASS = hb_dynsymGetCase( "HBCLASS" ); - PHB_ITEM pSuper = hb_itemNew( NULL ); - if( szParentClsStr ) - { - hb_arrayNew( pSuper, 0 ); + PHB_ITEM pSuper = hb_itemNew( NULL ); + if( szParentClsStr ) + { + hb_arrayNew( pSuper, 0 ); - char szParentClsBuffer[ strlen( szParentClsStr ) + 1 ]; - char* szSingleClsName; + char szParentClsBuffer[ strlen( szParentClsStr ) + 1 ]; + char * szSingleClsName; - strcpy( szParentClsBuffer, szParentClsStr ); - szParentClsBuffer[ strlen( szParentClsStr ) ] = 0; + hb_strncpy( szParentClsBuffer, szParentClsStr, strlen( szParentClsStr ) ); - szSingleClsName = strtok( szParentClsBuffer, " ," ); + szSingleClsName = strtok( szParentClsBuffer, " ," ); - PHB_ITEM pItem = hb_itemNew( NULL ); + PHB_ITEM pItem = hb_itemNew( NULL ); - while( szSingleClsName != NULL ) - { - hb_itemPutC( pItem, szSingleClsName ); - hb_arrayAdd( pSuper, hb_itemPutSymbol( pItem, hb_dynsymGetCase( szSingleClsName )->pSymbol ) ); - szSingleClsName = strtok( NULL, " ," ); - } - hb_itemRelease( pItem ); - } + while( szSingleClsName != NULL ) + { + hb_itemPutC( pItem, szSingleClsName ); + hb_arrayAdd( pSuper, hb_itemPutSymbol( pItem, hb_dynsymGetCase( szSingleClsName )->pSymbol ) ); + szSingleClsName = strtok( NULL, " ," ); + } + hb_itemRelease( pItem ); + } - hb_vmPushDynSym( s___HBCLASS ); - hb_vmPushNil(); - hb_vmDo( 0 ); + hb_vmPushDynSym( s___HBCLASS ); + hb_vmPushNil(); + hb_vmDo( 0 ); - PHB_ITEM pClsName = hb_itemNew( NULL ); - hb_itemPutC( pClsName, szClsName ); + PHB_ITEM pClsName = hb_itemNew( NULL ); + hb_itemPutC( pClsName, szClsName ); - PHB_ITEM pSym_ClsFunc = hb_itemNew( NULL ); - hb_itemPutSymbol( pSym_ClsFunc, hb_dynsymGetCase( szClsName )->pSymbol ); + PHB_ITEM pSym_ClsFunc = hb_itemNew( NULL ); + hb_itemPutSymbol( pSym_ClsFunc, hb_dynsymGetCase( szClsName )->pSymbol ); - hb_objSendMsg( hb_stackReturnItem(), "New", 3, pClsName, pSuper, pSym_ClsFunc ); + hb_objSendMsg( hb_stackReturnItem(), "New", 3, pClsName, pSuper, pSym_ClsFunc ); - oClass = hb_itemNew( hb_stackReturnItem() ); + oClass = hb_itemNew( hb_stackReturnItem() ); - hb_itemRelease( pSym_ClsFunc ); - hb_itemRelease( pSuper ); - hb_itemRelease( pClsName ); + hb_itemRelease( pSym_ClsFunc ); + hb_itemRelease( pSuper ); + hb_itemRelease( pClsName ); - hb_objSendMsg( oClass, "Create", 0 ); - hb_objSendMsg( oClass, "Instance", 0 ); + hb_objSendMsg( oClass, "Create", 0 ); + hb_objSendMsg( oClass, "Instance", 0 ); #if 0 - PHB_ITEM pDataName = hb_itemNew( NULL ); - hb_itemPutC( pDataName, "PPTR" ); - hb_objSendMsg( oClass, "AddData", 1, pDataName ); + PHB_ITEM pDataName = hb_itemNew( NULL ); + hb_itemPutC( pDataName, "PPTR" ); + hb_objSendMsg( oClass, "AddData", 1, pDataName ); #endif - } + } - return oClass; + return oClass; } void hbqt_defineClassEnd( PHB_ITEM s_oClass, PHB_ITEM oClass ) { - if( s_oClass && oClass ) - { - static PHB_DYNS s__CLSUNLOCKDEF = NULL; + if( s_oClass && oClass ) + { + static PHB_DYNS s__CLSUNLOCKDEF = NULL; - if( s__CLSUNLOCKDEF == NULL ) - { - s__CLSUNLOCKDEF = hb_dynsymGetCase( "__CLSUNLOCKDEF" ); - } + if( s__CLSUNLOCKDEF == NULL ) + s__CLSUNLOCKDEF = hb_dynsymGetCase( "__CLSUNLOCKDEF" ); - hb_vmPushDynSym( s__CLSUNLOCKDEF ); - hb_vmPushNil(); - hb_vmPushItemRef( s_oClass ); - hb_vmPush( oClass ); - hb_vmDo( 2 ); + hb_vmPushDynSym( s__CLSUNLOCKDEF ); + hb_vmPushNil(); + hb_vmPushItemRef( s_oClass ); + hb_vmPush( oClass ); + hb_vmDo( 2 ); - hb_itemRelease( oClass ); - } + hb_itemRelease( oClass ); + } } void * hbqt_getqtptr( void ) @@ -444,9 +437,7 @@ PHB_ITEM hbqt_create_object( void * p, const char * objectList, int iIndex ) static PHB_DYNS s_createObject = NULL; if( s_createObject == NULL ) - { - s_createObject = hb_dynsymGetCase( "HBQT_CREATEQTOBJECT" ); - } + s_createObject = hb_dynsymGetCase( "HBQT_CREATEQTOBJECT" ); hb_vmPushDynSym( s_createObject ); hb_vmPushNil(); @@ -463,9 +454,7 @@ PHB_ITEM hbqt_create_objectFromEventType( void * pEvent, int type ) static PHB_DYNS s_createObject = NULL; if( s_createObject == NULL ) - { - s_createObject = hb_dynsymGetCase( "HBQT_CREATEQTOBJECTBYTYPE" ); - } + s_createObject = hb_dynsymGetCase( "HBQTGUI_CREATEQTOBJECTBYTYPE" ); hb_vmPushDynSym( s_createObject ); hb_vmPushNil(); @@ -477,7 +466,21 @@ PHB_ITEM hbqt_create_objectFromEventType( void * pEvent, int type ) return hb_stackReturnItem(); } +PHB_ITEM hbqt_create_objectFromEventType2( void * pEvent, const char * pszName ) +{ + PHB_ITEM pItemEvent = hb_itemPutPtr( NULL, pEvent ); + + hb_vmPushDynSym( hb_dynsymGetCase( pszName ) ); + hb_vmPushNil(); + hb_vmDo( 0 ); + + hb_objSendMsg( hb_stackReturnItem(), "_PPTR", 1, pItemEvent ); + + hb_itemRelease( pItemEvent ); + + return hb_stackReturnItem(); +} + /*----------------------------------------------------------------------*/ #endif // #if QT_VERSION >= 0x040500 - diff --git a/harbour/contrib/hbqt/qtcore/hbqtcore.hbx b/harbour/contrib/hbqt/qtcore/hbqtcore.hbx index 3f08e301ea..2db9955ad7 100644 --- a/harbour/contrib/hbqt/qtcore/hbqtcore.hbx +++ b/harbour/contrib/hbqt/qtcore/hbqtcore.hbx @@ -33,9 +33,9 @@ DYNAMIC HBQSLOTS DYNAMIC HBQSLOTSFROMPOINTER DYNAMIC HBQSTRING DYNAMIC HBQSTRINGFROMPOINTER +DYNAMIC HBQTGUI_CREATEQTOBJECTBYTYPE DYNAMIC HBQTOBJECTHANDLER DYNAMIC HBQT_CREATEQTOBJECT -DYNAMIC HBQT_CREATEQTOBJECTBYTYPE DYNAMIC HBQT_FINDCHILD DYNAMIC HBQT_ISEQUALGCQTPOINTER DYNAMIC HBQT_ISOBJECT diff --git a/harbour/contrib/hbqt/qtgui/hbqt_init.cpp b/harbour/contrib/hbqt/qtgui/hbqt_init.cpp index 5c6987b6fb..3e2f346e69 100644 --- a/harbour/contrib/hbqt/qtgui/hbqt_init.cpp +++ b/harbour/contrib/hbqt/qtgui/hbqt_init.cpp @@ -60,6 +60,8 @@ #include "hbvm.h" #include "hbinit.h" +#include "hbqtgui.ch" + #if QT_VERSION >= 0x040500 #include @@ -145,6 +147,63 @@ static void hbqt_SlotsExecQTextBlock( PHB_ITEM * codeBlock, void ** arguments, Q /*----------------------------------------------------------------------*/ +HB_FUNC_EXTERN( HB_QCONTEXTMENUEVENT ); +HB_FUNC_EXTERN( HB_QDRAGENTEREVENT ); +HB_FUNC_EXTERN( HB_QDRAGLEAVEEVENT ); +HB_FUNC_EXTERN( HB_QDRAGMOVEEVENT ); +HB_FUNC_EXTERN( HB_QDROPEVENT ); +HB_FUNC_EXTERN( HB_QEVENT ); +HB_FUNC_EXTERN( HB_QFOCUSEVENT ); +HB_FUNC_EXTERN( HB_QFOCUSEVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENECONTEXTMENUEVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENEDRAGDROPEVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENEHOVEREVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENEMOUSEEVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENEMOVEEVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENERESIZEEVENT ); +HB_FUNC_EXTERN( HB_QGRAPHICSSCENEWHEELEVENT ); +HB_FUNC_EXTERN( HB_QHELPEVENT ); +HB_FUNC_EXTERN( HB_QHIDEEVENT ); +HB_FUNC_EXTERN( HB_QINPUTMETHODEVENT ); +HB_FUNC_EXTERN( HB_QKEYEVENT ); +HB_FUNC_EXTERN( HB_QMOUSEEVENT ); +HB_FUNC_EXTERN( HB_QMOVEEVENT ); +HB_FUNC_EXTERN( HB_QPAINTEVENT ); +HB_FUNC_EXTERN( HB_QRESIZEEVENT ); +HB_FUNC_EXTERN( HB_QSHOWEVENT ); +HB_FUNC_EXTERN( HB_QWHEELEVENT ); +HB_FUNC_EXTERN( HB_QWINDOWSTATECHANGEEVENT ); + +void _hbqtgui_force_link_for_event( void ) +{ + HB_FUNC_EXEC( HB_QCONTEXTMENUEVENT ); + HB_FUNC_EXEC( HB_QDRAGENTEREVENT ); + HB_FUNC_EXEC( HB_QDRAGLEAVEEVENT ); + HB_FUNC_EXEC( HB_QDRAGMOVEEVENT ); + HB_FUNC_EXEC( HB_QDROPEVENT ); + HB_FUNC_EXEC( HB_QEVENT ); + HB_FUNC_EXEC( HB_QFOCUSEVENT ); + HB_FUNC_EXEC( HB_QFOCUSEVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENECONTEXTMENUEVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENEDRAGDROPEVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENEHOVEREVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENEMOUSEEVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENEMOVEEVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENERESIZEEVENT ); + HB_FUNC_EXEC( HB_QGRAPHICSSCENEWHEELEVENT ); + HB_FUNC_EXEC( HB_QHELPEVENT ); + HB_FUNC_EXEC( HB_QHIDEEVENT ); + HB_FUNC_EXEC( HB_QINPUTMETHODEVENT ); + HB_FUNC_EXEC( HB_QKEYEVENT ); + HB_FUNC_EXEC( HB_QMOUSEEVENT ); + HB_FUNC_EXEC( HB_QMOVEEVENT ); + HB_FUNC_EXEC( HB_QPAINTEVENT ); + HB_FUNC_EXEC( HB_QRESIZEEVENT ); + HB_FUNC_EXEC( HB_QSHOWEVENT ); + HB_FUNC_EXEC( HB_QWHEELEVENT ); + HB_FUNC_EXEC( HB_QWINDOWSTATECHANGEEVENT ); +} + static void hbqt_registerCallbacks( void ) { hbqt_slots_register_callback( "QColor" , hbqt_SlotsExecQColor ); @@ -153,6 +212,135 @@ static void hbqt_registerCallbacks( void ) hbqt_slots_register_callback( "QTextBlock" , hbqt_SlotsExecQTextBlock ); hbqt_slots_register_callback( "QTextCharFormat" , hbqt_SlotsExecQTextCharFormat ); hbqt_slots_register_callback( "QTextCursor" , hbqt_SlotsExecQTextCursor ); + + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Timer , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MouseButtonPress , "hb_QMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MouseButtonRelease , "hb_QMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MouseButtonDblClick , "hb_QMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MouseMove , "hb_QMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_KeyPress , "hb_QKeyEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_KeyRelease , "hb_QKeyEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_FocusIn , "hb_QFocusEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_FocusOut , "hb_QFocusEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Enter , "hb_QMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Leave , "hb_QMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Paint , "hb_QPaintEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Move , "hb_QMoveEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Resize , "hb_QResizeEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Show , "hb_QShowEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Hide , "hb_QHideEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Close , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ParentChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowActivate , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowDeactivate , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ShowToParent , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_HideToParent , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Wheel , "hb_QWheelEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowTitleChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowIconChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationWindowIconChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationFontChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationLayoutDirectionChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationPaletteChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_PaletteChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Clipboard , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MetaCall , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_SockAct , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ShortcutOverride , "hb_QKeyEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_DeferredDelete , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_DragEnter , "hb_QDragEnterEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_DragLeave , "hb_QDragLeaveEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_DragMove , "hb_QDragMoveEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Drop , "hb_QDropEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ChildAdded , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ChildPolished , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ChildInserted , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ChildRemoved , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_PolishRequest , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Polish , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_LayoutRequest , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_UpdateRequest , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_UpdateLater , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ContextMenu , "hb_QContextMenuEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_InputMethod , "hb_QInputMethodEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_AccessibilityPrepare , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_TabletMove , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_LocaleChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_LanguageChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_LayoutDirectionChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_TabletPress , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_TabletRelease , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_OkRequest , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_IconDrag , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_FontChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_EnabledChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ActivationChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_StyleChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_IconTextChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ModifiedChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowBlocked , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowUnblocked , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WindowStateChange , "hb_QWindowStateChangeEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MouseTrackingChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ToolTip , "hb_QHelpEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WhatsThis , "hb_QHelpEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_StatusTip , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ActionChanged , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ActionAdded , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ActionRemoved , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_FileOpen , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_Shortcut , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WhatsThisClicked , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_AccessibilityHelp , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ToolBarChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationActivate , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationActivated , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ApplicationDeactivate , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_QueryWhatsThis , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_EnterWhatsThisMode , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_LeaveWhatsThisMode , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ZOrderChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_HoverEnter , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_HoverLeave , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_HoverMove , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_AccessibilityDescription , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ParentAboutToChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_WinEventAct , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_EnterEditFocus , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_LeaveEditFocus , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MenubarUpdated , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneMouseMove , "hb_QGraphicsSceneMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneMousePress , "hb_QGraphicsSceneMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneMouseRelease , "hb_QGraphicsSceneMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneMouseDoubleClick , "hb_QGraphicsSceneMouseEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneContextMenu , "hb_QGraphicsSceneContextMenuEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneHoverEnter , "hb_QGraphicsSceneHoverEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneHoverMove , "hb_QGraphicsSceneHoverEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneHoverLeave , "hb_QGraphicsSceneHoverEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneHelp , "hb_QHelpEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneDragEnter , "hb_QGraphicsSceneDragDropEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneDragMove , "hb_QGraphicsSceneDragDropEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneDragLeave , "hb_QGraphicsSceneDragDropEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneDrop , "hb_QGraphicsSceneDragDropEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneWheel , "hb_QGraphicsSceneWheelEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_KeyboardLayoutChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_DynamicPropertyChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_TabletEnterProximity , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_TabletLeaveProximity , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_NonClientAreaMouseMove , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_NonClientAreaMouseButtonPress , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_NonClientAreaMouseButtonRelease , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_NonClientAreaMouseButtonDblClick , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_MacSizeChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ContentsRectChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneResize , "hb_QGraphicsSceneResizeEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GraphicsSceneMove , "hb_QGraphicsSceneMoveEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_CursorChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_ToolTipChange , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GrabMouse , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_UngrabMouse , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_GrabKeyboard , "hb_QEvent" ); + hbqt_events_register_createobj( ( QEvent::Type ) QEvent_UngrabKeyboard , "hb_QEvent" ); } /*----------------------------------------------------------------------*/ @@ -213,4 +401,3 @@ HB_CALL_ON_STARTUP_END( _hbqtgui_init_ ) #endif #endif - diff --git a/harbour/contrib/hbqt/qtgui/hbqtgui.ch b/harbour/contrib/hbqt/qtgui/hbqtgui.ch index d9b736355d..4df2815373 100644 --- a/harbour/contrib/hbqt/qtgui/hbqtgui.ch +++ b/harbour/contrib/hbqt/qtgui/hbqtgui.ch @@ -49,6 +49,8 @@ * */ +/* NOTE: This file is also used by C code. */ + #ifndef _HBQTGUI_CH #define _HBQTGUI_CH diff --git a/harbour/contrib/hbqt/qtgui/hbqtgui.hbx b/harbour/contrib/hbqt/qtgui/hbqtgui.hbx index 66468a96b7..d3eaa3020f 100644 --- a/harbour/contrib/hbqt/qtgui/hbqtgui.hbx +++ b/harbour/contrib/hbqt/qtgui/hbqtgui.hbx @@ -566,7 +566,6 @@ DYNAMIC QPAGESETUPDIALOG DYNAMIC QPAGESETUPDIALOGFROMPOINTER DYNAMIC QPAINTDEVICE DYNAMIC QPAINTDEVICEFROMPOINTER -DYNAMIC QPAINTDEVICENEW DYNAMIC QPAINTENGINE DYNAMIC QPAINTENGINEFROMPOINTER DYNAMIC QPAINTER @@ -607,224 +606,6 @@ DYNAMIC QPROGRESSDIALOG DYNAMIC QPROGRESSDIALOGFROMPOINTER DYNAMIC QPUSHBUTTON DYNAMIC QPUSHBUTTONFROMPOINTER -DYNAMIC QQPAINTDEVICE_DEPTH -DYNAMIC QQPAINTDEVICE_HEIGHT -DYNAMIC QQPAINTDEVICE_HEIGHTMM -DYNAMIC QQPAINTDEVICE_LOGICALDPIX -DYNAMIC QQPAINTDEVICE_LOGICALDPIY -DYNAMIC QQPAINTDEVICE_NUMCOLORS -DYNAMIC QQPAINTDEVICE_PAINTENGINE -DYNAMIC QQPAINTDEVICE_PAINTINGACTIVE -DYNAMIC QQPAINTDEVICE_PHYSICALDPIX -DYNAMIC QQPAINTDEVICE_PHYSICALDPIY -DYNAMIC QQPAINTDEVICE_WIDTH -DYNAMIC QQPAINTDEVICE_WIDTHMM -DYNAMIC QQWIDGET_ACCEPTDROPS -DYNAMIC QQWIDGET_ACTIONS -DYNAMIC QQWIDGET_ACTIVATEWINDOW -DYNAMIC QQWIDGET_ADDACTION -DYNAMIC QQWIDGET_ADJUSTSIZE -DYNAMIC QQWIDGET_AUTOFILLBACKGROUND -DYNAMIC QQWIDGET_BACKGROUNDROLE -DYNAMIC QQWIDGET_BASESIZE -DYNAMIC QQWIDGET_CHILDAT -DYNAMIC QQWIDGET_CHILDAT_1 -DYNAMIC QQWIDGET_CHILDRENRECT -DYNAMIC QQWIDGET_CHILDRENREGION -DYNAMIC QQWIDGET_CLEARFOCUS -DYNAMIC QQWIDGET_CLEARMASK -DYNAMIC QQWIDGET_CLOSE -DYNAMIC QQWIDGET_CONTENTSRECT -DYNAMIC QQWIDGET_CONTEXTMENUPOLICY -DYNAMIC QQWIDGET_CURSOR -DYNAMIC QQWIDGET_ENSUREPOLISHED -DYNAMIC QQWIDGET_FOCUSPOLICY -DYNAMIC QQWIDGET_FOCUSPROXY -DYNAMIC QQWIDGET_FOCUSWIDGET -DYNAMIC QQWIDGET_FONT -DYNAMIC QQWIDGET_FONTINFO -DYNAMIC QQWIDGET_FONTMETRICS -DYNAMIC QQWIDGET_FOREGROUNDROLE -DYNAMIC QQWIDGET_FRAMEGEOMETRY -DYNAMIC QQWIDGET_FRAMESIZE -DYNAMIC QQWIDGET_GEOMETRY -DYNAMIC QQWIDGET_GETCONTENTSMARGINS -DYNAMIC QQWIDGET_GRABKEYBOARD -DYNAMIC QQWIDGET_GRABMOUSE -DYNAMIC QQWIDGET_GRABMOUSE_1 -DYNAMIC QQWIDGET_GRABSHORTCUT -DYNAMIC QQWIDGET_HASFOCUS -DYNAMIC QQWIDGET_HASMOUSETRACKING -DYNAMIC QQWIDGET_HEIGHT -DYNAMIC QQWIDGET_HEIGHTFORWIDTH -DYNAMIC QQWIDGET_HIDE -DYNAMIC QQWIDGET_INPUTMETHODQUERY -DYNAMIC QQWIDGET_INSERTACTION -DYNAMIC QQWIDGET_ISACTIVEWINDOW -DYNAMIC QQWIDGET_ISANCESTOROF -DYNAMIC QQWIDGET_ISENABLED -DYNAMIC QQWIDGET_ISENABLEDTO -DYNAMIC QQWIDGET_ISFULLSCREEN -DYNAMIC QQWIDGET_ISHIDDEN -DYNAMIC QQWIDGET_ISMAXIMIZED -DYNAMIC QQWIDGET_ISMINIMIZED -DYNAMIC QQWIDGET_ISMODAL -DYNAMIC QQWIDGET_ISVISIBLE -DYNAMIC QQWIDGET_ISVISIBLETO -DYNAMIC QQWIDGET_ISWINDOW -DYNAMIC QQWIDGET_ISWINDOWMODIFIED -DYNAMIC QQWIDGET_KEYBOARDGRABBER -DYNAMIC QQWIDGET_LAYOUT -DYNAMIC QQWIDGET_LAYOUTDIRECTION -DYNAMIC QQWIDGET_LOCALE -DYNAMIC QQWIDGET_LOWER -DYNAMIC QQWIDGET_MAPFROM -DYNAMIC QQWIDGET_MAPFROMGLOBAL -DYNAMIC QQWIDGET_MAPFROMPARENT -DYNAMIC QQWIDGET_MAPTO -DYNAMIC QQWIDGET_MAPTOGLOBAL -DYNAMIC QQWIDGET_MAPTOPARENT -DYNAMIC QQWIDGET_MASK -DYNAMIC QQWIDGET_MAXIMUMHEIGHT -DYNAMIC QQWIDGET_MAXIMUMSIZE -DYNAMIC QQWIDGET_MAXIMUMWIDTH -DYNAMIC QQWIDGET_MINIMUMHEIGHT -DYNAMIC QQWIDGET_MINIMUMSIZE -DYNAMIC QQWIDGET_MINIMUMSIZEHINT -DYNAMIC QQWIDGET_MINIMUMWIDTH -DYNAMIC QQWIDGET_MOUSEGRABBER -DYNAMIC QQWIDGET_MOVE -DYNAMIC QQWIDGET_MOVE_1 -DYNAMIC QQWIDGET_NATIVEPARENTWIDGET -DYNAMIC QQWIDGET_NEXTINFOCUSCHAIN -DYNAMIC QQWIDGET_NORMALGEOMETRY -DYNAMIC QQWIDGET_OVERRIDEWINDOWFLAGS -DYNAMIC QQWIDGET_PAINTENGINE -DYNAMIC QQWIDGET_PALETTE -DYNAMIC QQWIDGET_PARENTWIDGET -DYNAMIC QQWIDGET_POS -DYNAMIC QQWIDGET_RAISE -DYNAMIC QQWIDGET_RECT -DYNAMIC QQWIDGET_RELEASEKEYBOARD -DYNAMIC QQWIDGET_RELEASEMOUSE -DYNAMIC QQWIDGET_RELEASESHORTCUT -DYNAMIC QQWIDGET_REMOVEACTION -DYNAMIC QQWIDGET_REPAINT -DYNAMIC QQWIDGET_REPAINT_1 -DYNAMIC QQWIDGET_REPAINT_2 -DYNAMIC QQWIDGET_REPAINT_3 -DYNAMIC QQWIDGET_RESIZE -DYNAMIC QQWIDGET_RESIZE_1 -DYNAMIC QQWIDGET_RESTOREGEOMETRY -DYNAMIC QQWIDGET_SAVEGEOMETRY -DYNAMIC QQWIDGET_SCROLL -DYNAMIC QQWIDGET_SCROLL_1 -DYNAMIC QQWIDGET_SETACCEPTDROPS -DYNAMIC QQWIDGET_SETATTRIBUTE -DYNAMIC QQWIDGET_SETAUTOFILLBACKGROUND -DYNAMIC QQWIDGET_SETBACKGROUNDROLE -DYNAMIC QQWIDGET_SETBASESIZE -DYNAMIC QQWIDGET_SETBASESIZE_1 -DYNAMIC QQWIDGET_SETCONTENTSMARGINS -DYNAMIC QQWIDGET_SETCONTEXTMENUPOLICY -DYNAMIC QQWIDGET_SETCURSOR -DYNAMIC QQWIDGET_SETDISABLED -DYNAMIC QQWIDGET_SETENABLED -DYNAMIC QQWIDGET_SETFIXEDHEIGHT -DYNAMIC QQWIDGET_SETFIXEDSIZE -DYNAMIC QQWIDGET_SETFIXEDSIZE_1 -DYNAMIC QQWIDGET_SETFIXEDWIDTH -DYNAMIC QQWIDGET_SETFOCUS -DYNAMIC QQWIDGET_SETFOCUSPOLICY -DYNAMIC QQWIDGET_SETFOCUSPROXY -DYNAMIC QQWIDGET_SETFOCUS_1 -DYNAMIC QQWIDGET_SETFONT -DYNAMIC QQWIDGET_SETFOREGROUNDROLE -DYNAMIC QQWIDGET_SETGEOMETRY -DYNAMIC QQWIDGET_SETGEOMETRY_1 -DYNAMIC QQWIDGET_SETHIDDEN -DYNAMIC QQWIDGET_SETLAYOUT -DYNAMIC QQWIDGET_SETLAYOUTDIRECTION -DYNAMIC QQWIDGET_SETLOCALE -DYNAMIC QQWIDGET_SETMASK -DYNAMIC QQWIDGET_SETMASK_1 -DYNAMIC QQWIDGET_SETMAXIMUMHEIGHT -DYNAMIC QQWIDGET_SETMAXIMUMSIZE -DYNAMIC QQWIDGET_SETMAXIMUMSIZE_1 -DYNAMIC QQWIDGET_SETMAXIMUMWIDTH -DYNAMIC QQWIDGET_SETMINIMUMHEIGHT -DYNAMIC QQWIDGET_SETMINIMUMSIZE -DYNAMIC QQWIDGET_SETMINIMUMSIZE_1 -DYNAMIC QQWIDGET_SETMINIMUMWIDTH -DYNAMIC QQWIDGET_SETMOUSETRACKING -DYNAMIC QQWIDGET_SETPALETTE -DYNAMIC QQWIDGET_SETPARENT -DYNAMIC QQWIDGET_SETPARENT_1 -DYNAMIC QQWIDGET_SETSHORTCUTAUTOREPEAT -DYNAMIC QQWIDGET_SETSHORTCUTENABLED -DYNAMIC QQWIDGET_SETSIZEINCREMENT -DYNAMIC QQWIDGET_SETSIZEINCREMENT_1 -DYNAMIC QQWIDGET_SETSIZEPOLICY -DYNAMIC QQWIDGET_SETSIZEPOLICY_1 -DYNAMIC QQWIDGET_SETSTATUSTIP -DYNAMIC QQWIDGET_SETSTYLE -DYNAMIC QQWIDGET_SETSTYLESHEET -DYNAMIC QQWIDGET_SETTABORDER -DYNAMIC QQWIDGET_SETTOOLTIP -DYNAMIC QQWIDGET_SETUPDATESENABLED -DYNAMIC QQWIDGET_SETVISIBLE -DYNAMIC QQWIDGET_SETWHATSTHIS -DYNAMIC QQWIDGET_SETWINDOWFILEPATH -DYNAMIC QQWIDGET_SETWINDOWFLAGS -DYNAMIC QQWIDGET_SETWINDOWICON -DYNAMIC QQWIDGET_SETWINDOWICONTEXT -DYNAMIC QQWIDGET_SETWINDOWMODALITY -DYNAMIC QQWIDGET_SETWINDOWMODIFIED -DYNAMIC QQWIDGET_SETWINDOWOPACITY -DYNAMIC QQWIDGET_SETWINDOWROLE -DYNAMIC QQWIDGET_SETWINDOWSTATE -DYNAMIC QQWIDGET_SETWINDOWTITLE -DYNAMIC QQWIDGET_SHOW -DYNAMIC QQWIDGET_SHOWFULLSCREEN -DYNAMIC QQWIDGET_SHOWMAXIMIZED -DYNAMIC QQWIDGET_SHOWMINIMIZED -DYNAMIC QQWIDGET_SHOWNORMAL -DYNAMIC QQWIDGET_SIZE -DYNAMIC QQWIDGET_SIZEHINT -DYNAMIC QQWIDGET_SIZEINCREMENT -DYNAMIC QQWIDGET_SIZEPOLICY -DYNAMIC QQWIDGET_STACKUNDER -DYNAMIC QQWIDGET_STATUSTIP -DYNAMIC QQWIDGET_STYLE -DYNAMIC QQWIDGET_STYLESHEET -DYNAMIC QQWIDGET_TESTATTRIBUTE -DYNAMIC QQWIDGET_TOOLTIP -DYNAMIC QQWIDGET_UNDERMOUSE -DYNAMIC QQWIDGET_UNSETCURSOR -DYNAMIC QQWIDGET_UNSETLAYOUTDIRECTION -DYNAMIC QQWIDGET_UNSETLOCALE -DYNAMIC QQWIDGET_UPDATE -DYNAMIC QQWIDGET_UPDATEGEOMETRY -DYNAMIC QQWIDGET_UPDATESENABLED -DYNAMIC QQWIDGET_UPDATE_1 -DYNAMIC QQWIDGET_UPDATE_2 -DYNAMIC QQWIDGET_UPDATE_3 -DYNAMIC QQWIDGET_VISIBLEREGION -DYNAMIC QQWIDGET_WHATSTHIS -DYNAMIC QQWIDGET_WIDTH -DYNAMIC QQWIDGET_WINDOW -DYNAMIC QQWIDGET_WINDOWFILEPATH -DYNAMIC QQWIDGET_WINDOWFLAGS -DYNAMIC QQWIDGET_WINDOWICON -DYNAMIC QQWIDGET_WINDOWICONTEXT -DYNAMIC QQWIDGET_WINDOWMODALITY -DYNAMIC QQWIDGET_WINDOWOPACITY -DYNAMIC QQWIDGET_WINDOWROLE -DYNAMIC QQWIDGET_WINDOWSTATE -DYNAMIC QQWIDGET_WINDOWTITLE -DYNAMIC QQWIDGET_WINDOWTYPE -DYNAMIC QQWIDGET_X -DYNAMIC QQWIDGET_Y DYNAMIC QRADIALGRADIENT DYNAMIC QRADIALGRADIENTFROMPOINTER DYNAMIC QRADIOBUTTON @@ -1025,7 +806,6 @@ DYNAMIC QWIDGETACTIONFROMPOINTER DYNAMIC QWIDGETFROMPOINTER DYNAMIC QWIDGETITEM DYNAMIC QWIDGETITEMFROMPOINTER -DYNAMIC QWIDGETNEW DYNAMIC QWINDOWSSTYLE DYNAMIC QWINDOWSSTYLEFROMPOINTER DYNAMIC QWINDOWSTATECHANGEEVENT diff --git a/harbour/contrib/hbtip/sendmail.prg b/harbour/contrib/hbtip/sendmail.prg index 00109a3b1b..e9ab5ad690 100644 --- a/harbour/contrib/hbtip/sendmail.prg +++ b/harbour/contrib/hbtip/sendmail.prg @@ -468,7 +468,7 @@ FUNCTION hb_MailAssemble( cFrom, xTo, xCC, cBody, cSubject, ; ( cFile LIKE ".+\.(push|wan|waf||afl|mpeg|mpg|mpe|qt|mov)" ) .OR. ; ( cFile LIKE ".+\.(viv|vivo|asf|asx|avi|movie|vgm|vgx)" ) .OR. ; ( cFile LIKE ".+\.(xdr|vgp|vts|vtts|3dmf|3dm|qd3d|qd3)" ) .OR. ; - ( cFile LIKE ".+\.(svr|wrl|wrz|vrt)" ) .OR. Empty( cFExt ) + ( cFile LIKE ".+\.(svr|wrl|wrz|vrt|xml)" ) .OR. Empty( cFExt ) oAttach:SetEncoder( "base64" ) ELSE oAttach:SetEncoder( cEncoding ) @@ -666,6 +666,7 @@ FUNCTION hb_SetMimeType( cFile, cFname, cFext ) CASE ( cFile LIKE ".+\.ccs" ); RETURN "text/ccs; name=" + cFname + cFext CASE ( cFile LIKE ".+\.(htm|html)" ); RETURN "text/html; name=" + cFname + cFext CASE ( cFile LIKE ".+\.pgr" ); RETURN "text/parsnegar-document; name=" + cFname + cFext + CASE ( cFile LIKE ".+\.xml" ); RETURN "text/xml; name=" + cFname + cFext CASE ( cFile LIKE ".+\.txt" ); RETURN "text/plain; name=" + cFname + cFext CASE ( cFile LIKE ".+\.rtx" ); RETURN "text/richtext; name=" + cFname + cFext CASE ( cFile LIKE ".+\.tsv" ); RETURN "text/tab-separated-values; name=" + cFname + cFext