JG ROOT Tools libraries  version 5.0 - august 2014
RGTreeRequester.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RGTreeRequester.hh
3  *
4  * Include file for class RGTreeRequester
5  */
6 //======================================================================
7 
8 #ifndef RG_TREE_REQUESTER_HH
9 #define RG_TREE_REQUESTER_HH
10 
11 #include "RGBaseRequester.hh"
12 #include "RGItemTreeSelector.hh"
13 #include "RDico.hh"
14 
15 
16 /*! New options for RGTreeRequester.*/
18 {
19  rgReqNoFolder = 0x00020000 // do not allow directory selection in single selection mode
20 };
21 
22 //======================================================================
23 /*! class RGTreeRequester
24  *
25  * Request for a selection (single or multiple) in a tree of elements,
26  * given by a tree structure of GItems.
27  *
28  * Note that the tree structure is not modified by the requester.
29  * Only the selection flag of tree items may be changed.
30  *
31  * Depending on the constructor, the request returns a single or a
32  * multiple selection, and the button result.
33  *
34  * \par Tree structure
35  *
36  * The tree structure is described in the RGItemTreeSelector widget
37  * documentation.
38  *
39  * \par Multiple selection
40  *
41  * For the multiple selection, only items (leaves= can be selected.
42  * The folders do not belong to the selection.
43  *
44  * \par Single selection
45  *
46  * The single selection allows to select either an item (leaf) or a folder
47  * (branch), except if the rgReqNoFolder option is defined (at requester
48  * creation).
49  */
51 {
52  //------------------------------------------------------------
53  /*! \object_doc{RGTreeRequester} */
55  //------------------------------------------------------------
56 
57  protected:
58  static UInt_t tree_min_width; ///< Minimum tree width
59  static UInt_t tree_min_height; ///< Minimum tree height
60 
61  bool select_multi; ///< Multiple selection flag
62 
63  GItemTreeBranch * items_tree; ///< Tree structure of GItems (or RGItems)
64  GItemList * selected_list; ///< Pointer to the list of selected items (multiple selection)
65  GItemTreeNode ** selected_item; ///< Pointer to the selected item node (single selection)
66 
67  // widgets
68  RGItemTreeSelector * w_select_tree; ///< Selection tree widget
69 
70 
71  //------------------------------------------------------------
72  // Constructors / affectation / destructor
73  public:
74  // Button value return and list of selected items (multiple)
75  RGTreeRequester ( const TGWindow * parent, // parent window
76  const TGWindow * main, // main window
77  GItemTreeBranch * tree_root, // items tree
78  int & result, // requester result (button)
79  GItemList & sel_list, // resulting list of selected items
80  const char * title,
81  const char * buttons = rDico.brq_ok_cancel.c_str(),
82  ULong_t opts = 0,
83  bool auto_start = true );
84 
85  // Button value return and selected item (single)
86  RGTreeRequester ( const TGWindow * parent, // parent window
87  const TGWindow * main, // main window
88  GItemTreeBranch * tree_root, // items tree
89  int & result, // requester result (button)
90  GItemTreeNode *& sel_item, // pointer to resulting selected (single) item node
91  const char * title,
92  const char * buttons = rDico.brq_ok_cancel.c_str(),
93  ULong_t opts = 0,
94  bool auto_start = true );
95 
96  // Selected item return (single)
97  RGTreeRequester ( const TGWindow * parent, // parent window
98  const TGWindow * main, // main window
99  GItemTreeBranch * tree_root, // items tree
100  GItemTreeNode *& sel_item, // pointer to resulting selected (single) item node
101  const char * title,
102  const char * buttons = rDico.brq_ok_cancel.c_str(),
103  ULong_t opts = 0,
104  bool auto_start = true );
105 
106  // Constructor for derived classes: no return
107  // It can also be used for multiple selection, with no return value
108  // (the result can be found using selection flag of the items)
109  RGTreeRequester ( const TGWindow * parent, // parent window
110  const TGWindow * main, // main window
111  GItemTreeBranch * tree_root, // items tree
112  const char * title,
113  const char * buttons = rDico.brq_ok_cancel.c_str(),
114  ULong_t opts = 0,
115  bool multi = false,
116  bool auto_start = false );
117 
118  private:
119  RGTreeRequester ( const RGTreeRequester & req );
120 
121  public:
122  virtual ~RGTreeRequester();
123 
124  //------------------------------------------------------------
125  // Construction
126  virtual void Construct ( );
127  virtual void MapRequester ( );
128 
129  RGItemTreeSelector * GetItemTreeSelector ( ); // inline
130 
131  //------------------------------------------------------------
132  // Slots
133  virtual void SingleSelected ( ULong64_t leaf_ptr );
134  virtual void ProcessButton ( Int_t n );
135 
136  //------------------------------------------------------------
137  /*! For ROOT dictionary.*/
139 };
140 
141 
142 //----------------------------------------------------------------------
143 // Inline functions
144 #include "icc/RGTreeRequester.icc"
145 
146 //======================================================================
147 #endif
148 
Definition: RGBaseRequester.hh:91
GItemTreeNode ** selected_item
Pointer to the selected item node (single selection)
Definition: RGTreeRequester.hh:65
static UInt_t tree_min_width
Minimum tree width.
Definition: RGTreeRequester.hh:58
virtual void ProcessButton(Int_t n)
Definition: RGTreeRequester.cpp:349
GItemTreeBranch * items_tree
Tree structure of GItems (or RGItems)
Definition: RGTreeRequester.hh:63
ClassDef(RGTreeRequester, 0)
RGTreeRequester(const TGWindow *parent, const TGWindow *main, GItemTreeBranch *tree_root, int &result, GItemList &sel_list, const char *title, const char *buttons=rDico.brq_ok_cancel.c_str(), ULong_t opts=0, bool auto_start=true)
Definition: RGTreeRequester.cpp:36
GItemList * selected_list
Pointer to the list of selected items (multiple selection)
Definition: RGTreeRequester.hh:64
RGTreeRequestOptions
Definition: RGTreeRequester.hh:17
Definition: RGTreeRequester.hh:50
virtual void MapRequester()
Definition: RGTreeRequester.cpp:276
string brq_ok_cancel
Button texts.
Definition: RDico.hh:189
Definition: RGItemTreeSelector.hh:205
virtual void Construct()
Definition: RGTreeRequester.cpp:242
virtual ~RGTreeRequester()
Definition: RGTreeRequester.cpp:231
GObject(RGTreeRequester)
static UInt_t tree_min_height
Minimum tree height.
Definition: RGTreeRequester.hh:59
RDico & rDico
! Unique instance of the dictionary class
Definition: RDico.cpp:12
RGItemTreeSelector * w_select_tree
Selection tree widget.
Definition: RGTreeRequester.hh:68
RGItemTreeSelector * GetItemTreeSelector()
Definition: RGTreeRequester.icc:11
virtual void SingleSelected(ULong64_t leaf_ptr)
Definition: RGTreeRequester.cpp:304
bool select_multi
Multiple selection flag.
Definition: RGTreeRequester.hh:61