|
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 ()
|