packages feed

Win32 2.8.4.0 → 2.8.5.0

raw patch · 3 files changed

+58/−1 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- System.Win32.Exception.Unsupported: instance GHC.Exception.Exception System.Win32.Exception.Unsupported.Unsupported
+ System.Win32.Console: dISABLE_NEWLINE_AUTO_RETURN :: DWORD
+ System.Win32.Console: eNABLE_ECHO_INPUT :: DWORD
+ System.Win32.Console: eNABLE_EXTENDED_FLAGS :: DWORD
+ System.Win32.Console: eNABLE_INSERT_MODE :: DWORD
+ System.Win32.Console: eNABLE_LINE_INPUT :: DWORD
+ System.Win32.Console: eNABLE_LVB_GRID_WORLDWIDE :: DWORD
+ System.Win32.Console: eNABLE_MOUSE_INPUT :: DWORD
+ System.Win32.Console: eNABLE_PROCESSED_INPUT :: DWORD
+ System.Win32.Console: eNABLE_PROCESSED_OUTPUT :: DWORD
+ System.Win32.Console: eNABLE_QUICK_EDIT_MODE :: DWORD
+ System.Win32.Console: eNABLE_VIRTUAL_TERMINAL_INPUT :: DWORD
+ System.Win32.Console: eNABLE_VIRTUAL_TERMINAL_PROCESSING :: DWORD
+ System.Win32.Console: eNABLE_WINDOW_INPUT :: DWORD
+ System.Win32.Console: eNABLE_WRAP_AT_EOL_OUTPUT :: DWORD
+ System.Win32.Console: getConsoleMode :: HANDLE -> IO DWORD
+ System.Win32.Console: setConsoleMode :: HANDLE -> DWORD -> IO ()
+ System.Win32.Exception.Unsupported: instance GHC.Exception.Type.Exception System.Win32.Exception.Unsupported.Unsupported
- Graphics.Win32.Dialogue: DIA_TEMPLATE :: (Ptr DIA_TEMPLATE) -> DIA_TEMPLATE
+ Graphics.Win32.Dialogue: DIA_TEMPLATE :: Ptr DIA_TEMPLATE -> DIA_TEMPLATE
- Graphics.Win32.Dialogue: DialogControl :: Int -> Int -> Int -> Int -> (Either ResourceID String) -> (Either ResourceID String) -> WindowStyle -> DWORD -> Int -> DialogControl
+ Graphics.Win32.Dialogue: DialogControl :: Int -> Int -> Int -> Int -> Either ResourceID String -> Either ResourceID String -> WindowStyle -> DWORD -> Int -> DialogControl
- Graphics.Win32.Dialogue: DialogTemplate :: Int -> Int -> Int -> Int -> WindowStyle -> DWORD -> (Either ResourceID String) -> (Either ResourceID String) -> (Either ResourceID String) -> (Either ResourceID String) -> Int -> [DialogControl] -> DialogTemplate
+ Graphics.Win32.Dialogue: DialogTemplate :: Int -> Int -> Int -> Int -> WindowStyle -> DWORD -> Either ResourceID String -> Either ResourceID String -> Either ResourceID String -> Either ResourceID String -> Int -> [DialogControl] -> DialogTemplate
- Graphics.Win32.Key: c_GetKeyboardLayoutList :: Int -> (Ptr HKL) -> IO UINT
+ Graphics.Win32.Key: c_GetKeyboardLayoutList :: Int -> Ptr HKL -> IO UINT
- System.Win32.DebugApi: peekP :: (Storable a) => PHANDLE -> ForeignAddress -> IO a
+ System.Win32.DebugApi: peekP :: Storable a => PHANDLE -> ForeignAddress -> IO a
- System.Win32.DebugApi: pokeP :: (Storable a) => PHANDLE -> ForeignAddress -> a -> IO ()
+ System.Win32.DebugApi: pokeP :: Storable a => PHANDLE -> ForeignAddress -> a -> IO ()
- System.Win32.File: FindData :: (ForeignPtr WIN32_FIND_DATA) -> FindData
+ System.Win32.File: FindData :: ForeignPtr WIN32_FIND_DATA -> FindData
- System.Win32.File: GET_FILEEX_INFO_LEVELS :: (Word32) -> GET_FILEEX_INFO_LEVELS
+ System.Win32.File: GET_FILEEX_INFO_LEVELS :: Word32 -> GET_FILEEX_INFO_LEVELS
- System.Win32.SimpleMAPI: RecipResolve :: (Maybe HWND) -> MapiFlag -> String -> (Maybe Recipient) -> Recipient
+ System.Win32.SimpleMAPI: RecipResolve :: Maybe HWND -> MapiFlag -> String -> Maybe Recipient -> Recipient

