Update of /cvsroot/gtk2hs/gtk2hs/gtk/abstract In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24829/gtk/abstract Added Files: ButtonBox.chs.cpp FileChooser.chs.cpp Object.chs.cpp Paned.chs.cpp Removed Files: ButtonBox.chspp FileChooser.chspp Object.chspp Paned.chspp Log Message: Enhance makefile so that it builds the library. Changed .chspp to .chs.cpp in all pre-processed chs files. Build with ghc --make the first time and with ghc -c on incremental changes. --- Paned.chspp DELETED --- --- NEW FILE: Paned.chs.cpp --- -- -*-haskell-*- -- GIMP Toolkit (GTK) Widget Paned -- -- Author : Axel Simon -- -- Created: 15 May 2001 -- -- Version $Revision: 1.1 $ from $Date: 2004/10/27 13:21:38 $ -- -- Copyright (c) 1999..2002 Axel Simon -- -- This file is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This file is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- | -- -- This abstract widget provides a division line with a handle that can be -- used by the user to divide the given space between two widgets. The two -- concrete implementations are HPaned and VPaned. -- module Paned( Paned, PanedClass, castToPaned, panedAdd1, panedAdd2, panedPack1, panedPack2, panedSetPosition, panedGetPosition #if GTK_CHECK_VERSION(2,4,0) ,panedGetChild1, panedGetChild2 #endif ) where import Monad (liftM) import FFI import Object (makeNewObject) {#import Hierarchy#} {#import Signal#} {# context lib="gtk" prefix="gtk" #} -- methods -- | Add a widget to the first (top or left) area. -- -- * The widget does not expand if 'Paned' expands. It does not shrink either. -- panedAdd1 :: (PanedClass p, WidgetClass w) => p -> w -> IO () panedAdd1 p w = {#call paned_add1#} (toPaned p) (toWidget w) -- | Add a widget to the second (bottom or right) area. -- -- * The widget does not expand if 'Paned' expands. But it does shrink. -- panedAdd2 :: (PanedClass p, WidgetClass w) => p -> w -> IO () panedAdd2 p w = {#call paned_add2#} (toPaned p) (toWidget w) -- | Add a widget to the first area and specify its resizing behaviour. -- panedPack1 :: (PanedClass p, WidgetClass w) => p -> w -> Bool -> Bool -> IO () panedPack1 p w expand shrink = {#call paned_pack1#} (toPaned p) (toWidget w) (fromBool expand) (fromBool shrink) -- | Add a widget to the second area and specify its resizing behaviour. -- panedPack2 :: (PanedClass p, WidgetClass w) => p -> w -> Bool -> Bool -> IO () panedPack2 p w expand shrink = {#call paned_pack2#} (toPaned p) (toWidget w) (fromBool expand) (fromBool shrink) -- | Set the gutter to the specified @position@ (in pixels). -- panedSetPosition :: PanedClass p => p -> Int -> IO () panedSetPosition p position = {#call paned_set_position#} (toPaned p) (fromIntegral position) -- | Get the gutter position (in pixels). -- panedGetPosition :: PanedClass p => p -> IO Int panedGetPosition p = liftM fromIntegral $ {#call unsafe paned_get_position#} (toPaned p) #if GTK_CHECK_VERSION(2,4,0) -- | Obtains the first child of the paned widget. -- panedGetChild1 :: PanedClass p => p -> IO Widget panedGetChild1 p = makeNewObject mkWidget $ {#call unsafe paned_get_child1#} (toPaned p) -- | Obtains the second child of the paned widget. -- panedGetChild2 :: PanedClass p => p -> IO Widget panedGetChild2 p = makeNewObject mkWidget $ {#call unsafe paned_get_child2#} (toPaned p) #endif --- NEW FILE: FileChooser.chs.cpp --- -- GIMP Toolkit (GTK) Binding for Haskell: binding to GConf -*-haskell-*- -- for storing and retrieving configuartion information -- -- Author : Duncan Coutts -- Created: 24 April 2004 -- -- Copyright (c) 2004 Duncan Coutts -- -- This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Library General Public -- License as published by the Free Software Foundation; either -- version 2 of the License, or (at your option) any later version. -- -- This library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Library General Public License for more details. -- -- | -- -- The file chooser dialog and widget is a replacement -- for the old "FileSel"ection dialog. It provides a better user -- interface and an improved API. -- -- The FileChooser (as opposed to the dialog or widget) is the interface that -- the "FileChooserDialog" and "FileChooserWidget" implement, all the operations -- except construction are on this interface. -- -- * Added in GTK+ 2.4 -- module FileChooser ( #if GTK_CHECK_VERSION(2,4,0) FileChooserClass, FileChooser, FileChooserAction(..), fileChooserSetAction, fileChooserGetAction, fileChooserSetLocalOnly, fileChooserGetLocalOnly, fileChooserSetSelectMultiple, fileChooserGetSelectMultiple, fileChooserSetCurrentName, fileChooserGetFilename, fileChooserSetFilename, fileChooserSelectFilename, fileChooserUnselectFilename, fileChooserSelectAll, fileChooserUnselectAll, fileChooserGetFilenames, fileChooserSetCurrentFolder, fileChooserGetCurrentFolder, fileChooserGetURI, fileChooserSetURI, fileChooserSelectURI, fileChooserUnselectURI, fileChooserGetURIs, fileChooserSetCurrentFolderURI, fileChooserGetCurrentFolderURI, fileChooserSetPreviewWidget, fileChooserGetPreviewWidget, fileChooserSetPreviewWidgetActive, fileChooserGetPreviewWidgetActive, fileChooserSetUsePreviewLabel, fileChooserGetUsePreviewLabel, fileChooserGetPreviewFilename, fileChooserGetPreviewURI, fileChooserSetExtraWidget, fileChooserGetExtraWidget, fileChooserAddFilter, fileChooserRemoveFilter, fileChooserListFilters, fileChooserSetFilter, fileChooserGetFilter, fileChooserAddShortcutFolder, fileChooserRemoveShortcutFolder, fileChooserlistShortcutFolders, fileChooserAddShortcutFolderURI, fileChooserRemoveShortcutFolderURI, fileChooserListShortcutFolderURIs, onCurrentFolderChanged, afterCurrentFolderChanged, onFileActivated, afterFileActivated, -- onSelectionChanged, -- afterSelectionChanged, onUpdatePreview, afterUpdatePreview #endif ) where #if GTK_CHECK_VERSION(2,4,0) import Monad (liftM, when) import FFI {#import Hierarchy#} import Object (makeNewObject) import Signal {#import GList#} import GError (propagateGError, GErrorDomain, GErrorClass(..)) {# context lib="gtk" prefix ="gtk" #} {# enum FileChooserAction {underscoreToCase} #} {# enum FileChooserError {underscoreToCase} #} fileChooserErrorDomain :: GErrorDomain fileChooserErrorDomain = unsafePerformIO {#call unsafe file_chooser_error_quark#} instance GErrorClass FileChooserError where gerrorDomain _ = fileChooserErrorDomain fileChooserSetAction :: FileChooserClass chooser => chooser -> FileChooserAction -> IO () fileChooserSetAction chooser action = {# call gtk_file_chooser_set_action #} (toFileChooser chooser) (fromIntegral $ fromEnum action) fileChooserGetAction :: FileChooserClass chooser => chooser -> IO FileChooserAction fileChooserGetAction chooser = liftM (toEnum . fromIntegral) $ {# call gtk_file_chooser_get_action #} (toFileChooser chooser) fileChooserSetLocalOnly :: FileChooserClass chooser => chooser -> Bool -> IO () fileChooserSetLocalOnly chooser localOnly = {# call gtk_file_chooser_set_local_only #} (toFileChooser chooser) (fromBool localOnly) fileChooserGetLocalOnly :: FileChooserClass chooser => chooser -> IO Bool fileChooserGetLocalOnly chooser = liftM toBool $ {# call gtk_file_chooser_get_local_only #} (toFileChooser chooser) fileChooserSetSelectMultiple :: FileChooserClass chooser => chooser -> Bool -> IO () fileChooserSetSelectMultiple chooser selectMultiple = {# call gtk_file_chooser_set_select_multiple #} (toFileChooser chooser) (fromBool selectMultiple) fileChooserGetSelectMultiple :: FileChooserClass chooser => chooser -> IO Bool fileChooserGetSelectMultiple chooser = liftM toBool $ {# call gtk_file_chooser_get_select_multiple #} (toFileChooser chooser) fileChooserSetCurrentName :: FileChooserClass chooser => chooser -> String -> IO () fileChooserSetCurrentName chooser name = withCString name $ \strPtr -> {# call gtk_file_chooser_set_current_name #} (toFileChooser chooser) strPtr fileChooserGetFilename :: FileChooserClass chooser => chooser -> IO (Maybe String) fileChooserGetFilename chooser = do strPtr <- {# call gtk_file_chooser_get_filename #} (toFileChooser chooser) maybePeek readCString strPtr fileChooserSetFilename :: FileChooserClass chooser => chooser -> String -> IO Bool fileChooserSetFilename chooser filename = liftM toBool $ withCString filename $ \strPtr -> {# call gtk_file_chooser_set_filename #} (toFileChooser chooser) strPtr fileChooserSelectFilename :: FileChooserClass chooser => chooser -> String -> IO Bool fileChooserSelectFilename chooser filename = liftM toBool $ withCString filename $ \strPtr -> {# call gtk_file_chooser_select_filename #} (toFileChooser chooser) strPtr fileChooserUnselectFilename :: FileChooserClass chooser => chooser -> String -> IO () fileChooserUnselectFilename chooser filename = withCString filename $ \strPtr -> {# call gtk_file_chooser_unselect_filename #} (toFileChooser chooser) strPtr fileChooserSelectAll :: FileChooserClass chooser => chooser -> IO () fileChooserSelectAll chooser = {# call gtk_file_chooser_select_all #} (toFileChooser chooser) fileChooserUnselectAll :: FileChooserClass chooser => chooser -> IO () fileChooserUnselectAll chooser = {# call gtk_file_chooser_unselect_all #} (toFileChooser chooser) fileChooserGetFilenames :: FileChooserClass chooser => chooser -> IO [String] fileChooserGetFilenames chooser = do strList <- {# call gtk_file_chooser_get_filenames #} (toFileChooser chooser) fromStringGSList strList fileChooserSetCurrentFolder :: FileChooserClass chooser => chooser -> String -> IO Bool fileChooserSetCurrentFolder chooser foldername = liftM toBool $ withCString foldername $ \strPtr -> {# call gtk_file_chooser_set_current_folder #} (toFileChooser chooser) strPtr fileChooserGetCurrentFolder :: FileChooserClass chooser => chooser -> IO (Maybe String) fileChooserGetCurrentFolder chooser = do strPtr <- {# call gtk_file_chooser_get_current_folder #} (toFileChooser chooser) maybePeek readCString strPtr fileChooserGetURI :: FileChooserClass chooser => chooser -> IO (Maybe String) fileChooserGetURI chooser = do strPtr <- {# call gtk_file_chooser_get_uri #} (toFileChooser chooser) maybePeek readCString strPtr fileChooserSetURI :: FileChooserClass chooser => chooser -> String -> IO Bool fileChooserSetURI chooser uri = liftM toBool $ withCString uri $ \strPtr -> {# call gtk_file_chooser_set_uri #} (toFileChooser chooser) strPtr fileChooserSelectURI :: FileChooserClass chooser => chooser -> String -> IO Bool fileChooserSelectURI chooser uri = liftM toBool $ withCString uri $ \strPtr -> {# call gtk_file_chooser_select_uri #} (toFileChooser chooser) strPtr fileChooserUnselectURI :: FileChooserClass chooser => chooser -> String -> IO () fileChooserUnselectURI chooser uri = withCString uri $ \strPtr -> {# call gtk_file_chooser_unselect_uri #} (toFileChooser chooser) strPtr fileChooserGetURIs :: FileChooserClass chooser => chooser -> IO [String] fileChooserGetURIs chooser = do strList <- {# call gtk_file_chooser_get_uris #} (toFileChooser chooser) fromStringGSList strList fileChooserSetCurrentFolderURI :: FileChooserClass chooser => chooser -> String -> IO Bool fileChooserSetCurrentFolderURI chooser uri = liftM toBool $ withCString uri $ \strPtr -> {# call gtk_file_chooser_set_current_folder_uri #} (toFileChooser chooser) strPtr fileChooserGetCurrentFolderURI :: FileChooserClass chooser => chooser -> IO String fileChooserGetCurrentFolderURI chooser = do strPtr <- {# call gtk_file_chooser_get_current_folder_uri #} (toFileChooser chooser) readCString strPtr fileChooserSetPreviewWidget :: (FileChooserClass chooser, WidgetClass widget) => chooser -> widget -> IO () fileChooserSetPreviewWidget chooser widget = {# call gtk_file_chooser_set_preview_widget #} (toFileChooser chooser) (toWidget widget) fileChooserGetPreviewWidget :: FileChooserClass chooser => chooser -> IO (Maybe Widget) fileChooserGetPreviewWidget chooser = do ptr <- {# call gtk_file_chooser_get_preview_widget #} (toFileChooser chooser) maybePeek (makeNewObject mkWidget . return) ptr fileChooserSetPreviewWidgetActive :: FileChooserClass chooser => chooser -> Bool -> IO () fileChooserSetPreviewWidgetActive chooser active = {# call gtk_file_chooser_set_preview_widget_active #} (toFileChooser chooser) (fromBool active) fileChooserGetPreviewWidgetActive :: FileChooserClass chooser => chooser -> IO Bool fileChooserGetPreviewWidgetActive chooser = liftM toBool $ {# call gtk_file_chooser_get_preview_widget_active #} (toFileChooser chooser) fileChooserSetUsePreviewLabel :: FileChooserClass chooser => chooser -> Bool -> IO () fileChooserSetUsePreviewLabel chooser usePreview = {# call gtk_file_chooser_set_use_preview_label #} (toFileChooser chooser) (fromBool usePreview) fileChooserGetUsePreviewLabel :: FileChooserClass chooser => chooser -> IO Bool fileChooserGetUsePreviewLabel chooser = liftM toBool $ {# call gtk_file_chooser_get_use_preview_label #} (toFileChooser chooser) fileChooserGetPreviewFilename :: FileChooserClass chooser => chooser -> IO (Maybe String) fileChooserGetPreviewFilename chooser = do strPtr <- {# call gtk_file_chooser_get_preview_filename #} (toFileChooser chooser) maybePeek readCString strPtr fileChooserGetPreviewURI :: FileChooserClass chooser => chooser -> IO (Maybe String) fileChooserGetPreviewURI chooser = do strPtr <- {# call gtk_file_chooser_get_preview_uri #} (toFileChooser chooser) maybePeek readCString strPtr fileChooserSetExtraWidget :: (FileChooserClass chooser, WidgetClass widget) => chooser -> widget -> IO () fileChooserSetExtraWidget chooser widget = {# call gtk_file_chooser_set_extra_widget #} (toFileChooser chooser) (toWidget widget) fileChooserGetExtraWidget :: FileChooserClass chooser => chooser -> IO (Maybe Widget) fileChooserGetExtraWidget chooser = do ptr <- {# call gtk_file_chooser_get_extra_widget #} (toFileChooser chooser) maybePeek (makeNewObject mkWidget . return) ptr fileChooserAddFilter :: FileChooserClass chooser => chooser -> FileFilter -> IO () fileChooserAddFilter chooser filter = {# call gtk_file_chooser_add_filter #} (toFileChooser chooser) filter fileChooserRemoveFilter :: FileChooserClass chooser => chooser -> FileFilter -> IO () fileChooserRemoveFilter chooser filter = {# call gtk_file_chooser_remove_filter #} (toFileChooser chooser) filter fileChooserListFilters :: FileChooserClass chooser => chooser -> IO [FileFilter] fileChooserListFilters chooser = do filterList <- {# call gtk_file_chooser_list_filters #} (toFileChooser chooser) filterPtrs <- fromGSList filterList mapM (makeNewObject mkFileFilter . return) filterPtrs fileChooserSetFilter :: FileChooserClass chooser => chooser -> FileFilter -> IO () fileChooserSetFilter chooser filter = {# call gtk_file_chooser_set_filter #} (toFileChooser chooser) filter fileChooserGetFilter :: FileChooserClass chooser => chooser -> IO (Maybe FileFilter) fileChooserGetFilter chooser = do ptr <- {# call gtk_file_chooser_get_filter #} (toFileChooser chooser) maybePeek (makeNewObject mkFileFilter . return) ptr fileChooserAddShortcutFolder :: FileChooserClass chooser => chooser -> String -> IO () fileChooserAddShortcutFolder chooser foldername = propagateGError $ \gerrorPtr -> withCString foldername $ \strPtr -> do {# call gtk_file_chooser_add_shortcut_folder #} (toFileChooser chooser) strPtr gerrorPtr return () fileChooserRemoveShortcutFolder :: FileChooserClass chooser => chooser -> String -> IO () fileChooserRemoveShortcutFolder chooser foldername = propagateGError $ \gerrorPtr -> withCString foldername $ \strPtr -> do {# call gtk_file_chooser_remove_shortcut_folder #} (toFileChooser chooser) strPtr gerrorPtr return () fileChooserlistShortcutFolders :: FileChooserClass chooser => chooser -> IO [String] fileChooserlistShortcutFolders chooser = do strList <- {# call gtk_file_chooser_list_shortcut_folders #} (toFileChooser chooser) fromStringGSList strList fileChooserAddShortcutFolderURI :: FileChooserClass chooser => chooser -> String -> IO () fileChooserAddShortcutFolderURI chooser folderuri = propagateGError $ \gerrorPtr -> withCString folderuri $ \strPtr -> do {# call gtk_file_chooser_add_shortcut_folder_uri #} (toFileChooser chooser) strPtr gerrorPtr return () fileChooserRemoveShortcutFolderURI :: FileChooserClass chooser => chooser -> String -> IO () fileChooserRemoveShortcutFolderURI chooser folderuri = propagateGError $ \gerrorPtr -> withCString folderuri $ \strPtr -> do {# call gtk_file_chooser_remove_shortcut_folder_uri #} (toFileChooser chooser) strPtr gerrorPtr return () fileChooserListShortcutFolderURIs :: FileChooserClass chooser => chooser -> IO [String] fileChooserListShortcutFolderURIs chooser = do strList <- {# call gtk_file_chooser_list_shortcut_folder_uris #} (toFileChooser chooser) fromStringGSList strList onCurrentFolderChanged, afterCurrentFolderChanged :: FileChooserClass c => c -> IO () -> IO (ConnectId c) onCurrentFolderChanged = connect_NONE__NONE "current-folder-changed" False afterCurrentFolderChanged = connect_NONE__NONE "current-folder-changed" True onFileActivated, afterFileActivated :: FileChooserClass c => c -> IO () -> IO (ConnectId c) onFileActivated = connect_NONE__NONE "file-activated" False afterFileActivated = connect_NONE__NONE "file-activated" True --onSelectionChanged, afterSelectionChanged :: FileChooserClass c => c -> IO () -> IO (ConnectId c) --onSelectionChanged = connect_NONE__NONE "selection-changed" False --afterSelectionChanged = connect_NONE__NONE "selection-changed" True onUpdatePreview, afterUpdatePreview :: FileChooserClass c => c -> IO () -> IO (ConnectId c) onUpdatePreview = connect_NONE__NONE "update-preview" False afterUpdatePreview = connect_NONE__NONE "update-preview" True ------------------------------------------------------ -- Utility functions that really ought to go elsewhere -- convenience functions for GSlists of strings fromStringGSList :: GSList -> IO [String] fromStringGSList strList = do strPtrs <- fromGSList strList mapM readCString strPtrs toStringGSList :: [String] -> IO GSList toStringGSList strs = do strPtrs <- mapM newCString strs toGSList strPtrs #endif --- ButtonBox.chspp DELETED --- --- Object.chspp DELETED --- --- NEW FILE: Object.chs.cpp --- -- -*-haskell-*- -- GIMP Toolkit (GTK) Object -- -- Author : Axel Simon -- -- Created: 9 April 2001 -- -- Version $Revision: 1.1 $ from $Date: 2004/10/27 13:21:38 $ -- -- Copyright (c) 2001 Axel Simon -- -- This file is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This file is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- | -- -- Widget representation -- -- * Each widget is a represented as a purely abstract data type. It can only -- be accessed through and the special access functions that are defined -- in each widget file. -- module Object( Object, ObjectClass, castToObject, objectSink, makeNewObject, objectSetProperty, objectGetProperty ) where import FFI import GObject (objectRef, objectUnref) {#import Signal#} {#import Hierarchy#} {#import GValue#} import StoreValue {# context lib="gtk" prefix="gtk" #} -- methods -- turn the initial floating state to sunk -- -- * The floating\/sunk concept of a GTK object is not very useful to us. -- The following procedure circumvents the whole subject and ensures -- proper cleanup: -- on creation: objectRef, objectSink -- on finalization: objectUnref -- -- * This function cannot be bound by c2hs because it is not possible to -- override the pointer hook. objectSink :: ObjectClass obj => Ptr obj -> IO () objectSink = object_sink.castPtr #if __GLASGOW_HASKELL__>=504 foreign import ccall unsafe "gtk_object_sink" object_sink :: Ptr Object -> IO () #else foreign import ccall "gtk_object_sink" unsafe object_sink :: Ptr Object -> IO () #endif -- This is a convenience function to generate a new widget. It adds the -- finalizer with the method described under objectSink. -- -- * The constr argument is the contructor of the specific object. -- makeNewObject :: ObjectClass obj => (ForeignPtr obj -> obj) -> IO (Ptr obj) -> IO obj makeNewObject constr generator = do objPtr <- generator objectRef objPtr obj <- newForeignPtr objPtr (objectUnref objPtr) objectSink objPtr return $ constr obj -- Sets a specific attribute of this object. -- -- * Most attributes in a widget can be set and retrieved by passing the -- name (as a string) and the value to special set\/get functions. These -- are undocumented because each derived objects implements custom (and -- welltyped) set and get functions for most attributes. -- objectSetProperty :: GObjectClass gobj => gobj -> String -> GenericValue -> IO () objectSetProperty obj prop val = alloca $ \vaPtr -> withUTFString prop $ \sPtr -> poke vaPtr val >> {#call unsafe g_object_set_property#} (toGObject obj) sPtr vaPtr >> valueUnset vaPtr -- Gets a specific attribute of this object. -- -- * See 'objectSetProperty'. -- objectGetProperty :: GObjectClass gobj => gobj -> String -> IO GenericValue objectGetProperty obj prop = alloca $ \vaPtr -> withUTFString prop $ \str -> do {#call unsafe g_object_get_property#} (toGObject obj) str vaPtr res <- peek vaPtr valueUnset vaPtr return res --- FileChooser.chspp DELETED --- --- NEW FILE: ButtonBox.chs.cpp --- -- -*-haskell-*- -- GIMP Toolkit (GTK) Widget ButtonBox -- -- Author : Matthew Walton -- -- Created: 28 April 2004 -- -- Version $Revision: 1.1 $ from $Date: 2004/10/27 13:21:38 $ -- -- Copyright (c) 2004 Matthew Walton -- -- This file is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2 of the License, or -- (at your option) any later version. -- -- This file is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- | -- module ButtonBox( ButtonBox, ButtonBoxClass, castToButtonBox, buttonBoxGetLayout, buttonBoxSetLayout, buttonBoxSetChildSecondary, #if GTK_CHECK_VERSION(2,4,0) buttonBoxGetChildSecondary #endif ) where import Monad (liftM) import FFI import Object (makeNewObject) {#import Hierarchy#} {#import Signal#} import Enums (ButtonBoxStyle) {# context lib="gtk" prefix="gtk" #} -- methods -- | Retrieve the method being used to -- arrange the buttons in the button box -- buttonBoxGetLayout :: ButtonBoxClass b => b -> IO ButtonBoxStyle buttonBoxGetLayout b = liftM (toEnum . fromIntegral) $ {#call gtk_button_box_get_layout#} (toButtonBox b) #if GTK_CHECK_VERSION(2,4,0) -- | Returns whether child should appear -- in a secondary group of children -- -- * Since Gtk 2.4. buttonBoxGetChildSecondary :: (ButtonBoxClass b, WidgetClass w) => b -> w -> IO Bool buttonBoxGetChildSecondary b w = liftM toBool $ {#call gtk_button_box_get_child_secondary#} (toButtonBox b) (toWidget w) #endif -- | Changes the way buttons are arranged in their container -- buttonBoxSetLayout :: ButtonBoxClass b => b -> ButtonBoxStyle -> IO () buttonBoxSetLayout b l = {#call gtk_button_box_set_layout#} (toButtonBox b) ((fromIntegral . fromEnum) l) -- | Sets whether child should appear in a secondary -- group of children. A typical use of a secondary child is the help button in a dialog. -- -- * This group appears after the other children if the style is 'ButtonboxStart', -- 'ButtonboxSpread' or 'ButtonboxEdge', and before the the other children if the -- style is 'ButtonboxEnd'. For horizontal button boxes, the definition of before\/after -- depends on direction of the widget (see 'widgetSetDirection'). If the style is -- 'buttonBoxStart' or 'buttonBoxEnd', then the secondary children are aligned at -- the other end of the button box from the main children. For the other styles, -- they appear immediately next to the main children. -- buttonBoxSetChildSecondary :: (ButtonBoxClass b, WidgetClass w) => b -> w -> Bool -> IO () buttonBoxSetChildSecondary b w s = {#call gtk_button_box_set_child_secondary #} (toButtonBox b) (toWidget w) (fromBool s) |