From: <kr_...@us...> - 2003-11-23 10:25:51
|
Update of /cvsroot/htoolkit/gio/src/Graphics/UI/GIO In directory sc8-pr-cvs1:/tmp/cvs-serv4115/src/Graphics/UI/GIO Modified Files: Controls.hs Log Message: Add implementation for TrackBar control Index: Controls.hs =================================================================== RCS file: /cvsroot/htoolkit/gio/src/Graphics/UI/GIO/Controls.hs,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** Controls.hs 15 Nov 2003 10:52:30 -0000 1.37 --- Controls.hs 23 Nov 2003 10:25:47 -0000 1.38 *************** *** 55,58 **** --- 55,63 ---- , Slider, hslider, vslider + -- ** TrackBar + -- | An track bar control is a pair of arrow buttons that the user can click + -- to increment or decrement the value value displayed in another control. + , TrackBar, hTrackBar, vTrackBar, increment, decrement + -- ** ProgressBar -- | A progress bar control is a window that an application can use to *************** *** 528,531 **** --- 533,575 ---- pack = stdPack sparent shandle Port.getSliderRequestSize + + -------------------------------------------------------------------- + -- TrackBar + -------------------------------------------------------------------- + + -- | A track bar control. + data TrackBar = TrackBar + { tbhandle :: !WindowHandle + , tbparent :: !WindowHandle + } + + -- | Create a horizontal track bar control. + hTrackBar :: Container w => [Prop TrackBar] -> w -> IO TrackBar + hTrackBar props w + = do tb <- do tbhandle <- Port.createHorzTrackBar (hwindow w) + return (TrackBar tbhandle (hwindow w)) + set tb props + return tb + + -- | Create a vertical track bar control. + vTrackBar :: Container w => [Prop TrackBar] -> w -> IO TrackBar + vTrackBar props w + = do tb <- do tbhandle <- Port.createVertTrackBar (hwindow w) + return (TrackBar tbhandle (hwindow w)) + set tb props + return tb + + instance Control TrackBar where + pack = stdPack tbparent tbhandle Port.getTrackBarRequestSize + + -- | The vertical track bar control fires a 'increment' event when the up arrow is clicked. + -- The horizontal track bar control fires the same event when the right arrow is clicked. + increment :: Event TrackBar (IO ()) + increment = newStdEvent tbhandle Port.getTrackBarIncrementHandler Port.setTrackBarIncrementHandler Port.setTrackBarIncrementDefHandler + + -- | The vertical track bar control fires a 'decrement' event when the down arrow is clicked. + -- The horizontal track bar control fires the same event when the left arrow is clicked. + decrement :: Event TrackBar (IO ()) + decrement = newStdEvent tbhandle Port.getTrackBarDecrementHandler Port.setTrackBarDecrementHandler Port.setTrackBarDecrementDefHandler -------------------------------------------------------------------- |