Update of /cvsroot/htoolkit/gio/src/Graphics/UI/GIO
In directory sc8-pr-cvs1:/tmp/cvs-serv22412/src/Graphics/UI/GIO
Modified Files:
Attributes.hs Controls.hs
Log Message:
Added RangedSelect class and his instances for ProgressBar and Slider controls
Index: Attributes.hs
===================================================================
RCS file: /cvsroot/htoolkit/gio/src/Graphics/UI/GIO/Attributes.hs,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** Attributes.hs 30 May 2003 11:39:08 -0000 1.10
--- Attributes.hs 30 May 2003 13:07:05 -0000 1.11
***************
*** 75,78 ****
--- 75,79 ----
, SingleSelect, selected
, MultiSelect, selection
+ , RangedSelect, range, selectedPos
-- * Internal
***************
*** 299,300 ****
--- 300,308 ----
selection :: Attr w [Int]
+ -- | Widgets that selects integer position inside the specified range.
+ class RangedSelect w where
+ -- | The selection range
+ range :: Attr w (Int, Int)
+
+ -- | The selected position
+ selectedPos :: Attr w Int
Index: Controls.hs
===================================================================
RCS file: /cvsroot/htoolkit/gio/src/Graphics/UI/GIO/Controls.hs,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** Controls.hs 30 May 2003 11:39:08 -0000 1.11
--- Controls.hs 30 May 2003 13:07:05 -0000 1.12
***************
*** 17,22 ****
, Entry, entry, readOnly, visible
, Popup, popup
! , Slider, hslider, vslider, sliderRange, sliderPos
! , ProgressBar, hProgressBar, vProgressBar, progressRange, progressPos
, CheckGroup, checkGroup, checkLayout
, RadioGroup, radioGroup, radioLayout
--- 17,22 ----
, Entry, entry, readOnly, visible
, Popup, popup
! , Slider, hslider, vslider
! , ProgressBar, hProgressBar, vProgressBar
, CheckGroup, checkGroup, checkLayout
, RadioGroup, radioGroup, radioLayout
***************
*** 448,460 ****
return r
! sliderRange :: Attr Slider (Int,Int)
! sliderRange
! = newAttr (\w -> Port.getSliderRange (shandle w))
! (\w (min,max) -> Port.setSliderRange (shandle w) min max)
!
! sliderPos :: Attr Slider Int
! sliderPos
! = newAttr (Port.getSliderPosition . shandle)
! (Port.setSliderPosition . shandle)
instance Commanding Slider where
--- 448,458 ----
return r
! instance RangedSelect Slider where
! range = newAttr (\w -> Port.getSliderRange (shandle w))
! (\w (min,max) -> Port.setSliderRange (shandle w) min max)
!
! selectedPos
! = newAttr (Port.getSliderPosition . shandle)
! (Port.setSliderPosition . shandle)
instance Commanding Slider where
***************
*** 498,517 ****
return r
! progressRange :: Attr ProgressBar (Int,Int)
! progressRange
! = newAttr (\w -> getVar (pbrange w))
! (\w r@(min,max) -> do
! pos <- Port.getProgressBarFraction (pbhandle w) min max
! Port.setProgressBarFraction (pbhandle w) min max pos
! setVar (pbrange w) r)
! progressPos :: Attr ProgressBar Int
! progressPos
! = newAttr (\w -> do
! (min,max) <- getVar (pbrange w)
! Port.getProgressBarFraction (pbhandle w) min max)
! (\w pos -> do
! (min,max) <- getVar (pbrange w)
! Port.setProgressBarFraction (pbhandle w) min max pos)
instance Control ProgressBar where
--- 496,513 ----
return r
! instance RangedSelect ProgressBar where
! range = newAttr (\w -> getVar (pbrange w))
! (\w r@(min,max) -> do
! pos <- Port.getProgressBarFraction (pbhandle w) min max
! Port.setProgressBarFraction (pbhandle w) min max pos
! setVar (pbrange w) r)
! selectedPos
! = newAttr (\w -> do
! (min,max) <- getVar (pbrange w)
! Port.getProgressBarFraction (pbhandle w) min max)
! (\w pos -> do
! (min,max) <- getVar (pbrange w)
! Port.setProgressBarFraction (pbhandle w) min max pos)
instance Control ProgressBar where
|