diff --git a/Mac/Lib/toolbox/Metrowerks_Shell_Suite.py b/Mac/Lib/toolbox/Metrowerks_Shell_Suite.py new file mode 100644 index 00000000000..6b9439ec72c --- /dev/null +++ b/Mac/Lib/toolbox/Metrowerks_Shell_Suite.py @@ -0,0 +1,1171 @@ +"""Suite Metrowerks Shell Suite: Events supported by the Metrowerks Project Shell +Level 1, version 1 + +Generated from Sap:CodeWarrior6:Metrowerks C/C++:MW C/C++ PPC 1.2.2 +AETE/AEUT resource version 1/0, language 0, script 0 +""" + +import addpack +addpack.addpack('Tools') +addpack.addpack('bgen') +addpack.addpack('ae') + +import aetools +import MacOS + +_code = 'MMPR' + +_Enum_savo = { + 'yes' : 'yes ', # Save changes + 'no' : 'no ', # Do not save changes + 'ask' : 'ask ', # Ask the user whether to save +} + +_Enum_ErrT = { + 'information' : 'ErIn', # + 'compiler_error' : 'ErCE', # + 'compiler_warning' : 'ErCW', # + 'definition' : 'ErDf', # + 'linker_error' : 'ErLE', # + 'linker_warning' : 'ErLW', # +} + +_Enum_Mode = { + 'ReadWrite' : 'RdWr', # The file is open with read/write privileges + 'ReadOnly' : 'Read', # The file is open with read/only privileges + 'CheckedOut_ReadWrite' : 'CkRW', # The file is checked out with read/write privileges + 'CheckedOut_ReadOnly' : 'CkRO', # The file is checked out with read/only privileges + 'CheckedOut_ReadModify' : 'CkRM', # The file is checked out with read/modify privileges + 'Locked' : 'Lock', # The file is locked on disk + 'None' : 'None', # The file is new +} + +_Enum_SrcT = { + 'source' : 'FTxt', # A source file (.c, .cp, .p, etc). + 'library' : 'FLib', # An object code library. + 'shared_library' : 'FShl', # A shared library. + 'resource' : 'FRes', # A resource file. + 'xcoff' : 'FXco', # An XCOFF library. +} + +class Metrowerks_Shell_Suite: + + _argmap_Close_Window = { + 'Saving' : 'savo', + } + + def Close_Window(self, object, *arguments): + """Close Window: Close the windows showing the specified files + Required argument: The files to close + Keyword argument Saving: Whether to save changes to each file before closing its window + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'ClsW' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Close_Window) + aetools.enumsubst(arguments, 'savo', _Enum_savo) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Add_Files = { + 'To_Segment' : 'Segm', + } + + def Add_Files(self, object, *arguments): + """Add Files: Add the specified file(s) to the current project + Required argument: List of files to add + Keyword argument To_Segment: Segment number into which to add the file(s) + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Error code for each file added + """ + _code = 'MMPR' + _subcode = 'AddF' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Add_Files) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Remove_Files(self, object, *arguments): + """Remove Files: Remove the specified file(s) from the current project + Required argument: List of files to remove + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Error code for each file removed + """ + _code = 'MMPR' + _subcode = 'RemF' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Touch(self, object, *arguments): + """Touch: Touch the modification date of the specified file(s) + Required argument: List of files to compile + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Error code for each file touched + """ + _code = 'MMPR' + _subcode = 'Toch' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Check_Syntax = { + 'ExternalEditor' : 'Errs', + } + + def Check_Syntax(self, object, *arguments): + """Check Syntax: Check the syntax of the specified file(s) + Required argument: List of files to check the syntax of + Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller? + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Errors for each file whose syntax was checked + """ + _code = 'MMPR' + _subcode = 'Chek' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Check_Syntax) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Compile = { + 'ExternalEditor' : 'Errs', + } + + def Compile(self, object, *arguments): + """Compile: Compile the specified file(s) + Required argument: List of files to compile + Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller? + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Errors for each file compiled + """ + _code = 'MMPR' + _subcode = 'Comp' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Compile) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Precompile = { + 'Saving_As' : 'Targ', + 'ExternalEditor' : 'Errs', + } + + def Precompile(self, object, *arguments): + """Precompile: Precompile the specified file to the specified destination file + Required argument: File to precompile + Keyword argument Saving_As: Destination file for precompiled header + Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller? + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Errors for the precompiled file + """ + _code = 'MMPR' + _subcode = 'PreC' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Precompile) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Create_Project = { + 'from_stationery' : 'Tmpl', + } + + def Create_Project(self, object, *arguments): + """Create Project: Create a new project file + Required argument: New project file specifier + Keyword argument from_stationery: undocumented, typecode 'alis' + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'NewP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Create_Project) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Close_Project(self, *arguments): + """Close Project: Close the current project + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'ClsP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Remove_Binaries(self, *arguments): + """Remove Binaries: Remove the binary object code from the current project + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'RemB' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Update_Project = { + 'ExternalEditor' : 'Errs', + } + + def Update_Project(self, *arguments): + """Update Project: Update the current project + Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller? + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Errors that occurred while updating the project + """ + _code = 'MMPR' + _subcode = 'UpdP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Update_Project) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Make_Project = { + 'ExternalEditor' : 'Errs', + } + + def Make_Project(self, *arguments): + """Make Project: Make the current project + Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller? + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Errors that occurred while making the project + """ + _code = 'MMPR' + _subcode = 'Make' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Make_Project) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Run_Project = { + 'ExternalEditor' : 'Errs', + 'SourceDebugger' : 'DeBg', + } + + def Run_Project(self, *arguments): + """Run Project: Run the current project + Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller? + Keyword argument SourceDebugger: Run the application under the control of the source-level debugger + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Errors that occurred when running the project + """ + _code = 'MMPR' + _subcode = 'RunP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Run_Project) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Set_Preferences = { + 'To' : 'PRec', + } + + def Set_Preferences(self, *arguments): + """Set Preferences: Set the preferences for the current project + Keyword argument To: Preferences settings + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'Pref' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Set_Preferences) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Get_Preferences = { + 'Of' : 'PRec', + } + + def Get_Preferences(self, *arguments): + """Get Preferences: Get the preferences for the current project + Keyword argument Of: Preferences settings + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: List of preferences + """ + _code = 'MMPR' + _subcode = 'Gref' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Get_Preferences) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Is_In_Project(self, object, *arguments): + """Is In Project: Whether or not the specified file(s) is in the current project + Required argument: List of files to check for project membership + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: Result code for each file + """ + _code = 'MMPR' + _subcode = 'FInP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Get_Project_Specifier(self, *arguments): + """Get Project Specifier: Return the File Specifier for the current project + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: File Specifier for the current project + """ + _code = 'MMPR' + _subcode = 'GetP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Reset_File_Paths(self, *arguments): + """Reset File Paths: Resets access paths for all files belonging to open project. + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'ReFP' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Goto_Line(self, object, *arguments): + """Goto Line: Goto Specified Line Number + Required argument: The requested source file line number + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'GoLn' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Goto_Function(self, object, *arguments): + """Goto Function: Goto Specified Function Name + Required argument: undocumented, typecode 'TEXT' + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'GoFn' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Save_Message_Window_As(self, object, *arguments): + """Save Message Window As: Saves the message window as a text file + Required argument: Destination file for Save Message Window As + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'SvMs' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Get_Open_Documents(self, *arguments): + """Get Open Documents: Returns the list of open documents + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: The list of documents + """ + _code = 'MMPR' + _subcode = 'GDoc' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Get_Segments(self, *arguments): + """Get Segments: Returns a description of each segment in the project. + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: undocumented, typecode 'Seg ' + """ + _code = 'MMPR' + _subcode = 'GSeg' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Set_Segment = { + 'to' : 'Segm', + } + + def Set_Segment(self, object, *arguments): + """Set Segment: Changes the name and attributes of a segment. + Required argument: The segment to change + Keyword argument to: The new name and attributes for the segment. + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'SSeg' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Set_Segment) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Get_Project_File = { + 'Segment' : 'Segm', + } + + def Get_Project_File(self, object, *arguments): + """Get Project File: Returns a description of a file in the project window. + Required argument: The index of the file within its segment. + Keyword argument Segment: The segment containing the file. + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: undocumented, typecode 'SrcF' + """ + _code = 'MMPR' + _subcode = 'GFil' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Get_Project_File) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + _argmap_Set_Project_File = { + 'to' : 'SrcS', + } + + def Set_Project_File(self, object, *arguments): + """Set Project File: Changes the settings for a given file in the project. + Required argument: The name of the file + Keyword argument to: The new settings for the file + Keyword argument _attributes: AppleEvent attribute dictionary + """ + _code = 'MMPR' + _subcode = 'SFil' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + aetools.keysubst(arguments, self._argmap_Set_Project_File) + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + def Get_Definition(self, object, *arguments): + """Get Definition: Returns the location(s) of a globally scoped function or data object. + Required argument: undocumented, typecode 'TEXT' + Keyword argument _attributes: AppleEvent attribute dictionary + Returns: undocumented, typecode 'FDef' + """ + _code = 'MMPR' + _subcode = 'GDef' + + if len(arguments) > 1: + raise TypeError, 'Too many arguments' + if arguments: + arguments = arguments[0] + if type(arguments) <> type({}): + raise TypeError, 'Must be a mapping' + else: + arguments = {} + arguments['----'] = object + + if arguments.has_key('_attributes'): + attributes = arguments['_attributes'] + del arguments['_attributes'] + else: + attributes = {} + + + reply, arguments, attributes = self.send(_code, _subcode, + arguments, attributes) + if arguments.has_key('errn'): + raise MacOS.Error, aetools.decodeerror(arguments) + # XXXX Optionally decode result + if arguments.has_key('----'): + return arguments['----'] + + +# Class 'C/C++ Language' ('FECP') -- 'C/C++ Language specifics' +# property 'Activate CPlusPlus' ('FE01') 'bool' -- 'To compile \322.c\323 files that use C++ features.' [mutable] +# property 'ARM Conformance' ('FE02') 'bool' -- 'To enforce ARM conformance for your source code.' [mutable] +# property 'ANSI Keywords Only' ('FE03') 'bool' -- 'To allow only ANSI C and C++ keywords.' [mutable] +# property 'Require Function Prototypes' ('FE04') 'bool' -- 'To enforce prototype checking.' [mutable] +# property 'Expand Trigraph Sequences' ('FE05') 'bool' -- 'To allow ANSI trigraph expressions.' [mutable] +# property 'Enums Always Ints' ('FE06') 'bool' -- 'To interpret enumeration constants as integers.' [mutable] +# property 'MPW Pointer Type Rules' ('FE07') 'bool' -- 'To use MPW (relaxed) pointer type-checking rules.' [mutable] +# property 'Direct Destruction' ('FE09') 'bool' -- 'To remove local and temporary C++ class objects that have destructors with a direct destructor call.' [mutable] +# property 'Dont Inline' ('FE10') 'bool' -- 'To generate C++ functions and function calls instead of inline functions.' [mutable] +# property 'Pool Strings' ('FE11') 'bool' -- 'To group all character string constants into a single object.' [mutable] +# property 'Dont Reuse Strings' ('FE12') 'bool' -- 'To prevent merging identical character string literals.' [mutable] +# property 'ANSI Strict' ('FE13') 'bool' -- 'To enforce strict ANSI C and ANSI C++ rules.' [mutable] +# property 'MPW Newlines' ('FE14') 'bool' -- 'To convert \324\\n\325 to carriage returns (ASCII 13) and \324\\r\325 to line feeds (ASCII 10).' [mutable] +# property 'Illegal Pragmas' ('WA01') 'bool' -- 'To enforce illegal pragma checking.' [mutable] +# property 'Empty Declarations' ('WA02') 'bool' -- 'To enforce empty declaration checking.' [mutable] +# property 'Possible Errors' ('WA03') 'bool' -- 'To enforce possible error checking.' [mutable] +# property 'Extra Commas' ('WA06') 'bool' -- 'To enforce extra comma checking.' [mutable] +# property 'Extended Error Checking' ('WA07') 'bool' -- 'To enforce extended error checking.' [mutable] +# property 'Treat Warnings As Errors' ('WA08') 'bool' -- 'To treat the warnings as compiler errors.' [mutable] + +# Class 'Pascal Language' ('FEPA') -- 'Pascal Language specifics' +# property 'Activate Range Checking' ('FP01') 'bool' -- 'To activate array index reference and variable assignment checking at compile and run time.' [mutable] +# property 'Use Propagation' ('FP03') 'bool' -- 'To propagate unit objects among imported objects.' [mutable] +# property 'Activate Overflow Checking' ('FP04') 'bool' -- 'To activate run-time overflow checking.' [mutable] +# property 'Generate Map' ('FP05') 'bool' -- 'To generate a Make map file.' [mutable] +# property 'Case Sensitive' ('FP06') 'bool' -- 'To support case sensitive identifier.' [mutable] +# property 'ANS Conformance' ('FP07') 'bool' -- 'To conform to the ANS standard.' [mutable] +# property 'Modified ForLoop Indexes' ('WP01') 'bool' -- 'To verify that for loop indexes are not overwritten.' [mutable] +# property 'Function Returns' ('WP02') 'bool' -- 'To verify that functions get at least one return value.' [mutable] +# property 'Undefined Routines' ('WP03') 'bool' -- 'To report routines declared but not defined.' [mutable] +# property 'GotoAndLabels' ('WP04') 'bool' -- 'To enable goto checking in for, with, case and if statements.' [mutable] +# property 'BranchingIntoWith' ('WP05') 'bool' -- 'Verify that labels in a WITH statement are referenced from within the same statement' [mutable] +# property 'BranchingIntoFor' ('WP06') 'bool' -- 'Verify that labels in a FOR statement are referenced from within the same statement' [mutable] +# property 'BranchingBetweenCase' ('WP07') 'bool' -- 'Verify that labels in a CASE statement leg are not referenced from within another leg of the same statement.' [mutable] +# property 'BranchingBetweenIfAndElse' ('WP08') 'bool' -- 'Verify that there\325s no jump between the IF and the ELSE part of the same IF statement.' [mutable] + +# Class 'Common Language' ('FECO') -- 'Common to the C/C++ and Pascal language' +# property 'Prefix File' ('FE08') 'TEXT' -- 'The name of the prefix file you wish to include in all of your project files.' [mutable] +# property 'Unused Variables' ('WA04') 'bool' -- 'To enforce unused variable checking.' [mutable] +# property 'Unused Arguments' ('WA05') 'bool' -- 'To enforce unused argument checking.' [mutable] + +# Class 'MC68K Linker' ('LN68') -- 'MC68K Linker specifics' +# property 'Code Model' ('BE01') 'shor' -- 'To select the type of object code you wish to generate. (0 : Small; 1 : Smart; 2 : Large)' [mutable] +# property 'MC68020 CodeGen' ('BE03') 'bool' -- 'To generate object code for computers with the MC68020, MC68030, or MC68040 processor.' [mutable] +# property 'MC68881 CodeGen' ('BE04') 'bool' -- 'To reroute all math calls from SANE directly to a MC68881 or MC68882 FPU.' [mutable] +# property 'Far Virtual Function Tables' ('BE08') 'bool' -- 'To make far branches in subroutines. (Not supported in Pascal)' [mutable] +# property 'Far String Constants' ('BE09') 'bool' -- 'To place all string constants into far data space.' [mutable] +# property 'Four Bytes Ints' ('BE10') 'bool' -- 'To force integers to occupy 4 bytes. (Not supported in Pascal)' [mutable] +# property 'Eight Byte Double' ('BE11') 'bool' -- 'To force doubles to occupy 8 bytes.' [mutable] +# property 'Far Data' ('BE12') 'bool' -- 'To remove the 68K limit on global data.' [mutable] +# property 'PC Relative Strings' ('BE14') 'bool' -- 'To reference string literals using PC-relative addressing.' [mutable] +# property 'MPW Calling Conventions' ('BE15') 'bool' -- 'To use MPW C calling conventions.' [mutable] +# property 'MacsBug Symbols' ('LN01') 'shor' -- 'To select the MacsBug version you are using. ( 0 : None; 1 : Old Style; 2 : New Style)' [mutable] +# property 'Generate A6 Stack Frames' ('LN05') 'bool' -- 'To be able to use the Metrowerks Debugger, The Debugger by Jasik Designs, or SourceBug\252 to examine your source code.' [mutable] +# property 'The Debugger Aware' ('LN06') 'bool' -- 'To allow Steve Jasik\325s The Debugger to debug multiple segment projects.' [mutable] +# property 'Link Single Segment' ('LN07') 'bool' -- 'To link all of your project segments into one segment.' [mutable] +# property 'Multi Segment' ('PR10') 'bool' -- 'To divide your resource into many code segments in your resource file.' [mutable] +# property 'Header Type' ('PR16') 'shor' -- 'To select the type of code resource to create. (Not supported yet)' [mutable] +# property 'A4 Relative Data' ('PR17') 'bool' -- 'To use A4 relative data.' [mutable] +# property 'Seg Type' ('PR18') 'shor' -- 'To set the segment type for your code resource.' [mutable] + +# Class 'PowerPC Linker' ('LNCP') -- 'PowerPC Linker specifics' +# property 'Make String ReadOnly' ('B601') 'bool' -- 'To store string literals in the code section.' [mutable] +# property 'Instruction Scheduling' ('B602') 'bool' -- 'To rearrange instructions to take advantage of the RISC pipelined architecture.' [mutable] +# property 'Optimization Level' ('B603') 'shor' -- 'To select the level of optimization to be applied (from 1 to 4).' [mutable] +# property 'Global Optimization' ('B604') 'bool' -- 'To turn on the global optimizer.' [mutable] +# property 'Suppress Warnings' ('L601') 'bool' -- 'To suppress reporting of non-fatal linker errors.' [mutable] +# property 'Initialization Name' ('L602') 'TEXT' -- 'The name of the function to call, when the PEF fragment is loaded.' [mutable] +# property 'Main Name' ('L603') 'TEXT' -- 'The name of the main function.' [mutable] +# property 'Termination Name' ('L604') 'TEXT' -- 'The name of the last function to call, before the PEF fragment is unloaded.' [mutable] +# property 'Export Symbols' ('PE01') 'shor' -- 'To select which symbols to export from the PEF container.' [mutable] +# property 'Old Definition' ('PE02') 'long' -- 'The version number for the PEF container.' [mutable] +# property 'Old Implementation' ('PE03') 'long' -- 'The version number for the PEF container.' [mutable] +# property 'Current Version' ('PE04') 'long' -- 'The version number for the PEF container.' [mutable] +# property 'Order Code Section By Segment' ('PE05') 'bool' -- 'To order functions in the Code section of your program according to their #pragma segment names.' [mutable] +# property 'Share Data Section' ('PE06') 'bool' -- 'To share the Data section of a shared library between all applications that use it.' [mutable] +# property 'Expand Uninitialized Data' ('PE07') 'bool' -- 'To expand the zero-initialized portion of the Data section of your program at link time.' [mutable] +# property 'Fragment Name' ('PE08') 'TEXT' -- 'To specify the code fragment name. The default is the output file name.' [mutable] +# property 'Stack Size' ('P601') 'long' -- 'The minimum amount of stack your application needs when launched by the Finder.' [mutable] + +# Class 'Common Linker' ('LNCO') -- 'Common for the MC68K and PowerPC Linker' +# property 'Struct Alignment' ('BE02') 'shor' -- 'To select how the fields of your structures will be aligned. (0 : 68K; 1 : 68K 4 bytes; 2 : PowerPC)' [mutable] +# property 'Peephole Optimizer' ('BE05') 'bool' -- 'To apply local optimizations to small sections of your code.' [mutable] +# property 'CSE Optimizer' ('BE06') 'bool' -- 'To activate common sub expression optimization.' [mutable] +# property 'Optimize For Size' ('BE07') 'bool' -- 'To minimize the size of your application or code resource.' [mutable] +# property 'Use Profiler' ('BE13') 'bool' -- 'To add profiler calls in the code.' [mutable] +# property 'Generate SYM File' ('LN02') 'bool' -- 'To create a SYM file for your project when it is built.' [mutable] +# property 'Full Path In Sym Files' ('LN03') 'bool' -- 'To put the full path of your application or code resource in your SYM files.' [mutable] +# property 'Generate Link Map' ('LN04') 'bool' -- 'To create a MAP file for your project when it is built.' [mutable] +# property 'Fast Link' ('LN08') 'bool' -- 'To link the code together in memory.' [mutable] +# property 'Project Type' ('PR01') 'shor' -- 'To select the type of binary you wish to create.\015\015for 68K : (0 : Application; 1 : Code Resource; 2 : Library; 3 : MPW Tool) for PowerPC : (0 : Application; 1 : Shared Library; 2 : Code Resource; 3 : Library)' [mutable] +# property 'File Name' ('PR02') 'TEXT' -- 'The name your binary will be given when created.' [mutable] +# property 'File Creator' ('PR03') 'TEXT' -- 'The creator name of your binary.' [mutable] +# property 'File Type' ('PR04') 'TEXT' -- 'The four character code type for your binary.' [mutable] +# property 'Minimum Size' ('PR05') 'long' -- 'The minimum amount of RAM your application needs when launched by the Finder.' [mutable] +# property 'Preferred Size' ('PR06') 'long' -- 'The preferred amount of RAM your application needs when launched by the Finder.' [mutable] +# property 'SIZE Flags' ('PR07') 'shor' -- 'To tell the Finder which type of events your application accepts.' [mutable] +# property 'SYM File' ('PR08') 'TEXT' -- 'The name of the SYM file to be generated when your binary is created.' [mutable] +# property 'Resource Name' ('PR09') 'TEXT' -- 'The name of the code resource to be created.' [mutable] +# property 'Display Dialog' ('PR11') 'bool' -- 'To display a dialog box which asks you where to save your built resource.' [mutable] +# property 'Merge To File' ('PR12') 'bool' -- 'To create and merge your resource into a file which already exists.' [mutable] +# property 'Resource Flags' ('PR13') 'bool' -- 'To select your resource flag options.' [mutable] +# property 'Resource Type' ('PR14') 'shor' -- 'The four character code type for your code resource.' [mutable] +# property 'Resource ID' ('PR15') 'shor' -- 'The ID to assign to your code resource.' [mutable] + +# Class 'Common' ('COMM') -- 'Common to C/C++ and Pascal Language & MC68K and PowerPC Linker.' +# property 'User Paths' ('PA01') 'list' -- 'To add an access path for the source files.' [mutable] +# property 'Always Full Search' ('PA02') 'bool' -- 'To force the compiler to search for system includes like it searches for user includes.' [mutable] +# property 'System Paths' ('PA03') 'list' -- 'To add an access path for the include files. (Not supported in Pascal)' [mutable] + +# Class 'Error Information' ('ErrM') -- 'Describes a single error or warning from the compiler or the linker.' +# property 'kind' ('ErrT') 'ErrT' -- 'The type of error or warning.' [enum] +# property 'message' ('ErrS') 'TEXT' -- 'The error or warning message.' [] +# property 'disk file' ('file') 'fss ' -- 'The file where the error occurred. May not be returned for certain kinds of errors (eg, link errors).' [] +# property 'line' ('ErrL') 'long' -- 'The line in the file where the error occurred. May not be returned for certain kinds of errors (eg, link errors).' [] + +# Class 'Document' ('docu') -- 'An open text file' +# property 'name' ('pnam') 'TEXT' -- 'The document\325s name' [] +# property 'mode' ('Mode') 'Mode' -- 'The document\325s open mode' [enum] +# property 'disk file' ('file') 'fss ' -- 'The document\325s location on disk' [] + +# Class 'Segment' ('Seg ') -- 'A segment or group in the project' +# property 'name' ('pnam') 'TEXT' -- '' [mutable] +# property 'filecount' ('NumF') 'shor' -- '' [] +# property 'preloaded' ('Prel') 'bool' -- 'Is the segment preloaded ? [68K only]' [mutable] +# property 'protected' ('Prot') 'bool' -- 'Is the segment protected ? [68K only]' [mutable] +# property 'locked' ('PLck') 'bool' -- 'Is the segment locked ? [68K only]' [mutable] +# property 'purgeable' ('Purg') 'bool' -- 'Is the segment purgeable ? [68K only]' [mutable] +# property 'system heap' ('SysH') 'bool' -- 'Is the segment loaded into the system heap ? [68K only]' [mutable] + +# Class 'ProjectFile' ('SrcF') -- 'A file contained in a project' +# property 'filetype' ('SrcT') 'SrcT' -- 'What kind of file is this ?' [enum] +# property 'name' ('pnam') 'TEXT' -- 'The file\325s name' [] +# property 'disk file' ('file') 'fss ' -- 'The file\325s location on disk' [] +# property 'codesize' ('CSiz') 'long' -- 'The size of this file\325s code.' [] +# property 'datasize' ('DSiz') 'long' -- 'The size of this file\325s data.' [] +# property 'up to date' ('UpTD') 'bool' -- 'Has the file been compiled since its last modification ?' [] +# property 'symbols' ('SymG') 'bool' -- 'Are debugging symbols generated for this file ?' [mutable] +# property 'weak link' ('Weak') 'bool' -- 'Is this file imported weakly into the project ? [PowerPC only]' [mutable] + +# Class 'Function Information' ('FDef') -- 'Describes the location of any function or global data definition within the current project.' +# property 'disk file' ('file') 'fss ' -- 'The location on disk of the file containing the definition.' [] +# property 'line' ('ErrL') 'long' -- 'The line number where the definition begins.' []