
optionsEditor.item.IDL.view.UI = treeTableNodeUI
optionsEditor.item.IDL.view.expandLevel = 1
optionsEditor.item.IDL.order = 80
optionsEditor.item.IDL.condition = !isGlobalOptions()

optionsEditor.item.IDL.Elements processed by script.order = 10

; ["generateIDL/key"]

IDL.FilterbyStereotype = false
optionsEditor.item.IDL.item.Elements processed by script.item.FilterbyStereotype.name = ["generateIDL/filter_by_stereotype"]
optionsEditor.item.IDL.item.Elements processed by script.item.FilterbyStereotype = BooleanField
optionsEditor.item.IDL.item.Elements processed by script.item.FilterbyStereotype.propertyName = IDL.FilterbyStereotype
optionsEditor.item.IDL.item.Elements processed by script.item.FilterbyStereotype.order = 10
optionsEditor.item.IDL.item.Elements processed by script.item.FilterbyStereotype.view.description = ["generateIDL/description.filter_by_stereotype"]

IDL.IncludeInterfaces = true
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeInterfaces.name = ["generateIDL/include_interfaces"]
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeInterfaces = BooleanField
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeInterfaces.propertyName = IDL.IncludeInterfaces
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeInterfaces.order = 20
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeInterfaces.view.description = ["generateIDL/description.include_interfaces"]

IDL.IncludeClasses = true
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeClasses.name =["generateIDL/include_classes"]
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeClasses = BooleanField
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeClasses.propertyName = IDL.IncludeClasses
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeClasses.order = 30
optionsEditor.item.IDL.item.Elements processed by script.item.IncludeClasses.view.description = ["generateIDL/description.include_classes"]

IDL.ProcessAttributes = true
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessAttributes.name = ["generateIDL/process_attributes"]
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessAttributes = BooleanField
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessAttributes.propertyName = IDL.ProcessAttributes
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessAttributes.order = 40
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessAttributes.view.description = ["generateIDL/description.process_attributes"]

;IDL.ProcessLinks = true
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessLinks.name = ["generateIDL/process_links"]
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessLinks = BooleanField
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessLinks.propertyName = IDL.ProcessLinks
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessLinks.order = 50
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessLinks.view.description = ["generateIDL/description.process_links"]


IDL.ProcessPublicMembersOnly = false
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessPublicMembersOnly.name = ["generateIDL/process_publics_only"]
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessPublicMembersOnly = BooleanField
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessPublicMembersOnly.propertyName = IDL.ProcessPublicMembersOnly
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessPublicMembersOnly.order = 70
optionsEditor.item.IDL.item.Elements processed by script.item.ProcessPublicMembersOnly.view.description = ["generateIDL/description.process_publics_only"]

;IDL.ProcessImports = false

; *** not implemented
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessImports.name = ["generateIDL/process_imports"]
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessImports = BooleanField
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessImports.propertyName = IDL.ProcessImports
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessImports.order = 80
;optionsEditor.item.IDL.item.Elements processed by script.item.ProcessImports.view.description = ["generateIDL/description.process_imports"]
;optionsEditor.item.IDL.Physical organization.order = 20



IDL.ConvertStandardTypes = true
optionsEditor.item.IDL.item.CORBA IDL.view.UI = treeTableNodeUI
optionsEditor.item.IDL.item.CORBA IDL.order = 90
optionsEditor.item.IDL.item.CORBA IDL.item.ConvertStandardTypes.name = ["generateIDL/convert_std_types"]
optionsEditor.item.IDL.item.CORBA IDL.item.ConvertStandardTypes = BooleanField
optionsEditor.item.IDL.item.CORBA IDL.item.ConvertStandardTypes.propertyName = IDL.ConvertStandardTypes
optionsEditor.item.IDL.item.CORBA IDL.item.ConvertStandardTypes.order = 90
optionsEditor.item.IDL.item.CORBA IDL.item.ConvertStandardTypes.view.description = ["generateIDL/description.convert_std_types"]

IDL.UseModuleStatements = true
optionsEditor.item.IDL.item.CORBA IDL.item.UseModuleStatements.name = ["generateIDL/use_module_statements"]
optionsEditor.item.IDL.item.CORBA IDL.item.UseModuleStatements = BooleanField
optionsEditor.item.IDL.item.CORBA IDL.item.UseModuleStatements.propertyName = IDL.UseModuleStatements
optionsEditor.item.IDL.item.CORBA IDL.item.UseModuleStatements.order = 100
optionsEditor.item.IDL.item.CORBA IDL.item.UseModuleStatements.view.description = ["generateIDL/description.use_module_statements"]



IDL.ProcessLinks = true
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessLinks.name = ["generateIDL/process_links"]
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessLinks = BooleanField
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessLinks.propertyName = IDL.ProcessLinks
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessLinks.order = 110
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessLinks.view.description = ["generateIDL/description.process_links"]

IDL.ProcessCardinality = false
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessCardinality.name = ["generateIDL/process_cardinality"]
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessCardinality = BooleanField
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessCardinality.propertyName = IDL.ProcessCardinality
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessCardinality.order = 120
optionsEditor.item.IDL.item.CORBA IDL.item.ProcessCardinality.view.description = ["generateIDL/description.process_cardinality"]



;IDL.ModulePrefix =
;optionsEditor.item.IDL.item.Physical organization.item.ModulePrefix.name = ["generateIDL/module_prefix"]
;optionsEditor.item.IDL.item.Physical organization.item.ModulePrefix = StringField
;optionsEditor.item.IDL.item.Physical organization.item.ModulePrefix.propertyName = IDL.ModulePrefix
;optionsEditor.item.IDL.item.Physical organization.item.ModulePrefix.order = 110
;optionsEditor.item.IDL.item.Physical organization.item.ModulePrefix.view.description = ["generateIDL/description.module_prefix"]

;optionsEditor.item.IDL.item.Physical organization.item.InterfaceSuffix.name = ["generateIDL/interface_suffix"]
;optionsEditor.item.IDL.item.Physical organization.item.InterfaceSuffix = StringField
;optionsEditor.item.IDL.item.Physical organization.item.InterfaceSuffix.propertyName = IDL.InterfaceSuffix
;optionsEditor.item.IDL.item.Physical organization.item.InterfaceSuffix.order = 120
;optionsEditor.item.IDL.item.Physical organization.item.InterfaceSuffix.view.description = ["generateIDL/description.interface_suffix"]


;IDL.CreateIdlSubdirectory = true
;optionsEditor.item.IDL.item.Physical organization.item.CreateIdlSubdirectory.name = ["generateIDL/create_subdirectory"]
;optionsEditor.item.IDL.item.Physical organization.item.CreateIdlSubdirectory = BooleanField
;optionsEditor.item.IDL.item.Physical organization.item.CreateIdlSubdirectory.propertyName = IDL.CreateIdlSubdirectory
;optionsEditor.item.IDL.item.Physical organization.item.CreateIdlSubdirectory.order = 130
;optionsEditor.item.IDL.item.Physical organization.item.CreateIdlSubdirectory.view.description = ["generateIDL/description.create_subdirectory"]

IDL.OneFileForModule = true

; *** not implemented
optionsEditor.item.IDL.item.Physical organization.item.OneFileForModule.name = ["generateIDL/one_file_per_module"]
optionsEditor.item.IDL.item.Physical organization.item.OneFileForModule = BooleanField
optionsEditor.item.IDL.item.Physical organization.item.OneFileForModule.propertyName = IDL.OneFileForModule
optionsEditor.item.IDL.item.Physical organization.item.OneFileForModule.order = 140
optionsEditor.item.IDL.item.Physical organization.item.OneFileForModule.view.description = ["generateIDL/description.one_file_per_module"]


;IDL.UseLongFileNames = true
;optionsEditor.item.IDL.item.Physical organization.item.UseLongFileNames.name = ["generateIDL/use_long_filenames"]
;optionsEditor.item.IDL.item.Physical organization.item.UseLongFileNames = BooleanField
;optionsEditor.item.IDL.item.Physical organization.item.UseLongFileNames.propertyName = IDL.UseLongFileNames
;optionsEditor.item.IDL.item.Physical organization.item.UseLongFileNames.order = 150
;optionsEditor.item.IDL.item.Physical organization.item.UseLongFileNames.view.description = ["generateIDL/description.use_long_filenames"]

IDL.OutputDirectory =
optionsEditor.item.IDL.item.OutputDirectory.name = ["generateIDL/output_directory"]
optionsEditor.item.IDL.item.OutputDirectory = FolderNameField
optionsEditor.item.IDL.item.OutputDirectory.propertyName = IDL.OutputDirectory
optionsEditor.item.IDL.item.OutputDirectory.order=90
optionsEditor.item.IDL.item.OutputDirectory.view.description = ["generateIDL/description.output_directory"]

