{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Gtk.Interfaces.ColorChooser.ColorChooser' is an interface that is implemented by widgets for choosing colors. Depending on the situation, colors may be allowed to have alpha (translucency). In GTK+, the main widgets that implement this interface are 'GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget', 'GI.Gtk.Objects.ColorChooserDialog.ColorChooserDialog' and 'GI.Gtk.Objects.ColorButton.ColorButton'. /Since: 3.4/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gtk.Interfaces.ColorChooser ( -- * Exported types ColorChooser(..) , noColorChooser , IsColorChooser , toColorChooser , -- * Methods -- ** addPalette #method:addPalette# #if ENABLE_OVERLOADING ColorChooserAddPaletteMethodInfo , #endif colorChooserAddPalette , -- ** getRgba #method:getRgba# #if ENABLE_OVERLOADING ColorChooserGetRgbaMethodInfo , #endif colorChooserGetRgba , -- ** getUseAlpha #method:getUseAlpha# #if ENABLE_OVERLOADING ColorChooserGetUseAlphaMethodInfo , #endif colorChooserGetUseAlpha , -- ** setRgba #method:setRgba# #if ENABLE_OVERLOADING ColorChooserSetRgbaMethodInfo , #endif colorChooserSetRgba , -- ** setUseAlpha #method:setUseAlpha# #if ENABLE_OVERLOADING ColorChooserSetUseAlphaMethodInfo , #endif colorChooserSetUseAlpha , -- * Properties -- ** rgba #attr:rgba# {- | The ::rgba property contains the currently selected color, as a 'GI.Gdk.Structs.RGBA.RGBA' struct. The property can be set to change the current selection programmatically. /Since: 3.4/ -} #if ENABLE_OVERLOADING ColorChooserRgbaPropertyInfo , #endif #if ENABLE_OVERLOADING colorChooserRgba , #endif constructColorChooserRgba , getColorChooserRgba , setColorChooserRgba , -- ** useAlpha #attr:useAlpha# {- | When ::use-alpha is 'True', colors may have alpha (translucency) information. When it is 'False', the 'GI.Gdk.Structs.RGBA.RGBA' struct obtained via the 'GI.Gtk.Interfaces.ColorChooser.ColorChooser':@/rgba/@ property will be forced to have alpha == 1. Implementations are expected to show alpha by rendering the color over a non-uniform background (like a checkerboard pattern). /Since: 3.4/ -} #if ENABLE_OVERLOADING ColorChooserUseAlphaPropertyInfo , #endif #if ENABLE_OVERLOADING colorChooserUseAlpha , #endif constructColorChooserUseAlpha , getColorChooserUseAlpha , setColorChooserUseAlpha , -- * Signals -- ** colorActivated #signal:colorActivated# C_ColorChooserColorActivatedCallback , ColorChooserColorActivatedCallback , #if ENABLE_OVERLOADING ColorChooserColorActivatedSignalInfo , #endif afterColorChooserColorActivated , genClosure_ColorChooserColorActivated , mk_ColorChooserColorActivatedCallback , noColorChooserColorActivatedCallback , onColorChooserColorActivated , wrap_ColorChooserColorActivatedCallback , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import qualified GI.GObject.Objects.Object as GObject.Object import qualified GI.Gdk.Structs.RGBA as Gdk.RGBA import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums -- interface ColorChooser -- | Memory-managed wrapper type. newtype ColorChooser = ColorChooser (ManagedPtr ColorChooser) -- | A convenience alias for `Nothing` :: `Maybe` `ColorChooser`. noColorChooser :: Maybe ColorChooser noColorChooser = Nothing -- signal ColorChooser::color-activated {- | Emitted when a color is activated from the color chooser. This usually happens when the user clicks a color swatch, or a color is selected and the user presses one of the keys Space, Shift+Space, Return or Enter. /Since: 3.4/ -} type ColorChooserColorActivatedCallback = Gdk.RGBA.RGBA {- ^ /@color@/: the color -} -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `ColorChooserColorActivatedCallback`@. noColorChooserColorActivatedCallback :: Maybe ColorChooserColorActivatedCallback noColorChooserColorActivatedCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_ColorChooserColorActivatedCallback = Ptr () -> -- object Ptr Gdk.RGBA.RGBA -> Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_ColorChooserColorActivatedCallback`. foreign import ccall "wrapper" mk_ColorChooserColorActivatedCallback :: C_ColorChooserColorActivatedCallback -> IO (FunPtr C_ColorChooserColorActivatedCallback) -- | Wrap the callback into a `GClosure`. genClosure_ColorChooserColorActivated :: MonadIO m => ColorChooserColorActivatedCallback -> m (GClosure C_ColorChooserColorActivatedCallback) genClosure_ColorChooserColorActivated cb = liftIO $ do let cb' = wrap_ColorChooserColorActivatedCallback cb mk_ColorChooserColorActivatedCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `ColorChooserColorActivatedCallback` into a `C_ColorChooserColorActivatedCallback`. wrap_ColorChooserColorActivatedCallback :: ColorChooserColorActivatedCallback -> C_ColorChooserColorActivatedCallback wrap_ColorChooserColorActivatedCallback _cb _ color _ = do B.ManagedPtr.withTransient Gdk.RGBA.RGBA color $ \color' -> do _cb color' {- | Connect a signal handler for the “@color-activated@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' colorChooser #colorActivated callback @ -} onColorChooserColorActivated :: (IsColorChooser a, MonadIO m) => a -> ColorChooserColorActivatedCallback -> m SignalHandlerId onColorChooserColorActivated obj cb = liftIO $ do let cb' = wrap_ColorChooserColorActivatedCallback cb cb'' <- mk_ColorChooserColorActivatedCallback cb' connectSignalFunPtr obj "color-activated" cb'' SignalConnectBefore {- | Connect a signal handler for the “@color-activated@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' colorChooser #colorActivated callback @ -} afterColorChooserColorActivated :: (IsColorChooser a, MonadIO m) => a -> ColorChooserColorActivatedCallback -> m SignalHandlerId afterColorChooserColorActivated obj cb = liftIO $ do let cb' = wrap_ColorChooserColorActivatedCallback cb cb'' <- mk_ColorChooserColorActivatedCallback cb' connectSignalFunPtr obj "color-activated" cb'' SignalConnectAfter #if ENABLE_OVERLOADING data ColorChooserColorActivatedSignalInfo instance SignalInfo ColorChooserColorActivatedSignalInfo where type HaskellCallbackType ColorChooserColorActivatedSignalInfo = ColorChooserColorActivatedCallback connectSignal _ obj cb connectMode = do let cb' = wrap_ColorChooserColorActivatedCallback cb cb'' <- mk_ColorChooserColorActivatedCallback cb' connectSignalFunPtr obj "color-activated" cb'' connectMode type instance O.SignalList ColorChooser = ColorChooserSignalList type ColorChooserSignalList = ('[ '("colorActivated", ColorChooserColorActivatedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif foreign import ccall "gtk_color_chooser_get_type" c_gtk_color_chooser_get_type :: IO GType instance GObject ColorChooser where gobjectType = c_gtk_color_chooser_get_type -- | Type class for types which can be safely cast to `ColorChooser`, for instance with `toColorChooser`. class (GObject o, O.IsDescendantOf ColorChooser o) => IsColorChooser o instance (GObject o, O.IsDescendantOf ColorChooser o) => IsColorChooser o instance O.HasParentTypes ColorChooser type instance O.ParentTypes ColorChooser = '[GObject.Object.Object] -- | Cast to `ColorChooser`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toColorChooser :: (MonadIO m, IsColorChooser o) => o -> m ColorChooser toColorChooser = liftIO . unsafeCastTo ColorChooser -- VVV Prop "rgba" -- Type: TInterface (Name {namespace = "Gdk", name = "RGBA"}) -- Flags: [PropertyReadable,PropertyWritable] -- Nullable: (Nothing,Just False) {- | Get the value of the “@rgba@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' colorChooser #rgba @ -} getColorChooserRgba :: (MonadIO m, IsColorChooser o) => o -> m (Maybe Gdk.RGBA.RGBA) getColorChooserRgba obj = liftIO $ B.Properties.getObjectPropertyBoxed obj "rgba" Gdk.RGBA.RGBA {- | Set the value of the “@rgba@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' colorChooser [ #rgba 'Data.GI.Base.Attributes.:=' value ] @ -} setColorChooserRgba :: (MonadIO m, IsColorChooser o) => o -> Gdk.RGBA.RGBA -> m () setColorChooserRgba obj val = liftIO $ B.Properties.setObjectPropertyBoxed obj "rgba" (Just val) {- | Construct a `GValueConstruct` with valid value for the “@rgba@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructColorChooserRgba :: (IsColorChooser o) => Gdk.RGBA.RGBA -> IO (GValueConstruct o) constructColorChooserRgba val = B.Properties.constructObjectPropertyBoxed "rgba" (Just val) #if ENABLE_OVERLOADING data ColorChooserRgbaPropertyInfo instance AttrInfo ColorChooserRgbaPropertyInfo where type AttrAllowedOps ColorChooserRgbaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint ColorChooserRgbaPropertyInfo = (~) Gdk.RGBA.RGBA type AttrBaseTypeConstraint ColorChooserRgbaPropertyInfo = IsColorChooser type AttrGetType ColorChooserRgbaPropertyInfo = (Maybe Gdk.RGBA.RGBA) type AttrLabel ColorChooserRgbaPropertyInfo = "rgba" type AttrOrigin ColorChooserRgbaPropertyInfo = ColorChooser attrGet _ = getColorChooserRgba attrSet _ = setColorChooserRgba attrConstruct _ = constructColorChooserRgba attrClear _ = undefined #endif -- VVV Prop "use-alpha" -- Type: TBasicType TBoolean -- Flags: [PropertyReadable,PropertyWritable] -- Nullable: (Just False,Just False) {- | Get the value of the “@use-alpha@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' colorChooser #useAlpha @ -} getColorChooserUseAlpha :: (MonadIO m, IsColorChooser o) => o -> m Bool getColorChooserUseAlpha obj = liftIO $ B.Properties.getObjectPropertyBool obj "use-alpha" {- | Set the value of the “@use-alpha@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' colorChooser [ #useAlpha 'Data.GI.Base.Attributes.:=' value ] @ -} setColorChooserUseAlpha :: (MonadIO m, IsColorChooser o) => o -> Bool -> m () setColorChooserUseAlpha obj val = liftIO $ B.Properties.setObjectPropertyBool obj "use-alpha" val {- | Construct a `GValueConstruct` with valid value for the “@use-alpha@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructColorChooserUseAlpha :: (IsColorChooser o) => Bool -> IO (GValueConstruct o) constructColorChooserUseAlpha val = B.Properties.constructObjectPropertyBool "use-alpha" val #if ENABLE_OVERLOADING data ColorChooserUseAlphaPropertyInfo instance AttrInfo ColorChooserUseAlphaPropertyInfo where type AttrAllowedOps ColorChooserUseAlphaPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint ColorChooserUseAlphaPropertyInfo = (~) Bool type AttrBaseTypeConstraint ColorChooserUseAlphaPropertyInfo = IsColorChooser type AttrGetType ColorChooserUseAlphaPropertyInfo = Bool type AttrLabel ColorChooserUseAlphaPropertyInfo = "use-alpha" type AttrOrigin ColorChooserUseAlphaPropertyInfo = ColorChooser attrGet _ = getColorChooserUseAlpha attrSet _ = setColorChooserUseAlpha attrConstruct _ = constructColorChooserUseAlpha attrClear _ = undefined #endif #if ENABLE_OVERLOADING instance O.HasAttributeList ColorChooser type instance O.AttributeList ColorChooser = ColorChooserAttributeList type ColorChooserAttributeList = ('[ '("rgba", ColorChooserRgbaPropertyInfo), '("useAlpha", ColorChooserUseAlphaPropertyInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING colorChooserRgba :: AttrLabelProxy "rgba" colorChooserRgba = AttrLabelProxy colorChooserUseAlpha :: AttrLabelProxy "useAlpha" colorChooserUseAlpha = AttrLabelProxy #endif #if ENABLE_OVERLOADING type family ResolveColorChooserMethod (t :: Symbol) (o :: *) :: * where ResolveColorChooserMethod "addPalette" o = ColorChooserAddPaletteMethodInfo ResolveColorChooserMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveColorChooserMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveColorChooserMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveColorChooserMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveColorChooserMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveColorChooserMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveColorChooserMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveColorChooserMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveColorChooserMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveColorChooserMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveColorChooserMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveColorChooserMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveColorChooserMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveColorChooserMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveColorChooserMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveColorChooserMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveColorChooserMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveColorChooserMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveColorChooserMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveColorChooserMethod "getRgba" o = ColorChooserGetRgbaMethodInfo ResolveColorChooserMethod "getUseAlpha" o = ColorChooserGetUseAlphaMethodInfo ResolveColorChooserMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveColorChooserMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveColorChooserMethod "setRgba" o = ColorChooserSetRgbaMethodInfo ResolveColorChooserMethod "setUseAlpha" o = ColorChooserSetUseAlphaMethodInfo ResolveColorChooserMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveColorChooserMethod t ColorChooser, O.MethodInfo info ColorChooser p) => OL.IsLabel t (ColorChooser -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif -- method ColorChooser::add_palette -- method type : OrdinaryMethod -- Args : [Arg {argCName = "chooser", argType = TInterface (Name {namespace = "Gtk", name = "ColorChooser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkColorChooser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orientation", argType = TInterface (Name {namespace = "Gtk", name = "Orientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%GTK_ORIENTATION_HORIZONTAL if the palette should\n be displayed in rows, %GTK_ORIENTATION_VERTICAL for columns", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "colors_per_line", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of colors to show in each row/column", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_colors", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the total number of elements in @colors", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "colors", argType = TCArray False (-1) 3 (TInterface (Name {namespace = "Gdk", name = "RGBA"})), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the colors of the palette, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [Arg {argCName = "n_colors", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the total number of elements in @colors", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_color_chooser_add_palette" gtk_color_chooser_add_palette :: Ptr ColorChooser -> -- chooser : TInterface (Name {namespace = "Gtk", name = "ColorChooser"}) CUInt -> -- orientation : TInterface (Name {namespace = "Gtk", name = "Orientation"}) Int32 -> -- colors_per_line : TBasicType TInt Int32 -> -- n_colors : TBasicType TInt Ptr Gdk.RGBA.RGBA -> -- colors : TCArray False (-1) 3 (TInterface (Name {namespace = "Gdk", name = "RGBA"})) IO () {- | Adds a palette to the color chooser. If /@orientation@/ is horizontal, the colors are grouped in rows, with /@colorsPerLine@/ colors in each row. If /@horizontal@/ is 'False', the colors are grouped in columns instead. The default color palette of 'GI.Gtk.Objects.ColorChooserWidget.ColorChooserWidget' has 27 colors, organized in columns of 3 colors. The default gray palette has 9 grays in a single row. The layout of the color chooser widget works best when the palettes have 9-10 columns. Calling this function for the first time has the side effect of removing the default color and gray palettes from the color chooser. If /@colors@/ is 'Nothing', removes all previously added palettes. /Since: 3.4/ -} colorChooserAddPalette :: (B.CallStack.HasCallStack, MonadIO m, IsColorChooser a) => a {- ^ /@chooser@/: a 'GI.Gtk.Interfaces.ColorChooser.ColorChooser' -} -> Gtk.Enums.Orientation {- ^ /@orientation@/: 'GI.Gtk.Enums.OrientationHorizontal' if the palette should be displayed in rows, 'GI.Gtk.Enums.OrientationVertical' for columns -} -> Int32 {- ^ /@colorsPerLine@/: the number of colors to show in each row\/column -} -> Maybe ([Gdk.RGBA.RGBA]) {- ^ /@colors@/: the colors of the palette, or 'Nothing' -} -> m () colorChooserAddPalette chooser orientation colorsPerLine colors = liftIO $ do let nColors = case colors of Nothing -> 0 Just jColors -> fromIntegral $ length jColors chooser' <- unsafeManagedPtrCastPtr chooser let orientation' = (fromIntegral . fromEnum) orientation maybeColors <- case colors of Nothing -> return nullPtr Just jColors -> do jColors' <- mapM unsafeManagedPtrGetPtr jColors jColors'' <- packBlockArray 32 jColors' return jColors'' gtk_color_chooser_add_palette chooser' orientation' colorsPerLine nColors maybeColors touchManagedPtr chooser whenJust colors (mapM_ touchManagedPtr) freeMem maybeColors return () #if ENABLE_OVERLOADING data ColorChooserAddPaletteMethodInfo instance (signature ~ (Gtk.Enums.Orientation -> Int32 -> Maybe ([Gdk.RGBA.RGBA]) -> m ()), MonadIO m, IsColorChooser a) => O.MethodInfo ColorChooserAddPaletteMethodInfo a signature where overloadedMethod _ = colorChooserAddPalette #endif -- method ColorChooser::get_rgba -- method type : OrdinaryMethod -- Args : [Arg {argCName = "chooser", argType = TInterface (Name {namespace = "Gtk", name = "ColorChooser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkColorChooser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface (Name {namespace = "Gdk", name = "RGBA"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkRGBA to fill in with the current color", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_color_chooser_get_rgba" gtk_color_chooser_get_rgba :: Ptr ColorChooser -> -- chooser : TInterface (Name {namespace = "Gtk", name = "ColorChooser"}) Ptr Gdk.RGBA.RGBA -> -- color : TInterface (Name {namespace = "Gdk", name = "RGBA"}) IO () {- | Gets the currently-selected color. /Since: 3.4/ -} colorChooserGetRgba :: (B.CallStack.HasCallStack, MonadIO m, IsColorChooser a) => a {- ^ /@chooser@/: a 'GI.Gtk.Interfaces.ColorChooser.ColorChooser' -} -> m (Gdk.RGBA.RGBA) colorChooserGetRgba chooser = liftIO $ do chooser' <- unsafeManagedPtrCastPtr chooser color <- callocBoxedBytes 32 :: IO (Ptr Gdk.RGBA.RGBA) gtk_color_chooser_get_rgba chooser' color color' <- (wrapBoxed Gdk.RGBA.RGBA) color touchManagedPtr chooser return color' #if ENABLE_OVERLOADING data ColorChooserGetRgbaMethodInfo instance (signature ~ (m (Gdk.RGBA.RGBA)), MonadIO m, IsColorChooser a) => O.MethodInfo ColorChooserGetRgbaMethodInfo a signature where overloadedMethod _ = colorChooserGetRgba #endif -- method ColorChooser::get_use_alpha -- method type : OrdinaryMethod -- Args : [Arg {argCName = "chooser", argType = TInterface (Name {namespace = "Gtk", name = "ColorChooser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkColorChooser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gtk_color_chooser_get_use_alpha" gtk_color_chooser_get_use_alpha :: Ptr ColorChooser -> -- chooser : TInterface (Name {namespace = "Gtk", name = "ColorChooser"}) IO CInt {- | Returns whether the color chooser shows the alpha channel. /Since: 3.4/ -} colorChooserGetUseAlpha :: (B.CallStack.HasCallStack, MonadIO m, IsColorChooser a) => a {- ^ /@chooser@/: a 'GI.Gtk.Interfaces.ColorChooser.ColorChooser' -} -> m Bool {- ^ __Returns:__ 'True' if the color chooser uses the alpha channel, 'False' if not -} colorChooserGetUseAlpha chooser = liftIO $ do chooser' <- unsafeManagedPtrCastPtr chooser result <- gtk_color_chooser_get_use_alpha chooser' let result' = (/= 0) result touchManagedPtr chooser return result' #if ENABLE_OVERLOADING data ColorChooserGetUseAlphaMethodInfo instance (signature ~ (m Bool), MonadIO m, IsColorChooser a) => O.MethodInfo ColorChooserGetUseAlphaMethodInfo a signature where overloadedMethod _ = colorChooserGetUseAlpha #endif -- method ColorChooser::set_rgba -- method type : OrdinaryMethod -- Args : [Arg {argCName = "chooser", argType = TInterface (Name {namespace = "Gtk", name = "ColorChooser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkColorChooser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface (Name {namespace = "Gdk", name = "RGBA"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the new color", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_color_chooser_set_rgba" gtk_color_chooser_set_rgba :: Ptr ColorChooser -> -- chooser : TInterface (Name {namespace = "Gtk", name = "ColorChooser"}) Ptr Gdk.RGBA.RGBA -> -- color : TInterface (Name {namespace = "Gdk", name = "RGBA"}) IO () {- | Sets the color. /Since: 3.4/ -} colorChooserSetRgba :: (B.CallStack.HasCallStack, MonadIO m, IsColorChooser a) => a {- ^ /@chooser@/: a 'GI.Gtk.Interfaces.ColorChooser.ColorChooser' -} -> Gdk.RGBA.RGBA {- ^ /@color@/: the new color -} -> m () colorChooserSetRgba chooser color = liftIO $ do chooser' <- unsafeManagedPtrCastPtr chooser color' <- unsafeManagedPtrGetPtr color gtk_color_chooser_set_rgba chooser' color' touchManagedPtr chooser touchManagedPtr color return () #if ENABLE_OVERLOADING data ColorChooserSetRgbaMethodInfo instance (signature ~ (Gdk.RGBA.RGBA -> m ()), MonadIO m, IsColorChooser a) => O.MethodInfo ColorChooserSetRgbaMethodInfo a signature where overloadedMethod _ = colorChooserSetRgba #endif -- method ColorChooser::set_use_alpha -- method type : OrdinaryMethod -- Args : [Arg {argCName = "chooser", argType = TInterface (Name {namespace = "Gtk", name = "ColorChooser"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkColorChooser", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "%TRUE if color chooser should use alpha channel, %FALSE if not", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_color_chooser_set_use_alpha" gtk_color_chooser_set_use_alpha :: Ptr ColorChooser -> -- chooser : TInterface (Name {namespace = "Gtk", name = "ColorChooser"}) CInt -> -- use_alpha : TBasicType TBoolean IO () {- | Sets whether or not the color chooser should use the alpha channel. /Since: 3.4/ -} colorChooserSetUseAlpha :: (B.CallStack.HasCallStack, MonadIO m, IsColorChooser a) => a {- ^ /@chooser@/: a 'GI.Gtk.Interfaces.ColorChooser.ColorChooser' -} -> Bool {- ^ /@useAlpha@/: 'True' if color chooser should use alpha channel, 'False' if not -} -> m () colorChooserSetUseAlpha chooser useAlpha = liftIO $ do chooser' <- unsafeManagedPtrCastPtr chooser let useAlpha' = (fromIntegral . fromEnum) useAlpha gtk_color_chooser_set_use_alpha chooser' useAlpha' touchManagedPtr chooser return () #if ENABLE_OVERLOADING data ColorChooserSetUseAlphaMethodInfo instance (signature ~ (Bool -> m ()), MonadIO m, IsColorChooser a) => O.MethodInfo ColorChooserSetUseAlphaMethodInfo a signature where overloadedMethod _ = colorChooserSetUseAlpha #endif