Clipboard (empty) → 1.0.0
raw patch · 4 files changed
+84/−0 lines, 4 filesdep +Win32dep +basesetup-changed
Dependencies added: Win32, base
Files
- Clipboard.cabal +19/−0
- Setup.hs +2/−0
- System/Windows/Clipboard.hs +33/−0
- license +30/−0
+ Clipboard.cabal view
@@ -0,0 +1,19 @@+Name: Clipboard +Version: 1.0.0 +Author: Daniel Diaz +Homepage: http://ddiaz.asofilak.es/packages/Clipboard +License: BSD3 +License-file: license +Maintainer: Daniel Diaz <danieldiaz@asofilak.es> +Category: System +Synopsis: Access to the Windows Clipboard. +Description: + /Clipboard/ is a package that allows you to interact with the Windows Clipboard easily. + . + Based on the Win32 package. +Build-type: Simple +Build-depends: base == 4.* + , Win32 +Cabal-version: >= 1.6 +Exposed-modules: + System.Windows.Clipboard
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple +main = defaultMain
+ System/Windows/Clipboard.hs view
@@ -0,0 +1,33 @@+ +-- | Operations over the Windows Clipboard. +module System.Windows.Clipboard + ( setClipboardString + , getClipboardString + ) where + +import Foreign.Ptr (castPtr,nullPtr) +import Foreign.C.String (newCString,peekCString) +import System.Win32.Types (HANDLE) +import Graphics.Win32.GDI.Clip + +setClipboardh :: ClipboardFormat -> HANDLE -> IO () +setClipboardh f h = + do openClipboard nullPtr + emptyClipboard + setClipboardData f h + closeClipboard + +getClipboardh :: ClipboardFormat -> IO HANDLE +getClipboardh f = + do openClipboard nullPtr + h <- getClipboardData f + closeClipboard + return h + +-- | Set the clipboard content to the given 'String'. +setClipboardString :: String -> IO () +setClipboardString = (>>= setClipboardh cF_TEXT . castPtr) . newCString + +-- | Get the clipboard content as a 'String'. +getClipboardString :: IO String +getClipboardString = getClipboardh cF_TEXT >>= peekCString . castPtr
+ license view
@@ -0,0 +1,30 @@+Copyright (c)2010, Daniel Díaz + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Daniel Díaz nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.