diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f572490162..6d315f7c68 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,40 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-04-25 01:32 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + * contrib/hbxbp/xbp3state.prg + * contrib/hbxbp/xbpappevent.prg + * contrib/hbxbp/xbpbitmap.prg + * contrib/hbxbp/xbpbrowse.prg + * contrib/hbxbp/xbpcheckbox.prg + * contrib/hbxbp/xbpcombobox.prg + * contrib/hbxbp/xbpdataref.prg + * contrib/hbxbp/xbpdialog.prg + * contrib/hbxbp/xbpfiledialog.prg + * contrib/hbxbp/xbpfontdialog.prg + * contrib/hbxbp/xbphtmlviewer.prg + * contrib/hbxbp/xbplistbox.prg + * contrib/hbxbp/xbpmenubar.prg + * contrib/hbxbp/xbpmle.prg + * contrib/hbxbp/xbppushbutton.prg + * contrib/hbxbp/xbpradiobutton.prg + * contrib/hbxbp/xbprtf.prg + * contrib/hbxbp/xbpscrollbar.prg + * contrib/hbxbp/xbpsle.prg + * contrib/hbxbp/xbpspinbutton.prg + * contrib/hbxbp/xbpstatusbar.prg + * contrib/hbxbp/xbptabpage.prg + * contrib/hbxbp/xbptoolbar.prg + * contrib/hbxbp/xbptreeview.prg + * contrib/hbxbp/xbpwindow.prg + ! Reworked callbacl Slots/Methods which are now INHERITable in + the sub-classes derived from Xbp Part. + ! Slots ae now recognized through the slot identifier string. + ! Deleted redundant parts and made code more cleaner and uniform in + method calling conventions. + + This is first round of reforms, more will follow. + 2010-04-24 13:35 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * src/rtl/achoice.prg ! REVERTED: Fixed typo in ACHOICE() K_UP handling, which caused a diff --git a/harbour/contrib/hbxbp/xbp3state.prg b/harbour/contrib/hbxbp/xbp3state.prg index 3c7d289e20..8e454d0787 100644 --- a/harbour/contrib/hbxbp/xbp3state.prg +++ b/harbour/contrib/hbxbp/xbp3state.prg @@ -86,13 +86,10 @@ CLASS Xbp3State INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD setCaption( xCaption ) - ACCESS selected INLINE ::sl_lbClick - ASSIGN selected( bBlock ) INLINE ::sl_lbClick := bBlock - - METHOD exeBlock( iState ) + METHOD selected( ... ) SETGET + METHOD execSlot( cSlot, p ) ENDCLASS @@ -112,7 +109,7 @@ METHOD Xbp3State:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oWidget := QCheckBox():New( ::oParent:oWidget ) - ::Connect( ::pWidget, "stateChanged(int)", {|i| ::exeBlock( i ) } ) + ::Connect( ::pWidget, "stateChanged(int)", {|i| ::execSlot( "stateChanged(int)", i ) } ) ::oWidget:setTriState( .t. ) @@ -152,14 +149,15 @@ METHOD Xbp3State:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, l /*----------------------------------------------------------------------*/ -METHOD Xbp3State:exeBlock( iState ) - - ::sl_editBuffer := IF( iState == 2, 1, IF( iState == 1, 2, iState ) ) - - IF hb_isBlock( ::sl_lbClick ) - eval( ::sl_lbClick, ::sl_editBuffer, NIL, self ) - ENDIF +METHOD Xbp3State:execSlot( cSlot, p ) + SWITCH cSlot + CASE "stateChanged(int)" + ::sl_editBuffer := iif( p == 2, 1, iif( p == 1, 2, p ) ) + ::selected( ::sl_editBuffer ) + EXIT + ENDSWITCH + RETURN nil /*----------------------------------------------------------------------*/ @@ -200,3 +198,15 @@ METHOD Xbp3State:setCaption( xCaption ) RETURN Self /*----------------------------------------------------------------------*/ + +METHOD Xbp3State:selected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbClick := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbClick ) + eval( ::sl_lbClick, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + diff --git a/harbour/contrib/hbxbp/xbpappevent.prg b/harbour/contrib/hbxbp/xbpappevent.prg index e9c9f3ad35..098f4ede87 100644 --- a/harbour/contrib/hbxbp/xbpappevent.prg +++ b/harbour/contrib/hbxbp/xbpappevent.prg @@ -445,23 +445,23 @@ FUNCTION XbpQKeyEventToAppEvent( pEvent ) c := hbqt_QTranslateKey( kbm, Qt_Key_QuoteDbl, Qt_Key_QuoteDbl, xbeK_ALT_QUOTE, Qt_Key_QuoteDbl ) EXIT CASE Qt_Key_Space - c := ' ' ; EXIT + c := ' ' ; EXIT CASE Qt_Key_Exclam - c := '!' ; EXIT + c := '!' ; EXIT CASE Qt_Key_NumberSign - c := '#' ; EXIT + c := '#' ; EXIT CASE Qt_Key_Dollar - c := '$' ; EXIT + c := '$' ; EXIT CASE Qt_Key_Percent - c := '%' ; EXIT + c := '%' ; EXIT CASE Qt_Key_Ampersand - c := '&' ; EXIT + c := '&' ; EXIT CASE Qt_Key_Apostrophe - c := Qt_Key_Apostrophe ; EXIT + c := Qt_Key_Apostrophe ; EXIT CASE Qt_Key_ParenLeft - c := '(' ; EXIT + c := '(' ; EXIT CASE Qt_Key_ParenRight - c := ')' ; EXIT + c := ')' ; EXIT CASE Qt_Key_Comma c := hbqt_QTranslateKey( kbm, ',', ',', xbeK_ALT_COMMA, ',' ) EXIT @@ -469,18 +469,18 @@ FUNCTION XbpQKeyEventToAppEvent( pEvent ) c := hbqt_QTranslateKey( kbm, '.', '.', xbeK_ALT_PERIOD, '.' ) EXIT CASE Qt_Key_Colon - c := '' ; EXIT + c := '' ; EXIT CASE Qt_Key_Semicolon - c := ';' ; EXIT + c := ';' ; EXIT CASE Qt_Key_Less - c := '<' ; EXIT + c := '<' ; EXIT CASE Qt_Key_Greater - c := '>' ; EXIT + c := '>' ; EXIT CASE Qt_Key_Question c := hbqt_QTranslateKey( kbm, '?', '?', '?', xbeK_CTRL_QUESTION ) EXIT CASE Qt_Key_At - c := '@' ; EXIT + c := '@' ; EXIT CASE Qt_Key_Meta /* On Mac OS X, this corresponds to the Control keys. On Windows keyboards, this key is mapped to the Windows key. */ c := xbeK_ ; EXIT diff --git a/harbour/contrib/hbxbp/xbpbitmap.prg b/harbour/contrib/hbxbp/xbpbitmap.prg index 4e65653cc9..27345e6518 100644 --- a/harbour/contrib/hbxbp/xbpbitmap.prg +++ b/harbour/contrib/hbxbp/xbpbitmap.prg @@ -76,17 +76,18 @@ CLASS XbpBitmap - ACCESS bits INLINE ::oWidget:depth() DATA bufferOffset INIT 0 - ACCESS planes INLINE 0 DATA transparentColor INIT GRA_CLR_INVALID - ACCESS xSize INLINE ::oWidget:width() - ACCESS ySize INLINE ::oWidget:height() DATA oWidget DATA oPS DATA cImageFileName + ACCESS bits INLINE ::oWidget:depth() + ACCESS planes INLINE 0 + ACCESS xSize INLINE ::oWidget:width() + ACCESS ySize INLINE ::oWidget:height() + METHOD new() INLINE Self METHOD create( oPS ) METHOD configure() VIRTUAL diff --git a/harbour/contrib/hbxbp/xbpbrowse.prg b/harbour/contrib/hbxbp/xbpbrowse.prg index ab2151b424..80f8378639 100644 --- a/harbour/contrib/hbxbp/xbpbrowse.prg +++ b/harbour/contrib/hbxbp/xbpbrowse.prg @@ -59,7 +59,7 @@ * EkOnkar * ( The LORD is ONE ) * - * Xbase++ Compatible XbpRtf Class + * Xbase++ Compatible XbpBrowse Class * * Pritpal Bedi * 10Jul2009 @@ -76,6 +76,13 @@ #include "gra.ch" #include "appevent.ch" +#include "button.ch" +#include "color.ch" +#include "error.ch" +#include "inkey.ch" +#include "setcurs.ch" +#include "tbrowse.ch" + /*----------------------------------------------------------------------*/ #define HBQT_BRW_CELLVALUE 1001 @@ -93,43 +100,25 @@ #define HBQT_BRW_DATALIGN 1013 #define HBQT_BRW_CELLDECORATION 1014 -/*----------------------------------------------------------------------*/ -/*----------------------------------------------------------------------*/ -/*----------------------------------------------------------------------*/ -// -// XbpBrowse -// -/*----------------------------------------------------------------------*/ -/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ #define HB_CLS_NOTOBJECT -#include "hbclass.ch" - -#include "button.ch" -#include "color.ch" -#include "common.ch" -#include "error.ch" -#include "inkey.ch" -#include "setcurs.ch" -#include "tbrowse.ch" - -#define _TBCI_COLOBJECT 1 // column object -#define _TBCI_COLWIDTH 2 // width of the column -#define _TBCI_COLPOS 3 // column position on screen -#define _TBCI_CELLWIDTH 4 // width of the cell -#define _TBCI_CELLPOS 5 // cell position in column -#define _TBCI_COLSEP 6 // column separator -#define _TBCI_SEPWIDTH 7 // width of the separator -#define _TBCI_HEADING 8 // column heading -#define _TBCI_FOOTING 9 // column footing -#define _TBCI_HEADSEP 10 // heading separator -#define _TBCI_FOOTSEP 11 // footing separator -#define _TBCI_DEFCOLOR 12 // default color -#define _TBCI_FROZENSPACE 13 // space after frozen columns -#define _TBCI_LASTSPACE 14 // space after last visible column -#define _TBCI_SIZE 14 // size of array with TBrowse column data +#define _TBCI_COLOBJECT 1 // column object +#define _TBCI_COLWIDTH 2 // width of the column +#define _TBCI_COLPOS 3 // column position on screen +#define _TBCI_CELLWIDTH 4 // width of the cell +#define _TBCI_CELLPOS 5 // cell position in column +#define _TBCI_COLSEP 6 // column separator +#define _TBCI_SEPWIDTH 7 // width of the separator +#define _TBCI_HEADING 8 // column heading +#define _TBCI_FOOTING 9 // column footing +#define _TBCI_HEADSEP 10 // heading separator +#define _TBCI_FOOTSEP 11 // footing separator +#define _TBCI_DEFCOLOR 12 // default color +#define _TBCI_FROZENSPACE 13 // space after frozen columns +#define _TBCI_LASTSPACE 14 // space after last visible column +#define _TBCI_SIZE 14 // size of array with TBrowse column data #define _TBC_SETKEY_KEY 1 #define _TBC_SETKEY_BLOCK 2 @@ -307,7 +296,7 @@ EXPORTED: METHOD new( nTop, nLeft, nBottom, nRight ) // constructor, NOTE: This method is a Harbour extension [vszakats] METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) // constructor, NOTE: This method is a Harbour extension [vszakats] - METHOD exeBlock( nEvent, p1, p2, p3 ) // executes view events + METHOD execSlot( nEvent, p1, p2, p3 ) // executes view events METHOD supplyInfo( nMode, nInfo, p2, p3 ) // supplies cell parameters to Qt engine METHOD configure( nMode ) // mark that the internal settings of the TBrowse object should be reconfigured METHOD handleEvent( nEvent, mp1, mp2 ) @@ -512,9 +501,9 @@ METHOD XbpBrowse:buildLeftFreeze() // //::oLeftFooterView:hide() - ::connect( ::oLeftView , "mousePressEvent()" , {|p| ::exeBlock( 31, p ) } ) - ::connect( ::oLeftHeaderView, "sectionPressed(int)", {|i| ::exeBlock( 31, i ) } ) - ::connect( ::oLeftFooterView, "sectionPressed(int)", {|i| ::exeBlock( 31, i ) } ) + ::connect( ::oLeftView , "mousePressEvent()" , {|p| ::execSlot( 31, p ) } ) + ::connect( ::oLeftHeaderView, "sectionPressed(int)", {|i| ::execSlot( 31, i ) } ) + ::connect( ::oLeftFooterView, "sectionPressed(int)", {|i| ::execSlot( 31, i ) } ) RETURN Self @@ -558,9 +547,9 @@ METHOD XbpBrowse:buildRightFreeze() ::oRightFooterModel := HBDbfModel():new( {|p1,p2,p3,p4| ::supplyInfo( 162, p1, p2, p3, p4 ) } ) ::oRightFooterView:setModel( ::oRightFooterModel ) - ::connect( ::oRightView , "mousePressEvent()" , {|p| ::exeBlock( 31, p ) } ) - ::connect( ::oRightHeaderView, "sectionPressed(int)", {|i| ::exeBlock( 31, i ) } ) - ::connect( ::oRightFooterView, "sectionPressed(int)", {|i| ::exeBlock( 31, i ) } ) + ::connect( ::oRightView , "mousePressEvent()" , {|p| ::execSlot( 31, p ) } ) + ::connect( ::oRightHeaderView, "sectionPressed(int)", {|i| ::execSlot( 31, i ) } ) + ::connect( ::oRightFooterView, "sectionPressed(int)", {|i| ::execSlot( 31, i ) } ) RETURN Self @@ -587,27 +576,27 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oTableView:setSelectionBehavior( IF( ::cursorMode == XBPBRW_CURSOR_ROW, QAbstractItemView_SelectRows, QAbstractItemView_SelectItems ) ) /* Connect Keyboard Events */ - ::connect( ::oTableView, "keyPressEvent()" , {|p | ::exeBlock( 1, p ) } ) - ::connect( ::oTableView, "mousePressEvent()" , {|p | ::exeBlock( 2, p ) } ) - ::connect( ::oTableView, "mouseDoubleClickEvent()" , {|p | ::exeBlock( 3, p ) } ) - ::connect( ::oTableView, "wheelEvent()" , {|p | ::exeBlock( 4, p ) } ) - ::connect( ::oTableView, "scrollContentsBy(int,int)" , {|p,p1| ::exeBlock(11, p, p1 ) } ) + ::connect( ::oTableView, "keyPressEvent()" , {|p | ::execSlot( 1, p ) } ) + ::connect( ::oTableView, "mousePressEvent()" , {|p | ::execSlot( 2, p ) } ) + ::connect( ::oTableView, "mouseDoubleClickEvent()" , {|p | ::execSlot( 3, p ) } ) + ::connect( ::oTableView, "wheelEvent()" , {|p | ::execSlot( 4, p ) } ) + ::connect( ::oTableView, "scrollContentsBy(int,int)" , {|p,p1| ::execSlot(11, p, p1 ) } ) /* Finetune Horizontal Scrollbar */ ::oTableView:setHorizontalScrollBarPolicy( Qt_ScrollBarAlwaysOff ) // ::oHScrollBar := QScrollBar():new() ::oHScrollBar:setOrientation( Qt_Horizontal ) - ::connect( ::oHScrollBar, "actionTriggered(int)" , {|i| ::exeBlock( 103, i ) } ) - ::connect( ::oHScrollBar, "sliderReleased()" , {|i| ::exeBlock( 104, i ) } ) + ::connect( ::oHScrollBar, "actionTriggered(int)" , {|i| ::execSlot( 103, i ) } ) + ::connect( ::oHScrollBar, "sliderReleased()" , {|i| ::execSlot( 104, i ) } ) /* Replace Vertical Scrollbar with our own */ ::oTableView:setVerticalScrollBarPolicy( Qt_ScrollBarAlwaysOff ) // ::oVScrollBar := QScrollBar():new() ::oVScrollBar:setOrientation( Qt_Vertical ) - ::connect( ::oVScrollBar, "actionTriggered(int)" , {|i| ::exeBlock( 101, i ) } ) - ::connect( ::oVScrollBar, "sliderReleased()" , {|i| ::exeBlock( 102, i ) } ) + ::connect( ::oVScrollBar, "actionTriggered(int)" , {|i| ::execSlot( 101, i ) } ) + ::connect( ::oVScrollBar, "sliderReleased()" , {|i| ::execSlot( 102, i ) } ) /* Veritical Header because of Performance boost */ ::oVHeaderView := QHeaderView() @@ -619,8 +608,8 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oHeaderView:configure( ::oTableView:horizontalHeader() ) ::oHeaderView:setHighlightSections( .F. ) // - ::connect( ::oHeaderView, "sectionPressed(int)" , {|i | ::exeBlock( 111, i ) } ) - ::connect( ::oHeaderView, "sectionResized(int,int,int)", {|i,i1,i2| ::exeBlock( 121, i, i1, i2 ) } ) + ::connect( ::oHeaderView, "sectionPressed(int)" , {|i | ::execSlot( 111, i ) } ) + ::connect( ::oHeaderView, "sectionResized(int,int,int)", {|i,i1,i2| ::execSlot( 121, i, i1, i2 ) } ) /* .DBF Manipulation Model */ ::oDbfModel := HBDbfModel():new( {|p1,p2,p3,p4| ::supplyInfo( 141, p1, p2, p3, p4 ) } ) @@ -748,11 +737,11 @@ METHOD XbpBrowse:destroy() /*----------------------------------------------------------------------*/ -METHOD XbpBrowse:exeBlock( nEvent, p1, p2, p3 ) +METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 ) LOCAL oWheelEvent, oMouseEvent, i, nRow, nRowPos, nCol, nColPos, oPoint HB_SYMBOL_UNUSED( p2 ) -//HB_TRACE( HB_TR_DEBUG, " XbpBrowse:exeblock:", nEvent, 0, memory( 1001 ) ) +//HB_TRACE( HB_TR_DEBUG, " XbpBrowse:execSlot:", nEvent, 0, memory( 1001 ) ) DO CASE CASE nEvent == 1 /* Keypress Event */ SetAppEvent( xbeP_Keyboard, XbpQKeyEventToAppEvent( p1 ), NIL, self ) diff --git a/harbour/contrib/hbxbp/xbpcheckbox.prg b/harbour/contrib/hbxbp/xbpcheckbox.prg index 613701e13e..373e2dceee 100644 --- a/harbour/contrib/hbxbp/xbpcheckbox.prg +++ b/harbour/contrib/hbxbp/xbpcheckbox.prg @@ -86,12 +86,10 @@ CLASS XbpCheckBox INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( iState ) - + METHOD execSlot( cSlot, p ) METHOD setCaption( xCaption ) - - ACCESS selected INLINE ::sl_lbClick - ASSIGN selected( bBlock ) INLINE ::sl_lbClick := bBlock + + METHOD selected( ... ) SETGET ENDCLASS @@ -110,7 +108,7 @@ METHOD XbpCheckBox:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oWidget := QCheckBox():New( ::oParent:oWidget ) - ::Connect( ::pWidget, "stateChanged(int)", {|i| ::exeBlock( i ) } ) + ::Connect( ::pWidget, "stateChanged(int)", {|i| ::execSlot( "stateChanged(int)", i ) } ) ::setPosAndSize() IF ::visible @@ -142,12 +140,14 @@ METHOD XbpCheckBox:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, /*----------------------------------------------------------------------*/ -METHOD XbpCheckBox:exeBlock( iState ) +METHOD XbpCheckBox:execSlot( cSlot, p ) - ::sl_editBuffer := iState <> 0 - IF hb_isBlock( ::sl_lbClick ) - eval( ::sl_lbClick, iState <> 0, NIL, self ) - ENDIF + SWITCH cSlot + CASE "stateChanged(int)" + ::sl_editBuffer := p <> 0 + ::selected( ::sl_editBuffer ) + EXIT + ENDSWITCH RETURN nil @@ -189,3 +189,14 @@ METHOD XbpCheckBox:setCaption( xCaption ) RETURN Self /*----------------------------------------------------------------------*/ + +METHOD XbpCheckBox:selected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbClick := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbClick ) + eval( ::sl_lbClick, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpcombobox.prg b/harbour/contrib/hbxbp/xbpcombobox.prg index 9a6e536791..2eaa8c48d5 100644 --- a/harbour/contrib/hbxbp/xbpcombobox.prg +++ b/harbour/contrib/hbxbp/xbpcombobox.prg @@ -73,7 +73,6 @@ /*----------------------------------------------------------------------*/ -//CLASS XbpComboBox INHERIT XbpSLE, XbpListBox CLASS XbpComboBox INHERIT XbpWindow DATA type INIT XBPCOMBO_DROPDOWN @@ -85,7 +84,7 @@ CLASS XbpComboBox INHERIT XbpWindow METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) VIRTUAL METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) VIRTUAL - METHOD exeBlock( nMsg, p1 ) + METHOD execSlot( cSlot, p ) METHOD listBoxFocus( lFocus ) VIRTUAL // -> lOldFocus METHOD sleSize() VIRTUAL // -> aOldSize @@ -107,21 +106,17 @@ CLASS XbpComboBox INHERIT XbpWindow DATA oSLE - ACCESS XbpSLE INLINE ::oSLE DATA oLB + ACCESS XbpSLE INLINE ::oSLE ACCESS XbpListBox INLINE ::oLB DATA sl_itemMarked - ACCESS itemMarked INLINE ::sl_itemMarked - ASSIGN itemMarked( bBlock ) INLINE ::sl_itemMarked := bBlock - DATA sl_itemSelected - ACCESS itemSelected INLINE ::sl_itemSelected - ASSIGN itemSelected( bBlock ) INLINE ::sl_itemSelected := bBlock - - DATA sl_xbePDrawItem - ACCESS drawItem INLINE ::sl_xbePDrawItem - ASSIGN drawItem( bBlock ) INLINE ::sl_xbePDrawItem := bBlock + DATA sl_drawItem + + METHOD itemMarked( ... ) SETGET + METHOD itemSelected( ... ) SETGET + METHOD drawItem( ... ) SETGET ENDCLASS @@ -140,20 +135,17 @@ METHOD XbpComboBox:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oSLE := XbpSLE():new():create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) - ::oLB := XbpListBox():new():create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oWidget := QComboBox():New( ::pParent ) ::oWidget:setLineEdit( ::XbpSLE:oWidget:pPtr ) - ::oWidget:setEditable( ::XbpSLE:editable ) - ::oWidget:setFrame( ::XbpSLE:border ) - ::connect( ::pWidget, "highlighted(int)" , {|i| ::exeBlock( 1, i ) } ) -* ::connect( ::pWidget, "currentIndexChanged(int)", {|i| ::exeBlock( 2, i ) } ) - ::connect( ::pWidget, "activated(int)" , {|i| ::exeBlock( 2, i ) } ) + ::connect( ::pWidget, "highlighted(int)" , {|i| ::execSlot( "highlighted(int)" , i ) } ) + ::connect( ::pWidget, "activated(int)" , {|i| ::execSlot( "activated(int)" , i ) } ) +* ::connect( ::pWidget, "currentIndexChanged(int)", {|i| ::execSlot( "currentIndexChanged(int)", i ) } ) ::setPosAndSize() IF ::visible @@ -181,15 +173,15 @@ METHOD XbpComboBox:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, IF ::visible ::show() ENDIF - ::oWidget:setLineEdit( ::XbpSLE:oWidget:pPtr ) + ::oWidget:setLineEdit( ::XbpSLE:oWidget ) ::oWidget:setEditable( ::XbpSLE:editable ) ::oWidget:setFrame( ::XbpSLE:border ) ENDIF - ::connect( ::pWidget, "highlighted(int)" , {|i| ::exeBlock( 1, i ) } ) - ::connect( ::pWidget, "activated(int)" , {|i| ::exeBlock( 2, i ) } ) -* ::connect( ::pWidget, "currentIndexChanged(int)", {|i| ::exeBlock( 2, i ) } ) + ::connect( ::oWidget, "highlighted(int)" , {|i| ::execSlot( "highlighted(int)" , i ) } ) + ::connect( ::oWidget, "activated(int)" , {|i| ::execSlot( "activated(int)" , i ) } ) +* ::connect( ::oWidget, "currentIndexChanged(int)", {|i| ::execSlot( "currentIndexChanged(int)", i ) } ) ::AddAsChild( SELF ) RETURN Self @@ -204,21 +196,51 @@ METHOD XbpComboBox:destroy() /*----------------------------------------------------------------------*/ -METHOD XbpComboBox:exeBlock( nMsg, p1 ) +METHOD XbpComboBox:execSlot( cSlot, p ) - HB_SYMBOL_UNUSED( p1 ) + HB_SYMBOL_UNUSED( p ) DO CASE - CASE nMsg == 1 - IF hb_isBlock( ::sl_itemMarked ) - eval( ::sl_itemMarked, NIL, NIL, self ) - ENDIF - CASE nMsg == 2 - IF hb_isBlock( ::sl_itemSelected ) - eval( ::sl_itemSelected, NIL, NIL, self ) - ENDIF + CASE cSlot == "highlighted(int)" + ::itemMarked() + CASE cSlot == "activated(int)" + ::itemSelected() + CASE cSlot == "currentIndexChanged(int)" ENDCASE RETURN .t. /*----------------------------------------------------------------------*/ + +METHOD XbpComboBox:itemMarked( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemMarked := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_itemMarked ) + eval( ::sl_itemMarked, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpComboBox:itemSelected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemSelected := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_itemSelected ) + eval( ::sl_itemSelected, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpComboBox:drawItem( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_xbePDrawItem := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_xbePDrawItem ) + eval( ::sl_xbePDrawItem, a_[ 1 ], a_[ 2 ], Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpdataref.prg b/harbour/contrib/hbxbp/xbpdataref.prg index e7fd261724..920c40309b 100644 --- a/harbour/contrib/hbxbp/xbpdataref.prg +++ b/harbour/contrib/hbxbp/xbpdataref.prg @@ -81,19 +81,14 @@ CLASS XbpDataRef DATA sl_undo INIT NIL DATA undoBuffer INIT NIL DATA sl_validate INIT NIL - - METHOD new() - DATA sl_editBuffer DATA sl_buffer - ACCESS editBuffer INLINE ::sl_editBuffer - ASSIGN editBuffer( xData ) INLINE ::sl_editBuffer := xData - + METHOD new() METHOD getData() METHOD setData( xValue, mp2 ) METHOD undo() - + METHOD editBuffer( xData ) SETGET METHOD validate( xParam ) SETGET ENDCLASS @@ -211,7 +206,7 @@ METHOD XbpDataRef:undo() METHOD XbpDataRef:validate( xParam ) - IF PCount() == 0 .and. hb_isBlock( ::sl_validate ) + IF PCount() == 0 .AND. hb_isBlock( ::sl_validate ) RETURN eval( ::sl_validate, self ) ELSEIF hb_isBlock( xParam ) ::sl_validate := xParam @@ -220,3 +215,14 @@ METHOD XbpDataRef:validate( xParam ) RETURN .t. /*----------------------------------------------------------------------*/ + +METHOD XbpDataRef:editBuffer( xData ) + + IF !( xData == NIL ) + ::sl_editBuffer := xData + ENDIF + + RETURN ::sl_editBuffer + +/*----------------------------------------------------------------------*/ + diff --git a/harbour/contrib/hbxbp/xbpdialog.prg b/harbour/contrib/hbxbp/xbpdialog.prg index afd5a5254d..8d73c0495d 100644 --- a/harbour/contrib/hbxbp/xbpdialog.prg +++ b/harbour/contrib/hbxbp/xbpdialog.prg @@ -93,13 +93,12 @@ CLASS XbpDialog FROM XbpWindow DATA origin INIT XBPDLG_ORIGIN_OWNER DATA sysMenu INIT .T. - METHOD new( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVisible, pQtObject ) METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD handleEvent( nEvent, mp1, mp2 ) VIRTUAL - METHOD exeBlock( nEvent, pEvent ) + METHOD execEvent( nEvent, pEvent ) METHOD close() INLINE NIL METHOD destroy() @@ -114,7 +113,6 @@ CLASS XbpDialog FROM XbpWindow METHOD calcClientRect() INLINE { 0, 0, ::oWidget:width(), ::oWidget:height() } METHOD calcFrameRect() INLINE { ::oWidget:x(), ::oWidget:y(), ; ::oWidget:x()+::oWidget:width(), ::oWidget:y()+::oWidget:height() } - DATA aMaxSize METHOD maxSize( aSize ) SETGET DATA aMinSize @@ -211,8 +209,6 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::show() ENDIF - //SetAppWindow( Self ) /* This should never be done here, it is programmers responsibility */ - /* Install Event Loop per Dialog Basis */ ::oEventLoop := QEventLoop():new( ::pWidget ) hbxbp_SetEventLoop( ::oEventLoop ) @@ -222,9 +218,9 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::connectWindowEvents() // - ::connectEvent( ::pWidget, QEvent_Close , {|e| ::exeBlock( QEvent_Close , e ) } ) - ::connectEvent( ::pWidget, QEvent_WindowActivate , {|e| ::exeBlock( QEvent_WindowActivate , e ) } ) - ::connectEvent( ::pWidget, QEvent_WindowDeactivate, {|e| ::exeBlock( QEvent_WindowDeactivate, e ) } ) + ::connectEvent( ::pWidget, QEvent_Close , {|e| ::execEvent( QEvent_Close , e ) } ) + ::connectEvent( ::pWidget, QEvent_WindowActivate , {|e| ::execEvent( QEvent_WindowActivate , e ) } ) + ::connectEvent( ::pWidget, QEvent_WindowDeactivate, {|e| ::execEvent( QEvent_WindowDeactivate, e ) } ) RETURN Self @@ -243,8 +239,6 @@ METHOD XbpDialog:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, l METHOD XbpDialog:destroy() LOCAL qtObj - HB_TRACE( HB_TR_ALWAYS, ". " ) - HB_TRACE( HB_TR_ALWAYS, ". " ) HB_TRACE( HB_TR_ALWAYS, ". " ) HB_TRACE( HB_TR_ALWAYS, "<<<<<<<<<< XbpDialog:destroy B >>>>>>>>>>" ) @@ -266,14 +260,12 @@ METHOD XbpDialog:destroy() HB_TRACE( HB_TR_ALWAYS, "<<<<<<<<<< XbpDialog:destroy E >>>>>>>>>>" ) HB_TRACE( HB_TR_ALWAYS, ". " ) - HB_TRACE( HB_TR_ALWAYS, ". " ) - HB_TRACE( HB_TR_ALWAYS, ". " ) RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpDialog:exeBlock( nEvent, pEvent ) +METHOD XbpDialog:execEvent( nEvent, pEvent ) HB_SYMBOL_UNUSED( pEvent ) diff --git a/harbour/contrib/hbxbp/xbpfiledialog.prg b/harbour/contrib/hbxbp/xbpfiledialog.prg index 2e15401987..57724a1d10 100644 --- a/harbour/contrib/hbxbp/xbpfiledialog.prg +++ b/harbour/contrib/hbxbp/xbpfiledialog.prg @@ -87,7 +87,7 @@ CLASS XbpFileDialog INHERIT XbpWindow METHOD new( oParent, oOwner, aPos ) METHOD create( oParent, oOwner, aPos ) - METHOD exeBlock( nEvent, p1 ) + METHOD execSlot( cSlot, p ) METHOD destroy() METHOD open( cDefaultFile, lCenter, lAllowMultiple, lCreateNewFiles ) METHOD saveAs( cDefaultFile, lFileList, lCenter ) @@ -112,30 +112,30 @@ METHOD XbpFileDialog:create( oParent, oOwner, aPos ) ::oWidget := QFileDialog():new( ::pParent ) //::oWidget:setStyle( AppDesktop():style() ) - ::setStyle() + //::setStyle() //::setColorBG( GraMakeRGBColor( { 255,255,255 } ) ) //::setColorFG( GraMakeRGBColor( { 0,0,0 } ) ) - ::connect( ::pWidget, "accepted()" , {|p| ::exeBlock( 1, p ) } ) - ::connect( ::pWidget, "finished(int)" , {|p| ::exeBlock( 2, p ) } ) - ::connect( ::pWidget, "rejected()" , {|p| ::exeBlock( 3, p ) } ) - ::connect( ::pWidget, "currentChanged(QString)" , {|p| ::exeBlock( 4, p ) } ) - ::connect( ::pWidget, "directoryEntered(QString)" , {|p| ::exeBlock( 5, p ) } ) - ::connect( ::pWidget, "fileSelected(QString)" , {|p| ::exeBlock( 6, p ) } ) - ::connect( ::pWidget, "filesSelected(QStringList)", {|p| ::exeBlock( 7, p ) } ) - ::connect( ::pWidget, "filterSelected(QString)" , {|p| ::exeBlock( 8, p ) } ) + ::connect( ::oWidget, "accepted()" , {|p| ::execSlot( "accepted()" , p ) } ) + ::connect( ::oWidget, "finished(int)" , {|p| ::execSlot( "finished(int)" , p ) } ) + ::connect( ::oWidget, "rejected()" , {|p| ::execSlot( "rejected()" , p ) } ) + ::connect( ::oWidget, "currentChanged(QString)" , {|p| ::execSlot( "currentChanged(QString)" , p ) } ) + ::connect( ::oWidget, "directoryEntered(QString)" , {|p| ::execSlot( "directoryEntered(QString)" , p ) } ) + ::connect( ::oWidget, "fileSelected(QString)" , {|p| ::execSlot( "fileSelected(QString)" , p ) } ) + ::connect( ::oWidget, "filesSelected(QStringList)", {|p| ::execSlot( "filesSelected(QStringList)", p ) } ) + ::connect( ::oWidget, "filterSelected(QString)" , {|p| ::execSlot( "filterSelected(QString)" , p ) } ) RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpFileDialog:exeBlock( nEvent, p1 ) +METHOD XbpFileDialog:execSlot( cSlot, p ) LOCAL nRet := XBP_ALLOW - HB_SYMBOL_UNUSED( p1 ) + HB_SYMBOL_UNUSED( p ) DO CASE - CASE nEvent == 3 + CASE cSlot == "rejected()" IF hb_isBlock( ::sl_quit ) nRet := eval( ::sl_quit, 0, 0, Self ) ENDIF diff --git a/harbour/contrib/hbxbp/xbpfontdialog.prg b/harbour/contrib/hbxbp/xbpfontdialog.prg index 3b72179868..fd7b53961c 100644 --- a/harbour/contrib/hbxbp/xbpfontdialog.prg +++ b/harbour/contrib/hbxbp/xbpfontdialog.prg @@ -119,32 +119,25 @@ CLASS XbpFontDialog INHERIT XbpWindow METHOD new( oParent, oOwner, oScreenPS, oPrinterPS, aPos ) METHOD create( oParent, oOwner, oScreenPS, oPrinterPS, aPos ) - METHOD exeBlock( nEvent, p1 ) + METHOD execSlot( cSlot, p ) METHOD display( nMode ) METHOD destroy() METHOD XbpFontObject() DATA sl_activateApply - ACCESS activateApply INLINE ::sl_activateApply - ASSIGN activateApply( bBlock ) INLINE ::sl_activateApply := bBlock - DATA sl_activateCancel - ACCESS activateCancel INLINE ::sl_activateCancel - ASSIGN activateCancel( bBlock ) INLINE ::sl_activateCancel := bBlock - DATA sl_activateOk - ACCESS activateOk INLINE ::sl_activateOk - ASSIGN activateOk( bBlock ) INLINE ::sl_activateOk := bBlock - DATA sl_activateReset - ACCESS activateReset INLINE ::sl_activateReset - ASSIGN activateReset( bBlock ) INLINE ::sl_activateReset := bBlock + + METHOD activateApply( ... ) SETGET + METHOD activateCancel( ... ) SETGET + METHOD activateOk( ... ) SETGET + METHOD activateReset( ... ) SETGET DATA oScreenPS DATA oPrinterPS DATA aPos INIT { 0, 0 } DATA ok INIT .f. - DATA oFont ENDCLASS @@ -200,28 +193,26 @@ METHOD XbpFontDialog:create( oParent, oOwner, oScreenPS, oPrinterPS, aPos ) ::oWidget:setWindowTitle( ::title ) ENDIF - ::connect( ::pwidget, "accepted()" , {|p| ::exeBlock( 1, p ) } ) - ::connect( ::pwidget, "finished(int)" , {|p| ::exeBlock( 2, p ) } ) - ::connect( ::pwidget, "rejected()" , {|p| ::exeBlock( 3, p ) } ) - ::connect( ::pwidget, "currentFontChanged(QFont)", {|p| ::exeBlock( 4, p ) } ) - ::connect( ::pwidget, "fontSelected(QFont)" , {|p| ::exeBlock( 5, p ) } ) + ::connect( ::pwidget, "accepted()" , {|p| ::execSlot( "accepted()" , p ) } ) + ::connect( ::pwidget, "finished(int)" , {|p| ::execSlot( "finished(int)" , p ) } ) + ::connect( ::pwidget, "rejected()" , {|p| ::execSlot( "rejected()" , p ) } ) + ::connect( ::pwidget, "currentFontChanged(QFont)", {|p| ::execSlot( "currentFontChanged(QFont)", p ) } ) + ::connect( ::pwidget, "fontSelected(QFont)" , {|p| ::execSlot( "fontSelected(QFont)" , p ) } ) RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpFontDialog:exeBlock( nEvent, p1 ) +METHOD XbpFontDialog:execSlot( cSlot, p ) LOCAL nRet := XBP_ALLOW - HB_SYMBOL_UNUSED( p1 ) - + HB_SYMBOL_UNUSED( p ) + DO CASE - CASE nEvent == 1 - IF hb_isBlock( ::sl_activateOk ) - eval( ::sl_activateOk, ::XbpFontObject(), NIL, Self ) - ENDIF + CASE cSlot == "accepted()" + ::activateOk( ::XbpFontObject() ) - CASE nEvent == 3 + CASE cSlot == "rejected()" IF hb_isBlock( ::sl_quit ) nRet := eval( ::sl_quit, 0, 0, Self ) ENDIF @@ -231,10 +222,9 @@ METHOD XbpFontDialog:exeBlock( nEvent, p1 ) ::oWidget:accept() ENDIF - CASE nEvent == 4 /* SIMULATE sl_activateApply for timebeing */ - IF hb_isBlock( ::sl_activateApply ) - eval( ::sl_activateApply, ::XbpFontObject(), NIL, self ) - ENDIF + CASE cSlot == "currentFontChanged(QFont)" /* SIMULATE sl_activateApply for timebeing */ + ::activateApply( ::XbpFontObject() ) + ENDCASE RETURN nRet @@ -280,6 +270,50 @@ METHOD XbpFontDialog:destroy() /*----------------------------------------------------------------------*/ +METHOD XbpFontDialog:activateApply( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_activateApply := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_activateApply ) + eval( ::sl_activateApply, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpFontDialog:activateCancel( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_activateCancel := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_activateCancel ) + eval( ::sl_activateCancel, a_[ 1 ], a_[ 2 ], Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpFontDialog:activateOk( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_activateOk := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_activateOk ) + eval( ::sl_activateOk, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpFontDialog:activateReset( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_activateReset := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_activateReset ) + eval( ::sl_activateReset, a_[ 1 ], a_[ 2 ], Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD XbpFontDialog:XbpFontObject() LOCAL oXbp diff --git a/harbour/contrib/hbxbp/xbphtmlviewer.prg b/harbour/contrib/hbxbp/xbphtmlviewer.prg index 87558dff2a..4d28eb47e6 100644 --- a/harbour/contrib/hbxbp/xbphtmlviewer.prg +++ b/harbour/contrib/hbxbp/xbphtmlviewer.prg @@ -98,7 +98,7 @@ CLASS XbpHTMLViewer INHERIT XbpWindow METHOD new( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() - METHOD exeBlock( nEvent, p1 ) + METHOD execSlot( cSlot, p ) METHOD setHTML( cHTML ) INLINE ::oWidget:setHTML( cHTML ) @@ -157,15 +157,15 @@ METHOD XbpHTMLViewer:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible #if 0 /* Discontinued till QWebKit is integrated separately - Pritpal */ ::oWidget := QWebView():new( ::pParent ) - ::Connect( ::oWidget, "iconChanged()" , {|p| ::exeBlock( 1, p ) } ) - ::Connect( ::oWidget, "linkClicked(QUrl)" , {|p| ::exeBlock( 2, p ) } ) - ::Connect( ::oWidget, "loadFinished(bool)" , {|p| ::exeBlock( 3, p ) } ) - ::Connect( ::oWidget, "loadProgress(int)" , {|p| ::exeBlock( 4, p ) } ) - ::Connect( ::oWidget, "loadStarted()" , {|p| ::exeBlock( 5, p ) } ) - ::Connect( ::oWidget, "titleChanged(QString)" , {|p| ::exeBlock( 6, p ) } ) - ::Connect( ::oWidget, "urlChanged(QUrl)" , {|p| ::exeBlock( 7, p ) } ) - ::Connect( ::oWidget, "selectionChanged()" , {|p| ::exeBlock( 8, p ) } ) - ::Connect( ::oWidget, "statusBarMessage(QString)", {|p| ::exeBlock( 9, p ) } ) + ::Connect( ::oWidget, "iconChanged()" , {|p| ::execSlot( "iconChanged()" , p ) } ) + ::Connect( ::oWidget, "linkClicked(QUrl)" , {|p| ::execSlot( "linkClicked(QUrl)" , p ) } ) + ::Connect( ::oWidget, "loadFinished(bool)" , {|p| ::execSlot( "loadFinished(bool)" , p ) } ) + ::Connect( ::oWidget, "loadProgress(int)" , {|p| ::execSlot( "loadProgress(int)" , p ) } ) + ::Connect( ::oWidget, "loadStarted()" , {|p| ::execSlot( "loadStarted()" , p ) } ) + ::Connect( ::oWidget, "titleChanged(QString)" , {|p| ::execSlot( "titleChanged(QString)" , p ) } ) + ::Connect( ::oWidget, "urlChanged(QUrl)" , {|p| ::execSlot( "urlChanged(QUrl)" , p ) } ) + ::Connect( ::oWidget, "selectionChanged()" , {|p| ::execSlot( "selectionChanged()" , p ) } ) + ::Connect( ::oWidget, "statusBarMessage(QString)", {|p| ::execSlot( "statusBarMessage(QString)", p ) } ) #if 0 ::mapEvent( evNavigateComplete, {| cURL | ::xNavigateComplete( cURL ) } ) #endif @@ -203,39 +203,39 @@ METHOD XbpHTMLViewer:destroy() /*----------------------------------------------------------------------*/ -METHOD XbpHTMLViewer:exeBlock( nEvent, p1 ) +METHOD XbpHTMLViewer:execSlot( cSlot, p ) DO CASE - CASE nEvent == 1 + CASE cSlot == "iconChanged()" IF hb_isBlock( ::sl_beforeNavigate ) eval( ::sl_beforeNavigate, /*cURL*/, NIL, Self ) ENDIF - CASE nEvent == 2 - CASE nEvent == 3 + CASE cSlot == "linkClicked(QUrl)" + CASE cSlot == "loadFinished(bool)" IF hb_isBlock( ::sl_documentComplete ) - eval( ::sl_documentComplete, /*cURI*/, p1, Self ) + eval( ::sl_documentComplete, /*cURI*/, p, Self ) ENDIF - CASE nEvent == 4 + CASE cSlot == "loadProgress(int)" IF hb_isBlock( ::sl_progressChange ) - eval( ::sl_progressChange, p1, 100, Self ) + eval( ::sl_progressChange, p, 100, Self ) ENDIF - CASE nEvent == 5 - CASE nEvent == 6 + CASE cSlot == "loadStarted()" + CASE cSlot == "titleChanged(QString)" IF hb_isBlock( ::sl_titleChange ) - eval( ::sl_titleChange, p1, NIL, Self ) + eval( ::sl_titleChange, p, NIL, Self ) ENDIF - CASE nEvent == 7 - CASE nEvent == 8 + CASE cSlot == "urlChanged(QUrl)" + CASE cSlot == "selectionChanged()" ::cSelectedText := ::oWidget:selectedText() HB_TRACE( HB_TR_DEBUG, ::cSelectedText ) - CASE nEvent == 9 + CASE cSlot == "statusBarMessage(QString)" IF hb_isBlock( ::sl_statusTextChange ) - eval( ::sl_statusTextChange, p1, NIL, Self ) + eval( ::sl_statusTextChange, p, NIL, Self ) ENDIF ENDCASE - RETURN nil - + RETURN Self + /*----------------------------------------------------------------------*/ METHOD XbpHTMLViewer:navigate( cURL ) diff --git a/harbour/contrib/hbxbp/xbplistbox.prg b/harbour/contrib/hbxbp/xbplistbox.prg index 871757c896..2b6002a6ed 100644 --- a/harbour/contrib/hbxbp/xbplistbox.prg +++ b/harbour/contrib/hbxbp/xbplistbox.prg @@ -91,7 +91,7 @@ CLASS XbpListBox INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( nMode, pModel ) + METHOD execSlot( cSlot, p ) METHOD setStyle() @@ -120,32 +120,22 @@ CLASS XbpListBox INHERIT XbpWindow, XbpDataRef DATA sl_hScroll - ACCESS hScroll INLINE ::sl_hScroll - ASSIGN hScroll( bBlock ) INLINE ::sl_hScroll := bBlock - DATA sl_vScroll - ACCESS vScroll INLINE ::sl_vScroll - ASSIGN vScroll( bBlock ) INLINE ::sl_vScroll := bBlock - DATA sl_itemMarked - ACCESS itemMarked INLINE ::sl_itemMarked - ASSIGN itemMarked( bBlock ) INLINE ::sl_itemMarked := bBlock - DATA sl_itemSelected - ACCESS itemSelected INLINE ::sl_itemSelected - ASSIGN itemSelected( bBlock ) INLINE ::sl_itemSelected := bBlock - DATA sl_drawItem - ACCESS drawItem INLINE ::sl_drawItem - ASSIGN drawItem( bBlock ) INLINE ::sl_drawItem := bBlock - DATA sl_measureItem - ACCESS measureItem INLINE ::sl_measureItem - ASSIGN measureItem( bBlock ) INLINE ::sl_measureItem := bBlock - DATA nCurSelected INIT 0 - METHOD getCurItem() INLINE ::getItem( ::nCurSelected ) + METHOD getCurItem() INLINE ::getItem( ::nCurSelected ) + + METHOD itemMarked( ... ) SETGET + METHOD itemSelected( ... ) SETGET + METHOD drawItem( ... ) SETGET + METHOD measureItem( ... ) SETGET + METHOD hScroll( ... ) SETGET + METHOD vScroll( ... ) SETGET + ENDCLASS /*----------------------------------------------------------------------*/ @@ -183,9 +173,9 @@ METHOD XbpListBox:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::connectEvent( ::pWidget, QEvent_ContextMenu, {|e| ::grabEvent( QEvent_ContextMenu, e ) } ) /* Signal-slots */ - ::Connect( ::pWidget, "clicked(QModelIndex)" , {|i| ::exeBlock( 1, i ) } ) - ::Connect( ::pWidget, "doubleClicked(QModelIndex)", {|i| ::exeBlock( 2, i ) } ) - ::Connect( ::pWidget, "entered(QModelIndex)" , {|i| ::exeBlock( 3, i ) } ) + ::Connect( ::pWidget, "clicked(QModelIndex)" , {|p| ::execSlot( "clicked(QModelIndex)" , p ) } ) + ::Connect( ::pWidget, "doubleClicked(QModelIndex)", {|p| ::execSlot( "doubleClicked(QModelIndex)", p ) } ) + ::Connect( ::pWidget, "entered(QModelIndex)" , {|p| ::execSlot( "entered(QModelIndex)" , p ) } ) ::oStrList := QStringList():new( ::pWidget ) ::oStrModel := QStringListModel():new( ::pWidget ) @@ -208,31 +198,26 @@ METHOD XbpListBox:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, IF hb_isPointer( pQtObject ) ::oWidget := QListView() ::oWidget:pPtr := pQtObject - ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpListBox:exeBlock( nMode, pModel ) +METHOD XbpListBox:execSlot( cSlot, p ) LOCAL oModel - IF hb_isPointer( pModel ) - oModel := QModelIndex():configure( pModel ) + IF hb_isPointer( p ) + oModel := QModelIndex():configure( p ) ::nCurSelected := oModel:row()+1 ::sl_editBuffer := oModel:row()+1 ENDIF - IF nMode == 1 - IF hb_isBlock( ::sl_itemMarked ) - eval( ::sl_itemMarked, NIL, NIL, self ) - ENDIF - ELSEIF nMode == 2 - IF hb_isBlock( ::sl_itemSelected ) - eval( ::sl_itemSelected, NIL, NIL, self ) - ENDIF - ELSEIF nMode == 3 // mouse cursor is on - // set the tooltip + + IF cSlot == "clicked(QModelIndex)" + ::itemMarked() + ELSEIF cSlot == "doubleClicked(QModelIndex)" + ::itemSelected() + ELSEIF cSlot == "entered(QModelIndex)" ::oWidget:setToolTip( ::oStrList:at( ::nCurSelected - 1 ) ) ENDIF @@ -271,6 +256,72 @@ METHOD XbpListBox:destroy() /*----------------------------------------------------------------------*/ +METHOD XbpListBox:itemMarked( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemMarked := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_itemMarked ) + eval( ::sl_itemMarked, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpListBox:itemSelected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemSelected := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_itemSelected ) + eval( ::sl_itemSelected, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpListBox:drawItem( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_xbePDrawItem := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_xbePDrawItem ) + eval( ::sl_xbePDrawItem, a_[ 1 ], a_[ 2 ], Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpListBox:measureItem( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_measureItem := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_measureItem ) + eval( ::sl_measureItem, a_[ 1 ], a_[ 2 ], Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpListBox:hScroll( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_hScroll := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_hScroll ) + eval( ::sl_hScroll, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpListBox:vScroll( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_vScroll := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_vScroll ) + eval( ::sl_vScroll, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD XbpListBox:setStyle() LOCAL s, txt_:={} diff --git a/harbour/contrib/hbxbp/xbpmenubar.prg b/harbour/contrib/hbxbp/xbpmenubar.prg index f664486c1e..33b3600541 100644 --- a/harbour/contrib/hbxbp/xbpmenubar.prg +++ b/harbour/contrib/hbxbp/xbpmenubar.prg @@ -97,6 +97,7 @@ CLASS xbpMenuBar INHERIT xbpWindow + CLASSVAR nMenuItemID INIT 0 DATA hMenu DATA sl_beginMenu @@ -109,14 +110,10 @@ CLASS xbpMenuBar INHERIT xbpWindow DATA aMenuItems INIT {} DATA aOrgItems INIT {} - - CLASSVAR nMenuItemID INIT 0 DATA nPass INIT 0 - DATA caption INIT "" DATA nItemID INIT 0 DATA aIds INIT {} - DATA className INIT "XbpMenuBar" METHOD new( oParent, aPresParams, lVisible ) @@ -124,7 +121,7 @@ CLASS xbpMenuBar INHERIT xbpWindow METHOD hbCreateFromQtPtr( oParent, aPresParams, lVisible, pQtObject ) METHOD configure( oParent, aPresParams, lVisible ) METHOD destroy() - METHOD exeBlock( nMenuItemID ) + METHOD execSlot( cSlot, p ) METHOD delAllItems() METHOD delItem( aItem ) @@ -132,7 +129,6 @@ CLASS xbpMenuBar INHERIT xbpWindow METHOD addItem( aItem ) METHOD insItem( nItemIndex, aItem ) METHOD setItem( nItemIndex, aItem ) - METHOD exeHovered( nMenuItemID ) METHOD checkItem( nItemIndex, lCheck ) METHOD enableItem( nItemIndex ) METHOD disableItem( nItemIndex ) @@ -141,13 +137,13 @@ CLASS xbpMenuBar INHERIT xbpWindow METHOD isItemEnabled( nItemIndex ) METHOD selectItem( nItemIndex ) - METHOD beginMenu( xParam ) SETGET - METHOD endMenu( xParam ) SETGET - METHOD itemMarked( xParam ) SETGET - METHOD itemSelected( xParam ) SETGET - METHOD drawItem( xParam ) SETGET - METHOD measureItem( xParam ) SETGET - METHOD onMenuKey( xParam ) SETGET + METHOD beginMenu( ... ) SETGET + METHOD endMenu( ... ) SETGET + METHOD itemMarked( ... ) SETGET + METHOD itemSelected( ... ) SETGET + METHOD drawItem( ... ) SETGET + METHOD measureItem( ... ) SETGET + METHOD onMenuKey( ... ) SETGET METHOD setStyle() METHOD numItems() INLINE len( ::aMenuItems ) @@ -307,8 +303,8 @@ METHOD xbpMenuBar:placeItem( xCaption, bAction, nStyle, nAttrb, nMode, nPos ) oAction:setShortcut( oKey ) ENDIF - ::Connect( oAction, "triggered(bool)", {|| ::exeBlock( nMenuItemID ) } ) - ::Connect( oAction, "hovered()" , {|| ::exeHovered( nMenuItemID ) } ) + ::Connect( oAction, "triggered(bool)", {|| ::execSlot( "triggered(bool)", nMenuItemID ) } ) + ::Connect( oAction, "hovered()" , {|| ::execSlot( "hovered()" , nMenuItemID ) } ) DO CASE CASE nAttrb == XBPMENUBAR_MIA_CHECKED @@ -341,8 +337,8 @@ METHOD xbpMenuBar:placeItem( xCaption, bAction, nStyle, nAttrb, nMode, nPos ) oAction := xCaption - ::Connect( oAction, "triggered(bool)", {|| ::exeBlock( nMenuItemID ) } ) - ::Connect( oAction, "hovered()" , {|| ::exeHovered( nMenuItemID ) } ) + ::Connect( oAction, "triggered(bool)", {|| ::execSlot( "triggered(bool)", nMenuItemID ) } ) + ::Connect( oAction, "hovered()" , {|| ::execSlot( "hovered()" , nMenuItemID ) } ) DO CASE CASE nAttrb == XBPMENUBAR_MIA_CHECKED @@ -454,39 +450,6 @@ METHOD xbpMenuBar:setItem( nItemIndex, aItem ) /*----------------------------------------------------------------------*/ -METHOD xbpMenuBar:exeBlock( nMenuItemID ) - LOCAL nIndex := ascan( ::aMenuItems, {|e_| e_[ 2 ] == nMenuItemID } ) - - IF nIndex > 0 - IF hb_isBlock( ::aMenuItems[ nIndex,4 ] ) - eval( ::aMenuItems[ nIndex,4 ] ) - ELSE - IF hb_isBlock( ::sl_itemSelected ) - eval( ::sl_itemSelected, nIndex, NIL, Self ) - ENDIF - ENDIF - ENDIF - - RETURN nil - -/*----------------------------------------------------------------------*/ - -METHOD xbpMenuBar:exeHovered( nMenuItemID ) - LOCAL nIndex - - IF !empty( nMenuItemID ) - nIndex := ascan( ::aMenuItems, {|e_| iif( hb_isNumeric( e_[ 2 ] ), e_[ 2 ] == nMenuItemID, .f. ) } ) - - IF nIndex > 0 - IF hb_isBlock( ::sl_itemMarked ) - eval( ::sl_itemMarked, nIndex, NIL, Self ) - ENDIF - ENDIF - ENDIF - RETURN nil - -/*----------------------------------------------------------------------*/ - METHOD xbpMenuBar:checkItem( nItemIndex, lCheck ) LOCAL lChecked @@ -568,79 +531,104 @@ METHOD xbpMenuBar:selectItem( nItemIndex ) /* Callback Methods */ /*----------------------------------------------------------------------*/ -METHOD xbpMenuBar:beginMenu( xParam ) +METHOD xbpMenuBar:execSlot( cSlot, p ) + LOCAL nIndex - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_beginMenu := xParam - RETURN NIL - endif + IF cSlot == "triggered(bool)" + if ( nIndex := ascan( ::aMenuItems, {|e_| e_[ 2 ] == p } ) ) > 0 + IF hb_isBlock( ::aMenuItems[ nIndex,4 ] ) + eval( ::aMenuItems[ nIndex,4 ] ) + ELSE + ::itemSelected( nIndex ) + ENDIF + ENDIF + + ELSEIF cSlot == "hovered()" + IF !empty( p ) + IF ( nIndex := ascan( ::aMenuItems, {|e_| iif( hb_isNumeric( e_[ 2 ] ), e_[ 2 ] == p, .f. ) } ) ) > 0 + ::itemMarked( nIndex ) + ENDIF + ENDIF + + ENDIF + RETURN nil + +/*----------------------------------------------------------------------*/ + +METHOD xbpMenuBar:beginMenu( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_beginMenu := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_beginMenu ) + eval( ::sl_beginMenu, NIL, NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD xbpMenuBar:endMenu( xParam ) - - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_endMenu := xParam - RETURN NIL - endif - +METHOD XbpMenuBar:endMenu( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_endMenu := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_endMenu ) + eval( ::sl_endMenu, NIL, NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD xbpMenuBar:itemMarked( xParam ) - - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_itemMarked := xParam - RETURN NIL - endif - +METHOD XbpMenuBar:itemMarked( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemMarked := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_itemMarked ) + eval( ::sl_itemMarked, a_[ 1 ], NIL, Self ) + ENDIF RETURN Self - + +/*----------------------------------------------------------------------*/ + +METHOD XbpMenuBar:itemSelected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemSelected := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_itemSelected ) + eval( ::sl_itemSelected, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpMenuBar:drawItem( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_drawItem := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_drawItem ) + eval( ::sl_drawItem, a_[ 1 ], a_[ 2 ], Self ) + ENDIF + RETURN Self + /*----------------------------------------------------------------------*/ -METHOD xbpMenuBar:itemSelected( xParam ) - - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_itemSelected := xParam - RETURN NIL - endif - +METHOD XbpMenuBar:measureItem( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_measureItem := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_measureItem ) + eval( ::sl_measureItem, a_[ 1 ], a_[ 2 ], Self ) + ENDIF RETURN Self - + /*----------------------------------------------------------------------*/ -METHOD xbpMenuBar:drawItem( xParam ) - - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_drawItem := xParam - RETURN NIL - endif - - RETURN Self - -/*----------------------------------------------------------------------*/ - -METHOD xbpMenuBar:measureItem( xParam ) - - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_measureItem := xParam - RETURN NIL - endif - - RETURN Self - -/*----------------------------------------------------------------------*/ - -METHOD xbpMenuBar:onMenuKey( xParam ) - - if hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_onMenuKey := xParam - RETURN NIL - endif - +METHOD XbpMenuBar:onMenuKey( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_onMenuKey := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_onMenuKey ) + eval( ::sl_onMenuKey, a_[ 1 ], NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpmle.prg b/harbour/contrib/hbxbp/xbpmle.prg index 85abe5bb43..7fde495d7f 100644 --- a/harbour/contrib/hbxbp/xbpmle.prg +++ b/harbour/contrib/hbxbp/xbpmle.prg @@ -90,7 +90,7 @@ CLASS XbpMLE INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) VIRTUAL METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock() + METHOD execSlot( cSlot, p ) METHOD setStyle() METHOD clear() VIRTUAL @@ -109,23 +109,16 @@ CLASS XbpMLE INHERIT XbpWindow, XbpDataRef METHOD pos() VIRTUAL DATA sl_undo INIT .T. - ACCESS undo INLINE IF( ::sl_undo, NIL, NIL ) - ASSIGN undo() INLINE ::sl_undo := .t. - - METHOD setEditable( lYes ) INLINE ::xDummy := ::oWidget:readOnly(), ; - ::oWidget:setReadOnly( !lYes ), ::xDummy - METHOD setWrap( lWrap ) INLINE ::xDummy := ::oWidget:lineWrapMode(),; - ::oWidget:setLineWrapMode( IF( lWrap,1,0 ) ),; - ::xDummy == 1 - DATA sl_hScroll - ACCESS hScroll INLINE ::sl_hScroll - ASSIGN hScroll( bBlock ) INLINE ::sl_hScroll := bBlock - DATA sl_vScroll - ACCESS vScroll INLINE ::sl_vScroll - ASSIGN vScroll( bBlock ) INLINE ::sl_vScroll := bBlock + METHOD undo( ... ) SETGET + METHOD hScroll( ... ) SETGET + METHOD vScroll( ... ) SETGET + + METHOD setEditable( lYes ) + METHOD setWrap( lWrap ) + ENDCLASS /*----------------------------------------------------------------------*/ @@ -206,12 +199,62 @@ METHOD XbpMLE:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVis /*----------------------------------------------------------------------*/ -METHOD XbpMLE:exeBlock() +METHOD XbpMLE:execSlot( cSlot, p ) + HB_SYMBOL_UNUSED( cSlot ) + HB_SYMBOL_UNUSED( p ) + RETURN .t. /*----------------------------------------------------------------------*/ +METHOD XbpMLE:hScroll( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_hScroll := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_hScroll ) + eval( ::sl_hScroll, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpMLE:vScroll( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_vScroll := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_vScroll ) + eval( ::sl_vScroll, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpMLE:undo( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_undo := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_undo ) + eval( ::sl_undo, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpMLE:setWrap( lWrap ) + ::xDummy := ::oWidget:lineWrapMode() + ::oWidget:setLineWrapMode( iif( lWrap, 1, 0 ) ) + RETURN ::xDummy == 1 + +/*----------------------------------------------------------------------*/ + +METHOD XbpMLE:setEditable( lYes ) + ::xDummy := ::oWidget:readOnly() + ::oWidget:setReadOnly( !lYes ) + RETURN ! ::xDummy + +/*----------------------------------------------------------------------*/ + METHOD XbpMLE:handleEvent( nEvent, mp1, mp2 ) HB_SYMBOL_UNUSED( nEvent ) @@ -235,9 +278,6 @@ METHOD XbpMLE:setStyle() aadd( txt_, ' ' ) aadd( txt_, ' QTextEdit { ' ) - //aadd( txt_, ' background-color: white; ' ) - //aadd( txt_, ' background-image: url(new.png); ' ) - //aadd( txt_, ' background-attachment: scroll; ' ) aadd( txt_, ' background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, ' ) aadd( txt_, ' stop:0 white, stop:1 darkgray); ' ) aadd( txt_, ' } ' ) diff --git a/harbour/contrib/hbxbp/xbppushbutton.prg b/harbour/contrib/hbxbp/xbppushbutton.prg index e302845b80..c555d39364 100644 --- a/harbour/contrib/hbxbp/xbppushbutton.prg +++ b/harbour/contrib/hbxbp/xbppushbutton.prg @@ -85,6 +85,8 @@ CLASS XbpPushButton INHERIT XbpWindow DATA drawMode INIT XBP_DRAW_NORMAL DATA default INIT .F. DATA cancel INIT .F. + + DATA sl_draw METHOD new( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) @@ -92,15 +94,14 @@ CLASS XbpPushButton INHERIT XbpWindow METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( nMode, p ) + METHOD execSlot( cSlot, p ) METHOD setStyle() VIRTUAL METHOD setFocus() - METHOD setCaption( xCaption, cDll ) - - METHOD activate( xParam ) SETGET - METHOD draw( xParam ) SETGET + + METHOD activate( ... ) SETGET + METHOD draw( ... ) SETGET ENDCLASS @@ -132,8 +133,8 @@ METHOD XbpPushButton:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ::oWidget:setDefault( .t. ) ENDIF - ::Connect( ::pWidget, "clicked()", {|| ::exeBlock( 1 ) } ) - ::Connect( ::pWidget, "pressed()", {|| ::exeBlock( 1 ) } ) + ::Connect( ::pWidget, "clicked()", {|| ::execSlot( "clicked()" ) } ) + ::Connect( ::pWidget, "pressed()", {|| ::execSlot( "pressed()" ) } ) ::oParent:AddChild( SELF ) RETURN Self @@ -163,21 +164,19 @@ METHOD XbpPushButton:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParam ENDIF - ::Connect( ::pWidget, "clicked()", {|| ::exeBlock() } ) + ::Connect( ::pWidget, "clicked()", {|| ::execSlot( "clicked()" ) } ) ::addAsChild() RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpPushButton:exeBlock( nMode, p ) +METHOD XbpPushButton:execSlot( cSlot, p ) DO CASE - CASE nMode == 1 - IF hb_isBlock( ::sl_lbClick ) - eval( ::sl_lbClick, NIL, NIL, self ) - ENDIF - CASE nMode == 201 /* QEvent_KeyPressed */ + CASE cSlot == "clicked()" .OR. cSlot == "pressed()" + ::activate() + CASE cSlot == "keyPressed()" IF XbpQKeyEventToAppEvent( p ) == xbeK_ENTER ::oWidget:click() ENDIF @@ -242,22 +241,24 @@ METHOD XbpPushButton:setCaption( xCaption, cDll ) /*----------------------------------------------------------------------*/ -METHOD XbpPushButton:activate( xParam ) - - IF hb_isBlock( xParam ) .or. ( xParam == NIL ) - ::sl_lbClick := xParam - ENDIF - +METHOD XbpPushButton:activate( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbClick := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_lbClick ) + eval( ::sl_lbClick, NIL, NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpPushButton:draw( xParam ) - - IF hb_isBlock( xParam ) .or. ( xParam == NIL ) - ::sl_paint := xParam - ENDIF - +METHOD XbpPushButton:draw( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_draw := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_draw ) + eval( ::sl_draw, a_[ 1 ], a_[ 2 ], Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpradiobutton.prg b/harbour/contrib/hbxbp/xbpradiobutton.prg index 47248541c0..426cf3b214 100644 --- a/harbour/contrib/hbxbp/xbpradiobutton.prg +++ b/harbour/contrib/hbxbp/xbpradiobutton.prg @@ -86,12 +86,11 @@ CLASS XbpRadioButton INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock() + METHOD execSlot( cSlot, p ) METHOD setCaption( xCaption ) - ACCESS selected INLINE ::sl_lbClick - ASSIGN selected( bBlock ) INLINE ::sl_lbClick := bBlock + METHOD selected( ... ) SETGET ENDCLASS /*----------------------------------------------------------------------*/ @@ -110,7 +109,7 @@ METHOD XbpRadioButton:create( oParent, oOwner, aPos, aSize, aPresParams, lVisibl ::oWidget := QRadioButton():New( ::oParent:oWidget ) - ::connect( ::pWidget, "clicked()", {|| ::exeBlock() } ) + ::connect( ::pWidget, "clicked()", {|| ::execSlot( "clicked()" ) } ) ::setPosAndSize() IF ::visible @@ -134,20 +133,21 @@ METHOD XbpRadioButton:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresPara IF hb_isPointer( pQtObject ) ::oWidget := QRadioButton() ::oWidget:pPtr := pQtObject - ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpRadioButton:exeBlock() +METHOD XbpRadioButton:execSlot( cSlot, p ) - ::sl_editBuffer := .t. - IF hb_isBlock( ::sl_lbClick ) - eval( ::sl_lbClick, ::sl_editBuffer, NIL, self ) - ENDIF + HB_SYMBOL_UNUSED( p ) + IF cSlot == "clicked()" + ::sl_editBuffer := .t. + ::selected( ::sl_editBuffer ) + ENDIF + RETURN nil /*----------------------------------------------------------------------*/ @@ -188,3 +188,14 @@ METHOD XbpRadioButton:setCaption( xCaption ) RETURN Self /*----------------------------------------------------------------------*/ + +METHOD XbpRadioButton:selected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbClick := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbClick ) + eval( ::sl_lbClick, a_[ 1 ], NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbprtf.prg b/harbour/contrib/hbxbp/xbprtf.prg index 3a55c61cef..c2c52f907d 100644 --- a/harbour/contrib/hbxbp/xbprtf.prg +++ b/harbour/contrib/hbxbp/xbprtf.prg @@ -82,7 +82,7 @@ CLASS XbpRtf INHERIT XbpWindow METHOD configure() METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) VIRTUAL - METHOD exeBlock( nEvent, p1 ) + METHOD execSlot( cSlot, p ) METHOD setStyle() VIRTUAL DATA appearance INIT XBP_APPEARANCE_3D @@ -171,13 +171,13 @@ METHOD XbpRtf:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oWidget := QTextEdit():new( ::pParent ) -* ::connect( ::pWidget, "copyAvailable(bool)" , {|p| ::exeBlock( 1, p ) } ) - ::connect( ::pWidget, "currentCharFormatChanged(QTextCharFormat)", {|p| ::exeBlock( 2, p ) } ) - ::connect( ::pWidget, "cursorPositionChanged()" , {|p| ::exeBlock( 3, p ) } ) - ::connect( ::pWidget, "redoAvailable(bool)" , {|p| ::exeBlock( 4, p ) } ) - ::connect( ::pWidget, "undoAvailable(bool)" , {|p| ::exeBlock( 5, p ) } ) - ::connect( ::pWidget, "textChanged()" , {|p| ::exeBlock( 6, p ) } ) - ::connect( ::pWidget, "selectionChanged()" , {|p| ::exeBlock( 7, p ) } ) +* ::connect( ::oWidget, "copyAvailable(bool)" , {|p| ::execSlot( "copyAvailable(bool)" , p ) } ) + ::connect( ::oWidget, "currentCharFormatChanged(QTextCharFormat)", {|p| ::execSlot( "currentCharFormatChanged(QTextCharFormat)", p ) } ) + ::connect( ::oWidget, "cursorPositionChanged()" , {|p| ::execSlot( "cursorPositionChanged()", p ) } ) + ::connect( ::oWidget, "redoAvailable(bool)" , {|p| ::execSlot( "redoAvailable(bool)" , p ) } ) + ::connect( ::oWidget, "undoAvailable(bool)" , {|p| ::execSlot( "undoAvailable(bool)" , p ) } ) + ::connect( ::oWidget, "textChanged()" , {|p| ::execSlot( "textChanged()" , p ) } ) + ::connect( ::oWidget, "selectionChanged()" , {|p| ::execSlot( "selectionChanged()" , p ) } ) ::setPosAndSize() IF ::visible @@ -189,7 +189,6 @@ METHOD XbpRtf:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::oTextCursor:pPtr := ::oWidget:textCursor() ::oTextCharFormat:pPtr := ::oTextCursor:charFormat() - RETURN Self /*----------------------------------------------------------------------*/ @@ -208,23 +207,23 @@ METHOD XbpRtf:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVis /*----------------------------------------------------------------------*/ -METHOD XbpRtf:exeBlock( nEvent, p1 ) +METHOD XbpRtf:execSlot( cSlot, p ) - HB_SYMBOL_UNUSED( p1 ) + HB_SYMBOL_UNUSED( p ) DO CASE - CASE nEvent == 1 - CASE nEvent == 2 + CASE cSlot == "copyAvailable(bool)" + CASE cSlot == "currentCharFormatChanged(QTextCharFormat)" - CASE nEvent == 3 + CASE cSlot == "cursorPositionChanged()" ::oTextCursor:configure( ::oWidget:textCursor() ) ::oCurCursor := ::oTextCursor - CASE nEvent == 4 - CASE nEvent == 5 - CASE nEvent == 6 /* Xbase++ Implements */ - ::changed := .t. // .f. only at save + CASE cSlot == "redoAvailable(bool)" + CASE cSlot == "undoAvailable(bool)" + CASE cSlot == "textChanged()" /* Xbase++ Implements */ + ::changed := .t. /* .f. only at save */ ::change() - CASE nEvent == 7 /* Xbase++ Implements */ + CASE cSlot == "selectionChanged()" /* Xbase++ Implements */ ::oTextCursor:configure( ::oWidget:textCursor() ) ::oCurCursor := ::oTextCursor ::selChange() diff --git a/harbour/contrib/hbxbp/xbpscrollbar.prg b/harbour/contrib/hbxbp/xbpscrollbar.prg index 0da898e4f5..69e38fbc88 100644 --- a/harbour/contrib/hbxbp/xbpscrollbar.prg +++ b/harbour/contrib/hbxbp/xbpscrollbar.prg @@ -89,10 +89,10 @@ CLASS XbpScrollBar INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) VIRTUAL METHOD destroy() - METHOD scroll( xParam ) SETGET + METHOD scroll( ... ) SETGET METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( nAction ) + METHOD execSlot( cSlot, p ) METHOD setRange( aRange ) METHOD setScrollBoxSize( nUnits ) @@ -117,7 +117,7 @@ METHOD XbpScrollBar:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ::oWidget:setOrientation( IF( ::type == XBPSCROLL_VERTICAL, 2, 1 ) ) ::oWidget:setTracking( ::autoTrack ) - ::connect( ::pWidget, "actionTriggered(int)", {|i| ::exeBlock( i ) } ) + ::connect( ::pWidget, "actionTriggered(int)", {|i| ::execSlot( "actionTriggered(int)", i ) } ) ::setPosAndSize() ::setRange( ::range ) @@ -145,14 +145,16 @@ METHOD XbpScrollBar:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams /*----------------------------------------------------------------------*/ -METHOD XbpScrollBar:exeBlock( nAction ) +METHOD XbpScrollBar:execSlot( cSlot, p ) LOCAL nCommand + HB_SYMBOL_UNUSED( cSlot ) + IF !hb_isBlock( ::sl_xbeSB_Scroll ) RETURN NIL ENDIF - SWITCH nAction + SWITCH p CASE QAbstractSlider_SliderNoAction RETURN NIL CASE QAbstractSlider_SliderSingleStepAdd @@ -179,8 +181,7 @@ METHOD XbpScrollBar:exeBlock( nAction ) ENDSWITCH ::sl_editBuffer := ::oWidget:value() - - eval( ::sl_xbeSB_Scroll, { ::sl_editBuffer, nCommand }, NIL, self ) + ::scroll( { ::sl_editBuffer, nCommand } ) RETURN NIL @@ -204,12 +205,13 @@ METHOD XbpScrollBar:destroy() /*----------------------------------------------------------------------*/ -METHOD XbpScrollBar:scroll( xParam ) - - IF hb_isBlock( xParam ) - ::sl_xbeSB_Scroll := xParam - ENDIF - +METHOD XbpScrollBar:scroll( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_xbeSB_Scroll := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_xbeSB_Scroll ) + eval( ::sl_xbeSB_Scroll, a_[ 1 ], NIL, Self ) + ENDIF RETURN self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpsle.prg b/harbour/contrib/hbxbp/xbpsle.prg index 4eb0114718..b6a29995df 100644 --- a/harbour/contrib/hbxbp/xbpsle.prg +++ b/harbour/contrib/hbxbp/xbpsle.prg @@ -92,7 +92,7 @@ CLASS XbpSLE INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) VIRTUAL METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( nMsg, p1, p2 ) + METHOD execSlot( cSlot, p, p2 ) METHOD clear() INLINE ::oWidget:clear() METHOD copyMarked() INLINE ::oWidget:copy() @@ -107,18 +107,13 @@ CLASS XbpSLE INHERIT XbpWindow, XbpDataRef METHOD setInsertMode( lInsertMode ) VIRTUAL - DATA sl_hScroll - ACCESS hScroll INLINE ::sl_hScroll - ASSIGN hScroll( bBlock ) INLINE ::sl_hScroll := bBlock - DATA sl_typeOut - ACCESS typeOut INLINE ::sl_typeOut - ASSIGN typeOut( bBlock ) INLINE ::sl_typeOut := bBlock - - /* Harbour Extension */ + DATA sl_hScroll DATA sl_returnPressed - ACCESS returnPressed INLINE ::sl_returnPressed - ASSIGN returnPressed( bBlock ) INLINE ::sl_returnPressed := bBlock + + METHOD typeOut( ... ) SETGET + METHOD hScroll( ... ) SETGET + METHOD returnPressed( ... ) SETGET ENDCLASS @@ -132,6 +127,19 @@ METHOD XbpSLE:new( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) /*----------------------------------------------------------------------*/ +METHOD XbpSLE:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVisible, pQtObject ) + + ::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) + + IF hb_isPointer( pQtObject ) + ::oWidget := QLineEdit() + ::oWidget:pPtr := pQtObject + ENDIF + + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD XbpSLE:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) LOCAL es_:= { Qt_AlignLeft, Qt_AlignRight, Qt_AlignHCenter } @@ -155,16 +163,16 @@ METHOD XbpSLE:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) #if 0 ::oWidget:installEventFilter( ::pEvents ) - ::connectEvent( ::pWidget, QEvent_FocusIn , {|e| ::exeBlock( 7, e ) } ) - ::connectEvent( ::pWidget, QEvent_FocusOut, {|e| ::exeBlock( 8, e ) } ) + ::connectEvent( ::pWidget, QEvent_FocusIn , {|e| ::execSlot( "QEvent_FocusIn" , e ) } ) + ::connectEvent( ::pWidget, QEvent_FocusOut, {|e| ::execSlot( "QEvent_FocusOut", e ) } ) #endif - ::connect( ::pWidget, "cursorPositionChanged(int,int)" , {|i,ii| ::exeBlock( 1, i, ii ) } ) -* ::connect( ::pWidget, "editingFinished()" , {| | ::exeBlock( 2 ) } ) - ::connect( ::pWidget, "returnPressed()" , {| | ::exeBlock( 3 ) } ) -* ::connect( ::pWidget, "selectionChanged()" , {| | ::exeBlock( 4 ) } ) - ::connect( ::pWidget, "textChanged(QString)" , {|s | ::exeBlock( 5, s ) } ) - ::connect( ::pWidget, "textEdited(QString)" , {|s | ::exeBlock( 6, s ) } ) + ::connect( ::oWidget, "cursorPositionChanged(int,int)" , {|i,ii| ::execSlot( "cursorPositionChanged(int,int)", i, ii ) } ) +* ::connect( ::oWidget, "editingFinished()" , {| | ::execSlot( "editingFinished()" ) } ) + ::connect( ::oWidget, "returnPressed()" , {| | ::execSlot( "returnPressed()" ) } ) +* ::connect( ::oWidget, "selectionChanged()" , {| | ::execSlot( "selectionChanged()" ) } ) + ::connect( ::oWidget, "textChanged(QString)" , {|s | ::execSlot( "textChanged(QString)", s ) } ) + ::connect( ::oWidget, "textEdited(QString)" , {|s | ::execSlot( "textEdited(QString)" , s ) } ) ::setPosAndSize() IF ::visible @@ -180,71 +188,40 @@ METHOD XbpSLE:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) /*----------------------------------------------------------------------*/ -METHOD XbpSLE:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVisible, pQtObject ) +METHOD XbpSLE:execSlot( cSlot, p, p2 ) - ::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) - - IF hb_isPointer( pQtObject ) - ::oWidget := QLineEdit() - ::oWidget:pPtr := pQtObject - - ENDIF - - RETURN Self - -/*----------------------------------------------------------------------*/ - -METHOD XbpSLE:exeBlock( nMsg, p1, p2 ) - LOCAL lRet := .F. - -//HB_TRACE( HB_TR_DEBUG, 'XbpSLE: '+hb_ntos( nMsg ) ) - HB_SYMBOL_UNUSED( p1 ) + HB_SYMBOL_UNUSED( p ) DO CASE - CASE nMsg == 1 // "cursorPositionChanged(int,int)" - IF hb_isBlock( ::sl_hScroll ) - eval( ::sl_hScroll, NIL, NIL, self ) - ENDIF + CASE cSlot == "cursorPositionChanged(int,int)" + ::hScroll() IF p2 == ::bufferLength - IF hb_isBlock( ::sl_typeOut ) - eval( ::sl_typeOut, NIL, NIL, Self ) - ENDIF + ::typeOut() ENDIF - CASE nMsg == 2 // "editingFinished()" + CASE cSlot == "editingFinished()" - CASE nMsg == 3 // "returnPressed()" + CASE cSlot == "returnPressed()" ::sl_editBuffer := ::oWidget:text() - #if 0 - PostAppEvent( xbeP_Keyboard, xbeK_TAB, , Self ) - #else - IF hb_isBlock( ::sl_returnPressed ) - eval( ::sl_returnPressed, NIL, NIL, Self ) - ENDIF - #endif + ::returnPressed() - CASE nMsg == 4 // "selectionChanged()" + CASE cSlot == "selectionChanged()" - CASE nMsg == 5 // "textEdited(QString)" + CASE cSlot == "textChanged(QString)" ::changed := .t. - CASE nMsg == 6 // "textEdited(QString)" + CASE cSlot == "textEdited(QString)" ::changed := .t. - CASE nMsg == 7 // QEvent_FocusIn - IF hb_isBlock( ::sl_setInputFocus ) - eval( ::sl_setInputFocus, NIL, NIL, Self ) - RETURN .T. - ENDIF + CASE cSlot == "QEvent_FocusIn" + ::setInputFocus() - CASE nMsg == 8 // QEvent_FocusOut - IF hb_isBlock( ::sl_killInputFocus ) - eval( ::sl_killInputFocus, NIL, NIL, Self ) - ENDIF + CASE cSlot == "QEvent_FocusOut" + ::killInputFocus() ENDCASE - RETURN lRet + RETURN Self /*----------------------------------------------------------------------*/ @@ -265,3 +242,36 @@ METHOD XbpSLE:destroy() RETURN NIL /*----------------------------------------------------------------------*/ + +METHOD XbpSLE:returnPressed( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_returnPressed := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_returnPressed ) + eval( ::sl_returnPressed, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpSLE:hScroll( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_hScroll := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_hScroll ) + eval( ::sl_hScroll, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpSLE:typeOut( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_typeOut := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_typeOut ) + eval( ::sl_typeOut, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpspinbutton.prg b/harbour/contrib/hbxbp/xbpspinbutton.prg index 800b7ea218..a1bfccfceb 100644 --- a/harbour/contrib/hbxbp/xbpspinbutton.prg +++ b/harbour/contrib/hbxbp/xbpspinbutton.prg @@ -78,7 +78,6 @@ CLASS XbpSpinButton INHERIT XbpWindow, XbpDataRef DATA fastSpin INIT .f. DATA master DATA padWithZero INIT .f. - DATA align INIT XBPSLE_LEFT DATA autoKeyboard INIT .T. DATA autoSize INIT .F. @@ -87,16 +86,17 @@ CLASS XbpSpinButton INHERIT XbpWindow, XbpDataRef DATA bufferLength INIT 32 DATA editable INIT .T. DATA unReadable INIT .F. - DATA changed INIT .F. + DATA nOldValue INIT 0 + METHOD new( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVisible, pQtObject ) METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) VIRTUAL METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( nMsg, p1, p2 ) + METHOD execSlot( cSlot, p ) METHOD clear() INLINE ::oWidget:clear() METHOD copyMarked() INLINE ::oWidget:copy() @@ -114,16 +114,12 @@ CLASS XbpSpinButton INHERIT XbpWindow, XbpDataRef METHOD setNumLimits( nMin, nMax ) INLINE ::oWidget:setRange( nMin, nMax ) DATA sl_xbeSpinDown - ACCESS down INLINE ::sl_hScroll - ASSIGN down( bBlock ) INLINE ::sl_hScroll := bBlock - DATA sl_xbeSpinUp - ACCESS up INLINE ::sl_xbeSpinUp - ASSIGN up( bBlock ) INLINE ::sl_xbeSpinUp := bBlock - DATA sl_xbeSpinEndSpin - ACCESS endSpin INLINE ::sl_xbeSpinEndSpin - ASSIGN endSpin( bBlock ) INLINE ::sl_xbeSpinEndSpin := bBlock + + METHOD down( ... ) SETGET + METHOD up( ... ) SETGET + METHOD endSpin( ... ) SETGET ENDCLASS @@ -144,26 +140,21 @@ METHOD XbpSpinButton:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ::oWidget := QSpinBox():new( ::pParent ) ::oWidget:setKeyboardTracking( .t. ) - IF ::fastSpin ::oWidget:setAccelerated( .t. ) ENDIF ::oWidget:setReadOnly( ! ::editable ) - ::oWidget:setFrame( ::border ) - ::oWidget:setAlignment( es_[ ::align ] ) - #if 0 //////////////////////////////////// + #if 0 ::oWidget:installEventFilter( ::pEvents ) - -HB_TRACE( HB_TR_DEBUG, "XbpSpinButton:create 2" ) - ::connectEvent( ::pWidget, QEvent_FocusIn , {|e| ::exeBlock( 7, e ) } ) - ::connectEvent( ::pWidget, QEvent_FocusOut, {|e| ::exeBlock( 8, e ) } ) - ::connectEvent( ::pWidget, QEvent_KeyPress, {|e| ::exeBlock( 9, e ) } ) + ::connectEvent( ::oWidget, QEvent_FocusIn , {|| ::execSlot( "QEvent_FocusIn" ) } ) + ::connectEvent( ::oWidget, QEvent_FocusOut, {|| ::execSlot( "QEvent_FocusOut" ) } ) + ::connectEvent( ::oWidget, QEvent_KeyPress, {|| ::execSlot( "QEvent_KeyPress" ) } ) #endif - ::connect( ::pWidget, "valueChanged(int)" , {|| ::sl_editBuffer := ::oWidget:value() } ) + ::connect( ::oWidget, "valueChanged(int)" , {|i| ::execSlot( "valueChanged(int)", i ) } ) ::setPosAndSize() IF ::visible @@ -171,11 +162,7 @@ HB_TRACE( HB_TR_DEBUG, "XbpSpinButton:create 2" ) ENDIF ::setData() - #if 0 - IF hb_isBlock( ::datalink ) - eval( ::datalink ) - ENDIF - #endif + ::oParent:addChild( Self ) RETURN Self @@ -188,35 +175,34 @@ METHOD XbpSpinButton:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParam IF hb_isPointer( pQtObject ) ::oWidget := QSpinBox() ::oWidget:pPtr := pQtObject - ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpSpinButton:exeBlock( nMsg, p1, p2 ) +METHOD XbpSpinButton:execSlot( cSlot, p ) - HB_SYMBOL_UNUSED( p1 ) - HB_SYMBOL_UNUSED( p2 ) - - ::sl_editBuffer := ::oWidget:value() + HB_SYMBOL_UNUSED( p ) DO CASE - CASE nMsg == 9 // valueChanged - IF hb_isBlock( ::sl_keyboard ) - eval( ::sl_keyboard, NIL, NIL, self ) - ENDIF + CASE cSlot == "valueChanged(int)" + ::sl_editBuffer := ::oWidget:value() + IF p < ::nOldValue + ::down() + ELSEIF p > ::nOldValue + ::up() + ENDIF + ::nOldValue := ::sl_editBuffer + + CASE cSlot == "QEvent_KeyPress" + ::keyboard() - CASE nMsg == 7 // QEvent_FocusIn - IF hb_isBlock( ::sl_setInputFocus ) - eval( ::sl_setInputFocus, NIL, NIL, Self ) - ENDIF + CASE cSlot == "QEvent_FocusIn" + ::setInputFocus() - CASE nMsg == 8 // QEvent_FocusOut - IF hb_isBlock( ::sl_killInputFocus ) - eval( ::sl_killInputFocus, NIL, NIL, Self ) - ENDIF + CASE cSlot == "QEvent_FocusOut" + ::killInputFocus() ENDCASE @@ -241,3 +227,37 @@ METHOD XbpSpinButton:destroy() RETURN NIL /*----------------------------------------------------------------------*/ + +METHOD XbpSpinButton:down( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_xbeSpinDown := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_xbeSpinDown ) + eval( ::sl_xbeSpinDown, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpSpinButton:up( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_xbeSpinUp := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_xbeSpinUp ) + eval( ::sl_xbeSpinUp, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + +METHOD XbpSpinButton:endSpin( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_xbeSpinEndSpin := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_xbeSpinEndSpin ) + eval( ::sl_xbeSpinEndSpin, NIL, NIL, Self ) + ENDIF + RETURN Self + +/*----------------------------------------------------------------------*/ + diff --git a/harbour/contrib/hbxbp/xbpstatusbar.prg b/harbour/contrib/hbxbp/xbpstatusbar.prg index e668299049..a764370d20 100644 --- a/harbour/contrib/hbxbp/xbpstatusbar.prg +++ b/harbour/contrib/hbxbp/xbpstatusbar.prg @@ -86,14 +86,15 @@ CLASS XbpStatusBar INHERIT XbpWindow METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock() + METHOD execSlot( cSlot, p ) METHOD addItem( cCaption, xImage, cDLL, nStyle, cKey, nMode ) METHOD delItem( nItemORcKey ) METHOD getItem( nItemORcKey ) METHOD clear() - METHOD panelClick( xParam ) SETGET - METHOD panelDblClick( xParam ) SETGET + + METHOD panelClick( ... ) SETGET + METHOD panelDblClick( ... ) SETGET METHOD numItems() INLINE Len( ::aItems ) @@ -152,9 +153,12 @@ METHOD XbpStatusBar:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams /*----------------------------------------------------------------------*/ -METHOD XbpStatusBar:exeBlock() +METHOD XbpStatusBar:execSlot( cSlot, p ) - RETURN nil + HB_SYMBOL_UNUSED( cSlot ) + HB_SYMBOL_UNUSED( p ) + + RETURN Self /*----------------------------------------------------------------------*/ @@ -273,22 +277,24 @@ METHOD XbpStatusBar:clear() /*----------------------------------------------------------------------*/ -METHOD XbpStatusBar:panelClick( xParam ) - - IF hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_lbClick := xParam - ENDIF - +METHOD XbpStatusBar:panelClick( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbClick := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbClick ) + eval( ::sl_lbClick, a_[ 1 ], NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpStatusBar:panelDblClick( xParam ) - - IF hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_lbDblClick := xParam - ENDIF - +METHOD XbpStatusBar:panelDblClick( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbDblClick := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbDblClick ) + eval( ::sl_lbDblClick, a_[ 1 ], NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbptabpage.prg b/harbour/contrib/hbxbp/xbptabpage.prg index 758a63f29f..1c252a4f13 100644 --- a/harbour/contrib/hbxbp/xbptabpage.prg +++ b/harbour/contrib/hbxbp/xbptabpage.prg @@ -90,16 +90,16 @@ CLASS XbpTabPage INHERIT XbpWindow METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD exeBlock( iIndex ) + METHOD execSlot( cSlot, p ) METHOD Minimize() METHOD Maximize() DATA sl_tabActivate - METHOD tabActivate( xParam ) SETGET + METHOD tabActivate( ... ) SETGET /* Harbour extension */ DATA sl_closeRequested - METHOD closeRequested( xParam ) SETGET + METHOD closeRequested( ... ) SETGET ENDCLASS @@ -185,8 +185,11 @@ METHOD XbpTabPage:destroy() /*----------------------------------------------------------------------*/ -METHOD XbpTabPage:exeBlock( iIndex ) +METHOD XbpTabPage:execSlot( cSlot, p ) + LOCAL iIndex := p + HB_SYMBOL_UNUSED( cSlot ) + IF iIndex >= 0 .and. len( ::oParent:aTabs ) > 0 IF hb_isBlock( ::oParent:aTabs[ iIndex+1 ]:sl_tabActivate ) eval( ::oParent:aTabs[ iIndex+1 ]:sl_tabActivate, NIL, NIL, ::oParent:aTabs[ iIndex+1 ] ) @@ -206,22 +209,24 @@ METHOD XbpTabPage:handleEvent( nEvent, mp1, mp2 ) /*----------------------------------------------------------------------*/ -METHOD XbpTabPage:tabActivate( xParam ) - - IF hb_isBlock( xParam ) - ::sl_tabActivate := xParam - ENDIF - +METHOD XbpTabPage:tabActivate( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_tabActivate := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_tabActivate ) + eval( ::sl_tabActivate, NIL, NIL, Self ) + ENDIF RETURN self /*----------------------------------------------------------------------*/ -METHOD XbpTabPage:closeRequested( xParam ) - - IF hb_isBlock( xParam ) - ::sl_closeRequested := xParam - ENDIF - +METHOD XbpTabPage:closeRequested( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_closeRequested := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_closeRequested ) + eval( ::sl_closeRequested, NIL, NIL, Self ) + ENDIF RETURN self /*----------------------------------------------------------------------*/ @@ -255,7 +260,7 @@ CLASS XbpTabWidget INHERIT XbpWindow METHOD hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVisible, pQtObject ) VIRTUAL METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() - METHOD exeBlock( nMode, iIndex ) + METHOD execSlot( cSlot, p ) ENDCLASS @@ -275,8 +280,8 @@ METHOD XbpTabWidget:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ::oWidget := QTabWidget():new( ::pParent ) - ::Connect( ::pWidget, "currentChanged(int)" , {|i| ::exeBlock( 1, i ) } ) - ::Connect( ::pWidget, "tabCloseRequested(int)" , {|i| ::exeBlock( 2, i ) } ) + ::Connect( ::pWidget, "currentChanged(int)" , {|i| ::execSlot( "currentChanged(int)" , i ) } ) + ::Connect( ::pWidget, "tabCloseRequested(int)" , {|i| ::execSlot( "tabCloseRequested(int)", i ) } ) ::setPosAndSize() IF ::visible @@ -304,8 +309,9 @@ METHOD XbpTabWidget:destroy() /*----------------------------------------------------------------------*/ -METHOD XbpTabWidget:exeBlock( nMode, iIndex ) +METHOD XbpTabWidget:execSlot( cSlot, p ) LOCAL qTab, nIndex, oTab + LOCAL iIndex := p IF !empty( ::aChildren ) .and. iIndex >= 0 .and. iIndex < len( ::aChildren ) qTab := ::oWidget:widget( iIndex ) @@ -314,17 +320,11 @@ METHOD XbpTabWidget:exeBlock( nMode, iIndex ) oTab := ::aChildren[ nIndex ] DO CASE - CASE nMode == 1 - //HB_TRACE( HB_TR_DEBUG, "Tab Index Changed", nIndex ) - IF hb_isBlock( oTab:sl_tabActivate ) - eval( oTab:sl_tabActivate, NIL, NIL, oTab ) - ENDIF + CASE cSlot == "currentChanged(int)" + oTab:tabActivate() - CASE nMode == 2 - //HB_TRACE( HB_TR_DEBUG, "Tab Close Requested", nIndex ) - IF hb_isBlock( oTab:sl_closeRequested ) - eval( oTab:sl_closeRequested, NIL, NIL, oTab ) - ENDIF + CASE cSlot == "tabCloseRequested(int)" + oTab:closeRequested() ENDCASE ENDIF diff --git a/harbour/contrib/hbxbp/xbptoolbar.prg b/harbour/contrib/hbxbp/xbptoolbar.prg index aaedb48f27..c51ac22179 100644 --- a/harbour/contrib/hbxbp/xbptoolbar.prg +++ b/harbour/contrib/hbxbp/xbptoolbar.prg @@ -106,7 +106,7 @@ CLASS XbpToolBar INHERIT XbpWindow METHOD hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVisible, pQtObject ) METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() - METHOD exeBlock( oBtn ) + METHOD execSlot( cSlot, p ) METHOD addItem( cCaption, xImage, xDisabledImage, xHotImage, cDLL, nStyle, cKey, nMapRGB ) METHOD delItem() @@ -119,10 +119,10 @@ CLASS XbpToolBar INHERIT XbpWindow METHOD setPosAndSize() METHOD setSize() - METHOD buttonClick( xParam ) SETGET - METHOD change( xParam ) SETGET - METHOD buttonMenuClick( xParam ) SETGET - METHOD buttonDropDown( xParam ) SETGET + METHOD buttonClick( ... ) SETGET + METHOD change( ... ) SETGET + METHOD buttonMenuClick( ... ) SETGET + METHOD buttonDropDown( ... ) SETGET METHOD sendToolbarMessage() METHOD setStyle() @@ -278,7 +278,7 @@ METHOD XbpToolbar:addItem( cCaption, xImage, xDisabledImage, xHotImage, cDLL, nS ENDIF /* Attach codeblock to be triggered */ - ::Connect( oBtn:oAction, "triggered(bool)", {|| ::exeBlock( oBtn ) } ) + ::Connect( oBtn:oAction, "triggered(bool)", {|| ::execSlot( "triggered(bool)", oBtn ) } ) /* Attach Action with Toolbar */ ::oWidget:addAction( oBtn:oAction ) @@ -291,12 +291,12 @@ METHOD XbpToolbar:addItem( cCaption, xImage, xDisabledImage, xHotImage, cDLL, nS /*----------------------------------------------------------------------*/ -METHOD XbpToolbar:exeBlock( oBtn ) - - IF hb_isBlock( ::sl_lbClick ) - eval( ::sl_lbClick, oBtn, NIL, self ) - ENDIF +METHOD XbpToolbar:execSlot( cSlot, p ) + IF cSlot == "triggered(bool)" + ::buttonClick( p ) + ENDIF + RETURN NIL /*----------------------------------------------------------------------*/ @@ -357,42 +357,46 @@ METHOD XbpToolbar:setSize() /*----------------------------------------------------------------------*/ -METHOD XbpToolbar:buttonClick( xParam ) - - IF hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_lbClick := xParam - ENDIF - +METHOD XbpToolbar:buttonClick( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_lbClick := a_[ 1 ] + ELSEIF len( a_ ) >= 1 .AND. hb_isBlock( ::sl_lbClick ) + eval( ::sl_lbClick, a_[ 1 ], NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpToolbar:change( xParam ) - - IF hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_change := xParam - ENDIF - +METHOD XbpToolbar:change( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_change := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_change ) + eval( ::sl_change, NIL, NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpToolbar:buttonMenuClick( xParam ) - - IF hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_buttonMenuClick := xParam - ENDIF - +METHOD XbpToolbar:buttonMenuClick( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_buttonMenuClick := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_buttonMenuClick ) + eval( ::sl_buttonMenuClick, NIL, NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpToolbar:buttonDropDown( xParam ) - - IF hb_isBlock( xParam ) .or. hb_isNil( xParam ) - ::sl_buttonDropDown := xParam - ENDIF - +METHOD XbpToolbar:buttonDropDown( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_buttonDropDown := a_[ 1 ] + ELSEIF len( a_ ) >= 0 .AND. hb_isBlock( ::sl_buttonDropDown ) + eval( ::sl_buttonDropDown, NIL, NIL, Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbptreeview.prg b/harbour/contrib/hbxbp/xbptreeview.prg index 6f43f3e39f..b1417f9342 100644 --- a/harbour/contrib/hbxbp/xbptreeview.prg +++ b/harbour/contrib/hbxbp/xbptreeview.prg @@ -78,7 +78,6 @@ CLASS XbpTreeView INHERIT XbpWindow, XbpDataRef DATA alwaysShowSelection INIT .F. DATA hasButtons INIT .F. DATA hasLines INIT .F. - DATA aItems INIT {} DATA oRootItem @@ -90,40 +89,32 @@ CLASS XbpTreeView INHERIT XbpWindow, XbpDataRef METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) METHOD destroy() METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD ExeBlock( nMsg, p1, p2 ) - + METHOD execSlot( cSlot, p ) METHOD setStyle() METHOD itemFromPos( aPos ) DATA sl_itemCollapsed - ACCESS itemCollapsed INLINE ::sl_itemCollapsed - ASSIGN itemCollapsed( bBlock ) INLINE ::sl_itemCollapsed := bBlock - DATA sl_itemExpanded - ACCESS itemExpanded INLINE ::sl_itemExpanded - ASSIGN itemExpanded( bBlock ) INLINE ::sl_itemExpanded := bBlock - DATA sl_itemMarked - ACCESS itemMarked INLINE ::sl_itemMarked - ASSIGN itemMarked( bBlock ) INLINE ::sl_itemMarked := bBlock + DATA sl_itemSelected DATA oItemSelected - DATA sl_itemSelected - ACCESS itemSelected INLINE ::sl_itemSelected - ASSIGN itemSelected( bBlock ) INLINE ::sl_itemSelected := bBlock + + METHOD itemCollapsed( ... ) SETGET + METHOD itemExpanded( ... ) SETGET + METHOD itemMarked( ... ) SETGET + METHOD itemSelected( ... ) SETGET DATA hParentSelected DATA hItemSelected - DATA textParentSelected INIT "" - DATA textItemSelected INIT "" + DATA textParentSelected INIT "" + DATA textItemSelected INIT "" #if 0 METHOD setColorFG( nRGB ) INLINE WVG_TreeView_SetTextColor( ::hWnd, nRGB ) METHOD setColorBG( nRGB ) INLINE WVG_TreeView_SetBkColor( ::hWnd, nRGB ) METHOD setColorLines( nRGB ) INLINE WVG_TreeView_SetLineColor( ::hWnd, nRGB ) - - METHOD showExpanded( lExpanded, nLevels ) INLINE Wvg_TreeView_ShowExpanded( ::hWnd, ; IF( hb_isNil( lExpanded ), .f., lExpanded ), nLevels ) #endif @@ -171,17 +162,17 @@ METHOD XbpTreeView:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) oW:pPtr := ::oWidget:invisibleRootItem() ::oRootItem:oWidget := oW -* ::connect( ::pWidget, "currentItemChanged(QTWItem)" , {|p1,p2| ::exeBlock( 1, p1, p2 ) } ) -* ::connect( ::pWidget, "itemActivated(QTWItem)" , {|p1,p2| ::exeBlock( 2, p1, p2 ) } ) -* ::connect( ::pWidget, "itemChanged(QTWItem)" , {|p1,p2| ::exeBlock( 3, p1, p2 ) } ) - ::connect( ::pWidget, "itemClicked(QTWItem)" , {|p1,p2| ::exeBlock( 4, p1, p2 ) } ) - ::connect( ::pWidget, "itemCollapsed(QTWItem)" , {|p1,p2| ::exeBlock( 5, p1, p2 ) } ) - ::connect( ::pWidget, "itemDoubleClicked(QTWItem)" , {|p1,p2| ::exeBlock( 6, p1, p2 ) } ) - ::connect( ::pWidget, "itemEntered(QTWItem)" , {|p1,p2| ::exeBlock( 7, p1, p2 ) } ) - ::connect( ::pWidget, "itemExpanded(QTWItem)" , {|p1,p2| ::exeBlock( 8, p1, p2 ) } ) -* ::connect( ::pWidget, "itemPressed(QTWItem)" , {|p1,p2| ::exeBlock( 9, p1, p2 ) } ) -* ::connect( ::pWidget, "itemSelectionChanged()" , {|p1,p2| ::exeBlock( 10, p1, p2 ) } ) - ::connect( ::pWidget, "customContextMenuRequested(QPoint)", {|p1 | ::exeBlock( 21, p1 ) } ) +* ::connect( ::pWidget, "currentItemChanged(QTWItem)" , {|p1| ::execSlot( "currentItemChanged(QTWItem)", p1 ) } ) +* ::connect( ::pWidget, "itemActivated(QTWItem)" , {|p1| ::execSlot( "itemActivated(QTWItem)" , p1 ) } ) +* ::connect( ::pWidget, "itemChanged(QTWItem)" , {|p1| ::execSlot( "itemChanged(QTWItem)" , p1 ) } ) + ::connect( ::pWidget, "itemClicked(QTWItem)" , {|p1| ::execSlot( "itemClicked(QTWItem)" , p1 ) } ) + ::connect( ::pWidget, "itemCollapsed(QTWItem)" , {|p1| ::execSlot( "itemCollapsed(QTWItem)" , p1 ) } ) + ::connect( ::pWidget, "itemDoubleClicked(QTWItem)" , {|p1| ::execSlot( "itemDoubleClicked(QTWItem)" , p1 ) } ) + ::connect( ::pWidget, "itemEntered(QTWItem)" , {|p1| ::execSlot( "itemEntered(QTWItem)" , p1 ) } ) + ::connect( ::pWidget, "itemExpanded(QTWItem)" , {|p1| ::execSlot( "itemExpanded(QTWItem)" , p1 ) } ) +* ::connect( ::pWidget, "itemPressed(QTWItem)" , {|p1| ::execSlot( "itemPressed(QTWItem)" , p1 ) } ) +* ::connect( ::pWidget, "itemSelectionChanged()" , {|p1| ::execSlot( "itemSelectionChanged()" , p1 ) } ) + ::connect( ::pWidget, "customContextMenuRequested(QPoint)", {|p1| ::execSlot( "customContextMenuRequested(QPoint)", p1 ) } ) ::setPosAndSize() IF ::visible @@ -206,49 +197,34 @@ METHOD XbpTreeView:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, /*----------------------------------------------------------------------*/ -METHOD XbpTreeView:ExeBlock( nMsg, p1, p2 ) +METHOD XbpTreeView:execSlot( cSlot, p ) LOCAL oItem, n, qPt - HB_SYMBOL_UNUSED( nMsg ) - HB_SYMBOL_UNUSED( p1 ) - HB_SYMBOL_UNUSED( p2 ) - - IF hb_isPointer( p1 ) - IF ( n := ascan( ::aItems, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, p1 ) } ) ) > 0 + IF hb_isPointer( p ) + IF ( n := ascan( ::aItems, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, p ) } ) ) > 0 oItem := ::aItems[ n ] ENDIF ENDIF DO CASE - CASE nMsg == 1 // "currentItemChanged(QTWItem)" - CASE nMsg == 2 // "itemActivated(QTWItem)" - CASE nMsg == 3 // "itemChanged(QTWItem)" - CASE nMsg == 4 // "itemClicked(QTWItem)" - IF hb_isBlock( ::sl_itemMarked ) - eval( ::sl_itemMarked, oItem, {0,0,0,0}, self ) - ENDIF - CASE nMsg == 5 // "itemCollapsed(QTWItem)" - IF hb_isBlock( ::sl_itemCollapsed ) - eval( ::sl_itemCollapsed, oItem, {0,0,0,0}, self ) - ENDIF - CASE nMsg == 6 // "itemDoubleClicked(QTWItem)" - IF hb_isBlock( ::sl_itemSelected ) - eval( ::sl_itemSelected, oItem, {0,0,0,0}, self ) - ENDIF - CASE nMsg == 7 // "itemEntered(QTWItem)" + CASE cSlot == "itemClicked(QTWItem)" + ::itemMarked( oItem, {0,0,0,0} ) + CASE cSlot == "itemCollapsed(QTWItem)" + ::itemCollapsed( oItem, {0,0,0,0} ) + CASE cSlot == "itemDoubleClicked(QTWItem)" + ::itemSelected( oItem, {0,0,0,0} ) + CASE cSlot == "itemExpanded(QTWItem)" + ::itemExpanded( oItem, {0,0,0,0} ) + CASE cSlot == "itemEntered(QTWItem)" ::oWidget:setToolTip( iif( empty( oItem:tooltipText ), oItem:caption, oItem:tooltipText ) ) - - CASE nMsg == 8 // "itemExpanded(QTWItem)" - IF hb_isBlock( ::sl_itemExpanded ) - eval( ::sl_itemExpanded, oItem, {0,0,0,0}, self ) - ENDIF - CASE nMsg == 9 // "itemPressed(QTWItem)" - CASE nMsg == 10 // "itemSelectionChanged()" - - CASE nMsg == 21 // "contextmenu" - qPt := QPoint():from( ::oWidget:mapToGlobal( p1 ) ) + CASE cSlot == "customContextMenuRequested(QPoint)" + qPt := QPoint():from( ::oWidget:mapToGlobal( p ) ) ::hbContextMenu( { qPt:x(), qPt:y() } ) - + CASE cSlot == "itemPressed(QTWItem)" + CASE cSlot == "itemSelectionChanged()" + CASE cSlot == "currentItemChanged(QTWItem)" + CASE cSlot == "itemActivated(QTWItem)" + CASE cSlot == "itemChanged(QTWItem)" ENDCASE RETURN .f. @@ -306,45 +282,49 @@ METHOD XbpTreeView:itemFromPos( aPos ) RETURN Self /*----------------------------------------------------------------------*/ -#if 0 -METHOD XbpTreeView:itemCollapsed( xParam ) - - IF hb_isBlock( xParam ) .or. ( xParam == NIL ) - ::sl_paint := xParam - ENDIF +METHOD XbpTreeView:itemCollapsed( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemCollapsed := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_itemCollapsed ) + eval( ::sl_itemCollapsed, a_[ 1 ], a_[ 2 ], Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpTreeView:itemExpanded( xParam ) - - IF hb_isBlock( xParam ) .or. ( xParam == NIL ) - ::sl_itemExpanded := xParam - ENDIF - +METHOD XbpTreeView:itemExpanded( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemExpanded := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_itemExpanded ) + eval( ::sl_itemExpanded, a_[ 1 ], a_[ 2 ], Self ) + ENDIF RETURN Self /*----------------------------------------------------------------------*/ -METHOD XbpTreeView:itemMarked( xParam ) - - IF hb_isBlock( xParam ) .or. ( xParam == NIL ) - ::sl_itemMarked := xParam - ENDIF - +METHOD XbpTreeView:itemMarked( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemMarked := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_itemMarked ) + eval( ::sl_itemMarked, a_[ 1 ], a_[ 2 ], Self ) + ENDIF RETURN Self -#endif + /*----------------------------------------------------------------------*/ -#if 0 -METHOD XbpTreeView:itemSelected( xParam ) - - IF hb_isBlock( xParam ) .or. ( xParam == NIL ) - ::sl_itemSelected := xParam - ENDIF +METHOD XbpTreeView:itemSelected( ... ) + LOCAL a_:= hb_aParams() + IF len( a_ ) == 1 .AND. hb_isBlock( a_[ 1 ] ) + ::sl_itemSelected := a_[ 1 ] + ELSEIF len( a_ ) >= 2 .AND. hb_isBlock( ::sl_itemSelected ) + eval( ::sl_itemSelected, a_[ 1 ], a_[ 2 ], Self ) + ENDIF RETURN Self -#endif + /*----------------------------------------------------------------------*/ /* Class XbpTreeViewItem */ /*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbxbp/xbpwindow.prg b/harbour/contrib/hbxbp/xbpwindow.prg index 78da3740dc..feb1d4ad67 100644 --- a/harbour/contrib/hbxbp/xbpwindow.prg +++ b/harbour/contrib/hbxbp/xbpwindow.prg @@ -76,121 +76,26 @@ CLASS XbpWindow INHERIT XbpPartHandler - - METHOD init( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) - METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) - METHOD setQtProperty( cProperty ) - METHOD connect( pWidget, cSignal, bBlock ) - METHOD connectEvent( pWidget, nEvent, bBlock ) - METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) - METHOD grabEvent( nEvent, pEvent ) - METHOD handleEvent( nEvent, mp1, mp2 ) - METHOD captureMouse( lCapture ) - METHOD invalidateRect( aRect ) - METHOD setStyleSheet( cNewSheet ) - METHOD setFont( oFont ) - METHOD setFontCompoundName( xFont ) - METHOD setModalState( nState ) - METHOD setPointer( cDllName, xResID, nType ) - METHOD setTrackPointer( lTrack ) - METHOD setPos( aPos, lPaint ) - METHOD setPosAndSize( aPos, aSize, lPaint ) - METHOD setSize( aSize, lPaint ) - METHOD isDerivedFrom( cClassORoObject ) - METHOD setPresParam( aPPNew ) - - METHOD enter( xParam ) SETGET - METHOD leave( xParam ) SETGET - METHOD lbClick( xParam ) SETGET - METHOD lbDblClick( xParam ) SETGET - METHOD lbDown( xParam ) SETGET - METHOD lbUp( xParam ) SETGET - METHOD mbClick( xParam ) SETGET - METHOD mbDblClick( xParam ) SETGET - METHOD mbDown( xParam ) SETGET - METHOD mbUp( xParam ) SETGET - METHOD motion( xParam ) SETGET - METHOD rbClick( xParam ) SETGET - METHOD rbDblClick( xParam ) SETGET - METHOD rbDown( xParam ) SETGET - METHOD rbUp( xParam ) SETGET - METHOD wheel( xParam ) SETGET - METHOD close( xParam ) SETGET - METHOD helpRequest( xParam ) SETGET - METHOD keyboard( xParam ) SETGET - METHOD killDisplayFocus( xParam ) SETGET - METHOD killInputFocus( xParam ) SETGET - METHOD move( xParam ) SETGET - METHOD paint( xParam ) SETGET - METHOD quit( xParam, xParam1 ) SETGET - METHOD resize( xParam, xParam1 ) SETGET - METHOD setDisplayFocus( xParam ) SETGET - METHOD setInputFocus( xParam ) SETGET - METHOD dragEnter( xParam, xParam1 ) SETGET - METHOD dragMotion( xParam ) SETGET - METHOD dragLeave( xParam ) SETGET - METHOD dragDrop( xParam, xParam1 ) SETGET - METHOD hbContextMenu( xParam ) SETGET - - METHOD Initialize( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) - - METHOD isEnabled() INLINE ::is_enabled - METHOD isVisible() INLINE !( ::is_hidden ) - - METHOD hbCreateFromQtPtr() VIRTUAL - METHOD destroy() - METHOD disable() - METHOD enable() - METHOD hide() - METHOD lockPS() - METHOD lockUpdate() - METHOD show() - METHOD toBack() - METHOD toFront() - METHOD unlockPS() - METHOD winDevice() - METHOD setColorBG( nRGB ) - METHOD setColorFG( nRGB ) - METHOD currentPos() - METHOD currentSize() - METHOD getHWND() - METHOD getModalState() - METHOD hasInputFocus() - - METHOD setFocus() - METHOD sendMessage() - METHOD connectWindowEvents() - METHOD disConnect() - METHOD clearSlots() - CLASSDATA nProperty INIT 0 + DATA qtProperty INIT "" DATA qtObject DATA isViaQtObject INIT .f. - /* Called in the initializer - Unique in the application */ - METHOD getProperty() INLINE "PROP" + hb_ntos( ++::nProperty ) - /* After object is physically created, set unique property to 1 */ -* METHOD setQtProperty() - - DATA cargo INIT "" - DATA styleSheet INIT "" -* METHOD setStyleSheet() - /* CONFIGURATION */ - DATA animate INIT .F. - DATA clipChildren INIT .F. - DATA clipParent INIT .F. - DATA clipSiblings INIT .T. - DATA group INIT 0 /* XBP_NO_GROUP */ - DATA sizeRedraw INIT .F. - DATA tabStop INIT .F. - DATA visible INIT .T. + DATA animate INIT .F. + DATA clipChildren INIT .F. + DATA clipParent INIT .F. + DATA clipSiblings INIT .T. + DATA group INIT 0 /* XBP_NO_GROUP */ + DATA sizeRedraw INIT .F. + DATA tabStop INIT .F. + DATA visible INIT .T. /* RUNTIME DATA */ - DATA dropZone INIT .F. + DATA dropZone INIT .F. DATA helpLink - DATA tooltipText INIT "" + DATA tooltipText INIT "" /* CALLBACK SLOTS */ DATA sl_enter @@ -249,29 +154,120 @@ CLASS XbpWindow INHERIT XbpPartHandler DATA nOldProc INIT 0 DATA nWndProc DATA oMenu - DATA oWidget - ACCESS pWidget INLINE IF( empty( ::oWidget ), NIL, ::oWidget:pPtr ) - ACCESS pParent INLINE IF( empty( ::oParent ), NIL, ::oParent:oWidget:pPtr ) + DATA cargo INIT "" + DATA styleSheet INIT "" DATA oTabWidget - DATA aTabs INIT {} + DATA aTabs INIT {} DATA oPalette DATA xDummy - DATA aConnections INIT {} - DATA aEConnections INIT {} - DATA lTrack INIT .f. + DATA aConnections INIT {} + DATA aEConnections INIT {} + DATA lTrack INIT .f. DATA aPP - METHOD setStyle() INLINE NIL - ACCESS pSlots INLINE hbxbp_getSlotsPtr() - ACCESS pEvents INLINE hbxbp_GetEventsPtr() + DATA qLayout + DATA nLayout + + METHOD init( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) + METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) + METHOD setQtProperty( cProperty ) + METHOD connect( pWidget, cSignal, bBlock ) + METHOD connectEvent( pWidget, nEvent, bBlock ) + METHOD configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) + METHOD grabEvent( nEvent, pEvent ) + METHOD handleEvent( nEvent, mp1, mp2 ) + METHOD captureMouse( lCapture ) + METHOD invalidateRect( aRect ) + METHOD setStyleSheet( cNewSheet ) + METHOD setFont( oFont ) + METHOD setFontCompoundName( xFont ) + METHOD setModalState( nState ) + METHOD setPointer( cDllName, xResID, nType ) + METHOD setTrackPointer( lTrack ) + METHOD setPos( aPos, lPaint ) + METHOD setPosAndSize( aPos, aSize, lPaint ) + METHOD setSize( aSize, lPaint ) + METHOD isDerivedFrom( cClassORoObject ) + METHOD setPresParam( aPPNew ) + METHOD enter( xParam ) SETGET + METHOD leave( xParam ) SETGET + METHOD lbClick( xParam ) SETGET + METHOD lbDblClick( xParam ) SETGET + METHOD lbDown( xParam ) SETGET + METHOD lbUp( xParam ) SETGET + METHOD mbClick( xParam ) SETGET + METHOD mbDblClick( xParam ) SETGET + METHOD mbDown( xParam ) SETGET + METHOD mbUp( xParam ) SETGET + METHOD motion( xParam ) SETGET + METHOD rbClick( xParam ) SETGET + METHOD rbDblClick( xParam ) SETGET + METHOD rbDown( xParam ) SETGET + METHOD rbUp( xParam ) SETGET + METHOD wheel( xParam ) SETGET + METHOD close( xParam ) SETGET + METHOD helpRequest( xParam ) SETGET + METHOD keyboard( xParam ) SETGET + METHOD killDisplayFocus( xParam ) SETGET + METHOD killInputFocus( xParam ) SETGET + METHOD move( xParam ) SETGET + METHOD paint( xParam ) SETGET + METHOD quit( xParam, xParam1 ) SETGET + METHOD resize( xParam, xParam1 ) SETGET + METHOD setDisplayFocus( xParam ) SETGET + METHOD setInputFocus( xParam ) SETGET + METHOD dragEnter( xParam, xParam1 ) SETGET + METHOD dragMotion( xParam ) SETGET + METHOD dragLeave( xParam ) SETGET + METHOD dragDrop( xParam, xParam1 ) SETGET + METHOD hbContextMenu( xParam ) SETGET + + METHOD Initialize( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) + METHOD isEnabled() INLINE ::is_enabled + METHOD isVisible() INLINE !( ::is_hidden ) + METHOD hbCreateFromQtPtr() VIRTUAL + METHOD destroy() + METHOD disable() + METHOD enable() + METHOD hide() + METHOD lockPS() + METHOD lockUpdate() + METHOD show() + METHOD toBack() + METHOD toFront() + METHOD unlockPS() + METHOD winDevice() + METHOD setColorBG( nRGB ) + METHOD setColorFG( nRGB ) + METHOD currentPos() + METHOD currentSize() + METHOD getHWND() + METHOD getModalState() + METHOD hasInputFocus() + METHOD setFocus() + METHOD sendMessage() + METHOD connectWindowEvents() + METHOD disConnect() + METHOD clearSlots() + + /* Called in the initializer - Unique in the application */ + METHOD getProperty() INLINE "PROP" + hb_ntos( ++::nProperty ) + /* After object is physically created, set unique property to 1 */ +* METHOD setQtProperty() + +* METHOD setStyleSheet() + METHOD setStyle() INLINE NIL METHOD className() INLINE __objGetClsName( Self ) /* Harbour Extension */ - DATA qLayout - DATA nLayout METHOD hbLayout( nTypeLayout ) SETGET + ACCESS pWidget INLINE iif( empty( ::oWidget ), NIL, ::oWidget:pPtr ) + ACCESS pParent INLINE iif( empty( ::oParent ), NIL, ::oParent:oWidget:pPtr ) + ACCESS pSlots INLINE hbxbp_getSlotsPtr() + ACCESS pEvents INLINE hbxbp_GetEventsPtr() + ENDCLASS /*----------------------------------------------------------------------*/ @@ -403,13 +399,10 @@ METHOD XbpWindow:disconnect() LOCAL e_ IF len( ::aConnections ) > 0 -//HB_TRACE( HB_TR_ALWAYS, " " ) FOR EACH e_ IN ::aConnections ::xDummy := Qt_Slots_DisConnect( ::pSlots, e_[ 1 ], e_[ 2 ] ) -//HB_TRACE( HB_TR_ALWAYS, ::xDummy, " Qt_Slots_DisConnect() ", e_[ 2 ] ) NEXT ::aConnections := {} -//HB_TRACE( HB_TR_ALWAYS, " " ) ENDIF RETURN Self @@ -421,7 +414,6 @@ METHOD XbpWindow:connectEvent( pWidget, nEvent, bBlock ) IF ( lSuccess := Qt_Events_Connect( ::pEvents, pWidget, nEvent, bBlock ) ) aadd( ::aEConnections, { pWidget, nEvent } ) -// HB_TRACE( HB_TR_ALWAYS, "XbpWindow:connectEvent", nEvent, "Succeeded" ) ELSE HB_TRACE( HB_TR_ALWAYS, "XbpWindow:connectEvent", nEvent, "Failed" ) ENDIF @@ -439,10 +431,6 @@ METHOD XbpWindow:connectWindowEvents() ::connectEvent( ::pWidget, QEvent_Enter , {|e| ::grabEvent( QEvent_Enter , e ) } ) ::connectEvent( ::pWidget, QEvent_Leave , {|e| ::grabEvent( QEvent_Leave , e ) } ) ::connectEvent( ::pWidget, QEvent_Wheel , {|e| ::grabEvent( QEvent_Wheel , e ) } ) - // - ::connectEvent( ::pWidget, QEvent_Move , {|e| ::grabEvent( QEvent_Move , e ) } ) -* ::connectEvent( ::pWidget, QEvent_Paint , {|e| ::grabEvent( QEvent_Paint , e ) } ) -* ::connectEvent( ::pWidget, QEvent_Resize , {|e| ::grabEvent( QEvent_Resize , e ) } ) // ::connectEvent( ::pWidget, QEvent_FocusIn , {|e| ::grabEvent( QEvent_FocusIn , e ) } ) ::connectEvent( ::pWidget, QEvent_FocusOut , {|e| ::grabEvent( QEvent_FocusOut , e ) } ) @@ -452,10 +440,14 @@ METHOD XbpWindow:connectWindowEvents() ::connectEvent( ::pWidget, QEvent_Drop , {|e| ::grabEvent( QEvent_Drop , e ) } ) ::connectEvent( ::pWidget, QEvent_WhatsThis , {|e| ::grabEvent( QEvent_WhatsThis , e ) } ) ::connectEvent( ::pWidget, QEvent_KeyPress , {|e| ::grabEvent( QEvent_KeyPress , e ) } ) - + // ::connectEvent( ::pWidget, QEvent_ContextMenu , {|e| ::grabEvent( QEvent_ContextMenu , e ) } ) + // + ::connectEvent( ::pWidget, QEvent_Move , {|e| ::grabEvent( QEvent_Move , e ) } ) +* ::connectEvent( ::pWidget, QEvent_Paint , {|e| ::grabEvent( QEvent_Paint , e ) } ) +* ::connectEvent( ::pWidget, QEvent_Resize , {|e| ::grabEvent( QEvent_Resize , e ) } ) - RETURN Self + RETURN Self /*----------------------------------------------------------------------*/ @@ -476,10 +468,7 @@ METHOD XbpWindow:destroy() LOCAL e_ #if 0 HB_TRACE( HB_TR_ALWAYS, ". " ) -HB_TRACE( HB_TR_ALWAYS, ". " ) -HB_TRACE( HB_TR_ALWAYS, ". " ) HB_TRACE( HB_TR_ALWAYS, hb_threadId(),"Destroy[ B ] "+pad(cCls,12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ) ) - LOCAL cCls := __ObjGetClsName( self ), cMsg cMsg := iif( cCls == "XBPWINDOW", ::oWidget:objectName(), IF( empty(::cargo),'',str(::cargo) ) ) HB_TRACE( HB_TR_ALWAYS, hb_threadId(),"Destroy[ B ] "+pad(cCls,12)+ cMsg, memory( 1001 ) ) @@ -517,9 +506,6 @@ HB_TRACE( HB_TR_ALWAYS, hb_threadId(),"Destroy[ B ] "+pad(cCls,12)+ cMsg, memor ::oWidget := NIL #if 0 HB_TRACE( HB_TR_ALWAYS, hb_threadId(),"Destroy[ E ] "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ) ) - -HB_TRACE( HB_TR_ALWAYS, ". " ) -HB_TRACE( HB_TR_ALWAYS, ". " ) HB_TRACE( HB_TR_ALWAYS, ". " ) HB_TRACE( HB_TR_ALWAYS, hb_threadId(),"Destroy[ E ] "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ) ) #endif @@ -962,7 +948,6 @@ METHOD XbpWindow:setColorBG( nRGB ) ::setStyleSheet( "background-color: "+ cName +";" ) ELSE ::setStyleSheet( "background-color: "+ cName +";" ) -// ::setStyleSheet( cQTName +'['+ ::qtProperty +'="YES"] '+ "{ background-color: "+ cName +" ; }" ) ENDIF ELSE oldRGB := Xbp_SetPresParam( ::aPresParams, XBP_PP_BGCLR )