If you can correct this for me I will update this code.
Code: Select all
; OSStatus GetDataBrowserScrollPosition (
; ControlRef browser,
; UInt32 *top,
; UInt32 *left
; );
;
;
; OSStatus RevealDataBrowserItem (
; ControlRef browser,
; DataBrowserItemID item,
; DataBrowserPropertyID propertyID, (kDataBrowserNoItem)
; DataBrowserRevealOptions options
; );
; Reveal Options
; Specify how To position an item in a Data browser.
; typedef UInt8 DataBrowserRevealOptions;
; enum {
; kDataBrowserRevealOnly = 0,
; kDataBrowserRevealAndCenterInView = 1 << 0,
; kDataBrowserRevealWithoutSelecting = 1 << 1
; };
; Constants
; kDataBrowserRevealOnly
; Move the content of the Data browser As little As possible To make the item visible, And show the item in a selected state.
; Available in Mac OS X v10.0 And later.
; Declared in HIDataBrowser.h.
; kDataBrowserRevealAndCenterInView
; Reveal the item so that, If possible, the item is centered in the Data browser.
; Available in Mac OS X v10.0 And later.
; Declared in HIDataBrowser.h.
; kDataBrowserRevealWithoutSelecting
; Reveal the item but do Not Select it.
; Available in Mac OS X v10.0 And later.
; Declared in HIDataBrowse
ImportC ""
GetDataBrowserScrollPosition(Control.i, *top.UNICODE, *left.UNICODE)
RevealDataBrowserItem(Control.i, ItemID.i, PropertyID.i, Options.i) ; see above
EndImport
Define top.u,left.u
Define lh=19 ; line height in listviewgadget (a guess)
w=350
h=200
If OpenWindow(0, 100, 100, w,h, "Scrollbar position", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListViewGadget(0, 5, 5, w-5,h-5)
AddGadgetColumn(0, 1, "", 200)
AddGadgetItem(0, -1,"Click on number to see scrollbar position")
For X = 1 To 50
AddGadgetItem(0, -1, Str(x))
Next
Repeat
Event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case 0
GetDataBrowserScrollPosition(GadgetID(0), @top.u, @left.u)
Debug Str(top)+"/"+Str(lh)+"="+Str(top/lh)+" line at top of scrollbar (start at 0)"
;move the scrollbar to center of page?
RevealDataBrowserItem(GadgetID(0), top.u, kDataBrowserNoItem, kDataBrowserRevealAndCenterInView)
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf