<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>

   <extension
         point="org.eclipse.debug.core.launchDelegates">

       <launchDelegate
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            sourcePathComputerId="com.nokia.cdt.debug.common.internal.source.lookup.CarbideSourcePathComputer"
            delegateDescription="Launch a classic Carbide Emulator debug session."          
            name="Classic Symbian OS Emulation"
            delegate="com.nokia.cdt.internal.debug.launch.EmulationLaunchDelegate"
            modes="run,debug"
            type="com.nokia.cdt.debug.launch.emulationLaunch"
            id="com.nokia.cdt.debug.launch.emulationLaunchDelegate">
      </launchDelegate>

      <launchDelegate
            name="Classic Symbian OS Application TRK"
            delegateDescription="Launch a classic Symbian OS Application TRK debug session."          
            delegate="com.nokia.cdt.internal.debug.launch.TRKLaunchDelegate"
            modes="run,debug"
            type="com.nokia.cdt.debug.launch.appTRKLaunch"
            id="com.nokia.cdt.debug.launch.appTRKLaunchDelegate"
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            sourcePathComputerId="com.nokia.cdt.debug.common.internal.source.lookup.CarbideSourcePathComputer">
      </launchDelegate>
 
      <launchDelegate
            name="Classic Symbian OS System TRK"
            delegateDescription="Launch a classic Symbian OS System TRK debug session."          
            delegate="com.nokia.cdt.internal.debug.launch.TRKLaunchDelegate"
            modes="run,debug"
            type="com.nokia.cdt.debug.launch.systemTRKLaunch"
            id="com.nokia.cdt.debug.launch.systemTRKLaunchDelegate"
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            sourcePathComputerId="com.nokia.cdt.debug.common.internal.source.lookup.CarbideSourcePathComputer">
      </launchDelegate>
 
      <launchDelegate
            name="Classic Symbian OS Attach to Process"
            delegate="com.nokia.cdt.internal.debug.launch.AttachLaunchDelegate"
            delegateDescription="Launch a classic Symbian OS Attach to Process debug session."          
            modes="debug"
            type="com.nokia.cdt.debug.launch.attachLaunch"
            id="com.nokia.cdt.debug.launch.attachLaunchDelegate"
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            sourcePathComputerId="com.nokia.cdt.debug.common.internal.source.lookup.CarbideSourcePathComputer">
      </launchDelegate>
    
   </extension>

   <extension
         point="org.eclipse.debug.core.launchConfigurationTypes">

      <launchConfigurationType
            name="Symbian OS Emulation"
             public="true"
            id="com.nokia.cdt.debug.launch.emulationLaunch">
      </launchConfigurationType>

      <launchConfigurationType
            name="Symbian OS Application TRK"
            public="true"
            id="com.nokia.cdt.debug.launch.appTRKLaunch">
      </launchConfigurationType>
 
      <launchConfigurationType
            name="Symbian OS System TRK"
            public="true"
            id="com.nokia.cdt.debug.launch.systemTRKLaunch">
      </launchConfigurationType>
 
      <launchConfigurationType
            name="Symbian OS Attach to Process"
            public="true"
            id="com.nokia.cdt.debug.launch.attachLaunch">
      </launchConfigurationType>
    
   </extension>
   
  <extension
         point="org.eclipse.debug.ui.launchConfigurationTypeImages">
      <launchConfigurationTypeImage
            icon="icons/launch_config_file_16x16.png"
            configTypeID="com.nokia.cdt.debug.launch.emulationLaunch"
            id="com.nokia.cdt.debug.launch.emulationLaunchImage">
      </launchConfigurationTypeImage>
      <launchConfigurationTypeImage
            icon="icons/launch_config_file_16x16.png"
            configTypeID="com.nokia.cdt.debug.launch.appTRKLaunch"
            id="com.nokia.cdt.debug.launch.appTRKLaunchImage">
      </launchConfigurationTypeImage>
      <launchConfigurationTypeImage
            icon="icons/launch_config_file_16x16.png"
            configTypeID="com.nokia.cdt.debug.launch.systemTRKLaunch"
            id="com.nokia.cdt.debug.launch.systemTRKLaunchImage">
      </launchConfigurationTypeImage>

      <launchConfigurationTypeImage
            icon="icons/launch_config_file_16x16.png"
            configTypeID="com.nokia.cdt.debug.launch.attachLaunch"
            id="com.nokia.cdt.debug.launch.attachLaunchImage">
      </launchConfigurationTypeImage>
    </extension>

   <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="com.nokia.cdt.debug.launch.emulationLaunch"
            class="com.nokia.cdt.internal.debug.launch.ui.EmulationConfigurationTabGroup"
            id="com.nokia.cdt.debug.launch.emulationLaunchTabGroup">
      </launchConfigurationTabGroup>
    </extension>
 
    <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="com.nokia.cdt.debug.launch.appTRKLaunch"
            class="com.nokia.cdt.internal.debug.launch.ui.AppTRKConfigurationTabGroup"
            id="com.nokia.cdt.debug.launch.appTRKLaunchTabGroup">
      </launchConfigurationTabGroup>
    </extension>

    <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="com.nokia.cdt.debug.launch.systemTRKLaunch"
            class="com.nokia.cdt.internal.debug.launch.ui.SystemTRKConfigurationTabGroup"
            id="com.nokia.cdt.debug.launch.systemTRKLaunchTabGroup">
      </launchConfigurationTabGroup>
    </extension>
    
    <extension
         point="org.eclipse.debug.ui.launchConfigurationTabGroups">
      <launchConfigurationTabGroup
            type="com.nokia.cdt.debug.launch.attachLaunch"
            class="com.nokia.cdt.internal.debug.launch.ui.AttachConfigurationTabGroup"
            id="com.nokia.cdt.debug.launch.attachLaunchTabGroup">
      </launchConfigurationTabGroup>
    </extension>
 
    <extension
         point="org.eclipse.debug.ui.launchShortcuts">
      <shortcut
            class="com.nokia.cdt.internal.debug.launch.PhoneLaunchShortcut"
            icon="icons/launch_config_file_16x16.png"
            id="com.nokia.cdt.debug.launch.symbianCPPShortcut.phone"
            label="Symbian OS Phone or Simulator Launch"
            modes="run, debug">
         <contextualLaunch>
            <enablement>
               <with
                     variable="selection">
                  <count
                        value="1">
                  </count>
                  <iterate>
                     <and>
                        <or>
                           <instanceof
                                 value="org.eclipse.cdt.core.model.IBinary">
                           </instanceof>
                           <instanceof
                                 value="org.eclipse.cdt.core.model.ICProject">
                           </instanceof>
                           <instanceof
                                 value="org.eclipse.cdt.debug.core.executables.Executable">
                           </instanceof>
                           <test
                                 forcePluginActivation="true"
                                 property="org.eclipse.cdt.launch.isExecutable">
                           </test>
                           <test
                                 forcePluginActivation="true"
                                 property="org.eclipse.cdt.launch.isCProject">
                           </test>
                           <and>
                              <instanceof
                                    value="org.eclipse.ui.IFileEditorInput">
                              </instanceof>
                              <adapt
                                    type="org.eclipse.core.resources.IResource">
                                 <adapt
                                       type="org.eclipse.cdt.core.model.ICElement">
                                 </adapt>
                              </adapt>
                           </and>
                           <test
                                 forcePluginActivation="true"
                                 property="com.nokia.cdt.debug.launch.isCarbideProject">
                           </test>
                           <test
                                 forcePluginActivation="true"
                                 property="com.nokia.cdt.debug.launch.isExecutable">
                           </test>
                        </or>
                        <test
                              forcePluginActivation="true"
                              property="com.nokia.cdt.debug.launch.isNotEmulator">
                        </test>
                     </and>
                  </iterate>
               </with>
            </enablement>
            <contextLabel
                  label="Run Symbian OS Application on Phone or Simulator"
                  mode="run">
            </contextLabel>
            <contextLabel
                  label="Debug Symbian OS Application on Phone or Simulator"
                  mode="debug">
            </contextLabel>
         </contextualLaunch>
         <description
               description="Debugs on a phone or simulator using System TRK or Application TRK"
               mode="debug">
         </description>
         <description
               description="Runs on a phone or simulator using System TRK or Application TRK"
               mode="run">
         </description>
      </shortcut>
      <shortcut
            class="com.nokia.cdt.internal.debug.launch.EmulatorLaunchShortcut"
            icon="icons/launch_config_file_16x16.png"
            id="com.nokia.cdt.debug.launch.symbianCPPShortcut.emulator"
            label="Symbian OS Emulator Launch"
            modes="run, debug">
         <contextualLaunch>
            <enablement>
               <with
                     variable="selection">
                  <count
                        value="1">
                  </count>
                  <iterate>
                     <and>
                        <or>
                           <instanceof
                                 value="org.eclipse.cdt.core.model.IBinary">
                           </instanceof>
                           <instanceof
                                 value="org.eclipse.cdt.core.model.ICProject">
                           </instanceof>
                           <instanceof
                                 value="org.eclipse.cdt.debug.core.executables.Executable">
                           </instanceof>
                           <test
                                 forcePluginActivation="true"
                                 property="org.eclipse.cdt.launch.isExecutable">
                           </test>
                           <test
                                 forcePluginActivation="true"
                                 property="org.eclipse.cdt.launch.isCProject">
                           </test>
                           <and>
                              <instanceof
                                    value="org.eclipse.ui.IFileEditorInput">
                              </instanceof>
                              <adapt
                                    type="org.eclipse.core.resources.IResource">
                                 <adapt
                                       type="org.eclipse.cdt.core.model.ICElement">
                                 </adapt>
                              </adapt>
                           </and>
                           <test
                                 forcePluginActivation="true"
                                 property="com.nokia.cdt.debug.launch.isCarbideProject">
                           </test>
                           <test
                                 forcePluginActivation="true"
                                 property="com.nokia.cdt.debug.launch.isExecutable">
                           </test>
                        </or>
                        <test
                              forcePluginActivation="true"
                              property="com.nokia.cdt.debug.launch.isEmulator">
                        </test>
                     </and>
                  </iterate>
               </with>
            </enablement>
            <contextLabel
                  label="Run Symbian OS Application on Emulator"
                  mode="run">
            </contextLabel>
            <contextLabel
                  label="Debug Symbian OS Application on Emulator"
                  mode="debug">
            </contextLabel>
         </contextualLaunch>
         <description
               description="Debugs using a WINSCW emulator"
               mode="debug">
         </description>
         <description
               description="Runs using a WINSCW emulator"
               mode="run">
         </description>
      </shortcut>
     </extension>
   
 <!-- Property testers -->
   <extension point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
      		namespace="com.nokia.cdt.debug.launch"
            properties="isExecutable, isCarbideProject, isEmulator, isNotEmulator"
            type="org.eclipse.core.runtime.IAdaptable"
            class="com.nokia.cdt.internal.debug.launch.SymbianProjectPropertyTester"
            id="com.nokia.cdt.debug.launch.SymbianProjectPropertyTester">
      </propertyTester>
   </extension>
 
	<!-- Adapters for contextual launch -->
	<extension point="org.eclipse.core.runtime.adapters">
          <factory 
            class="" 
            adaptableType="org.eclipse.cdt.core.model.ICProject">
            <adapter type="org.eclipse.debug.ui.actions.ILaunchable"/>
         </factory>
    </extension>
 
 	<!-- Adapters for contextual launch -->
	<extension point="org.eclipse.core.runtime.adapters">
         <factory 
            class="" 
            adaptableType="org.eclipse.cdt.debug.core.executables.Executable">
            <adapter type="org.eclipse.debug.ui.actions.ILaunchable"/>
         </factory>
    </extension>
 
   <!-- hack to make the traditional memory rendering the default.  we probaly
   		need to keep it this way until CDT adopts this rendering as the default.
   		see Eclipse bugzilla #146667 for more information. -->
   <extension
         point="org.eclipse.debug.ui.memoryRenderings">
      <renderingBindings
            defaultIds="org.eclipse.dd.debug.memory.renderings.traditional.TraditionalRendering"
            primaryId="org.eclipse.dd.debug.memory.renderings.traditional.TraditionalRendering"
            renderingIds="org.eclipse.dd.debug.memory.renderings.traditional.TraditionalRendering">
         <enablement>
            <instanceof value="org.eclipse.cdt.debug.internal.core.model.CMemoryBlockExtension"/>
         </enablement>
      </renderingBindings>
   </extension>
   
   <extension
         point="org.eclipse.ui.startup">
   </extension>

   <extension-point id="launchWizardExtension" name="Launch Wizard Page" schema="schema/launchWizardExtension.exsd"/>
   <extension-point id="launchCategoryExtension" name="Launch Category" schema="schema/launchCategoryExtension.exsd"/>

</plugin>
