library: libGui #include "TGuiBuilder.h"

# TGuiBuilder

class description - source file - inheritance tree (.pdf)

## class TGuiBuilder

| Inheritance Chart:
`TGuiBuilder` |
<- |
`TRootGuiBuilder` |

        public:

                              TGuiBuilder()
                              TGuiBuilder(const TGuiBuilder&)
                      virtual ~TGuiBuilder()
                 virtual void AddAction(TGuiBldAction*, const char*)
                 virtual void AddSection(const char*)
               static TClass* Class()
             virtual TGFrame* ExecuteAction()
               TGuiBldAction* GetAction() const
                 virtual void Hide()
          static TGuiBuilder* Instance()
              virtual TClass* IsA() const
               virtual Bool_t IsExecutalble() const
                 TGuiBuilder& operator=(const TGuiBuilder&)
                 virtual void SetAction(TGuiBldAction* act)
                 virtual void Show()
                 virtual void ShowMembers(TMemberInspector& insp, char* parent)
                 virtual void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

          TGuiBldAction* fAction  current action

## Class Description

     TGuiBuilder

      ************************************************
                    ROOT GUI Builder principles
      ************************************************

      With the GUI builder, we try to make the next step from WYSIWYG
      to embedded editing concept - WYSIWYE ("what you see is what you edit").
      The ROOT GUI Builder allows modifying real GUI objects.
      For example, one can edit the existing GUI application $ROOTSYS/tutorials/guitest.C.
      GUI components can be added to a design area from a widget palette,
      or can be borrowed from another application.
      One can drag and and drop TCanvas's menu bar into the application.
      GUI objects can be resized and dragged, copied and pasted.
      ROOT GUI Builder allows changing the layout, snap to grid, change object's
      layout order via the GUI Builder toolbar, or by options in the right-click
      context menus.
      A final design can be immediatly tested and used, or saved as a C++ macro.
      For example, it's possible to rearrange buttons in control bar,
      add separators etc. and continue to use a new fancy control bar in the
      application.

      ************************************************

      The following is a short description of the GUI Builder actions and key shortcuts:

       o Press Ctrl-Double-Click to start/stop edit mode
       o Press Double-Click to activate quick edit action (defined in root.mimes)

                     Selection, grabbing, dropping
           ************************************************
        It is possible to select, drag any frame and drop it to any frame

       o Click left mouse button or Ctrl-Click to select an object to edit.
       o Press right mouse button to activate context menu
       o Mutiple selection (grabbing):
          - draw lasso and press Return key
          - press Shift key and draw lasso
       o Dropping:
          - select frame and press Ctrl-Return key
       o Changing layout order:
          - select frame and use arrow keys to change layout order
       o Alignment:
          - draw lasso and press arrow keys (or Shift-Arrow key) to align frames

                        Key shortcuts
           ************************************************
       o Del       - delete selected frame
       o Shift-Del - crop action
       o Ctrl-X    - cut action
       o Ctrl-C    - copy action
       o Ctrl-V    - paste action
       o Ctrl-R    - replace action
       o Ctrl-L    - compact layout
       o Ctrl-B    - break layout
       o Ctrl-H    - switch horizontal-vertical layout
       o Ctrl-G    - switch on/off grid
       o Ctrl-S    - save action
       o Ctrl-O    - open and execute a ROOT macro file.  GUI components created
                     after macro execution will be emebedded to currently edited
                     design area.
       o Ctrl-N    - create new main frame

/* */

TGuiBuilder()

     ctor

~TGuiBuilder()

     dtor

TGuiBuilder* Instance()

     return an instance of TGuiBuilder object

### Inline Functions

                      void AddAction(TGuiBldAction*, const char*)
                      void AddSection(const char*)
                  TGFrame* ExecuteAction()
                      void SetAction(TGuiBldAction* act)
            TGuiBldAction* GetAction() const
                    Bool_t IsExecutalble() const
                      void Show()
                      void Hide()
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
               TGuiBuilder TGuiBuilder(const TGuiBuilder&)
              TGuiBuilder& operator=(const TGuiBuilder&)

Author: Valeriy Onuchin 12/08/04
Last update: root/gui:$Name: $:$Id: TGuiBuilder.cxx,v 1.4 2004/12/09 22:55:06 brun Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *