packages feed

fltkhs 0.5.2.7 → 0.5.2.8

raw patch · 18 files changed

+231/−110 lines, 18 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Graphics.UI.FLTK.LowLevel.FL: setUseHighResGL :: Bool -> IO ()
+ Graphics.UI.FLTK.LowLevel.FL: useHighResGL :: IO Bool
+ Graphics.UI.FLTK.LowLevel.Fl_Enumerations: ModeOpenGL3 :: Mode
+ Graphics.UI.FLTK.LowLevel.Fl_Types: refPtrEquals :: Ref a -> Ref b -> IO Bool
+ Graphics.UI.FLTK.LowLevel.GlWindow: instance impl ~ GHC.Types.IO GHC.Types.Float => Graphics.UI.FLTK.LowLevel.Dispatch.Op (Graphics.UI.FLTK.LowLevel.Hierarchy.PixelsPerUnit ()) Graphics.UI.FLTK.LowLevel.Hierarchy.GlWindow orig impl
+ Graphics.UI.FLTK.LowLevel.GlWindow: instance impl ~ GHC.Types.IO GHC.Types.Int => Graphics.UI.FLTK.LowLevel.Dispatch.Op (Graphics.UI.FLTK.LowLevel.Hierarchy.PixelH ()) Graphics.UI.FLTK.LowLevel.Hierarchy.GlWindow orig impl
+ Graphics.UI.FLTK.LowLevel.GlWindow: instance impl ~ GHC.Types.IO GHC.Types.Int => Graphics.UI.FLTK.LowLevel.Dispatch.Op (Graphics.UI.FLTK.LowLevel.Hierarchy.PixelW ()) Graphics.UI.FLTK.LowLevel.Hierarchy.GlWindow orig impl
+ Graphics.UI.FLTK.LowLevel.Hierarchy: data PixelH a
+ Graphics.UI.FLTK.LowLevel.Hierarchy: data PixelW a
+ Graphics.UI.FLTK.LowLevel.Hierarchy: data PixelsPerUnit a
+ Graphics.UI.FLTK.LowLevel.Hierarchy: pixelH :: (HasCallStack, Match r ~ FindOp a a (PixelH ()), Op (PixelH ()) r a impl) => Ref a -> impl
+ Graphics.UI.FLTK.LowLevel.Hierarchy: pixelW :: (HasCallStack, Match r ~ FindOp a a (PixelW ()), Op (PixelW ()) r a impl) => Ref a -> impl
+ Graphics.UI.FLTK.LowLevel.Hierarchy: pixelsPerUnit :: (HasCallStack, Match r ~ FindOp a a (PixelsPerUnit ()), Op (PixelsPerUnit ()) r a impl) => Ref a -> impl
- Graphics.UI.FLTK.LowLevel.FL: readqueue :: IO ((Ref Widget))
+ Graphics.UI.FLTK.LowLevel.FL: readqueue :: IO ((Maybe (Ref Widget)))
- Graphics.UI.FLTK.LowLevel.Fl_Types: unsafeRefToPtr :: Ref a -> IO (Ptr ())
+ Graphics.UI.FLTK.LowLevel.Fl_Types: unsafeRefToPtr :: HasCallStack => Ref a -> IO (Ptr ())
- Graphics.UI.FLTK.LowLevel.Fl_Types: withRefs :: [Ref a] -> (Ptr (Ptr b) -> IO c) -> IO c
+ Graphics.UI.FLTK.LowLevel.Fl_Types: withRefs :: HasCallStack => [Ref a] -> (Ptr (Ptr b) -> IO c) -> IO c
- Graphics.UI.FLTK.LowLevel.Gl: glFont :: Font -> Int -> IO ()
+ Graphics.UI.FLTK.LowLevel.Gl: glFont :: Font -> FontSize -> IO ()

Files

