JG ROOT Tools libraries  version 5.0 - august 2014
RGGetPoints.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RGGetPoints.hh
3  *
4  * Include file for class RGGetPoints
5  */
6 //======================================================================
7 
8 //////// NOTE (2/7/2008)
9 //////// les parties (variables, fonctions, morceauc de code...)
10 //////// pour les modes d'éditions sont commentés avec //**
11 //////// en attendant une classe qui les traite
12 
13 #ifndef RG_GET_POINTS_HH
14 #define RG_GET_POINTS_HH
15 
16 #include "RGMessageRequester.hh"
17 #include "RPoint2D.hh"
18 #include "RPointMark.hh"
19 #include "ROptionString.hh"
20 #include "GListT.hh"
21 #include "RGFrameEvent.hh"
22 
23 #include <TSystem.h>
24 #include <TPad.h>
25 #include <TCanvas.h>
26 #include <TPolyLine.h>
27 #include <TGFrame.h>
28 #include <TGButton.h>
29 #include <TGLabel.h>
30 #include <TGNumberEntry.h>
31 #include <TGComboBox.h>
32 
33 
34 //======================================================================
35 /*! class RGGetPoints
36  *
37  * Class to get a list of points by interacting in a TPad.
38  *
39  * Graphical objects can be added for drawing.
40  * In the base class, according to options, a line connecting points
41  * may be added if corresponding option is set.
42  *
43  * Graphical options:
44  * - \b MIN=n: set a minimum number of points
45  * - \b MAX=n: set a maximum number of points
46  * - \b MCOL: points marker color (line color in 1D)
47  * - \b MSTY: points marker style (line style in 1D)
48  * - \b MSIZ: size of points markers (2D)
49  * - \b MWID: width of lines (1D points)
50  * - \b SCOL: color for selected point/line
51  * - \b SSTY: style for selected point/line
52  * - \b SSIZ: size for selected point (2D)
53  * - \b SWID: width for selected point (1D)
54  * - \b LINE: draw an open line between points
55  * - \b POLY: draw a closed line between points
56  * - \b LCOL: connecting line color
57  * - \b LSTY: connecting line style
58  * - \b LWID: connecting line width
59  *
60  * Request options
61  * - selection of displayed buttons
62  *
63  * - 1D/2D diaplay (default: 2D)
64  *
65  *
66  * \note
67  * Since move with buttons 2 or 3 down does not work with embedded
68  * canvas (ROOT version 5.12) for an unknown reason (since buttons
69  * up/down are detected), moving is performed by setting the
70  * \b move_lock variable when a point is selected and changing the
71  * status when button is released.
72  */
73 
74 class RGGetPoints : public TGTransientFrame,
75  public GListT<RPointMark>,
76  public RGFrameEvent
77 {
78  //------------------------------------------------------------
79  /*! \object_doc{RGGetPoints} */
81  //------------------------------------------------------------
82 
83  ///! Request options
84  enum RGFlags
85  {
86  noDoneButton = 0x00000001, // Bit indiquant que le bouton "Done" n'est pas créé noCancelButton = 0x00000002, // Bit indiquant que le bouton "Cancel" n'est pas créé noHelpButton = 0x00000004, // Bit indiquant que le bouton "Help" n'est pas créé noButton = 0x00000007, // Aucun bouton verticalFrame = 0x00000000, // La fenêtre de la requête est arrangée verticalement (défaut) horizontalFrame = 0x00000010, // La fenêtre de la requête est arrangée horizontalement bottomCompact = 0x00000020, // Arrangement horizontal des widgets en bas de fenêtre mode1Dx = 0x00000040, // tracé pour mode 1D selon X mode1Dy = 0x00000080, // tracé pour mode 1D selon X mode2D = 0x000000C0, // tracé pour mode 2D (défaut) // use of mouse for points creation/suppression selectButton1 = 0x00000000, // Button 1 for point creation selectButton2 = 0x00000100, // Button 2 for point creation selectButton3 = 0x00000200, // Button 3 for point creation selectButton = 0x00000300, // Creation button options mask selectDouble = 0x00000400, // Double-click (button 1) for point creation deleteButton1 = 0x00001000, // Button 1 for point destruction deleteButton2 = 0x00000000, // Button 2 for point destruction deleteButton3 = 0x00002000, // Button 3 for point destruction deleteButton = 0x00003000, // Destruction button options mask deleteDouble = 0x00004000, // Double-click (button 1) for point destruction mouseFlags = 0x0000FF00 // Mouse options mask //** modes autorisés: //**editModePoints = 0x00010000, ///< Création/destruction/déplacement de points //**editModeMove = 0x00020000, ///< Déplacement d'ensemble des points //**editModeScale = 0x00040000, ///< Facteur d'échelle d'ensemble des points //**editModeAll = 0x00070000 ///< Tous les modes possibles }; //**// Request mode //**enum RGEditMode //**{ //** modePoints = 0, //** modeMove = 1, //** modeScale = 2 //**}; ///! Effective dimensions selection enum RGDimMode { dimMode2D = 0, dimMode1Dx = 1, dimMode1Dy = 2 }; protected: bool exit_flag; ///< End of request check bool constructed; ///< Flag if request is constructed bool modified; ///< Flag if points have been modified u_int request_flags; ///< Request options: buttons choice u_int mouse_flags; ///< Use of mouse buttons Int_t dim_mode; ///< Display in 1D/2D mode UInt_t req_w; ///< Default window size (for adjustments if size is changed) //**u_int edit_flags; ///< Modes dédition valides //**bool edit_points; ///< Mode édition des points valide //**bool edit_move; ///< Mode déplacement d'ensemble valide //**bool edit_scale; ///< Mode facteur d'échelle valide //**u_int edit_multi; ///< Plusieurs modes d'édition possibles //**RPoint2D mode_point[3]; ///< Points utilisés pour modes Move et Scale //**u_int mode_point_num; ///< Nombre de points définis //**Int_t edit_mode; ///< Mode en cours (0: points, 1: move, 2: scale) // cette variable sert parce que dans les canevas embarqués, les événements // de déplacement avec les boutons de souris 2 et 3 ne sont pas appelés... bool move_lock; ///< Flag for point move phase ROptionString options; ///< Options UInt_t n_points_min; ///< Minimum number of points to get UInt_t n_points_max; ///< Maximum number of points to get bool min_on; ///< Flag indicated that there is a minimum number of requested points bool max_on; ///< Flag indicated that there is a maximum number of requested points bool marker_on; ///< Flag indicating a marker plotting bool line_on; ///< Flag indicating a line plotting bool line_close; ///< Flag indicating that a line is closed // attributs des marqueurs en mode 2D (normal) TAttMarker m_att; ///< Standard points marker attributes (2D mode) TAttMarker s_att; ///< Selected point marker attributes (2D mode) TAttLine l_att; ///< Line attributes (2D mode) // attributs des marqueurs en mode 1D TAttLine ml_att; ///< Standard line attributes (1D mode) TAttLine sl_att; ///< Selected line attributes (1D mode) Double_t select_distance; ///< Selection distance (pixels) RPointMark *select_point; ///< Pointer to point at selection distance #ifndef __MAKECINT__ UInt_t *out_number; ///< Pointer to points number (output) RPoint2D **out_points; ///< Pointer to points array (output) #endif string window_title; ///< Request title string help_message; ///< Help text message TList draw_list; ///< List of ROOT objects to draw // widgets TGCompositeFrame * w_gp_main; ///< Main frame for points widgets //**TGCompositeFrame * w_gp_mode_frame; ///< Mode selection frame //**TGComboBox * w_gp_edit_mode; ///< Edition mode widget TGGroupFrame * w_gp_point_frame; ///< Frame for point information TGHorizontalFrame * w_gp_point_num_h_frame; ///< Points number line TGNumberEntry * w_gp_point_number; ///< Current point number TGNumberEntryField * w_gp_total_number; ///< Number of points defined TGNumberEntryField * w_gp_min_number; ///< Minimum requested number of points TGNumberEntryField * w_gp_max_number; ///< Maximum requested number of points TGHorizontalFrame * w_gp_point_coord_h_frame; ///< Coordinates line TGTextButton * w_gp_set_button; ///< Point update button TGHorizontalFrame * w_gp_point_x_frame; ///< X coordinate frame TGNumberEntry * w_gp_point_x_number; ///< X point value TGHorizontalFrame * w_gp_point_y_frame; ///< X coordinate frame TGNumberEntry * w_gp_point_y_number; ///< Y point value //**TGGroupFrame * w_gp_move_frame; /// Frame for global move //**TGGroupFrame * w_gp_scale_frame; /// Frame for global scale TGCompositeFrame * w_gp_button_frame; ///< Buttons frame TGTextButton * w_gp_help_button; ///< Help button TGTextButton * w_gp_cancel_button; ///< Cancel button TGTextButton * w_gp_done_button; ///< Validation button //------------------------------------------------------------ // Constructors / affectation / destructor public: // Constructeur avec retour des points RGGetPoints ( const TGWindow * main, TVirtualPad * pad, const char * title, UInt_t & nb, RPoint2D * & result, const string & options = "", const u_int flags = 0, const bool auto_start = true ); // Constructeur sans retour des points RGGetPoints ( const TGWindow * main, TVirtualPad * pad, const char * title, const string & options = "", const u_int flags = 0, const bool auto_start = false ); private: RGGetPoints ( const RGGetPoints & obj ); public: virtual ~RGGetPoints(); //------------------------------------------------------------ // Functions protected: // Construction de la requête virtual void Construct ( ); virtual void SetWindow ( ); public: // Démarre le requester virtual void Request ( ); virtual void EventLoop ( ); virtual void Quit ( ); virtual void SetContextHelpText ( const string &text ); virtual void SetOptions ( const string &opts = "" ); //µµvirtual void SetEditMode ( const Int_t m = modePoints ); virtual void SetDimMode ( Int_t m ); protected: virtual void SetMouseFlags ( const u_int flags ); virtual void SetDimFlags ( const u_int flags ); //**virtual void SetEditFlags ( const u_int flags ); //------------------------------------------------------------ // Computations and update // Renvoit la distance du point le plus proche (en pixels) et // un pointeur sur ce point Double_t ClosestPointDistance ( const Double_t x, const Double_t y, RPointMark *&ptr ); RPointMark * ClosestPoint (const Double_t x, const Double_t y ); // Mise à jour des attibuts d'un point virtual void UpdatePointAttr ( RPointMark *p ); virtual void SelectPoint ( RPointMark *p ); virtual void SetModified ( const bool status = true ); // Retrace les points saisis virtual void RedrawPoints ( ); virtual void DrawAssociatedObject ( ); virtual void DeleteAssociatedObject ( ); public: //------------------------------------------------------------ // Actions in pad // Slot de fermeture du pad (surcharge de RGFrameEvent) virtual void PadClosed ( ); // Actions dans le pad (surcharge de RGFrameEvent) virtual void MouseSelect ( const Double_t x, const Double_t y ); virtual void MouseMove ( const Double_t x, const Double_t y ); virtual void MouseDelete ( const Double_t x, const Double_t y ); virtual void MouseButton1Down ( const Double_t x, const Double_t y ); virtual void MouseButton1Double ( const Double_t x, const Double_t y ); virtual void MouseButton1Up ( const Double_t x, const Double_t y ); virtual void MouseButton2Down ( const Double_t x, const Double_t y ); virtual void MouseButton2Double ( const Double_t x, const Double_t y ); virtual void MouseButton2Up ( const Double_t x, const Double_t y ); virtual void MouseButton3Down ( const Double_t x, const Double_t y ); virtual void MouseButton3Double ( const Double_t x, const Double_t y ); virtual void MouseButton3Up ( const Double_t x, const Double_t y ); virtual void Locate ( const Double_t x, const Double_t y ); virtual void AnyEvent ( const Double_t x, const Double_t y ); virtual void PointDeleted ( RPointMark *p ); virtual void AddPoint ( const Double_t x, const Double_t y, const bool select = true ); virtual void MovePoint ( RPointMark *p, const Double_t x, const Double_t y ); // Retrait d'un point virtual void RemovePoint ( RPointMark *p ); //------------------------------------------------------------ // Widget functions virtual void UpdatePointsNumber ( ); virtual void UpdatePosition ( const Double_t x, const Double_t y ); virtual void UpdatePointPosition ( const UInt_t n ); virtual void PointNumberValueSet ( Long_t val ); virtual void PointNumberTextChanged ( const char *str ); virtual void PointSetButton ( ); //**virtual void EditModeSelected ( const Int_t m ); virtual void HelpButton ( ); virtual void DoneButton ( ); virtual void CancelButton ( ); //------------------------------------------------------------ /*! For ROOT dictionary.*/ ClassDef(RGGetPoints,0); }; //---------------------------------------------------------------------- // Inline functions #include "icc/RGGetPoints.icc" //====================================================================== #endif
87  noCancelButton = 0x00000002, // Bit indiquant que le bouton "Cancel" n'est pas créé noHelpButton = 0x00000004, // Bit indiquant que le bouton "Help" n'est pas créé noButton = 0x00000007, // Aucun bouton verticalFrame = 0x00000000, // La fenêtre de la requête est arrangée verticalement (défaut) horizontalFrame = 0x00000010, // La fenêtre de la requête est arrangée horizontalement bottomCompact = 0x00000020, // Arrangement horizontal des widgets en bas de fenêtre mode1Dx = 0x00000040, // tracé pour mode 1D selon X mode1Dy = 0x00000080, // tracé pour mode 1D selon X mode2D = 0x000000C0, // tracé pour mode 2D (défaut) // use of mouse for points creation/suppression selectButton1 = 0x00000000, // Button 1 for point creation selectButton2 = 0x00000100, // Button 2 for point creation selectButton3 = 0x00000200, // Button 3 for point creation selectButton = 0x00000300, // Creation button options mask selectDouble = 0x00000400, // Double-click (button 1) for point creation deleteButton1 = 0x00001000, // Button 1 for point destruction deleteButton2 = 0x00000000, // Button 2 for point destruction deleteButton3 = 0x00002000, // Button 3 for point destruction deleteButton = 0x00003000, // Destruction button options mask deleteDouble = 0x00004000, // Double-click (button 1) for point destruction mouseFlags = 0x0000FF00 // Mouse options mask //** modes autorisés: //**editModePoints = 0x00010000, ///< Création/destruction/déplacement de points //**editModeMove = 0x00020000, ///< Déplacement d'ensemble des points //**editModeScale = 0x00040000, ///< Facteur d'échelle d'ensemble des points //**editModeAll = 0x00070000 ///< Tous les modes possibles }; //**// Request mode //**enum RGEditMode //**{ //** modePoints = 0, //** modeMove = 1, //** modeScale = 2 //**}; ///! Effective dimensions selection enum RGDimMode { dimMode2D = 0, dimMode1Dx = 1, dimMode1Dy = 2 }; protected: bool exit_flag; ///< End of request check bool constructed; ///< Flag if request is constructed bool modified; ///< Flag if points have been modified u_int request_flags; ///< Request options: buttons choice u_int mouse_flags; ///< Use of mouse buttons Int_t dim_mode; ///< Display in 1D/2D mode UInt_t req_w; ///< Default window size (for adjustments if size is changed) //**u_int edit_flags; ///< Modes dédition valides //**bool edit_points; ///< Mode édition des points valide //**bool edit_move; ///< Mode déplacement d'ensemble valide //**bool edit_scale; ///< Mode facteur d'échelle valide //**u_int edit_multi; ///< Plusieurs modes d'édition possibles //**RPoint2D mode_point[3]; ///< Points utilisés pour modes Move et Scale //**u_int mode_point_num; ///< Nombre de points définis //**Int_t edit_mode; ///< Mode en cours (0: points, 1: move, 2: scale) // cette variable sert parce que dans les canevas embarqués, les événements // de déplacement avec les boutons de souris 2 et 3 ne sont pas appelés... bool move_lock; ///< Flag for point move phase ROptionString options; ///< Options UInt_t n_points_min; ///< Minimum number of points to get UInt_t n_points_max; ///< Maximum number of points to get bool min_on; ///< Flag indicated that there is a minimum number of requested points bool max_on; ///< Flag indicated that there is a maximum number of requested points bool marker_on; ///< Flag indicating a marker plotting bool line_on; ///< Flag indicating a line plotting bool line_close; ///< Flag indicating that a line is closed // attributs des marqueurs en mode 2D (normal) TAttMarker m_att; ///< Standard points marker attributes (2D mode) TAttMarker s_att; ///< Selected point marker attributes (2D mode) TAttLine l_att; ///< Line attributes (2D mode) // attributs des marqueurs en mode 1D TAttLine ml_att; ///< Standard line attributes (1D mode) TAttLine sl_att; ///< Selected line attributes (1D mode) Double_t select_distance; ///< Selection distance (pixels) RPointMark *select_point; ///< Pointer to point at selection distance #ifndef __MAKECINT__ UInt_t *out_number; ///< Pointer to points number (output) RPoint2D **out_points; ///< Pointer to points array (output) #endif string window_title; ///< Request title string help_message; ///< Help text message TList draw_list; ///< List of ROOT objects to draw // widgets TGCompositeFrame * w_gp_main; ///< Main frame for points widgets //**TGCompositeFrame * w_gp_mode_frame; ///< Mode selection frame //**TGComboBox * w_gp_edit_mode; ///< Edition mode widget TGGroupFrame * w_gp_point_frame; ///< Frame for point information TGHorizontalFrame * w_gp_point_num_h_frame; ///< Points number line TGNumberEntry * w_gp_point_number; ///< Current point number TGNumberEntryField * w_gp_total_number; ///< Number of points defined TGNumberEntryField * w_gp_min_number; ///< Minimum requested number of points TGNumberEntryField * w_gp_max_number; ///< Maximum requested number of points TGHorizontalFrame * w_gp_point_coord_h_frame; ///< Coordinates line TGTextButton * w_gp_set_button; ///< Point update button TGHorizontalFrame * w_gp_point_x_frame; ///< X coordinate frame TGNumberEntry * w_gp_point_x_number; ///< X point value TGHorizontalFrame * w_gp_point_y_frame; ///< X coordinate frame TGNumberEntry * w_gp_point_y_number; ///< Y point value //**TGGroupFrame * w_gp_move_frame; /// Frame for global move //**TGGroupFrame * w_gp_scale_frame; /// Frame for global scale TGCompositeFrame * w_gp_button_frame; ///< Buttons frame TGTextButton * w_gp_help_button; ///< Help button TGTextButton * w_gp_cancel_button; ///< Cancel button TGTextButton * w_gp_done_button; ///< Validation button //------------------------------------------------------------ // Constructors / affectation / destructor public: // Constructeur avec retour des points RGGetPoints ( const TGWindow * main, TVirtualPad * pad, const char * title, UInt_t & nb, RPoint2D * & result, const string & options = "", const u_int flags = 0, const bool auto_start = true ); // Constructeur sans retour des points RGGetPoints ( const TGWindow * main, TVirtualPad * pad, const char * title, const string & options = "", const u_int flags = 0, const bool auto_start = false ); private: RGGetPoints ( const RGGetPoints & obj ); public: virtual ~RGGetPoints(); //------------------------------------------------------------ // Functions protected: // Construction de la requête virtual void Construct ( ); virtual void SetWindow ( ); public: // Démarre le requester virtual void Request ( ); virtual void EventLoop ( ); virtual void Quit ( ); virtual void SetContextHelpText ( const string &text ); virtual void SetOptions ( const string &opts = "" ); //µµvirtual void SetEditMode ( const Int_t m = modePoints ); virtual void SetDimMode ( Int_t m ); protected: virtual void SetMouseFlags ( const u_int flags ); virtual void SetDimFlags ( const u_int flags ); //**virtual void SetEditFlags ( const u_int flags ); //------------------------------------------------------------ // Computations and update // Renvoit la distance du point le plus proche (en pixels) et // un pointeur sur ce point Double_t ClosestPointDistance ( const Double_t x, const Double_t y, RPointMark *&ptr ); RPointMark * ClosestPoint (const Double_t x, const Double_t y ); // Mise à jour des attibuts d'un point virtual void UpdatePointAttr ( RPointMark *p ); virtual void SelectPoint ( RPointMark *p ); virtual void SetModified ( const bool status = true ); // Retrace les points saisis virtual void RedrawPoints ( ); virtual void DrawAssociatedObject ( ); virtual void DeleteAssociatedObject ( ); public: //------------------------------------------------------------ // Actions in pad // Slot de fermeture du pad (surcharge de RGFrameEvent) virtual void PadClosed ( ); // Actions dans le pad (surcharge de RGFrameEvent) virtual void MouseSelect ( const Double_t x, const Double_t y ); virtual void MouseMove ( const Double_t x, const Double_t y ); virtual void MouseDelete ( const Double_t x, const Double_t y ); virtual void MouseButton1Down ( const Double_t x, const Double_t y ); virtual void MouseButton1Double ( const Double_t x, const Double_t y ); virtual void MouseButton1Up ( const Double_t x, const Double_t y ); virtual void MouseButton2Down ( const Double_t x, const Double_t y ); virtual void MouseButton2Double ( const Double_t x, const Double_t y ); virtual void MouseButton2Up ( const Double_t x, const Double_t y ); virtual void MouseButton3Down ( const Double_t x, const Double_t y ); virtual void MouseButton3Double ( const Double_t x, const Double_t y ); virtual void MouseButton3Up ( const Double_t x, const Double_t y ); virtual void Locate ( const Double_t x, const Double_t y ); virtual void AnyEvent ( const Double_t x, const Double_t y ); virtual void PointDeleted ( RPointMark *p ); virtual void AddPoint ( const Double_t x, const Double_t y, const bool select = true ); virtual void MovePoint ( RPointMark *p, const Double_t x, const Double_t y ); // Retrait d'un point virtual void RemovePoint ( RPointMark *p ); //------------------------------------------------------------ // Widget functions virtual void UpdatePointsNumber ( ); virtual void UpdatePosition ( const Double_t x, const Double_t y ); virtual void UpdatePointPosition ( const UInt_t n ); virtual void PointNumberValueSet ( Long_t val ); virtual void PointNumberTextChanged ( const char *str ); virtual void PointSetButton ( ); //**virtual void EditModeSelected ( const Int_t m ); virtual void HelpButton ( ); virtual void DoneButton ( ); virtual void CancelButton ( ); //------------------------------------------------------------ /*! For ROOT dictionary.*/ ClassDef(RGGetPoints,0); }; //---------------------------------------------------------------------- // Inline functions #include "icc/RGGetPoints.icc" //====================================================================== #endif
88  noHelpButton = 0x00000004, // Bit indiquant que le bouton "Help" n'est pas créé noButton = 0x00000007, // Aucun bouton verticalFrame = 0x00000000, // La fenêtre de la requête est arrangée verticalement (défaut) horizontalFrame = 0x00000010, // La fenêtre de la requête est arrangée horizontalement bottomCompact = 0x00000020, // Arrangement horizontal des widgets en bas de fenêtre mode1Dx = 0x00000040, // tracé pour mode 1D selon X mode1Dy = 0x00000080, // tracé pour mode 1D selon X mode2D = 0x000000C0, // tracé pour mode 2D (défaut) // use of mouse for points creation/suppression selectButton1 = 0x00000000, // Button 1 for point creation selectButton2 = 0x00000100, // Button 2 for point creation selectButton3 = 0x00000200, // Button 3 for point creation selectButton = 0x00000300, // Creation button options mask selectDouble = 0x00000400, // Double-click (button 1) for point creation deleteButton1 = 0x00001000, // Button 1 for point destruction deleteButton2 = 0x00000000, // Button 2 for point destruction deleteButton3 = 0x00002000, // Button 3 for point destruction deleteButton = 0x00003000, // Destruction button options mask deleteDouble = 0x00004000, // Double-click (button 1) for point destruction mouseFlags = 0x0000FF00 // Mouse options mask //** modes autorisés: //**editModePoints = 0x00010000, ///< Création/destruction/déplacement de points //**editModeMove = 0x00020000, ///< Déplacement d'ensemble des points //**editModeScale = 0x00040000, ///< Facteur d'échelle d'ensemble des points //**editModeAll = 0x00070000 ///< Tous les modes possibles }; //**// Request mode //**enum RGEditMode //**{ //** modePoints = 0, //** modeMove = 1, //** modeScale = 2 //**}; ///! Effective dimensions selection enum RGDimMode { dimMode2D = 0, dimMode1Dx = 1, dimMode1Dy = 2 }; protected: bool exit_flag; ///< End of request check bool constructed; ///< Flag if request is constructed bool modified; ///< Flag if points have been modified u_int request_flags; ///< Request options: buttons choice u_int mouse_flags; ///< Use of mouse buttons Int_t dim_mode; ///< Display in 1D/2D mode UInt_t req_w; ///< Default window size (for adjustments if size is changed) //**u_int edit_flags; ///< Modes dédition valides //**bool edit_points; ///< Mode édition des points valide //**bool edit_move; ///< Mode déplacement d'ensemble valide //**bool edit_scale; ///< Mode facteur d'échelle valide //**u_int edit_multi; ///< Plusieurs modes d'édition possibles //**RPoint2D mode_point[3]; ///< Points utilisés pour modes Move et Scale //**u_int mode_point_num; ///< Nombre de points définis //**Int_t edit_mode; ///< Mode en cours (0: points, 1: move, 2: scale) // cette variable sert parce que dans les canevas embarqués, les événements // de déplacement avec les boutons de souris 2 et 3 ne sont pas appelés... bool move_lock; ///< Flag for point move phase ROptionString options; ///< Options UInt_t n_points_min; ///< Minimum number of points to get UInt_t n_points_max; ///< Maximum number of points to get bool min_on; ///< Flag indicated that there is a minimum number of requested points bool max_on; ///< Flag indicated that there is a maximum number of requested points bool marker_on; ///< Flag indicating a marker plotting bool line_on; ///< Flag indicating a line plotting bool line_close; ///< Flag indicating that a line is closed // attributs des marqueurs en mode 2D (normal) TAttMarker m_att; ///< Standard points marker attributes (2D mode) TAttMarker s_att; ///< Selected point marker attributes (2D mode) TAttLine l_att; ///< Line attributes (2D mode) // attributs des marqueurs en mode 1D TAttLine ml_att; ///< Standard line attributes (1D mode) TAttLine sl_att; ///< Selected line attributes (1D mode) Double_t select_distance; ///< Selection distance (pixels) RPointMark *select_point; ///< Pointer to point at selection distance #ifndef __MAKECINT__ UInt_t *out_number; ///< Pointer to points number (output) RPoint2D **out_points; ///< Pointer to points array (output) #endif string window_title; ///< Request title string help_message; ///< Help text message TList draw_list; ///< List of ROOT objects to draw // widgets TGCompositeFrame * w_gp_main; ///< Main frame for points widgets //**TGCompositeFrame * w_gp_mode_frame; ///< Mode selection frame //**TGComboBox * w_gp_edit_mode; ///< Edition mode widget TGGroupFrame * w_gp_point_frame; ///< Frame for point information TGHorizontalFrame * w_gp_point_num_h_frame; ///< Points number line TGNumberEntry * w_gp_point_number; ///< Current point number TGNumberEntryField * w_gp_total_number; ///< Number of points defined TGNumberEntryField * w_gp_min_number; ///< Minimum requested number of points TGNumberEntryField * w_gp_max_number; ///< Maximum requested number of points TGHorizontalFrame * w_gp_point_coord_h_frame; ///< Coordinates line TGTextButton * w_gp_set_button; ///< Point update button TGHorizontalFrame * w_gp_point_x_frame; ///< X coordinate frame TGNumberEntry * w_gp_point_x_number; ///< X point value TGHorizontalFrame * w_gp_point_y_frame; ///< X coordinate frame TGNumberEntry * w_gp_point_y_number; ///< Y point value //**TGGroupFrame * w_gp_move_frame; /// Frame for global move //**TGGroupFrame * w_gp_scale_frame; /// Frame for global scale TGCompositeFrame * w_gp_button_frame; ///< Buttons frame TGTextButton * w_gp_help_button; ///< Help button TGTextButton * w_gp_cancel_button; ///< Cancel button TGTextButton * w_gp_done_button; ///< Validation button //------------------------------------------------------------ // Constructors / affectation / destructor public: // Constructeur avec retour des points RGGetPoints ( const TGWindow * main, TVirtualPad * pad, const char * title, UInt_t & nb, RPoint2D * & result, const string & options = "", const u_int flags = 0, const bool auto_start = true ); // Constructeur sans retour des points RGGetPoints ( const TGWindow * main, TVirtualPad * pad, const char * title, const string & options = "", const u_int flags = 0, const bool auto_start = false ); private: RGGetPoints ( const RGGetPoints & obj ); public: virtual ~RGGetPoints(); //------------------------------------------------------------ // Functions protected: // Construction de la requête virtual void Construct ( ); virtual void SetWindow ( ); public: // Démarre le requester virtual void Request ( ); virtual void EventLoop ( ); virtual void Quit ( ); virtual void SetContextHelpText ( const string &text ); virtual void SetOptions ( const string &opts = "" ); //µµvirtual void SetEditMode ( const Int_t m = modePoints ); virtual void SetDimMode ( Int_t m ); protected: virtual void SetMouseFlags ( const u_int flags ); virtual void SetDimFlags ( const u_int flags ); //**virtual void SetEditFlags ( const u_int flags ); //------------------------------------------------------------ // Computations and update // Renvoit la distance du point le plus proche (en pixels) et // un pointeur sur ce point Double_t ClosestPointDistance ( const Double_t x, const Double_t y, RPointMark *&ptr ); RPointMark * ClosestPoint (const Double_t x, const Double_t y ); // Mise à jour des attibuts d'un point virtual void UpdatePointAttr ( RPointMark *p ); virtual void SelectPoint ( RPointMark *p ); virtual void SetModified ( const bool status = true ); // Retrace les points saisis virtual void RedrawPoints ( ); virtual void DrawAssociatedObject ( ); virtual void DeleteAssociatedObject ( ); public: //------------------------------------------------------------ // Actions in pad // Slot de fermeture du pad (surcharge de RGFrameEvent) virtual void PadClosed ( ); // Actions dans le pad (surcharge de RGFrameEvent) virtual void MouseSelect ( const Double_t x, const Double_t y ); virtual void MouseMove ( const Double_t x, const Double_t y ); virtual void MouseDelete ( const Double_t x, const Double_t y ); virtual void MouseButton1Down ( const Double_t x, const Double_t y ); virtual void MouseButton1Double ( const Double_t x, const Double_t y ); virtual void MouseButton1Up ( const Double_t x, const Double_t y ); virtual void MouseButton2Down ( const Double_t x, const Double_t y ); virtual void MouseButton2Double ( const Double_t x, const Double_t y ); virtual void MouseButton2Up ( const Double_t x, const Double_t y ); virtual void MouseButton3Down ( const Double_t x, const Double_t y ); virtual void MouseButton3Double ( const Double_t x, const Double_t y ); virtual void MouseButton3Up ( const Double_t x, const Double_t y ); virtual void Locate ( const Double_t x, const Double_t y ); virtual void AnyEvent ( const Double_t x, const Double_t y ); virtual void PointDeleted ( RPointMark *p ); virtual void AddPoint ( const Double_t x, const Double_t y, const bool select = true ); virtual void MovePoint ( RPointMark *p, const Double_t x, const Double_t y ); // Retrait d'un point virtual void RemovePoint ( RPointMark *p ); //------------------------------------------------------------ // Widget functions virtual void UpdatePointsNumber ( ); virtual void UpdatePosition ( const Double_t x, const Double_t y ); virtual void UpdatePointPosition ( const UInt_t n ); virtual void PointNumberValueSet ( Long_t val ); virtual void PointNumberTextChanged ( const char *str ); virtual void PointSetButton ( ); //**virtual void EditModeSelected ( const Int_t m ); virtual void HelpButton ( ); virtual void DoneButton ( ); virtual void CancelButton ( ); //------------------------------------------------------------ /*! For ROOT dictionary.*/ ClassDef(RGGetPoints,0); }; //---------------------------------------------------------------------- // Inline functions #include "icc/RGGetPoints.icc" //====================================================================== #endif
89  noButton = 0x00000007, // Aucun bouton
90 
91  verticalFrame = 0x00000000, // La fenêtre de la requête est arrangée verticalement (défaut)
92  horizontalFrame = 0x00000010, // La fenêtre de la requête est arrangée horizontalement
93  bottomCompact = 0x00000020, // Arrangement horizontal des widgets en bas de fenêtre
94  mode1Dx = 0x00000040, // tracé pour mode 1D selon X
95  mode1Dy = 0x00000080, // tracé pour mode 1D selon X
96  mode2D = 0x000000C0, // tracé pour mode 2D (défaut)
97 
98  // use of mouse for points creation/suppression
99  selectButton1 = 0x00000000, // Button 1 for point creation
100  selectButton2 = 0x00000100, // Button 2 for point creation
101  selectButton3 = 0x00000200, // Button 3 for point creation
102  selectButton = 0x00000300, // Creation button options mask
103  selectDouble = 0x00000400, // Double-click (button 1) for point creation
104 
105  deleteButton1 = 0x00001000, // Button 1 for point destruction
106  deleteButton2 = 0x00000000, // Button 2 for point destruction
107  deleteButton3 = 0x00002000, // Button 3 for point destruction
108  deleteButton = 0x00003000, // Destruction button options mask
109  deleteDouble = 0x00004000, // Double-click (button 1) for point destruction
110 
111  mouseFlags = 0x0000FF00 // Mouse options mask
112 
113  //** modes autorisés:
114  //**editModePoints = 0x00010000, ///< Création/destruction/déplacement de points
115  //**editModeMove = 0x00020000, ///< Déplacement d'ensemble des points
116  //**editModeScale = 0x00040000, ///< Facteur d'échelle d'ensemble des points
117  //**editModeAll = 0x00070000 ///< Tous les modes possibles
118  };
119 
120  //**// Request mode
121  //**enum RGEditMode
122  //**{
123  //** modePoints = 0,
124  //** modeMove = 1,
125  //** modeScale = 2
126  //**};
127 
128  ///! Effective dimensions selection
130  {
131  dimMode2D = 0,
132  dimMode1Dx = 1,
133  dimMode1Dy = 2
134  };
135 
136 
137  protected:
138  bool exit_flag; ///< End of request check
139  bool constructed; ///< Flag if request is constructed
140 
141  bool modified; ///< Flag if points have been modified
142 
143  u_int request_flags; ///< Request options: buttons choice
144  u_int mouse_flags; ///< Use of mouse buttons
145 
146  Int_t dim_mode; ///< Display in 1D/2D mode
147  UInt_t req_w; ///< Default window size (for adjustments if size is changed)
148 
149  //**u_int edit_flags; ///< Modes dédition valides
150  //**bool edit_points; ///< Mode édition des points valide
151  //**bool edit_move; ///< Mode déplacement d'ensemble valide
152  //**bool edit_scale; ///< Mode facteur d'échelle valide
153  //**u_int edit_multi; ///< Plusieurs modes d'édition possibles
154 
155  //**RPoint2D mode_point[3]; ///< Points utilisés pour modes Move et Scale
156  //**u_int mode_point_num; ///< Nombre de points définis
157  //**Int_t edit_mode; ///< Mode en cours (0: points, 1: move, 2: scale)
158 
159  // cette variable sert parce que dans les canevas embarqués, les événements
160  // de déplacement avec les boutons de souris 2 et 3 ne sont pas appelés...
161  bool move_lock; ///< Flag for point move phase
162 
163  ROptionString options; ///< Options
164 
165  UInt_t n_points_min; ///< Minimum number of points to get
166  UInt_t n_points_max; ///< Maximum number of points to get
167 
168  bool min_on; ///< Flag indicated that there is a minimum number of requested points
169  bool max_on; ///< Flag indicated that there is a maximum number of requested points
170 
171  bool marker_on; ///< Flag indicating a marker plotting
172  bool line_on; ///< Flag indicating a line plotting
173  bool line_close; ///< Flag indicating that a line is closed
174 
175  // attributs des marqueurs en mode 2D (normal)
176  TAttMarker m_att; ///< Standard points marker attributes (2D mode)
177  TAttMarker s_att; ///< Selected point marker attributes (2D mode)
178  TAttLine l_att; ///< Line attributes (2D mode)
179 
180  // attributs des marqueurs en mode 1D
181  TAttLine ml_att; ///< Standard line attributes (1D mode)
182  TAttLine sl_att; ///< Selected line attributes (1D mode)
183 
184  Double_t select_distance; ///< Selection distance (pixels)
185  RPointMark *select_point; ///< Pointer to point at selection distance
186 
187 #ifndef __MAKECINT__
188  UInt_t *out_number; ///< Pointer to points number (output)
189  RPoint2D **out_points; ///< Pointer to points array (output)
190 #endif
191 
192  string window_title; ///< Request title
193  string help_message; ///< Help text message
194 
195  TList draw_list; ///< List of ROOT objects to draw
196 
197  // widgets
198  TGCompositeFrame * w_gp_main; ///< Main frame for points widgets
199 
200  //**TGCompositeFrame * w_gp_mode_frame; ///< Mode selection frame
201  //**TGComboBox * w_gp_edit_mode; ///< Edition mode widget
202 
203  TGGroupFrame * w_gp_point_frame; ///< Frame for point information
204  TGHorizontalFrame * w_gp_point_num_h_frame; ///< Points number line
205  TGNumberEntry * w_gp_point_number; ///< Current point number
206  TGNumberEntryField * w_gp_total_number; ///< Number of points defined
207  TGNumberEntryField * w_gp_min_number; ///< Minimum requested number of points
208  TGNumberEntryField * w_gp_max_number; ///< Maximum requested number of points
209  TGHorizontalFrame * w_gp_point_coord_h_frame; ///< Coordinates line
210  TGTextButton * w_gp_set_button; ///< Point update button
211 
212  TGHorizontalFrame * w_gp_point_x_frame; ///< X coordinate frame
213  TGNumberEntry * w_gp_point_x_number; ///< X point value
214 
215  TGHorizontalFrame * w_gp_point_y_frame; ///< X coordinate frame
216  TGNumberEntry * w_gp_point_y_number; ///< Y point value
217 
218  //**TGGroupFrame * w_gp_move_frame; /// Frame for global move
219  //**TGGroupFrame * w_gp_scale_frame; /// Frame for global scale
220 
221  TGCompositeFrame * w_gp_button_frame; ///< Buttons frame
222  TGTextButton * w_gp_help_button; ///< Help button
223  TGTextButton * w_gp_cancel_button; ///< Cancel button
224  TGTextButton * w_gp_done_button; ///< Validation button
225 
226  //------------------------------------------------------------
227  // Constructors / affectation / destructor
228  public:
229  // Constructeur avec retour des points
230  RGGetPoints ( const TGWindow * main,
231  TVirtualPad * pad,
232  const char * title,
233  UInt_t & nb,
234  RPoint2D * & result,
235  const string & options = "",
236  const u_int flags = 0,
237  const bool auto_start = true );
238 
239  // Constructeur sans retour des points
240  RGGetPoints ( const TGWindow * main,
241  TVirtualPad * pad,
242  const char * title,
243  const string & options = "",
244  const u_int flags = 0,
245  const bool auto_start = false );
246 
247  private:
248  RGGetPoints ( const RGGetPoints & obj );
249 
250  public:
251  virtual ~RGGetPoints();
252 
253  //------------------------------------------------------------
254  // Functions
255 
256  protected:
257  // Construction de la requête
258  virtual void Construct ( );
259  virtual void SetWindow ( );
260 
261  public:
262  // Démarre le requester
263  virtual void Request ( );
264  virtual void EventLoop ( );
265  virtual void Quit ( );
266 
267  virtual void SetContextHelpText ( const string &text );
268  virtual void SetOptions ( const string &opts = "" );
269  //µµvirtual void SetEditMode ( const Int_t m = modePoints );
270 
271  virtual void SetDimMode ( Int_t m );
272 
273  protected:
274 
275  virtual void SetMouseFlags ( const u_int flags );
276  virtual void SetDimFlags ( const u_int flags );
277  //**virtual void SetEditFlags ( const u_int flags );
278 
279  //------------------------------------------------------------
280  // Computations and update
281 
282  // Renvoit la distance du point le plus proche (en pixels) et
283  // un pointeur sur ce point
284  Double_t ClosestPointDistance ( const Double_t x,
285  const Double_t y,
286  RPointMark *&ptr );
287 
288  RPointMark * ClosestPoint (const Double_t x, const Double_t y );
289 
290  // Mise à jour des attibuts d'un point
291  virtual void UpdatePointAttr ( RPointMark *p );
292 
293  virtual void SelectPoint ( RPointMark *p );
294 
295  virtual void SetModified ( const bool status = true );
296 
297  // Retrace les points saisis
298  virtual void RedrawPoints ( );
299  virtual void DrawAssociatedObject ( );
300 
301  virtual void DeleteAssociatedObject ( );
302 
303  public:
304 
305  //------------------------------------------------------------
306  // Actions in pad
307 
308  // Slot de fermeture du pad (surcharge de RGFrameEvent)
309  virtual void PadClosed ( );
310 
311  // Actions dans le pad (surcharge de RGFrameEvent)
312  virtual void MouseSelect ( const Double_t x, const Double_t y );
313  virtual void MouseMove ( const Double_t x, const Double_t y );
314  virtual void MouseDelete ( const Double_t x, const Double_t y );
315 
316  virtual void MouseButton1Down ( const Double_t x, const Double_t y );
317  virtual void MouseButton1Double ( const Double_t x, const Double_t y );
318  virtual void MouseButton1Up ( const Double_t x, const Double_t y );
319 
320  virtual void MouseButton2Down ( const Double_t x, const Double_t y );
321  virtual void MouseButton2Double ( const Double_t x, const Double_t y );
322  virtual void MouseButton2Up ( const Double_t x, const Double_t y );
323 
324  virtual void MouseButton3Down ( const Double_t x, const Double_t y );
325  virtual void MouseButton3Double ( const Double_t x, const Double_t y );
326  virtual void MouseButton3Up ( const Double_t x, const Double_t y );
327 
328  virtual void Locate ( const Double_t x, const Double_t y );
329  virtual void AnyEvent ( const Double_t x, const Double_t y );
330 
331  virtual void PointDeleted ( RPointMark *p );
332  virtual void AddPoint ( const Double_t x, const Double_t y, const bool select = true );
333  virtual void MovePoint ( RPointMark *p, const Double_t x, const Double_t y );
334 
335  // Retrait d'un point
336  virtual void RemovePoint ( RPointMark *p );
337 
338  //------------------------------------------------------------
339  // Widget functions
340 
341  virtual void UpdatePointsNumber ( );
342  virtual void UpdatePosition ( const Double_t x, const Double_t y );
343  virtual void UpdatePointPosition ( const UInt_t n );
344 
345  virtual void PointNumberValueSet ( Long_t val );
346  virtual void PointNumberTextChanged ( const char *str );
347  virtual void PointSetButton ( );
348 
349  //**virtual void EditModeSelected ( const Int_t m );
350 
351  virtual void HelpButton ( );
352  virtual void DoneButton ( );
353  virtual void CancelButton ( );
354 
355  //------------------------------------------------------------
356  /*! For ROOT dictionary.*/
358 };
359 
360 //----------------------------------------------------------------------
361 // Inline functions
362 #include "icc/RGGetPoints.icc"
363 
364 //======================================================================
365 #endif
bool line_close
Flag indicating that a line is closed.
Definition: RGGetPoints.hh:173
TGNumberEntry * w_gp_point_number
Current point number.
Definition: RGGetPoints.hh:205
bool max_on
Flag indicated that there is a maximum number of requested points.
Definition: RGGetPoints.hh:169
TGNumberEntry * w_gp_point_y_number
Y point value.
Definition: RGGetPoints.hh:216
TGTextButton * w_gp_cancel_button
Cancel button.
Definition: RGGetPoints.hh:223
TGHorizontalFrame * w_gp_point_num_h_frame
Points number line.
Definition: RGGetPoints.hh:204
TGNumberEntry * w_gp_point_x_number
X point value.
Definition: RGGetPoints.hh:213
virtual void RemovePoint(RPointMark *p)
Definition: RGGetPoints.cpp:1675
Definition: RGFrameEvent.hh:30
RPointMark * select_point
Pointer to point at selection distance.
Definition: RGGetPoints.hh:185
TGCompositeFrame * w_gp_button_frame
Buttons frame.
Definition: RGGetPoints.hh:221
virtual void SetModified(const bool status=true)
Definition: RGGetPoints.icc:22
UInt_t n_points_max
Maximum number of points to get.
Definition: RGGetPoints.hh:166
RGDimMode
! Effective dimensions selection
Definition: RGGetPoints.hh:129
virtual void MouseDelete(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1326
TGNumberEntryField * w_gp_min_number
Minimum requested number of points.
Definition: RGGetPoints.hh:207
virtual void CancelButton()
Definition: RGGetPoints.cpp:1915
virtual void MouseButton1Up(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1393
virtual void Quit()
Definition: RGGetPoints.cpp:677
virtual void MouseButton3Down(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1468
virtual void Locate(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1541
virtual void PointNumberValueSet(Long_t val)
Definition: RGGetPoints.cpp:1769
virtual ~RGGetPoints()
Definition: RGGetPoints.cpp:144
TList draw_list
List of ROOT objects to draw.
Definition: RGGetPoints.hh:195
TGTextButton * w_gp_set_button
Point update button.
Definition: RGGetPoints.hh:210
virtual void MouseMove(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1312
TGTextButton * w_gp_done_button
Validation button.
Definition: RGGetPoints.hh:224
virtual void SetDimMode(Int_t m)
Definition: RGGetPoints.cpp:883
virtual void UpdatePointAttr(RPointMark *p)
Definition: RGGetPoints.cpp:1097
virtual void AddPoint(const Double_t x, const Double_t y, const bool select=true)
Definition: RGGetPoints.cpp:1639
virtual void DeleteAssociatedObject()
Definition: RGGetPoints.cpp:1249
bool min_on
Flag indicated that there is a minimum number of requested points.
Definition: RGGetPoints.hh:168
virtual void DoneButton()
Definition: RGGetPoints.cpp:1849
TGGroupFrame * w_gp_point_frame
Frame for point information.
Definition: RGGetPoints.hh:203
TGNumberEntryField * w_gp_total_number
Number of points defined.
Definition: RGGetPoints.hh:206
string window_title
Request title.
Definition: RGGetPoints.hh:192
TAttMarker m_att
Standard points marker attributes (2D mode)
Definition: RGGetPoints.hh:176
virtual void MouseButton2Down(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1409
GOptionString ROptionString
! Defined for compatibility
Definition: ROptionString.hh:17
UInt_t req_w
Default window size (for adjustments if size is changed)
Definition: RGGetPoints.hh:147
ROptionString options
Options.
Definition: RGGetPoints.hh:163
bool move_lock
Flag for point move phase.
Definition: RGGetPoints.hh:161
TGCompositeFrame * w_gp_main
Main frame for points widgets.
Definition: RGGetPoints.hh:198
virtual void SetDimFlags(const u_int flags)
Definition: RGGetPoints.cpp:848
virtual void AnyEvent(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1527
Definition: RGGetPoints.hh:74
virtual void MouseButton3Up(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1511
virtual void PointSetButton()
Definition: RGGetPoints.cpp:1800
virtual void Construct()
Definition: RGGetPoints.cpp:164
RPoint2D ** out_points
Pointer to points array (output)
Definition: RGGetPoints.hh:189
TAttLine sl_att
Selected line attributes (1D mode)
Definition: RGGetPoints.hh:182
TAttLine ml_att
Standard line attributes (1D mode)
Definition: RGGetPoints.hh:181
TGHorizontalFrame * w_gp_point_y_frame
X coordinate frame.
Definition: RGGetPoints.hh:215
TGNumberEntryField * w_gp_max_number
Maximum requested number of points.
Definition: RGGetPoints.hh:208
TGHorizontalFrame * w_gp_point_x_frame
X coordinate frame.
Definition: RGGetPoints.hh:212
virtual void MouseButton1Down(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1350
bool marker_on
Flag indicating a marker plotting.
Definition: RGGetPoints.hh:171
virtual void Request()
Definition: RGGetPoints.cpp:635
Definition: RVector2D.hh:26
virtual void SelectPoint(RPointMark *p)
Definition: RGGetPoints.cpp:1086
Definition: RPointMark.hh:29
RPointMark * ClosestPoint(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1070
virtual void MouseButton2Double(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1431
ClassDef(RGGetPoints, 0)
u_int mouse_flags
Use of mouse buttons.
Definition: RGGetPoints.hh:144
string help_message
Help text message.
Definition: RGGetPoints.hh:193
bool line_on
Flag indicating a line plotting.
Definition: RGGetPoints.hh:172
virtual void MouseButton1Double(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1372
GObject(RGGetPoints)
UInt_t n_points_min
Minimum number of points to get.
Definition: RGGetPoints.hh:165
UInt_t * out_number
Pointer to points number (output)
Definition: RGGetPoints.hh:188
virtual void MouseButton3Double(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1490
u_int request_flags
Request options: buttons choice.
Definition: RGGetPoints.hh:143
Int_t dim_mode
Display in 1D/2D mode.
Definition: RGGetPoints.hh:146
virtual void HelpButton()
Definition: RGGetPoints.cpp:1840
virtual void UpdatePointsNumber()
Definition: RGGetPoints.cpp:1699
virtual void MouseButton2Up(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1452
bool exit_flag
End of request check.
Definition: RGGetPoints.hh:138
TGHorizontalFrame * w_gp_point_coord_h_frame
Coordinates line.
Definition: RGGetPoints.hh:209
virtual void SetContextHelpText(const string &text)
Definition: RGGetPoints.icc:10
TAttLine l_att
Line attributes (2D mode)
Definition: RGGetPoints.hh:178
bool modified
Flag if points have been modified.
Definition: RGGetPoints.hh:141
bool constructed
Flag if request is constructed.
Definition: RGGetPoints.hh:139
virtual void PointDeleted(RPointMark *p)
Definition: RGGetPoints.cpp:1622
virtual void PadClosed()
Definition: RGGetPoints.cpp:1266
virtual void UpdatePosition(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1730
virtual void EventLoop()
Definition: RGGetPoints.cpp:664
RGFlags
! Request options
Definition: RGGetPoints.hh:84
RGGetPoints(const TGWindow *main, TVirtualPad *pad, const char *title, UInt_t &nb, RPoint2D *&result, const string &options="", const u_int flags=0, const bool auto_start=true)
Definition: RGGetPoints.cpp:38
virtual void UpdatePointPosition(const UInt_t n)
Definition: RGGetPoints.cpp:1744
virtual void MouseSelect(const Double_t x, const Double_t y)
Definition: RGGetPoints.cpp:1279
virtual void SetMouseFlags(const u_int flags)
Definition: RGGetPoints.cpp:816
TGTextButton * w_gp_help_button
Help button.
Definition: RGGetPoints.hh:222
virtual void DrawAssociatedObject()
Definition: RGGetPoints.cpp:1152
TAttMarker s_att
Selected point marker attributes (2D mode)
Definition: RGGetPoints.hh:177
virtual void SetWindow()
Definition: RGGetPoints.cpp:615
virtual void PointNumberTextChanged(const char *str)
Definition: RGGetPoints.cpp:1779
Double_t select_distance
Selection distance (pixels)
Definition: RGGetPoints.hh:184
Double_t ClosestPointDistance(const Double_t x, const Double_t y, RPointMark *&ptr)
Definition: RGGetPoints.cpp:977
virtual void RedrawPoints()
Definition: RGGetPoints.cpp:1120
virtual void SetOptions(const string &opts="")
Definition: RGGetPoints.cpp:694
virtual void MovePoint(RPointMark *p, const Double_t x, const Double_t y)
Definition: RGGetPoints.icc:18