IDL.SuppressWarnings = true
optionsEditor.item.IDL.item.SuppressWarnings.name = ["generateIDL/suppress_warnings"]
optionsEditor.item.IDL.item.SuppressWarnings = BooleanField
optionsEditor.item.IDL.item.SuppressWarnings.propertyName = IDL.SuppressWarnings
optionsEditor.item.IDL.item.SuppressWarnings.order=90
optionsEditor.item.IDL.item.SuppressWarnings.view.description = ["generateIDL/description.suppress_warnings"]


# OPTIONS EDITOR FOR IDL COM
#
optionsEditor.item.IDL.item.COM IDL.view.UI = treeTableNodeUI
optionsEditor.item.IDL.item.COM IDL.order = 200

IDL.COM.MkTypeLib = false
optionsEditor.item.IDL.item.COM IDL.item.MkTypeLib compatible mode = BooleanField
optionsEditor.item.IDL.item.COM IDL.item.MkTypeLib compatible mode.propertyName = IDL.COM.MkTypeLib
optionsEditor.item.IDL.item.COM IDL.item.MkTypeLib compatible mode.name = "MkTypeLib compatible mode"
# DOC
optionsEditor.item.IDL.item.COM IDL.item.MkTypeLib compatible mode.view.description = "Perform generation of ODL file"





#############
#############
#
#  CORBA IDL GENERATION
#
IDL.CORBA.file = %FilePrefix%
\%Imports%
\%Definitions%
\%FilePostfix%


IDL.CORBA.FilePrefix = #ifndef IDL_%Name%_
\#define IDL_%Name%_
IDL.CORBA.FilePostfix = #endif

IDL.CORBA.module =  module { 
\ %Definitions% 
\ }

IDL.CORBA.type_declaration = 

IDL.CORBA.interface = %Tags% interface %Name% {
\ %Members%
\}
IDL.CORBRA.forward_decl = %abstract% interface %Name% ;



IDL.CORBA.enum = %Tags% enum %Name% {
\ %Members%
\}
IDL.CORBA.struct = %Tags% struct %Name% {
\ %Members%
\}
IDL.CORBA.exception = %Tags% exception %Name% {
\ %Members%
\}

IDL.CORBA.method = %Tags% %Type% %Name%(%parameters%);


# COM templates
#
#

IDL.COM.file =
\%ifndef%
\
\import "oaidl.idl";
\import "ocidl.idl"; 
\
\%InterfaceDefinitions%
\[
\	uuid(%uuid%),
\	version(1.0),
\	helpstring("CO%Name%Lib 1.0 Type Library")
\]
\library CO%Name%Lib
\{
\	importlib("stdole32.tlb");
\       %CoClassDefiinitions%
\};
\%endif%


IDL.COM.mktypelib_file=
\%ifndef%
\import "oaidl.idl";
\import "ocidl.idl"; 
\
\[
\uuid(%uuid%),
\version(1.0),
\helpstring("CO%Name%Lib 1.0 Type Library")
\]
\library CO%Name%Lib
\{
\importlib("stdole32.tlb");
\%InterfaceDefinitions%
\%DispInterfaceDefinitions%
\%DispCoClassDefiinitions%
\};
\%endif%

IDL.COM.dispinterface= 
\dispinterface IDisp%InterfaceName% 
\{
\  interface %InterfaceName%;
\}

IDL.COM.dispcoclass =
\[
\uuid(%couuid%),
\helpstring("%CoName% Class")
\]
\coclass %CoName%
\{
\[default] dispinterface IDisp%InterfaceName%;
\};


IDL.COM.coclass =
\[
\uuid(%couuid%),
\helpstring("%CoName% Class")
\]
\coclass %CoName%
\{
\[default] interface %InterfaceName%;
\};

IDL.COM.interface =
\/*%$doc%*/
\[
\%Tags% 
\]
\interface
\ %InterfaceName% %Extends%
\{
\ %Members%
\};

IDL.COM.method = /*%$doc%*/ [%Tags% ] %returnType% %Name%(%parameters%);
IDL.COM.property = /*%$doc%*/[propget %Tags%  ] HRESULT %Name%([out, retval] %Type% *pVal);
\[ propput %Tags%] HRESULT %Name%([in] %Type% newVal);


