fltkhs 0.5.4.0 → 0.5.4.1
raw patch · 7 files changed
+62/−18 lines, 7 filessetup-changed
Files
- Setup.hs +17/−4
- c-src/Fl_Types.h +1/−0
- c-src/xC.cpp +3/−0
- c-src/xC.h +1/−0
- fltkhs.cabal +4/−3
- src/Graphics/UI/FLTK/LowLevel/Fl_Types.chs +12/−11
- src/Graphics/UI/FLTK/LowLevel/X.chs +24/−0
Setup.hs view
@@ -311,10 +311,23 @@ rawSystemExit (fromFlag $ copyVerbosity flags) "cp" [fltkcdir </> "libfltkc.a" , libPref] case buildOS of- OSX -> rawSystemExit (fromFlag $ copyVerbosity flags) "cp"- ["c-lib" </> "libfltkc-dyn.dylib", libPref]- _ -> rawSystemExit (fromFlag $ copyVerbosity flags) "cp"- ["c-lib" </> "libfltkc-dyn.so", libPref]+ OSX -> do+ updateEnv "DYLD_LIBRARY_PATH" (takeDirectory libPref)+ rawSystemExit+ (fromFlag $ copyVerbosity flags)+ "cp"+ [+ "c-lib" </> "libfltkc-dyn.dylib"+ , libPref+ ]+ _ -> do+ updateEnv "LIBRARY_PATH" (takeDirectory libPref)+ rawSystemExit+ (fromFlag $ copyVerbosity flags) "cp"+ [+ "c-lib" </> "libfltkc-dyn.so"+ , libPref+ ] if (bundledBuild (configFlags lbi)) then do executableDir <- (bundlePrefix (configFlags lbi)) "bin"
c-src/Fl_Types.h view
@@ -488,6 +488,7 @@ typedef void* fl_XBM_Image; typedef void* fl_XPM_Image; typedef void* fl_Region;+ typedef void* fl_Window_Handle; typedef void (fl_Callback )(fl_Widget, void*); typedef void (fl_Text_Buffer_Callback)(fl_Text_Buffer); typedef void (*Unfinished_Style_Cb)(int, void *);
c-src/xC.cpp view
@@ -5,6 +5,9 @@ FL_EXPORT_C(void,flc_open_display)( ){ fl_open_display(); }+ FL_EXPORT_C(fl_Window_Handle ,flc_xid)(fl_Window w){+ return (fl_Window_Handle) fl_xid(static_cast<Fl_Window*>(w));+ } FL_EXPORT_C(Fl_Bitmask,flc_create_bitmask)(int w,int h,const uchar* data){ return fl_create_bitmask(w,h,data); }
c-src/xC.h view
@@ -17,6 +17,7 @@ # include <X11/Xutil.h> #endif FL_EXPORT_C_HEADER(void,flc_open_display,());+ FL_EXPORT_C_HEADER(fl_Window_Handle ,flc_xid,(fl_Window w)); FL_EXPORT_C_HEADER(Fl_Bitmask,flc_create_bitmask,(int w, int h, const uchar *data)); FL_EXPORT_C_HEADER(Fl_Bitmask,flc_create_alphamask,(int w, int h, int d, int ld, const uchar *data)); FL_EXPORT_C_HEADER(void,flc_delete_bitmask,(Fl_Bitmask bm));
fltkhs.cabal view
@@ -1,5 +1,5 @@ name : fltkhs-version : 0.5.4.0+version : 0.5.4.1 synopsis : FLTK bindings description: Low level bindings for the FLTK GUI toolkit. For installation and quick start instruction please scroll all the way down to the README. license : MIT@@ -131,6 +131,7 @@ Graphics.UI.FLTK.LowLevel.XPMImage Graphics.UI.FLTK.LowLevel.PNGImage Graphics.UI.FLTK.LowLevel.PNMImage+ Graphics.UI.FLTK.LowLevel.X build-depends: base == 4.*, bytestring,@@ -175,7 +176,7 @@ cpp-options: -DWIN64 if os(windows) ghc-Options: -optl-mwindows- ghc-Options: -pgml g++ "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"+ ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive" if os(darwin) ghc-Options: "-optl-Wl,-lfltkc" if !os(darwin) && !os(windows)@@ -191,7 +192,7 @@ ghc-Options: -Wall -threaded if os(windows) ghc-Options: -optl-mwindows- ghc-Options: -pgml g++ "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive"+ ghc-Options: -pgml g++ "-optl-Wl,--allow-multiple-definition" "-optl-Wl,--whole-archive" "-optl-Wl,-Bstatic" "-optl-Wl,-lfltkc" "-optl-Wl,-Bdynamic" "-optl-Wl,--no-whole-archive" if os(darwin) ghc-Options: "-optl-Wl,-lfltkc" if !os(darwin) && !os(windows)
src/Graphics/UI/FLTK/LowLevel/Fl_Types.chs view
@@ -249,17 +249,18 @@ data StyleTableEntry = StyleTableEntry (Maybe Color) (Maybe Font) (Maybe FontSize) deriving Show {#enum PackType{} deriving (Show, Eq, Ord) #}-type FlShortcut = {#type Fl_Shortcut #}-type FlColor = {#type Fl_Color #}-type FlFont = {#type Fl_Font #}-type FlAlign = {#type Fl_Align #}-type LineDelta = Maybe Int-type Delta = Maybe Int-type FlIntPtr = {#type fl_intptr_t #}-type FlUIntPtr = {#type fl_uintptr_t#}-type ID = {#type ID#}-data Ref a = Ref !(ForeignPtr (Ptr ())) deriving (Eq, Show)-data FunRef = FunRef !(FunPtr ())+type FlShortcut = {#type Fl_Shortcut #}+type FlColor = {#type Fl_Color #}+type FlFont = {#type Fl_Font #}+type FlAlign = {#type Fl_Align #}+type LineDelta = Maybe Int+type Delta = Maybe Int+type FlIntPtr = {#type fl_intptr_t #}+type FlUIntPtr = {#type fl_uintptr_t#}+type ID = {#type ID#}+newtype WindowHandle = WindowHandle (Ptr ())+data Ref a = Ref !(ForeignPtr (Ptr ())) deriving (Eq, Show)+data FunRef = FunRef !(FunPtr ()) -- * The FLTK widget hierarchy data CBase parent type Base = CBase ()
+ src/Graphics/UI/FLTK/LowLevel/X.chs view
@@ -0,0 +1,24 @@+{-# LANGUAGE CPP, FlexibleContexts #-}++module Graphics.UI.FLTK.LowLevel.X (flcOpenDisplay, flcXid) where+import Graphics.UI.FLTK.LowLevel.Fl_Types+import Graphics.UI.FLTK.LowLevel.Hierarchy+import Graphics.UI.FLTK.LowLevel.Dispatch+import Foreign.Ptr+#include "Fl_C.h"+#include "xC.h"++{# fun flc_open_display as flcOpenDisplay {} -> `()' #}++{# fun flc_xid as flcXid' {`Ptr ()'} -> `Ptr ()' #}+flcXid :: (Parent a Window) => Ref a -> IO (Maybe WindowHandle)+flcXid win =+ withRef+ win+ (+ \winPtr -> do+ res <- flcXid' winPtr+ if (res == nullPtr)+ then return Nothing+ else return (Just (WindowHandle res))+ )