1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
10 /// @file    GNERerouterDialog.h
11 /// @author  Pablo Alvarez Lopez
12 /// @date    April 2016
13 /// @version $Id$
14 ///
15 // Dialog for edit rerouters
16 /****************************************************************************/
17 #ifndef GNERerouterDialog_h
18 #define GNERerouterDialog_h
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 
24 #include <config.h>
25 
26 #include "GNEAdditionalDialog.h"
27 
28 
29 // ===========================================================================
30 // class declarations
31 // ===========================================================================
32 
33 class GNERerouter;
34 class GNERerouterInterval;
35 class GNERerouterIntervalDialog;
36 
37 // ===========================================================================
38 // class definitions
39 // ===========================================================================
40 
41 /**
42  * @class GNERerouterDialog
43  * @brief Dialog for edit rerouters
44  */
45 class GNERerouterDialog : public GNEAdditionalDialog {
46     /// @brief FOX-declaration
47     FXDECLARE(GNERerouterDialog)
48 
49 public:
50     /// @brief Constructor
51     GNERerouterDialog(GNERerouter* rerouterParent);
52 
53     /// @brief destructor
54     ~GNERerouterDialog();
55 
56     /// @name FOX-callbacks
57     /// @{
58     /// @brief event after press accept button
59     long onCmdAccept(FXObject*, FXSelector, void*);
60 
61     /// @brief event after press cancel button
62     long onCmdCancel(FXObject*, FXSelector, void*);
63 
64     /// @brief event after press reset button
65     long onCmdReset(FXObject*, FXSelector, void*);
66 
67     /// @brief add new interval
68     long onCmdAddInterval(FXObject*, FXSelector, void*);
69 
70     /// @brief sort current intervals
71     long onCmdSortIntervals(FXObject*, FXSelector, void*);
72 
73     /// @brief remove or edit interval
74     long onCmdClickedInterval(FXObject*, FXSelector, void*);
75     /// @}
76 
77 protected:
78     /// @brief FOX needs this
GNERerouterDialog()79     GNERerouterDialog() {}
80 
81     /// @brief button for add new interval
82     FXButton* myAddInterval;
83 
84     /// @brief button for sort interval
85     FXButton* mySortIntervals;
86 
87     /// @brief list with intervals
88     FXTable* myIntervalTable;
89 
90 private:
91     /// @brief update data table
92     void updateIntervalTable();
93 
94     /// @brief Invalidated copy constructor.
95     GNERerouterDialog(const GNERerouterDialog&) = delete;
96 
97     /// @brief Invalidated assignment operator.
98     GNERerouterDialog& operator=(const GNERerouterDialog&) = delete;
99 };
100 
101 #endif
102