c-src/Fl_C.cpp view
@@ -2,55 +2,55 @@ #include "Fl_ExportMacros.h" #ifdef __cplusplus #include "Fl_C.h"-  class C_to_Fl_Event_Dispatch {-  public:-    static fl_Event_Dispatch* cb;-    static int intercept(int event, Fl_Window* window) {-      fl_Window w = (fl_Window)window;-      return (*cb)(event, w);-    }-  };-  fl_Event_Dispatch* C_to_Fl_Event_Dispatch::cb = 0;-  class C_to_Fl_Label_Draw_F {-  public:-    static fl_Label_Draw_F* cb;-    static void intercept(const Fl_Label* label, int x, int y, int w, int h, Fl_Align align) {-      fl_Label* l = (fl_Label*)label;-      (*cb)(l, x, y, w, h, align);-    }-  };-  fl_Label_Draw_F* C_to_Fl_Label_Draw_F::cb = 0;-  class C_to_Fl_Label_Measure_F {-  public:-    static fl_Label_Measure_F* cb;-    static void intercept(const Fl_Label* label, int& width, int& height) {-      fl_Label* l = (fl_Label*)label;-      int* w = &width;-      int* h = &height;-      (*cb)(l, w, h);-    }-  };-  fl_Label_Measure_F* C_to_Fl_Label_Measure_F::cb = 0;-  class C_to_Fl_Abort_Handler {-  public:-    static fl_Abort_Handler* cb;-    static void intercept(const char* format, ...) {-      va_list argp;-      va_start(argp, format);-      (*cb)(format, argp);-      va_end(argp);-    }-  };-  fl_Abort_Handler* C_to_Fl_Abort_Handler::cb = 0;-  class C_to_Fl_Atclose_Handler {-  public:-    static fl_Atclose_Handler* cb;-    static void intercept(Fl_Window* window, void* data){-      fl_Window w = (fl_Window)window;-      (*cb)(w,data);-    }-  };-  fl_Atclose_Handler* C_to_Fl_Atclose_Handler::cb = 0;+class C_to_Fl_Event_Dispatch {+public:+  static fl_Event_Dispatch* cb;+  static int intercept(int event, Fl_Window* window) {+    fl_Window w = (fl_Window)window;+    return (*cb)(event, w);+  }+};+fl_Event_Dispatch* C_to_Fl_Event_Dispatch::cb = 0;+class C_to_Fl_Label_Draw_F {+public:+  static fl_Label_Draw_F* cb;+  static void intercept(const Fl_Label* label, int x, int y, int w, int h, Fl_Align align) {+    fl_Label* l = (fl_Label*)label;+    (*cb)(l, x, y, w, h, align);+  }+};+fl_Label_Draw_F* C_to_Fl_Label_Draw_F::cb = 0;+class C_to_Fl_Label_Measure_F {+public:+  static fl_Label_Measure_F* cb;+  static void intercept(const Fl_Label* label, int& width, int& height) {+    fl_Label* l = (fl_Label*)label;+    int* w = &width;+    int* h = &height;+    (*cb)(l, w, h);+  }+};+fl_Label_Measure_F* C_to_Fl_Label_Measure_F::cb = 0;+class C_to_Fl_Abort_Handler {+public:+  static fl_Abort_Handler* cb;+  static void intercept(const char* format, ...) {+    va_list argp;+    va_start(argp, format);+    (*cb)(format, argp);+    va_end(argp);+  }+};+fl_Abort_Handler* C_to_Fl_Abort_Handler::cb = 0;+class C_to_Fl_Atclose_Handler {+public:+  static fl_Atclose_Handler* cb;+  static void intercept(Fl_Window* window, void* data){+    fl_Window w = (fl_Window)window;+    (*cb)(w,data);+  }+};+fl_Atclose_Handler* C_to_Fl_Atclose_Handler::cb = 0; EXPORT { #endif   FL_EXPORT_C(int, Fl_run)(){ return Fl::run(); }@@ -606,7 +606,7 @@   FL_EXPORT_C(int ,Fl_reload_scheme()){     return Fl::reload_scheme();   };-#if FL_API_VERSION == 10304+#if FL_API_VERSION >= 10304   FL_EXPORT_C(void,Fl_set_box_color)(Fl_Color c) {     Fl::set_box_color(c);   }@@ -621,7 +621,7 @@   }   FL_EXPORT_C(int ,Fl_abi_check(int val)){     return Fl::abi_check(val);-      };+  };   FL_EXPORT_C(const char*,Fl_local_ctrl)(){     return fl_local_ctrl;   }@@ -633,6 +633,12 @@   }   FL_EXPORT_C(const char*,Fl_local_shift)(){     return fl_local_shift;+  }+  FL_EXPORT_C(void,Fl_set_use_high_res_GL)(int val){+    Fl::use_high_res_GL(val);+  }+  FL_EXPORT_C(int,Fl_use_high_res_GL)(){+    return Fl::use_high_res_GL();   } #endif 
c-src/Fl_C.h view
@@ -261,7 +261,7 @@   FL_EXPORT_C(void*             ,Fl_event_clipboard)();   FL_EXPORT_C(const char*       ,Fl_event_clipboard_type)();   FL_EXPORT_C(int               ,Fl_reload_scheme());-#if FL_API_VERSION == 10304+#if FL_API_VERSION >= 10304   FL_EXPORT_C(void              ,Fl_set_box_color)(Fl_Color c);   FL_EXPORT_C(Fl_Color          ,Fl_box_color)(Fl_Color c);   FL_EXPORT_C(int               ,Fl_abi_version)();@@ -271,6 +271,8 @@   FL_EXPORT_C(const char*       ,Fl_local_meta)();   FL_EXPORT_C(const char*       ,Fl_local_alt)();   FL_EXPORT_C(const char*       ,Fl_local_shift)();+  FL_EXPORT_C(void              ,Fl_set_use_high_res_GL)(int val);+  FL_EXPORT_C(int               ,Fl_use_high_res_GL)(); #endif #ifdef __cplusplus }
c-src/Fl_EnumerationsC.h view
@@ -423,6 +423,9 @@     FL_MULTISAMPLE      = 128,     FL_STEREO           = 256,     FL_FAKE_SINGLE      = 512+#if HAVE_GL+    , FL_OPENGL3 = 1024+#endif   } Fl_Mode; #define FL_IMAGE_WITH_ALPHA 0x40000000 
c-src/Fl_Gl_WindowC.cpp view
@@ -834,6 +834,18 @@   FL_EXPORT_C(void,Fl_Gl_Window_make_overlay_current)(fl_Gl_Window win){     (static_cast<Fl_DerivedGl_Window*>(win))->make_overlay_current();   }+#if FL_API_VERSION >= 10304+  FL_EXPORT_C(float, Fl_Gl_Window_pixels_per_unit)(fl_Gl_Window win){+    return (static_cast<Fl_DerivedGl_Window*>(win))->pixels_per_unit();+  }+  FL_EXPORT_C(int, Fl_Gl_Window_pixel_h)(fl_Gl_Window win){+    return (static_cast<Fl_DerivedGl_Window*>(win))->pixel_h();+  }+  FL_EXPORT_C(int, Fl_Gl_Window_pixel_w)(fl_Gl_Window win){+    return (static_cast<Fl_DerivedGl_Window*>(win))->pixel_w();+  }+#endif+ #ifdef __cplusplus } #endif
c-src/Fl_Gl_WindowC.h view
@@ -1,6 +1,9 @@ #ifndef __FL_GL_WINDOW_C__ #define __FL_GL_WINDOW_C__+#include "Fl_Types.h"+#include "Fl_EnumerationsC.h" #ifdef __cplusplus+#include "Fl_EnumerationsC.h" #include "FL/Fl.H" #include "FL/Fl_Gl_Window.H" // always include the FL/*.H headers before local headers                           // Fl_Widget is included transitively and needed for@@ -17,13 +20,13 @@   FL_EXPORT_C(void,         Fl_Gl_Window_set_parent)(fl_Gl_Window win, fl_Group grp);   FL_EXPORT_C(uchar,        Fl_Gl_Window_type)(fl_Gl_Window win);   FL_EXPORT_C(void,         Fl_Gl_Window_set_type)(fl_Gl_Window win, uchar t);-FL_EXPORT_C(void, Fl_Gl_Window_draw_box)(fl_Gl_Window Gl_Window);-FL_EXPORT_C(void, Fl_Gl_Window_draw_box_with_tc)(fl_Gl_Window Gl_Window,Fl_Boxtype t, Fl_Color c);-FL_EXPORT_C(void, Fl_Gl_Window_draw_box_with_txywhc)(fl_Gl_Window Gl_Window,Fl_Boxtype t, int x,int y,int w,int h, Fl_Color c);-FL_EXPORT_C(void, Fl_Gl_Window_draw_backdrop)(fl_Gl_Window Gl_Window);-FL_EXPORT_C(void, Fl_Gl_Window_draw_focus)(fl_Gl_Window Gl_Window);-FL_EXPORT_C(void, Fl_Gl_Window_draw_focus_with_txywh)(fl_Gl_Window Gl_Window,Fl_Boxtype t, int x,int y,int w,int h);-FL_EXPORT_C(void, Fl_Gl_Window_draw_label)(fl_Gl_Window Gl_Window);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_box)(fl_Gl_Window Gl_Window);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_box_with_tc)(fl_Gl_Window Gl_Window,Fl_Boxtype t, Fl_Color c);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_box_with_txywhc)(fl_Gl_Window Gl_Window,Fl_Boxtype t, int x,int y,int w,int h, Fl_Color c);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_backdrop)(fl_Gl_Window Gl_Window);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_focus)(fl_Gl_Window Gl_Window);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_focus_with_txywh)(fl_Gl_Window Gl_Window,Fl_Boxtype t, int x,int y,int w,int h);+  FL_EXPORT_C(void, Fl_Gl_Window_draw_label)(fl_Gl_Window Gl_Window);    FL_EXPORT_C(int,          Fl_Gl_Window_x)(fl_Gl_Window win);   FL_EXPORT_C(int,          Fl_Gl_Window_y)(fl_Gl_Window win);@@ -259,6 +262,11 @@   FL_EXPORT_C(void, Fl_Gl_Window_redraw_overlay)(fl_Gl_Window win);   FL_EXPORT_C(void, Fl_Gl_Window_hide_overlay)(fl_Gl_Window win);   FL_EXPORT_C(void, Fl_Gl_Window_make_overlay_current)(fl_Gl_Window win);+#if FL_API_VERSION >= 10304+  FL_EXPORT_C(float, Fl_Gl_Window_pixels_per_unit)(fl_Gl_Window win);+  FL_EXPORT_C(int, Fl_Gl_Window_pixel_h)(fl_Gl_Window win);+  FL_EXPORT_C(int, Fl_Gl_Window_pixel_w)(fl_Gl_Window win);+#endif   FL_EXPORT_C(int,Fl_Gl_Window_handle_super)(fl_Gl_Window self, int event);   FL_EXPORT_C(void,Fl_Gl_Window_draw_super)(fl_Gl_Window self);   FL_EXPORT_C(fl_Group,Fl_Gl_Window_as_group_super)(fl_Gl_Window win);
c-src/Fl_ImageC.cpp view
@@ -147,7 +147,7 @@   FL_EXPORT_C(void,Fl_Image_uncache)(fl_Image image){     return (static_cast<Fl_DerivedImage*>(image))->uncache();   }-#if FL_API_VERSION == 10304+#if FL_API_VERSION >= 10304   FL_EXPORT_C(int, Fl_Image_fail)(fl_Image image){     return (static_cast<Fl_DerivedImage*>(image))->fail();   }
c-src/Fl_ImageC.h view
@@ -61,7 +61,7 @@   FL_EXPORT_C(void,Fl_Image_draw_with)(fl_Image image,int X,int Y,int W,int H);   FL_EXPORT_C(void, Fl_Image_draw)(fl_Image image,int X, int Y);   FL_EXPORT_C(void, Fl_Image_uncache)(fl_Image image);-#if FL_API_VERSION == 10304+#if FL_API_VERSION >= 10304   FL_EXPORT_C(int, Fl_Image_fail)(fl_Image image); #endif #ifdef __cplusplus
c-src/Fl_Menu_C.cpp view
@@ -615,7 +615,7 @@   FL_EXPORT_C(void,Fl_Menu__set_down_color)(fl_Menu_ menu_,unsigned c){     (static_cast<Fl_DerivedMenu_*>(menu_))->down_color(c);   }-#if FL_API_VERSION == 10304+#if FL_API_VERSION >= 10304   FL_EXPORT_C(void, Fl_Menu__set_only)(fl_Menu_ menu_, fl_Menu_Item m){     (static_cast<Fl_DerivedMenu_*>(menu_))->setonly(static_cast<Fl_Menu_Item*>(m));   }
c-src/Fl_Menu_C.h view
@@ -207,7 +207,7 @@   FL_EXPORT_C(void, Fl_Menu__set_down_box)(fl_Menu_ menu_, Fl_Boxtype b);   FL_EXPORT_C(Fl_Color, Fl_Menu__down_color)(fl_Menu_ menu_);   FL_EXPORT_C(void, Fl_Menu__set_down_color)(fl_Menu_ menu_, unsigned c);-#if FL_API_VERSION == 10304+#if FL_API_VERSION >= 10304   FL_EXPORT_C(void, Fl_Menu__set_only)(fl_Menu_ menu_, fl_Menu_Item m); #endif #ifdef __cplusplus
c-src/Fl_Types.h view
@@ -86,7 +86,7 @@     FL_TREE_REASON_DESELECTED, #if FLTK_ABI_VERSION >= 10302     FL_TREE_REASON_RESELECTED,-#endif /*FLTK_ABI_VERSION*/+#endif     FL_TREE_REASON_OPENED,     FL_TREE_REASON_CLOSED,     FL_TREE_REASON_DRAGGED
fltkhs.cabal view
@@ -1,5 +1,5 @@ name : fltkhs-version : 0.5.2.7+version : 0.5.2.8 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
src/Graphics/UI/FLTK/LowLevel/FL.chs view
@@ -162,7 +162,7 @@      eventText,      eventLength,      eventClipboardContents,-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304      setBoxColor,      boxColor,      abiVersion,@@ -172,11 +172,15 @@      localMeta,      localAlt,      localShift+#ifdef GLSUPPORT+     , useHighResGL+     , setUseHighResGL #endif+#endif     ) where #include "Fl_C.h"-import C2HS hiding (cFromEnum, cToBool,cToEnum)+import C2HS hiding (cFromEnum, cToBool,cToEnum,cFromBool) import Data.IORef  import Graphics.UI.FLTK.LowLevel.Fl_Enumerations@@ -329,7 +333,7 @@        { `Int' } -> `()' #}  {# fun Fl_readqueue as readqueue-       {  } -> `Ref Widget' unsafeToRef #}+       {  } -> `Maybe (Ref Widget)' unsafeToMaybeRef #} {# fun Fl_add_timeout as addTimeout        { `Double', unsafeToCallbackPrim `GlobalCallback' } -> `()' supressWarningAboutRes #} {# fun Fl_repeat_timeout as repeatTimeout@@ -879,7 +883,7 @@ releaseWidgetPointer wp = withRef wp {#call Fl_release_widget_pointer as fl_release_widget_pointer #} clearWidgetPointer :: (Parent a Widget) => Ref a -> IO () clearWidgetPointer wp = withRef wp {#call Fl_clear_widget_pointer as fl_Clear_Widget_Pointer #}-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304 -- | Only available on FLTK version 1.3.4 and above. setBoxColor :: Color -> IO () setBoxColor c = {#call Fl_set_box_color as fl_set_box_color #} (cFromColor c)@@ -907,4 +911,12 @@ -- | Only available on FLTK version 1.3.4 and above. localShift :: IO T.Text localShift = {#call Fl_local_shift as fl_local_shift #} >>= cStringToText+#ifdef GLSUPPORT+-- | Only available on FLTK version 1.3.4 and above if GL is enabled with 'stack build --flag fltkhs:opengl'+useHighResGL :: IO Bool+useHighResGL = {#call Fl_use_high_res_GL as fl_use_high_res_GL #} >>= return . cToBool+-- | Only available on FLTK version 1.3.4 and above if GL is enabled with 'stack build --flag fltkhs:opengl'+setUseHighResGL :: Bool -> IO ()+setUseHighResGL use' = {#call Fl_set_use_high_res_GL as fl_set_use_high_res_GL #} (cFromBool use')+#endif #endif
src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs view
@@ -12,6 +12,10 @@      TreeConnector(..),      TreeSelect(..),      SearchDirection(..),+#if FLTK_ABI_VERSION >= 10302+     TreeItemReselectMode(..),+     TreeItemDrawMode(..),+#endif      -- * Keyboard and mouse codes      SpecialKey(..),      allSpecialKeys,@@ -24,6 +28,8 @@      kb_CommandState, kb_ControlState, kb_KpLast,      -- * Widget damage types      Damage(..),+     -- * Cursor type+     Cursor(..), #ifdef GLSUPPORT      -- * Glut attributes      GlutDraw(..),@@ -37,14 +43,12 @@      GlutWindowProperties(..),      GlutCursor(..),      glutCursorFullCrossHair,-#endif-     -- * Cursor type-     Cursor(..),      -- * Various modes      Mode(..),      Modes(..),      single,      allModes,+#endif      -- * Alignment      Alignments(..),      AlignType(..),@@ -255,6 +259,17 @@   SearchDirectionDown = FL_Down,   SearchDirectionUp = FL_Up };+#if FLTK_ABI_VERSION >= 10302+enum  TreeItemReselectMode{+  TreeSelectableOnce = FL_TREE_SELECTABLE_ONCE,+  TreeSelectableAlways = FL_TREE_SELECTABLE_ALWAYS+};+enum TreeItemDrawMode{+  TreeItemDrawDefault = FL_TREE_ITEM_DRAW_DEFAULT,+  TreeItemDrawLabelAndWidget = FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET,+  TreeItemHeightFromWidget = FL_TREE_ITEM_HEIGHT_FROM_WIDGET+};+#endif enum SpecialKey {   Button = FL_Button,   Kb_Clear = FL_Clear,@@ -485,16 +500,19 @@ }; enum Mode {  ModeRGB         = FL_RGB,+ ModeRGB8        = FL_RGB8,  ModeIndex       = FL_INDEX,  ModeDouble      = FL_DOUBLE,  ModeAccum       = FL_ACCUM,  ModeAlpha       = FL_ALPHA,  ModeDepth       = FL_DEPTH,  ModeStencil     = FL_STENCIL,- ModeRGB8        = FL_RGB8,  ModeMultisample = FL_MULTISAMPLE,  ModeStereo      = FL_STEREO,  ModeFakeSingle  = FL_FAKE_SINGLE+#if FLTK_API_VERSION >= 10304+ , ModeOpenGL3     = FL_OPENGL3+#endif }; enum AlignType {  AlignTypeCenter          = 0,@@ -525,7 +543,7 @@ #if FLTK_ABI_VERSION >= 10302 {#enum TreeItemReselectMode {} deriving (Show, Eq) #} {#enum TreeItemDrawMode {} deriving (Show, Eq) #}-#endif /*FLTK_ABI_VERSION*/+#endif {#enum SpecialKey {} deriving (Show, Eq) #}  allShortcutSpecialKeys :: [CInt]@@ -635,6 +653,7 @@ kb_KpLast :: SpecialKey kb_KpLast = Kb_F {#enum Damage {} deriving (Show) #}+{#enum Cursor {} deriving (Show) #} #ifdef GLSUPPORT -- | Only available if the 'opengl' flag is set (stack build --flag fltkhs:opengl). {#enum GlutDraw {} deriving (Show) #}@@ -659,9 +678,35 @@ -- | Only available if the 'opengl' flag is set (stack build --flag fltkhs:opengl). glutCursorFullCrossHair :: GlutCursor glutCursorFullCrossHair = GlutCursorCrosshair-#endif-{#enum Cursor {} deriving (Show) #}+-- | Only available if the 'opengl' flag is set (stack build --flag fltkhs:opengl). {#enum Mode   {} deriving (Show,Eq,Ord) #}+-- Fl_Mode Aliases+-- | Only available if the 'opengl' flag is set (stack build --flag fltkhs:opengl).+single :: Mode+single = ModeRGB+-- | Only available if the 'opengl' flag is set (stack build --flag fltkhs:opengl).+newtype Modes = Modes [Mode] deriving (Show,Eq,Ord)+-- | Only available if the 'opengl' flag is set (stack build --flag fltkhs:opengl).+allModes :: [Mode]+allModes =+  [+    ModeRGB,+    ModeIndex,+    ModeDouble,+    ModeAccum,+    ModeAlpha,+    ModeDepth,+    ModeStencil,+    ModeRGB8,+    ModeMultisample,+    ModeStereo,+    ModeFakeSingle+#if FLTK_API_VERSION >= 10304+    , ModeOpenGL3+#endif+  ]+#endif /* GLSUPPORT */+ {#enum AlignType {} deriving (Show, Eq, Ord) #} newtype Alignments = Alignments [AlignType] deriving Show alignCenter :: Alignments@@ -1069,27 +1114,6 @@ numGreen = Color 8 numBlue :: Color numBlue = Color 5---- Fl_Mode Aliases--single :: Mode-single = ModeRGB-newtype Modes = Modes [Mode] deriving (Show,Eq,Ord)-allModes :: [Mode]-allModes =-  [-    ModeRGB,-    ModeIndex,-    ModeDouble,-    ModeAccum,-    ModeAlpha,-    ModeDepth,-    ModeStencil,-    ModeRGB8,-    ModeMultisample,-    ModeStereo,-    ModeFakeSingle-  ]  -- Fl_LabelType 
src/Graphics/UI/FLTK/LowLevel/Fl_Types.chs view
@@ -452,13 +452,25 @@         return (refPtr == nullPtr)    ) +#ifdef CALLSTACK_AVAILABLE+unsafeRefToPtr :: (?loc :: CallStack) => Ref a -> IO (Ptr ())+#elif HASCALLSTACK_AVAILABLE+unsafeRefToPtr :: HasCallStack => Ref a -> IO (Ptr ())+#else unsafeRefToPtr :: Ref a -> IO (Ptr ())+#endif unsafeRefToPtr (Ref fptr) =     throwStackOnError $ do       refPtr <- toRefPtr $ Unsafe.unsafeForeignPtrToPtr fptr       return $ castPtr refPtr +#ifdef CALLSTACK_AVAILABLE+withRefs :: (?loc :: CallStack) => [Ref a] -> (Ptr (Ptr b) -> IO c) -> IO c+#elif HASCALLSTACK_AVAILABLE+withRefs :: HasCallStack => [Ref a] -> (Ptr (Ptr b) -> IO c) -> IO c+#else withRefs :: [Ref a] -> (Ptr (Ptr b) -> IO c) -> IO c+#endif withRefs refs f =   throwStackOnError   $ withForeignPtrs@@ -486,3 +498,10 @@  fromFunRef :: FunRef -> (FunPtr ()) fromFunRef (FunRef f) = castFunPtr f++refPtrEquals :: Ref a -> Ref b -> IO Bool+refPtrEquals w1 w2 = do+  w1Null <- isNull w1+  w2Null <- isNull w2+  if (w1Null || w2Null) then return False+    else withRef w1 (\w1Ptr -> withRef w2 (\w2Ptr -> return (w1Ptr == w2Ptr)))
src/Graphics/UI/FLTK/LowLevel/Gl.chs view
@@ -42,9 +42,9 @@ {# fun flc_gl_rectf as flcGlRectf' { `Int',`Int',`Int',`Int' } -> `()' #} glRectf :: Rectangle ->  IO () glRectf rectangle = let (x_pos', y_pos', width', height') = fromRectangle rectangle in flcGlRectf' x_pos' y_pos' width' height'-{# fun flc_gl_font as flcGlFont' {cFromFont `Font',`Int' } -> `()' #}-glFont :: Font -> Int ->  IO ()-glFont fontid size = flcGlFont' fontid size+{# fun flc_gl_font as flcGlFont' {cFromFont `Font',`CInt' } -> `()' #}+glFont :: Font -> FontSize ->  IO ()+glFont fontid (FontSize size) = flcGlFont' fontid size  {# fun flc_gl_width as flcGlWidth' { unsafeToCString `T.Text' } -> `Double' #} glWidth :: T.Text ->  IO (Double)
src/Graphics/UI/FLTK/LowLevel/GlWindow.chs view
@@ -158,7 +158,17 @@ {# fun Fl_Gl_Window_make_overlay_current as makeOverlayCurrent' { id `Ptr ()' } -> `()' supressWarningAboutRes #} instance (impl ~ ( IO ())) => Op (MakeOverlayCurrent ()) GlWindow orig impl where   runOp _ _ win = withRef win $ \winPtr -> makeOverlayCurrent' winPtr-+{# fun Fl_Gl_Window_pixels_per_unit as pixelsPerUnit' { id `Ptr ()'} -> `Float' #}+#if FLTK_API_VERSION >= 10304+instance (impl ~ ( IO (Float))) => Op (PixelsPerUnit ()) GlWindow orig impl where+  runOp _ _ win = withRef win $ \winPtr -> pixelsPerUnit' winPtr+{# fun Fl_Gl_Window_pixel_h as pixelH' { id `Ptr ()'} -> `Int' #}+instance (impl ~ ( IO (Int))) => Op (PixelH ()) GlWindow orig impl where+  runOp _ _ win = withRef win $ \winPtr -> pixelH' winPtr+{# fun Fl_Gl_Window_pixel_w as pixelW' { id `Ptr ()'} -> `Int' #}+instance (impl ~ ( IO (Int))) => Op (PixelW ()) GlWindow orig impl where+  runOp _ _ win = withRef win $ \winPtr -> pixelW' winPtr+#endif -- $GlWindowfunctions -- @ -- canDo :: 'Ref' 'GlWindow' -> 'IO' ('Bool')@@ -181,9 +191,9 @@ -- -- getValid :: 'Ref' 'GlWindow' -> 'IO' ('Bool') ----- handle :: 'Ref' 'GlWindow' -> 'Event' -> 'IO' ('Int')+-- handle :: 'Ref' 'GlWindow' -> 'Event' -> 'IO(Either' 'UnknownEvent' ()) ----- handleSuper :: 'Ref' 'GlWindow' -> 'Event' -> 'IO' ('Int')+-- handleSuper :: 'Ref' 'GlWindow' -> 'Event' -> 'IO' ('Either' 'UnknownEvent' ()) -- -- hide :: 'Ref' 'GlWindow' -> 'IO' () --@@ -218,6 +228,14 @@ -- showWidgetSuper :: 'Ref' 'GlWindow' -> 'IO' () -- -- swapBuffers :: 'Ref' 'GlWindow' -> 'IO' ()+--+-- Available in FLTK 1.3.4 only:+--+-- pixelH :: 'Ref' 'GlWindow' -> 'IO' ('Int')+--+-- pixelW :: 'Ref' 'GlWindow' -> 'IO' ('Int')+--+-- pixelsPerUnit :: 'Ref' 'GlWindow' -> 'IO' ('Float') -- @  -- $hierarchy
src/Graphics/UI/FLTK/LowLevel/Hierarchy.hs view
@@ -863,6 +863,12 @@          hideOverlay,          MakeOverlayCurrent,          makeOverlayCurrent,+         PixelsPerUnit,+         pixelsPerUnit,+         PixelH,+         pixelH,+         PixelW,+         pixelW,          -- * Box          Box,          -- * Browser@@ -2327,11 +2333,11 @@   (SetDownBox   (GetDownColor   (SetDownColor-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304   (Setonly #endif   ())))))))))))))))))))))))))))))))))))))))))))))-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304   ) #endif @@ -2460,11 +2466,11 @@   (DrawResize   (Draw   (Uncache-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304   (Fail #endif   ())))))))))))))-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304   ) #endif @@ -3174,7 +3180,15 @@   (RedrawOverlay   (HideOverlay   (MakeOverlayCurrent+#if FLTK_API_VERSION >= 10304+  (PixelsPerUnit+  (PixelH+  (PixelW+#endif   ())))))))))))))))))))))))))))))+#if FLTK_API_VERSION >= 10304+  )))+#endif  type instance Functions GlWindow = GlWindowFuncs @@ -3191,6 +3205,9 @@ MAKE_METHOD(Ortho,ortho) MAKE_METHOD(HideOverlay,hideOverlay) MAKE_METHOD(MakeOverlayCurrent,makeOverlayCurrent)+MAKE_METHOD(PixelsPerUnit,pixelsPerUnit)+MAKE_METHOD(PixelH,pixelH)+MAKE_METHOD(PixelW,pixelW)  data CBox parent type Box = CBox Widget
src/Graphics/UI/FLTK/LowLevel/Image.chs view
@@ -2,7 +2,7 @@ {-# OPTIONS_GHC -fno-warn-orphans #-} module Graphics.UI.FLTK.LowLevel.Image        (-#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304        ImageFail(..), #endif        ImageFuncs(..),@@ -33,7 +33,7 @@ import Graphics.UI.FLTK.LowLevel.Hierarchy import Graphics.UI.FLTK.LowLevel.Dispatch -#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304 #c enum ImageFail {   ImageErrNoImage = ERR_NO_IMAGE,@@ -185,7 +185,7 @@ instance (impl ~ ( IO ())) => Op (Uncache ()) Image orig impl where   runOp _ _ image = withRef image $ \imagePtr -> uncache' imagePtr -#if FLTK_API_VERSION == 10304+#if FLTK_API_VERSION >= 10304 {#fun Fl_Image_fail as fail' { id `Ptr ()'} -> `CInt' #} -- | Only available on FLTK version 1.3.4 and above. instance (impl ~ (IO (Either ImageFail ()))) => Op (Fail ()) Image orig impl where