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 +57/−51
- c-src/Fl_C.h +3/−1
- c-src/Fl_EnumerationsC.h +3/−0
- c-src/Fl_Gl_WindowC.cpp +12/−0
- c-src/Fl_Gl_WindowC.h +15/−7
- c-src/Fl_ImageC.cpp +1/−1
- c-src/Fl_ImageC.h +1/−1
- c-src/Fl_Menu_C.cpp +1/−1
- c-src/Fl_Menu_C.h +1/−1
- c-src/Fl_Types.h +1/−1
- fltkhs.cabal +1/−1
- src/Graphics/UI/FLTK/LowLevel/FL.chs +16/−4
- src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs +52/−28
- src/Graphics/UI/FLTK/LowLevel/Fl_Types.chs +19/−0
- src/Graphics/UI/FLTK/LowLevel/Gl.chs +3/−3
- src/Graphics/UI/FLTK/LowLevel/GlWindow.chs +21/−3
- src/Graphics/UI/FLTK/LowLevel/Hierarchy.hs +21/−4
- src/Graphics/UI/FLTK/LowLevel/Image.chs +3/−3
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