From e6318e0f3dc3a9fe756555d371d4f67d8a303244 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Fri, 3 Jun 2011 20:17:29 +0000 Subject: [PATCH] 2011-06-03 13:15 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/idebrowse.prg % Set vertical scrollbars of XbpBrowse() class to honor thumb positioning per open index. Pointed out by Francek. --- harbour/ChangeLog | 5 +++ harbour/contrib/hbide/idebrowse.prg | 50 ++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 2eb6865807..10f4469dc8 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,11 @@ The license applies to all entries newer than 2009-04-28. */ +2011-06-03 13:15 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/idebrowse.prg + % Set vertical scrollbars of XbpBrowse() class to honor thumb + positioning per open index. Pointed out by Francek. + 2011-06-03 13:11 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtgui/hbqtgui.hbx * contrib/hbqt/qtgui/qth/filelist.hbm diff --git a/harbour/contrib/hbide/idebrowse.prg b/harbour/contrib/hbide/idebrowse.prg index ee7e0582ae..d57db4b329 100644 --- a/harbour/contrib/hbide/idebrowse.prg +++ b/harbour/contrib/hbide/idebrowse.prg @@ -1633,6 +1633,9 @@ CLASS IdeBrowse INHERIT IdeObject METHOD recall() METHOD recNo() METHOD lastRec() + METHOD ordKeyCount() + METHOD ordKeyNo() + METHOD ordKeyGoto( nRec ) ACCESS dbStruct() INLINE ::aStruct METHOD indexOrd() METHOD ordName( nOrder ) @@ -1837,11 +1840,17 @@ METHOD IdeBrowse:buildBrowser() oXbpBrowse:goBottomBlock := {| | ::goBottom() } // oXbpBrowse:firstPosBlock := {| | 1 } + #if 0 oXbpBrowse:lastPosBlock := {| | ::lastRec() } - oXbpBrowse:posBlock := {| | ::recNo() } oXbpBrowse:goPosBlock := {|n| ::goto( n ) } oXbpBrowse:phyPosBlock := {| | ::recNo() } + #endif + oXbpBrowse:lastPosBlock := {| | ::ordKeyCount() } + oXbpBrowse:posBlock := {| | ::ordKeyNo() } + oXbpBrowse:goPosBlock := {|n| ::ordKeyGoto( n ) } + oXbpBrowse:phyPosBlock := {| | ::ordKeyNo() } + oXbpBrowse:hbContextMenu := {|mp1| ::execEvent( "browser_contextMenu", mp1 ) } @@ -2479,6 +2488,21 @@ METHOD IdeBrowse:goToAsk() /*----------------------------------------------------------------------*/ +METHOD IdeBrowse:ordKeyGoto( nRec ) + + IF ::nType == BRW_TYPE_DBF + ( ::cAlias )->( OrdKeyGoto( nRec ) ) + ::refreshAll() + ELSE + IF nRec > 0 .AND. nRec <= len( ::aData ) + ::nIndex := nRec + ENDIF + ENDIF + + RETURN Self + +/*----------------------------------------------------------------------*/ + METHOD IdeBrowse:goto( nRec ) IF ::nType == BRW_TYPE_DBF @@ -2540,6 +2564,18 @@ METHOD IdeBrowse:indexOrd() /*----------------------------------------------------------------------*/ +METHOD IdeBrowse:ordKeyNo() + + IF ::nType == BRW_TYPE_DBF + RETURN ( ::cAlias )->( OrdKeyNo() ) + ELSE + RETURN ::nIndex + ENDIF + + RETURN 0 + +/*----------------------------------------------------------------------*/ + METHOD IdeBrowse:recNo() IF ::nType == BRW_TYPE_DBF @@ -2552,6 +2588,18 @@ METHOD IdeBrowse:recNo() /*----------------------------------------------------------------------*/ +METHOD IdeBrowse:ordKeyCount() + + IF ::nType == BRW_TYPE_DBF + RETURN ( ::cAlias )->( ordKeyCount() ) + ELSE + RETURN len( ::aData ) + ENDIF + + RETURN 0 + +/*----------------------------------------------------------------------*/ + METHOD IdeBrowse:lastRec() IF ::nType == BRW_TYPE_DBF