Note  The existing menubar is a hard-coded feature implemented using PLIB/PUI which we are hoping to get rid of eventually to help us Unifying the 2D rendering backend via canvas for better portability and performance. The PUI menubar can be partially customized by editing PropertyList/XML files for adding entries and styling purposes, but is otherwise fairly inflexible and doesn't support modern widgets like checkboxes, or even just sub-menus.

As of 09/2014, this feature is in the process of being ported to Canvas, for details please check out Howto:Making a Canvas Menubar.

The in-game menubar of FlightGear is located at the top of the screen.

Menu items

Add items

To add a menu for a specific plane only you have to enhance the planes -set.xml file. Add the follow lines (example for the livery selection dialog in a Boeing 787), or any item that you want to show, above the </sim> tag. You can add as many items and menus as you like, but keep the menubar as small as possible, the larger the outside view will be.

 <menubar>
  <default>
   <menu n="10">
   <label>Boeing 787</label>
   <enabled type="bool">true</enabled>
 
    <item>
     <label>Select Livery</label>
     <binding>
      <command>nasal</command>
      <script>aircraft.livery.dialog.open()</script>
     </binding>
    </item>
 
   </menu>
  </default>
 </menubar>
  • menu n="10": creates an extra menu item, at the end of the menubar.

Styles

The menubar is available in various styles. Currently there are two styles (both are shown below) packaged with FlightGear. The lower one is standard, since FlightGear 1.0.0. You can switch between styles by pressing Shift-F10.

 

 

Creating your own

It's very easy to make your own designs. Just copy one of the files that you find in $FG_ROOT/gui/styles and change it to your needs. Then, edit the follwing code in the $FG_ROOT/preferences.xml file to fit your style. You could simply add a line like <style n="0" include="gui/styles/anthrax.xml"/>. The current-style tag specifies the style that should be used when FlightGear loads.

  <gui>
   <current-style type="int" userarchive="y">1</current-style>
   <style n="0" include="gui/styles/classic.xml"/>
   <style n="1" include="gui/styles/anthrax.xml"/>
   <devel-widgets type="bool" userarchive="y">false</devel-widgets>
  </gui>