From: <kr_...@us...> - 2003-11-23 10:23:18
|
Update of /cvsroot/htoolkit/port/src/Port In directory sc8-pr-cvs1:/tmp/cvs-serv3738/src/Port Modified Files: Controls.hs Handlers.hs Log Message: Add implementation for TrackBar control Index: Controls.hs =================================================================== RCS file: /cvsroot/htoolkit/port/src/Port/Controls.hs,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Controls.hs 12 Oct 2003 21:33:46 -0000 1.26 --- Controls.hs 23 Nov 2003 10:23:13 -0000 1.27 *************** *** 1,3 **** ! {-# OPTIONS -fglasgow-exts -#include Button.h -#include CheckBox.h -#include EditBox.h -#include Label.h -#include ListBox.h -#include PopUp.h -#include RadioBox.h -#include Window.h -#include ProgressBar.h -#include Slider.h -#include Notebook.h -#include GroupBox.h #-} ----------------------------------------------------------------------------------------- {-| Module : Controls --- 1,3 ---- ! {-# OPTIONS -fglasgow-exts -#include Button.h -#include CheckBox.h -#include EditBox.h -#include Label.h -#include ListBox.h -#include PopUp.h -#include RadioBox.h -#include Window.h -#include ProgressBar.h -#include Slider.h -#include Notebook.h -#include GroupBox.h -#include TrackBar.h #-} ----------------------------------------------------------------------------------------- {-| Module : Controls *************** *** 27,30 **** --- 27,32 ---- * Slider + * TrackBar + * ProgressBar *************** *** 88,91 **** --- 90,95 ---- , getSliderRange, setSliderRange , getSliderPosition, setSliderPosition + -- * TrackBar + , createHorzTrackBar, createVertTrackBar, getTrackBarRequestSize -- * ProgressBar , createHorzProgressBar, createVertProgressBar, getProgressBarRequestSize *************** *** 427,430 **** --- 431,448 ---- return (fromCInt pos) foreign import ccall osGetSliderPosition :: WindowHandle -> IO CInt + + ----------------------------------------------------------------------------------------- + -- TrackBar + ----------------------------------------------------------------------------------------- + + -- | Create a new horizontal track bar control. + foreign import ccall "osCreateHorzTrackBar" createHorzTrackBar :: WindowHandle -> IO WindowHandle + + -- | Create a new vertical track bar control. + foreign import ccall "osCreateVertTrackBar" createVertTrackBar :: WindowHandle -> IO WindowHandle + + getTrackBarRequestSize :: WindowHandle -> IO Size + getTrackBarRequestSize hwnd = withCSizeResult (osGetTrackBarReqSize hwnd) + foreign import ccall osGetTrackBarReqSize :: WindowHandle -> Ptr CInt -> IO () ----------------------------------------------------------------------------------------- Index: Handlers.hs =================================================================== RCS file: /cvsroot/htoolkit/port/src/Port/Handlers.hs,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** Handlers.hs 16 Nov 2003 13:25:20 -0000 1.31 --- Handlers.hs 23 Nov 2003 10:23:13 -0000 1.32 *************** *** 53,56 **** --- 53,60 ---- -- * Control commands ,setControlCommandHandler, setControlCommandDefHandler, getControlCommandHandler + + -- * TrackBar Increment\/Decrement events + ,setTrackBarIncrementHandler, setTrackBarIncrementDefHandler, getTrackBarIncrementHandler + ,setTrackBarDecrementHandler, setTrackBarDecrementDefHandler, getTrackBarDecrementHandler -- * Menu events *************** *** 131,134 **** --- 135,140 ---- setWindowActivateDefHandler hwnd setControlCommandDefHandler hwnd + setTrackBarIncrementDefHandler hwnd + setTrackBarDecrementDefHandler hwnd return () *************** *** 274,277 **** --- 280,327 ---- ----------------------------------------------------------------------------------------- + -- TrackBar Increment/Decrement + ----------------------------------------------------------------------------------------- + + {-# NOINLINE handlersTrackBarIncrement #-} + handlersTrackBarIncrement :: MVar (PtrMap WindowHandle (IO ())) + handlersTrackBarIncrement = unsafePerformIO (newMVar empty) + + setTrackBarIncrementHandler :: WindowHandle -> IO () -> IO () + setTrackBarIncrementHandler hwnd handler + = setHandler hwnd handler handlersTrackBarIncrement + + setTrackBarIncrementDefHandler :: WindowHandle -> IO () + setTrackBarIncrementDefHandler hwnd + = setDefHandler hwnd handlersTrackBarIncrement + + getTrackBarIncrementHandler :: WindowHandle -> IO (IO ()) + getTrackBarIncrementHandler hwnd + = getHandler hwnd (return ()) handlersTrackBarIncrement + + handleTrackBarIncrement :: WindowHandle -> IO () + handleTrackBarIncrement hwnd + = invokeHandler hwnd handlersTrackBarIncrement id + + {-# NOINLINE handlersTrackBarDecrement #-} + handlersTrackBarDecrement :: MVar (PtrMap WindowHandle (IO ())) + handlersTrackBarDecrement = unsafePerformIO (newMVar empty) + + setTrackBarDecrementHandler :: WindowHandle -> IO () -> IO () + setTrackBarDecrementHandler hwnd handler + = setHandler hwnd handler handlersTrackBarDecrement + + setTrackBarDecrementDefHandler :: WindowHandle -> IO () + setTrackBarDecrementDefHandler hwnd + = setDefHandler hwnd handlersTrackBarDecrement + + getTrackBarDecrementHandler :: WindowHandle -> IO (IO ()) + getTrackBarDecrementHandler hwnd + = getHandler hwnd (return ()) handlersTrackBarDecrement + + handleTrackBarDecrement :: WindowHandle -> IO () + handleTrackBarDecrement hwnd + = invokeHandler hwnd handlersTrackBarDecrement id + + ----------------------------------------------------------------------------------------- -- WindowDeactivate ----------------------------------------------------------------------------------------- *************** *** 829,832 **** --- 879,884 ---- foreign export ccall handleWindowContextMenu :: WindowHandle -> CInt -> CInt -> CWord -> IO () foreign export ccall handleControlCommand :: WindowHandle -> IO () + foreign export ccall handleTrackBarIncrement :: WindowHandle -> IO () + foreign export ccall handleTrackBarDecrement :: WindowHandle -> IO () foreign export ccall handleMenuCommand :: MenuHandle -> IO () foreign export ccall handleMenuUpdate :: MenuHandle -> IO () |