{-# LINE 1 "Graphics\\Win32\\GDI\\Brush.hsc" #-}



{-# LINE 2 "Graphics\\Win32\\GDI\\Brush.hsc" #-}

{-# LANGUAGE Safe #-}



{-# LINE 6 "Graphics\\Win32\\GDI\\Brush.hsc" #-}

-----------------------------------------------------------------------------

-- |

-- Module      :  Graphics.Win32.GDI.Brush

-- Copyright   :  (c) Alastair Reid, 1997-2003

-- License     :  BSD-style (see the file libraries/base/LICENSE)

--

-- Maintainer  :  Esa Ilari Vuokko <ei@vuokko.info>

-- Stability   :  provisional

-- Portability :  portable

--

-- A collection of FFI declarations for interfacing with Win32.

--

-----------------------------------------------------------------------------



module Graphics.Win32.GDI.Brush where



import System.Win32.Types

import Graphics.Win32.GDI.Types



#include "windows_cconv.h"







----------------------------------------------------------------

-- Brush

----------------------------------------------------------------



createSolidBrush :: COLORREF -> IO HBRUSH

createSolidBrush color =

  failIfNull "CreateSolidBrush" $ c_CreateSolidBrush color

foreign import WINDOWS_CCONV unsafe "windows.h CreateSolidBrush"

  c_CreateSolidBrush :: COLORREF -> IO HBRUSH



createHatchBrush :: HatchStyle -> COLORREF -> IO HBRUSH

createHatchBrush style color =

  failIfNull "CreateHatchBrush" $ c_CreateHatchBrush style color

foreign import WINDOWS_CCONV unsafe "windows.h CreateHatchBrush"

  c_CreateHatchBrush :: HatchStyle -> COLORREF -> IO HBRUSH



createPatternBrush :: HBITMAP -> IO HBRUSH

createPatternBrush bitmap =

  failIfNull "CreatePatternBrush" $ c_CreatePatternBrush bitmap

foreign import WINDOWS_CCONV unsafe "windows.h CreatePatternBrush"

  c_CreatePatternBrush :: HBITMAP -> IO HBRUSH



deleteBrush :: HBRUSH -> IO ()

deleteBrush brush =

  failIfFalse_ "DeleteBrush" $ c_DeleteBrush brush

foreign import WINDOWS_CCONV unsafe "windows.h DeleteObject"

  c_DeleteBrush :: HBRUSH -> IO Bool



----------------------------------------------------------------



type StockBrush   = INT



wHITE_BRUSH   :: StockBrush

wHITE_BRUSH   =  0

lTGRAY_BRUSH  :: StockBrush

lTGRAY_BRUSH  =  1

gRAY_BRUSH    :: StockBrush

gRAY_BRUSH    =  2

dKGRAY_BRUSH  :: StockBrush

dKGRAY_BRUSH  =  3

bLACK_BRUSH   :: StockBrush

bLACK_BRUSH   =  4

nULL_BRUSH    :: StockBrush

nULL_BRUSH    =  5

hOLLOW_BRUSH  :: StockBrush

hOLLOW_BRUSH  =  5



{-# LINE 70 "Graphics\\Win32\\GDI\\Brush.hsc" #-}



getStockBrush :: StockBrush -> IO HBRUSH

getStockBrush sb =

  failIfNull "GetStockBrush" $ c_GetStockBrush sb

foreign import WINDOWS_CCONV unsafe "windows.h GetStockObject"

  c_GetStockBrush :: StockBrush -> IO HBRUSH



----------------------------------------------------------------

-- End

----------------------------------------------------------------