From: Duncan C. <dun...@us...> - 2005-04-14 01:55:43
|
Update of /cvsroot/gtk2hs/gtk2hs/tools/apiGen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12337/tools/apiGen Modified Files: Api.hs ApiGen.hs CodeGen.hs FormatDocs.hs Marshal.hs MarshalFixup.hs gtk.ignore Log Message: More code generator updates: Api.hs: extract information about classes. Basically just consist of methods. ApiGen.hs: generate bindig modules for classes. Fix doc identifier to module name mapping so we can specify it manually when it doesn't match up right. Fix rcs annoyance. CodeGen.hs: add code for converting a class to a basic object so we can generate code for classes. Add classes into the type map. Rework the code that inserts preprocessor directives to allow them to nest and work the way a human would write them (possibly slightly pointless but it was an interesting challenge!). FormatDocs.hs: fix syntax of character constants to be compatible with GHC 6.4 Marshal.hs: add marshaling for possibly NULL TreeIters and add special case for casts in GtkToolItem constructors. MarshalFixup.hs: Add a function to allow us to manually override the mapping from type names to documentation identifiers so we can generate code with documentation for some modules where the documentation title does not match the type name. Also add wadges of extra info into the existing tables. gtk.ignore: add more functions we don't need to bind. Index: Marshal.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/Marshal.hs,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Marshal.hs 6 Apr 2005 22:03:59 -0000 1.11 +++ Marshal.hs 14 Apr 2005 01:55:26 -0000 1.12 @@ -176,10 +176,14 @@ \body -> body. indent 2. ss name) -genMarshalParameter _ _ name "GtkTreeIter*" = - (Nothing, InParam "TreeIter", - \body -> body. - indent 2. ss name) +genMarshalParameter _ funcName name "GtkTreeIter*" = + if maybeNullParameter funcName name + then (Nothing, InParam "Maybe TreeIter", + \body -> body. + indent 2. ss "(fromMaybe (TreeIter nullForeignPtr) ". ss name. ss ")") + else (Nothing, InParam "TreeIter", + \body -> body. + indent 2. ss name) genMarshalParameter _ funcName name "GtkTreePath*" = if maybeNullParameter funcName name @@ -339,8 +343,10 @@ indent 1. ss "liftM (castPtr :: Ptr ". ss (cTypeNameToHSType constructorReturnType). ss " -> Ptr ". ss (cTypeNameToHSType typeName). ss ") $" | otherwise = id - where constructorReturnType | "GtkWidget" `elem` sym_object_parents (fromJust typeKind) - = "GtkWidget" + where constructorReturnType | "GtkToolItem" `elem` sym_object_parents (fromJust typeKind) + = "GtkToolItem" + | "GtkWidget" `elem` sym_object_parents (fromJust typeKind) + = "GtkWidget" | otherwise = typeName genMarshalResult knownSymbols _ _ typeName Index: CodeGen.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/CodeGen.hs,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- CodeGen.hs 6 Apr 2005 22:03:59 -0000 1.17 +++ CodeGen.hs 14 Apr 2005 01:55:26 -0000 1.18 @@ -4,7 +4,8 @@ genImports, genTodoItems, makeKnownSymbolsMap, - mungeMethodInfo + mungeMethodInfo, + mungeClassToObject ) where import Api @@ -143,7 +144,7 @@ genModuleBody :: KnownSymbols -> Object -> ModuleDoc -> ModuleInfo -> ShowS genModuleBody knownSymbols object apiDoc modInfo = - doVersionIfDefs (sepBy' "\n\n") $ + doVersionIfDefs (nl.nl) $ map adjustDeprecatedAndSinceVersion $ sectionHeader "Interfaces" (genImplements object) @@ -261,6 +262,21 @@ method_deprecated = False } +mungeClassToObject :: Class -> Object +mungeClassToObject cl = + Object { + object_name = class_name cl, + object_cname = class_cname cl, + object_parent = "", + object_constructors = [], + object_methods = class_methods cl, + object_properties = [], + object_signals = [], + object_implements = [], + object_deprecated = False, + object_isinterface = False + } + properties :: Object -> [PropDoc] -> [(Either Property (Method, Method), Maybe PropDoc)] properties object docs = map snd $ @@ -442,6 +458,8 @@ | enum <- namespace_enums namespace ] ++ [ (object_cname object, objectKind object) | object <- namespace_objects namespace ] + ++ [ (class_cname class_, SymClassType) + | class_ <- namespace_classes namespace ] ++ [ (member_cname member, SymEnumValue) | enum <- namespace_enums namespace , member <- enum_members enum ] @@ -452,7 +470,12 @@ -- find if an object inherits via GtkObject or directly from GObject where objectKind :: Object -> CSymbol objectKind object | "GObject" `elem` parents = SymObjectType parents - | otherwise = SymStructType + -- FIXME: These hacks should go elsewhere + | object_cname object == "GtkClipboard" = SymObjectType ["GtkClipboard", "GObject"] + | object_cname object == "GParamSpec" = SymStructType + | object_cname object == "GdkBitmap" = SymStructType + | otherwise = error $ "makeKnownSymbolsMap: non-GObject " + ++ object_cname object where parents = objectParents object objectParents :: Object -> [String] objectParents object = object_cname object : @@ -465,13 +488,12 @@ , object <- namespace_objects namespace ] miscToCSymbol (Struct _ _) = SymStructType miscToCSymbol (Boxed _ _) = SymBoxedType - miscToCSymbol (Class _ _) = SymClassType miscToCSymbol (Alias _ _) = SymTypeAlias miscToCSymbol (Callback _ _) = SymCallbackType genExports :: Object -> ModuleDoc -> ModuleInfo -> ShowS genExports object docs modInfo = - doVersionIfDefs lines + doVersionIfDefs nl . map adjustDeprecatedAndSinceVersion $ [(ss "-- * Types", defaultAttrs) ,(ss " ".ss (object_name object).sc ',', defaultAttrs) @@ -554,28 +576,64 @@ type Deprecated = Bool notDeprecated = False -doVersionIfDefs :: ([ShowS] -> ShowS) -> [(ShowS, (Since, Deprecated))] -> ShowS -doVersionIfDefs lines = - lines - . map (\group@((_,(since, deprecated)):_) -> - sinceVersion since - . ifdefDeprecated deprecated - $ (lines (map fst group))) +doVersionIfDefs :: ShowS -> [(ShowS, (Since, Deprecated))] -> ShowS +doVersionIfDefs sep = + layoutChunks id + . renestChunks 0 + . makeChunks [""] False + . map (\group@((_,(since, deprecated)):_) -> (map fst group, since, deprecated)) . groupBy (\(_,a) (_,b) -> a == b) - -sinceVersion :: Since -> ShowS -> ShowS -sinceVersion [major,'.',minor] body = - ss "#if GTK_CHECK_VERSION(". sc major. ss ",". sc minor. ss ",0)\n". - body. - ss "\n#endif" -sinceVersion _ body = body -ifdefDeprecated :: Deprecated -> ShowS -> ShowS -ifdefDeprecated True body = - ss "#ifndef DISABLE_DEPRECATED\n". - body. - ss "\n#endif" -ifdefDeprecated _ body = body + where makeChunks :: [Since] -> Deprecated -> [([ShowS], Since, Deprecated)] -> [Chunk] + makeChunks sinceStack True [] = EndChunk : makeChunks sinceStack False [] + makeChunks (_:[]) _ [] = [] + makeChunks (_:sinceStack) _ [] = EndChunk : makeChunks sinceStack False [] + makeChunks sinceStack@(sinceContext:_) prevDeprecated whole@((group, since, deprecated):rest) + | deprecated < prevDeprecated = EndChunk : makeChunks sinceStack deprecated whole + | since < sinceContext = EndChunk : makeChunks (tail sinceStack) prevDeprecated whole + | deprecated > prevDeprecated = BeginDeprecatedChunk : makeChunks sinceStack deprecated whole + | since > sinceContext = BeginSinceChunk since : makeChunks (since:sinceStack) prevDeprecated whole + | otherwise = SimpleChunk group : makeChunks sinceStack prevDeprecated rest + + renestChunks :: Int -> [Chunk] -> [Chunk] + renestChunks depth [] = [] + renestChunks depth (chunk:chunks) = + case chunk of + SimpleChunk group -> chunk : renestChunks depth chunks + BeginDeprecatedChunk -> chunk : renestChunks (depth+1) chunks + BeginSinceChunk since -> case renestSinceChunks depth (depth+1) chunks of + (chunks', True) -> EndChunk : chunk : renestChunks (depth+1) chunks' + (chunks', False) -> chunk : renestChunks (depth+1) chunks' + EndChunk -> chunk : renestChunks (depth-1) chunks + + renestSinceChunks :: Int -> Int -> [Chunk] -> ([Chunk], Bool) + renestSinceChunks baseDepth curDepth cs@(chunk:chunks) = + case cs of + (SimpleChunk group:_) -> chunk `prepend` renestSinceChunks baseDepth curDepth chunks + (BeginSinceChunk since:_) -> chunk `prepend` renestSinceChunks baseDepth (curDepth+1) chunks + (EndChunk:EndChunk :_) + | curDepth-1 == baseDepth -> (chunks, True) + (EndChunk :_) + | curDepth-1 == baseDepth -> (chunk : chunks, False) + | otherwise -> chunk `prepend` renestSinceChunks baseDepth (curDepth-1) chunks + where prepend c (cs,b) = (c:cs,b) + + layoutChunks :: ShowS -> [Chunk] -> ShowS + layoutChunks msep [] = id + layoutChunks msep (EndChunk :[]) = endif + layoutChunks msep (EndChunk :chunks) = endif. layoutChunks sep chunks + layoutChunks msep (SimpleChunk group :chunks) = msep. sepBy' (sep []) group. layoutChunks sep chunks + layoutChunks msep (BeginDeprecatedChunk :chunks) = msep. ifndefDeprecated. layoutChunks id chunks + layoutChunks msep (BeginSinceChunk since :chunks) = msep. ifSinceVersion since. layoutChunks id chunks + + ifSinceVersion [major,'.',minor] = ss "#if GTK_CHECK_VERSION(". sc major. ss ",". sc minor. ss ",0)\n" + ifndefDeprecated = ss "#ifndef DISABLE_DEPRECATED\n" + endif = ss "\n#endif" + +data Chunk = SimpleChunk [ShowS] + | BeginDeprecatedChunk + | BeginSinceChunk Since + | EndChunk comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering comparing p x y = compare (p x) (p y) Index: Api.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/Api.hs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Api.hs 27 Feb 2005 20:02:16 -0000 1.4 +++ Api.hs 14 Apr 2005 01:55:25 -0000 1.5 @@ -5,6 +5,7 @@ EnumVariety(..), Member(..), Object(..), + Class(..), Constructor(..), Parameter(..), Method(..), @@ -28,6 +29,7 @@ namespace_name :: String, namespace_library :: String, namespace_objects :: [Object], + namespace_classes :: [Class], namespace_enums :: [Enum], namespace_misc :: [Misc] } deriving Show @@ -61,6 +63,12 @@ object_isinterface ::Bool } deriving Show +data Class = Class { + class_name :: String, + class_cname :: String, + class_methods :: [Method] + } deriving Show + data Constructor = Constructor { constructor_cname :: String, constructor_parameters :: [Parameter] @@ -79,7 +87,7 @@ method_cname :: String, method_return_type :: String, method_parameters :: [Parameter], - method_shared :: Bool, --TODO: figure out what this means! + method_shared :: Bool, method_deprecated :: Bool } deriving Show @@ -109,10 +117,6 @@ misc_name :: String, misc_cname :: String } - | Class { - misc_name :: String, - misc_cname :: String - } | Alias { misc_name :: String, misc_cname :: String @@ -138,6 +142,7 @@ namespace_name = Xml.verbatim name, namespace_library = Xml.verbatim lib, namespace_objects = catMaybes (map extractObject content), + namespace_classes = catMaybes (map extractClass content), namespace_enums = catMaybes (map extractEnum content), namespace_misc = catMaybes (map extractMisc content) } @@ -214,6 +219,17 @@ extractObject other@(Xml.CElem (Xml.Elem "interface" _ _)) = error $ "extractObject: " ++ Xml.verbatim other extractObject _ = Nothing +extractClass :: Xml.Content -> Maybe Class +extractClass (Xml.CElem (Xml.Elem "class" + [("name", Xml.AttValue name), + ("cname", Xml.AttValue cname)] content)) = + Just $ Class { + class_name = Xml.verbatim name, + class_cname = Xml.verbatim cname, + class_methods = catMaybes (map extractMethod content) + } +extractClass _ = Nothing + extractMethod :: Xml.Content -> Maybe Method extractMethod (Xml.CElem (Xml.Elem "method" (("name", Xml.AttValue name): @@ -362,10 +378,6 @@ misc_name = Xml.verbatim name, misc_cname = Xml.verbatim cname } - | elem == "class" = Just Class { - misc_name = Xml.verbatim name, - misc_cname = Xml.verbatim cname - } | elem == "alias" = Just Alias { misc_name = Xml.verbatim name, misc_cname = Xml.verbatim cname @@ -375,6 +387,7 @@ misc_cname = Xml.verbatim cname } extractMisc (Xml.CElem (Xml.Elem "object" _ _)) = Nothing +extractMisc (Xml.CElem (Xml.Elem "class" _ _)) = Nothing extractMisc (Xml.CElem (Xml.Elem "interface" _ _)) = Nothing extractMisc (Xml.CElem (Xml.Elem "enum" _ _)) = Nothing extractMisc other = error $ "extractMisc: " ++ Xml.verbatim other Index: FormatDocs.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/FormatDocs.hs,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- FormatDocs.hs 6 Apr 2005 22:03:59 -0000 1.10 +++ FormatDocs.hs 14 Apr 2005 01:55:26 -0000 1.11 @@ -68,7 +68,7 @@ . concatMap (haddocFormatSpan knownSymbols False) haddocTweakHierarchy :: String -> String -haddocTweakHierarchy ('+':'-':'-':'-':'-':cs@(c:_)) | c /= ''' = +haddocTweakHierarchy ('+':'-':'-':'-':'-':cs@(c:_)) | c /= '\'' = case span isAlpha cs of (word, rest) -> "+----" ++ cTypeNameToHSType word ++ rest haddocTweakHierarchy (c:cs) = c : haddocTweakHierarchy cs haddocTweakHierarchy [] = [] @@ -253,11 +253,11 @@ escapeHaddockSpecialChars = escape where escape [] = [] - escape (''':'s':s:cs) | isSpace s = ''' : 's' : ' ' : escape cs --often don't need to escape - escape (''':'t':s:cs) | isSpace s = ''' : 't' : ' ' : escape cs --eg it's & don't + escape ('\'':'s':s:cs) | isSpace s = '\'' : 's' : ' ' : escape cs --often don't need to escape + escape ('\'':'t':s:cs) | isSpace s = '\'' : 't' : ' ' : escape cs --eg it's & don't escape (c:cs) | c == '/' || c == '`' || c == '"' || c == '@' - || c == '<' || c == ''' + || c == '<' || c == '\'' = '\\': c : escape cs escape (c:cs) = c : escape cs Index: ApiGen.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/ApiGen.hs,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- ApiGen.hs 6 Apr 2005 22:03:58 -0000 1.23 +++ ApiGen.hs 14 Apr 2005 01:55:26 -0000 1.24 @@ -11,9 +11,10 @@ import Docs import FormatDocs import CodeGen -import StringUtils (ss, templateSubstitute, splitOn) +import StringUtils (ss, sc, templateSubstitute, splitOn) import ModuleScan import ExcludeApi +import MarshalFixup (fixModuleDocMapping) import Monad (when, liftM) import List (isPrefixOf, intersperse) @@ -166,8 +167,8 @@ "OBJECT_KIND" -> ss $ if object_isinterface object then "Interface" else "Widget" "OBJECT_NAME" -> ss $ module_name moduleInfo "AUTHORS" -> ss $ concat $ intersperse ", " $ module_authors moduleInfo - "RCS_VERSION" -> ss "$Revision$" - "RCS_TIMESTAMP" -> ss "$Date$" + "RCS_VERSION" -> sc '$'. ss "Revision". ss ": ". ss (module_rcs_version moduleInfo). ss " $" + "RCS_TIMESTAMP" -> sc '$'. ss "Date". ss ": ". ss (module_rcs_timestamp moduleInfo). ss " $" "COPYRIGHT" -> ss $ concat $ intersperse ", " $ module_copyright_holders moduleInfo "DESCRIPTION" -> haddocFormatParas knownTypes False (moduledoc_summary moduleDoc) "DOCUMENTATION" -> genModuleDocumentation knownTypes moduleDoc @@ -183,11 +184,11 @@ _ -> ss "" ) "" ) [ (namespace ,object - ,lookup (object_cname object) apiDocMap + ,lookup (fixModuleDocMapping (object_cname object)) apiDocMap ,lookup (object_name object) moduleInfoMap) | namespace <- api - , object <- namespace_objects namespace ] - + , object <- namespace_objects namespace + ++ map mungeClassToObject (namespace_classes namespace) ] usage = do putStr "\nProgram to generate a .chs Haskell binding module from an xml\n\ Index: gtk.ignore =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/gtk.ignore,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gtk.ignore 6 Apr 2005 22:03:59 -0000 1.3 +++ gtk.ignore 14 Apr 2005 01:55:26 -0000 1.4 @@ -42,3 +42,17 @@ #internal FileFilter methods exclude gtk_file_filter_get_needed exclude gtk_file_filter_filter + +#plug/socket methods intended for subclasses +exclude gtk_plug_construct +exclude gtk_plug_construct_for_display + +#action methods intended for subclasses +exclude gtk_action_create_icon +exclude gtk_action_block_activate_from +exclude gtk_action_unblock_activate_from + +#we can use the non 'full' variants, so don't need these ones +exclude gtk_action_group_add_actions_full +exclude gtk_action_group_add_toggle_actions_full +exclude gtk_action_group_add_radio_actions_full Index: MarshalFixup.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/apiGen/MarshalFixup.hs,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- MarshalFixup.hs 6 Apr 2005 22:03:59 -0000 1.6 +++ MarshalFixup.hs 14 Apr 2005 01:55:26 -0000 1.7 @@ -48,8 +48,17 @@ fixModuleAvailableSince "GtkFileChooser" = "2.4" fixModuleAvailableSince "GtkCellView" = "2.6" fixModuleAvailableSince "GtkIconView" = "2.6" +fixModuleAvailableSince "GtkMenuToolButton" = "2.6" fixModuleAvailableSince _ = "" +-- Most of the time the gtk-doc documentation have titles that correspond to +-- the C name of the object. But sadly sometimes they don't so we fix up that +-- mapping here. +fixModuleDocMapping "GtkClipboard" = "Clipboards" +fixModuleDocMapping "GtkSettings" = "Settings" +fixModuleDocMapping "GtkStyle" = "Styles" +fixModuleDocMapping other = other + -- These are ones we have bound and so we can make documentation references to -- them. Otherwise we generate FIXME messages in the docs. knownMiscType :: String -> Bool @@ -74,14 +83,16 @@ leafClass "GtkEntryCompletion" = True leafClass "GtkFileFilter" = True leafClass "GtkUIManager" = True +leafClass "GtkActionGroup" = True leafClass "GtkRadioButton" = True leafClass "GtkEventBox" = True leafClass "GtkExpander" = True leafClass "GtkAccelGroup" = True -leafClass "GdkScreen" = True leafClass "GtkTooltips" = True leafClass "GtkTextChildAnchor" = True leafClass "GdkWindow" = True +leafClass "GdkDisplay" = True +leafClass "GdkScreen" = True leafClass _ = False -- This is a table of fixup information. It lists function parameters that @@ -116,6 +127,28 @@ maybeNullParameter "gtk_widget_modify_bg" "color" = True maybeNullParameter "gtk_widget_modify_text" "color" = True maybeNullParameter "gtk_widget_modify_base" "color" = True +maybeNullParameter "gtk_action_group_add_action_with_accel" "accelerator" = True +maybeNullParameter "gtk_radio_tool_button_new" "group" = True +maybeNullParameter "gtk_radio_tool_button_new_from_stock" "group" = True +maybeNullParameter "gtk_tool_button_set_label" "label" = True +maybeNullParameter "gtk_tool_button_set_icon_widget" "iconWidget" = True +maybeNullParameter "gtk_tool_button_set_label_widget" "labelWidget" = True +maybeNullParameter "gtk_ui_manager_add_ui" "action" = True +maybeNullParameter "gtk_menu_tool_button_new" "iconWidget" = True +maybeNullParameter "gtk_menu_tool_button_new" "label" = True +maybeNullParameter "gtk_menu_tool_button_set_menu" "menu" = True +maybeNullParameter "gtk_tool_button_new" "iconWidget" = True +maybeNullParameter "gtk_tool_button_new" "label" = True +maybeNullParameter "gtk_tool_button_set_stock_id" "stockId" = True +maybeNullParameter "gtk_action_new" "tooltip" = True +maybeNullParameter "gtk_action_new" "stockId" = True +maybeNullParameter "gtk_toggle_action_new" "tooltip" = True +maybeNullParameter "gtk_toggle_action_new" "stockId" = True +maybeNullParameter "gtk_radio_action_new" "tooltip" = True +maybeNullParameter "gtk_radio_action_new" "stockId" = True +maybeNullParameter "gtk_tree_model_iter_n_children" "iter" = True +--maybeNullParameter "" "" = True +--maybeNullParameter "" "" = True maybeNullParameter _ _ = False -- similarly for method return values/types. @@ -167,6 +200,19 @@ maybeNullResult "gtk_window_get_title" = True maybeNullResult "gtk_widget_render_icon" = True maybeNullResult "gtk_widget_get_composite_name" = True +maybeNullResult "gtk_action_get_accel_path" = True +maybeNullResult "gtk_action_group_get_action" = True +maybeNullResult "gtk_tool_button_get_label" = True +maybeNullResult "gtk_tool_button_get_icon_widget" = True +maybeNullResult "gtk_tool_button_get_label_widget" = True +maybeNullResult "gtk_ui_manager_get_widget" = True +maybeNullResult "gtk_ui_manager_get_action" = True +maybeNullResult "gtk_menu_tool_button_get_menu" = True +maybeNullResult "gtk_tool_button_get_stock_id" = True +maybeNullResult "gtk_about_dialog_get_license" = True +maybeNullResult "gtk_menu_get_attach_widget" = True +--maybeNullResult "" = True +--maybeNullResult "" = True maybeNullResult _ = False -- Often the documentation for parameters or the return value of functions @@ -378,6 +424,50 @@ nukeParamDoc "gtk_widget_get_direction" "returns" = True nukeParamDoc "gtk_widget_set_direction" "dir" = True nukeParamDoc "gtk_widget_get_name" "returns" = True +nukeParamDoc "gtk_text_view_get_overwrite" "returns" = True +nukeParamDoc "gtk_action_get_name" "returns" = True +nukeParamDoc ('g':'t':'k':'_':'u':'i':'_':'m':'a':'n':'a':'g':'e':'r':'_':_) "self" = True +nukeParamDoc "gtk_toggle_action_get_active" "returns" = True +nukeParamDoc "gtk_toggle_action_set_draw_as_radio" "drawAsRadio"= True +nukeParamDoc "gtk_toggle_action_get_draw_as_radio" "returns" = True +nukeParamDoc "gtk_separator_tool_item_set_draw" "draw" = True +nukeParamDoc "gtk_separator_tool_item_get_draw" "returns" = True +nukeParamDoc "gtk_tool_button_get_stock_id" "returns" = True +nukeParamDoc "gtk_ui_manager_get_action_groups" "returns" = True +nukeParamDoc "gtk_action_group_set_sensitive" "sensitive" = True +nukeParamDoc "gtk_action_group_get_sensitive" "returns" = True +nukeParamDoc "gtk_action_group_get_visible" "returns" = True +nukeParamDoc "gtk_action_group_set_visible" "visible" = True +nukeParamDoc "gtk_action_group_remove_action" "action" = True +nukeParamDoc "gtk_menu_tool_button_get_menu" "returns" = True +nukeParamDoc "gtk_toggle_tool_button_set_active" "isActive" = True +nukeParamDoc "gtk_toggle_tool_button_get_active" "returns" = True +nukeParamDoc "gtk_tool_button_get_label" "returns" = True +nukeParamDoc "gtk_tool_button_get_use_underline" "returns" = True +nukeParamDoc "gtk_tool_button_set_use_underline" "useUnderline" = True +nukeParamDoc "gtk_action_group_add_action" "action" = True +nukeParamDoc "gtk_action_get_proxies" "returns" = True +nukeParamDoc "gtk_about_dialog_get_authors" "returns" = True +nukeParamDoc "gtk_about_dialog_get_artists" "returns" = True +nukeParamDoc "gtk_about_dialog_get_documenters" "returns" = True +nukeParamDoc "gtk_about_dialog_get_license" "returns" = True +nukeParamDoc "gtk_about_dialog_get_version" "returns" = True +nukeParamDoc "gtk_about_dialog_get_copyright" "returns" = True +nukeParamDoc "gtk_about_dialog_get_comments" "returns" = True +nukeParamDoc "gtk_about_dialog_get_website" "returns" = True +nukeParamDoc "gtk_about_dialog_get_website_label" "returns" = True +nukeParamDoc "gtk_about_dialog_get_translator_credits" "returns"= True +nukeParamDoc "gtk_about_dialog_get_logo" "returns" = True +nukeParamDoc "gtk_about_dialog_get_logo_icon_name" "returns" = True +nukeParamDoc "gtk_about_dialog_set_version" "version" = True +nukeParamDoc "gtk_about_dialog_set_copyright" "copyright" = True +nukeParamDoc "gtk_about_dialog_set_comments" "comments" = True +nukeParamDoc "gtk_about_dialog_set_website_label" "websiteLabel"= True +nukeParamDoc "gtk_about_dialog_set_translator_credits" "translatorCredits" = True +nukeParamDoc "gtk_file_selection_get_selections" "returns" = True +nukeParamDoc "gtk_tree_model_get_flags" "returns" = True +--nukeParamDoc "" "" = True +--nukeParamDoc "" "" = True nukeParamDoc _ _ = False nukeParameterDocumentation = nukeParamDoc |