Files

System/Win32/Console.hsc view
@@ -18,6 +18,23 @@ -----------------------------------------------------------------------------
 
 module System.Win32.Console (
+        -- * Console mode
+        getConsoleMode,
+        setConsoleMode,
+        eNABLE_ECHO_INPUT,
+        eNABLE_EXTENDED_FLAGS,
+        eNABLE_INSERT_MODE,
+        eNABLE_LINE_INPUT,
+        eNABLE_MOUSE_INPUT,
+        eNABLE_PROCESSED_INPUT,
+        eNABLE_QUICK_EDIT_MODE,
+        eNABLE_WINDOW_INPUT,
+        eNABLE_VIRTUAL_TERMINAL_INPUT,
+        eNABLE_PROCESSED_OUTPUT,
+        eNABLE_WRAP_AT_EOL_OUTPUT,
+        eNABLE_VIRTUAL_TERMINAL_PROCESSING,
+        dISABLE_NEWLINE_AUTO_RETURN,
+        eNABLE_LVB_GRID_WORLDWIDE,
         -- * Console code pages
         getConsoleCP,
         setConsoleCP,
@@ -49,6 +66,40 @@ import Foreign.Storable (Storable(..))
 import Foreign.Marshal.Array (peekArray)
 import Foreign.Marshal.Alloc (alloca)
+
+foreign import WINDOWS_CCONV unsafe "windows.h GetConsoleMode"
+        c_GetConsoleMode :: HANDLE -> LPDWORD -> IO BOOL
+
+foreign import WINDOWS_CCONV unsafe "windows.h SetConsoleMode"
+        c_SetConsoleMode :: HANDLE -> DWORD -> IO BOOL
+
+getConsoleMode :: HANDLE -> IO DWORD
+getConsoleMode h = alloca $ \ptr -> do
+    failIfFalse_ "GetConsoleMode" $ c_GetConsoleMode h ptr
+    peek ptr
+
+setConsoleMode :: HANDLE -> DWORD -> IO ()
+setConsoleMode h mode = failIfFalse_ "SetConsoleMode" $ c_SetConsoleMode h mode
+
+eNABLE_ECHO_INPUT, eNABLE_EXTENDED_FLAGS, eNABLE_INSERT_MODE, eNABLE_LINE_INPUT,
+    eNABLE_MOUSE_INPUT, eNABLE_PROCESSED_INPUT, eNABLE_QUICK_EDIT_MODE,
+    eNABLE_WINDOW_INPUT, eNABLE_VIRTUAL_TERMINAL_INPUT, eNABLE_PROCESSED_OUTPUT,
+    eNABLE_WRAP_AT_EOL_OUTPUT, eNABLE_VIRTUAL_TERMINAL_PROCESSING,
+    dISABLE_NEWLINE_AUTO_RETURN, eNABLE_LVB_GRID_WORLDWIDE :: DWORD
+eNABLE_ECHO_INPUT = 4
+eNABLE_EXTENDED_FLAGS = 128
+eNABLE_INSERT_MODE = 32
+eNABLE_LINE_INPUT = 2
+eNABLE_MOUSE_INPUT = 16
+eNABLE_PROCESSED_INPUT = 1
+eNABLE_QUICK_EDIT_MODE = 64
+eNABLE_WINDOW_INPUT = 8
+eNABLE_VIRTUAL_TERMINAL_INPUT = 512
+eNABLE_PROCESSED_OUTPUT = 1
+eNABLE_WRAP_AT_EOL_OUTPUT = 2
+eNABLE_VIRTUAL_TERMINAL_PROCESSING = 4
+dISABLE_NEWLINE_AUTO_RETURN = 8
+eNABLE_LVB_GRID_WORLDWIDE = 16
 
 foreign import WINDOWS_CCONV unsafe "windows.h GetConsoleCP"
         getConsoleCP :: IO UINT
Win32.cabal view
@@ -1,5 +1,5 @@ name:		Win32-version:	2.8.4.0+version:	2.8.5.0 license:	BSD3 license-file:	LICENSE author:		Alastair Reid, shelarcy, Tamar Christina
changelog.md view
@@ -1,5 +1,11 @@ # Changelog for [`Win32` package](http://hackage.haskell.org/package/Win32) +## *Unreleased version*++## 2.8.5.0 Dec 2019++* Add `getConsoleMode` and `setConsoleMode` (See #137)+ ## 2.8.4.0 *Oct 2019*  * Added function `getWindowText`