From: <lep...@us...> - 2006-12-03 15:12:03
|
Revision: 7557 http://svn.sourceforge.net/amsn/?rev=7557&view=rev Author: lephilousophe Date: 2006-12-03 07:12:01 -0800 (Sun, 03 Dec 2006) Log Message: ----------- Fix the background scrolling (maybe remove the useless frame... maybe not...) Modified Paths: -------------- trunk/amsn/guicontactlist.tcl Modified: trunk/amsn/guicontactlist.tcl =================================================================== --- trunk/amsn/guicontactlist.tcl 2006-12-03 14:44:39 UTC (rev 7556) +++ trunk/amsn/guicontactlist.tcl 2006-12-03 15:12:01 UTC (rev 7557) @@ -137,6 +137,7 @@ set window .contactlist set clcontainer .contactlist.sw set clcanvas .contactlist.sw.cvs + set clscrollbar .contactlist.sw.vsb #check if the window already exists, ifso, raise it and redraw the CL if { [winfo exists $window] } { @@ -152,7 +153,8 @@ wm geometry $window 1000x1000 # Set up the 'ScrolledWindow' container for the canvas - ScrolledWindow $clcontainer -auto vertical -scrollbar vertical -bg white -bd 0 -ipad 0 + #ScrolledWindow $clcontainer -auto vertical -scrollbar vertical -bg white -bd 0 -ipad 0 + frame $clcontainer # TODO: * ScrolledWindow should be feeded a command run on scroll (reset the image) # * bgcolor should be skinnable @@ -160,13 +162,17 @@ set clbox [list 0 0 2000 1500] # Create a blank canvas - canvas $clcanvas -width [lindex $clbox 2] -height [lindex $clbox 3] -background white - # TODO: * bgcolor should be skinnable: + canvas $clcanvas -yscrollcommand "$clscrollbar set" -background [::skin::getKey contactlistbg] + scrollbar $clscrollbar -command "::guiContactList::scrollCLsb $clcanvas" + + pack $clscrollbar -side right -fill y + pack $clcanvas -expand true -fill both + # Embed the canvas in the ScrolledWindow - $clcontainer setwidget $clcanvas + #$clcontainer setwidget $clcanvas # Pack the scrolledwindow in the window - pack $clcontainer + pack $clcontainer -expand true -fill both # Parse the nicknames for smiley/newline substitution createNicknameArray @@ -221,8 +227,8 @@ # We're on X11! (I suppose ;)) bind $clcanvas <ButtonPress-5> "::guiContactList::scrollCL $clcanvas down" bind $clcanvas <ButtonPress-4> "::guiContactList::scrollCL $clcanvas up" - bind [winfo parent $clcanvas].vscroll <ButtonPress-5> "::guiContactList::scrollCL $clcanvas down" - bind [winfo parent $clcanvas].vscroll <ButtonPress-4> "::guiContactList::scrollCL $clcanvas up" + #bind [winfo parent $clcanvas].vscroll <ButtonPress-5> "::guiContactList::scrollCL $clcanvas down" + #bind [winfo parent $clcanvas].vscroll <ButtonPress-4> "::guiContactList::scrollCL $clcanvas up" } # Let's avoid the bug of window behind the bar menu on MacOS X @@ -1291,7 +1297,20 @@ } } + ####################################################### + # Procedure which scrolls the canvas up/down + proc scrollCLsb {canvas args} { + + eval [linsert $args 0 $canvas yview] + + # Here we have to move the background-image. This should + # be done as a command given to scrolledwindow, so it also + # works when dragging the scrollbar + moveBGimage $canvas + } + + proc createNicknameArray {} { global nicknameArray array set nicknameArray {} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |