### GUI

#### New Classes: TGSplitFrame, TGShapedFrame, TGEventHandler

These three classes have been primarily developed to be used in EVE. For an example of how to use them, see `tutorials/eve/SplitGLView.C` (this macro is used as a plugin by `tutorials/eve/alice_esd_split.C`).

- TGSplitFrame is a horizontally or vertically splittable composite frame. Once split, each part will contain a new TGSplitFrame, separated by a TGSplitter.
- TGShapedFrame is a TGCompositeFrame on which a custom shape is applied, starting from a picture file, by taking its transparency mask, and then applying the picture as background.
- TGEventHandler is a Base Event Handler class allowing to delegate event handling (a base class for GL event handlers).

#### TGListTree

- TGListTreeItem is now a base class and TGListTreeItemStd is the standard implementation (modification required by EVE).
- Switched the icon and checkbox position in TGListTreeItem.
- Added custom user control flags, with their getters and setters and three new signal methods (required by EVE). All these were implemented for better control of the TGListTree behavior.
  - `fUserControlled` is a flag to take over the control
  - `fEventHandled` is a flag to tell TGListTree that the current event has been processed by user.
  - `MouseOver(TGListTreeItem *entry)`
  - `MouseOver(TGListTreeItem *entry, UInt_t mask)`
  - `Clicked(TGListTreeItem *entry, Int_t btn, UInt_t mask, Int_t x, Int_t y)`
- The new `DrawOutline()` method draws a colored outline around a list tree item following the mouse position.
- Implemented correct keyboard navigation.
- Improvements for list trees containing a large number of items (i.e. one million).

#### TGTab

- Added a new signal method `Removed(Int_t id)` to notify when a tab was removed.

#### TGListBox

- Fixed flickering problem on Windows.

#### TGDockableFrame

- Introduced the fFixedSize option, to let user choose if the undocked frame may be resized or not. Keep the (fixed) original docked frame size when undocked (i.e. for menus and toolbars).

#### TGShutter

- Two helper methods added:
  - `SetSelectedItem(const char *name)` - switch to the shutter section '`name`'.
  - `EnableItem(const char *name, Bool_t on)` - enable/disable the shutter section '`name`' according to the value of the second parameter '`on`'.

#### TGFileDialog

- The File Open/Close dialogs show the list of all available (mounted) drives on Windows.

#### Modal Dialogs

- On Windows, any modal dialog now stays on top of its parent (true modal mode).

#### Context Menus

The context menu of ROOT classes can be created with hierarchical sub-menus, which are more convenient and offer better organization. This makes possible to access more class methods from the context menu (without having the menu becoming larger than the screen). The next is an example of the hierarchihal submenu structure shown below.

     void SetLevelOne(EPaletteType  palette = pal3); // *MENU={Hierarchy="Candidates/SetLevelOne"}*
     void SetPalette(EPaletteType palette = pal3);   // *SUBMENU={Hierarchy="Candidates/SetPalette"}*
     void SetCatalog(const char * = "HESS") { }      // *MENU={Hierarchy="Candidates/SetCatalog"}*
     void AddCatalog(const char * = "HESS") { }      // *MENU={Hierarchy="Candidates/AddCatalog"}*
     void RemoveCatalog(const char *  = "HESS") { }  // *MENU={Hierarchy="Candidates/RemoveCatalog"}*
     void AddCandidate(const char * = "NAME") { }    // *MENU={Hierarchy="Candidates/AddCandidate"}*

     EPaletteType fPalette; //*OPTION={GetMethod="GetPalette";SetMethod="SetPalette";Items=(PrettyPalette="PrettyPalette",SchlenkPalette="Schlenk",pal3="Pal3",pal4="Pal4")}*

#### GUI HTML

- Implemented controls handling (text buttons, radio buttons and check buttons)
- Implemented signals for these controls:
  - `ButtonClicked(const char *name, const char *val)`
  - `SubmitClicked(const char *val)`
  - `CheckToggled(const char *name, Bool_t on, const char *val)`
  - `RadioChanged(const char *name, const char *val)`

#### GUI Builder

- Robustness has been improved and several bugs fixed.