Quick question. If I wanted to use a scroll bar for part of the window - say, within a tabstrip, would the approach be to create another window and apply the scroll bar to that?
Cheers, jez. ----- Original Message ----- From: "Steve Pick" <[EMAIL PROTECTED]> To: "Win32 GUI Users" <[EMAIL PROTECTED]>; "Win32 GUI Hackers" <perl-win32-gui-hackers@lists.sourceforge.net> Sent: Thursday, January 15, 2004 11:53 PM Subject: [perl-win32-gui-users] Yet Another CVS Commit... > Hello, me again... > > Since some people mentioned window scrollbars in the list a while back, I > decided to implement some functions to make them actually work. > > I've also added the relevant constants for scrollbars and statusbars, fixed > the bug with $window->Result(x) (thanks to Glenn Linderman), and applied > Laurent Rocher's tweaks for the Status Bar code. > > New functions. Use these in the form: > > $window->foo(bar, baz); > > ########################################################################### > # (@)METHOD:ScrollPos(scrollbar,[pos]) > # Sets / Gets position of a window scrollbar (if enabled). scrollbar > # argument should be set as follows: > # 0 - Horizontal scrollbar > # 1 - Vertical scrollbar > # > # Returns the scrollbar position or undef on failure. > > ########################################################################### > # (@)METHOD:ScrollPage(scrollbar,[pagesize]) > # Sets / Gets page size of a window scrollbar (if enabled). scrollbar > # argument should be set as follows: > # 0 - Horizontal scrollbar > # 1 - Vertical scrollbar > # > # Returns the scrollbar page size or undef on failure. > > ########################################################################### > # (@)METHOD:ScrollRange(scrollbar,[min, max]) > # Sets / Gets range for a window scrollbar (if enabled). scrollbar > # argument should be set as follows: > # 0 - Horizontal scrollbar > # 1 - Vertical scrollbar > # > # Returns the scrollbar range as an array, or undef on failure. > > ########################################################################### > # (@)METHOD:Scroll(scrollbar,operation,position) > # Handles scrollbar scrolling if you don't want to do it yourself. This is > # most useful in the Scroll event handler for a window or dialog box. > # > # scrollbar can be: > # 0 - Horizontal scrollbar > # 1 - Vertical scrollbar > # > # type is an identifier for the operation being performed on the scrollbar, > # this can be: > # SB_LINEUP, SB_LINELEFT, SB_LINEDOWN, SB_LINERIGHT, SB_PAGEUP > # SB_PAGELEFT, SB_PAGEDOWN, SB_PAGERIGHT, SB_THUMBPOSITION, > # SB_THUMBTRACK, SB_TOP, SB_LEFT, SB_BOTTOM, SB_RIGHT, or SB_ENDSCROLL > # > # Returns the position of the scrollbar or undef on failure. > # > > New events for WINDOW/DIALOGBOX: > /* > * (@)EVENT:Scroll(SCROLLBAR, OPERATION, POSITION) > * Sent when one of the window scrollbars is moved. SCROLLBAR identifies > * which bar was moved, 0 for horizontal and 1 for vertical. > * > * OPERATION can be compared against one of the following constants: > * SB_LINEUP, SB_LINELEFT, SB_LINEDOWN, SB_LINERIGHT, SB_PAGEUP > * SB_PAGELEFT, SB_PAGEDOWN, SB_PAGERIGHT, SB_THUMBPOSITION, > * SB_THUMBTRACK, SB_TOP, SB_LEFT, SB_BOTTOM, SB_RIGHT, SB_ENDSCROLL > * > * NEM equivalent: onScroll > * Related messages: WM_HSCROLL, WM_VSCROLL > */ > > Example code: > > use Win32::GUI; > my $win = new Win32::GUI::Window ( > -name => "MainWin", > -left => 0, > -top => 100, > -width => 500, > -height => 300, > -sizable => 1, > -text => "Scrollbar Test", > -noflicker => 0, > -hscroll => 1, > -onScroll => \&scrolled > ); > > $win->ScrollRange(0,0,100)); > $win->ScrollPage(0,10); > $win->ScrollPos(0,50); > > $win->Show; > Win32::GUI::Dialog; > > sub scrolled { > my($object,$bar,$operation,$pos) = @_; > $object->Scroll($bar,$operation,$pos); > # You could also do something like this if you want more control: > # if($operation == SB_LINEUP) { > # $object->ScrollPos($bar,$object->ScrollPos($bar) - 1); > # } > # elsif($operation == SB_PAGEUP) { > # $object->ScrollPos($bar,$object->ScrollPos($bar) - > $object->ScrollPage($bar)); > # } > # elsif($operation == SB_THUMBTRACK) { > # print "Tracking ".($bar == 0 ? "horizontal" : "vertical")." > scrollbar thumb position: ".$pos."\n"; > # } > # .... and so on. > } > > Steve. > > > > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > Perl-Win32-GUI-Users mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users