36#define DEFAULTWIDTH 190
68FXIMPLEMENT(
GNETLSTable, FXHorizontalFrame, GNETLSTableMap, ARRAYNUMBER(GNETLSTableMap))
80 myProgramFont(new FXFont(getApp(), "Courier New", 10)),
81 myIndexFont(new FXFont(getApp(), "Segoe UI", 9)),
82 myIndexSelectedFont(new FXFont(getApp(), "Segoe UI", 9, FXFont::Bold)),
83 myTLSPhasesParent(TLSPhasesParent) {
100 for (
const auto& row :
myRows) {
101 for (
const auto& cell : row->getCells()) {
106 FXHorizontalFrame::enable();
113 for (
const auto& row :
myRows) {
114 for (
const auto& cell : row->getCells()) {
119 FXHorizontalFrame::disable();
132 int minimumTableWidth = 0;
134 Column* nameColumn =
nullptr;
138 if (column->getType() ==
'm') {
145 column->setColumnWidth(minimunColWidth);
147 minimumTableWidth += minimunColWidth;
159 if ((frameAreaWidth - (minimumTableWidth + minimumColNameWidth + scrollBarWidth)) > 0) {
160 nameColumn->
setColumnWidth(frameAreaWidth - minimumTableWidth - scrollBarWidth);
161 setWidth(frameAreaWidth);
164 setWidth(minimumTableWidth + minimumColNameWidth);
166 }
else if (minimumTableWidth > 0) {
167 setWidth(minimumTableWidth);
177 for (
const auto& row :
myRows) {
195 for (
int i = 0; i < (FXint)columnsType.size(); i++) {
199 for (
int i = 0; i < numberRow; i++) {
204 myRows.front()->disableButtons();
211 if ((row >= 0) && (row < (FXint)
myRows.size()) &&
212 (column >= 0) && (column < (FXint)
myColumns.size())) {
213 myRows.at(row)->setText(column, text);
215 if (
myColumns.at(column)->getType() ==
'u') {
226 if ((row >= 0) && (row < (FXint)
myRows.size()) &&
227 (column >= 0) && (column < (FXint)
myColumns.size())) {
228 return myRows.at(row)->getText(column);
236 return (
int)
myRows.size();
248 if ((row >= 0) && (row < (FXint)
myRows.size())) {
261 if ((column >= 0) && (column < (
int)
myColumns.size())) {
262 myColumns.at(column)->setColumnLabelTop(text, tooltip);
271 if ((column >= 0) && (column < (
int)
myColumns.size())) {
272 myColumns.at(column)->setColumnLabelBot(text);
281 int selectedRow = -1;
283 for (
int rowIndex = 0; rowIndex < (int)
myRows.size(); rowIndex++) {
285 for (
const auto& cell :
myRows.at(rowIndex)->getCells()) {
286 if ((cell->getTextField() == sender) || (cell->getAddButton() == sender)) {
287 selectedRow = rowIndex;
305 for (
int columnIndex = 0; columnIndex < (int)
myColumns.size(); columnIndex++) {
306 for (
int rowIndex = 0; rowIndex < (int)
myRows.size(); rowIndex++) {
307 if (
myRows.at(rowIndex)->getCells().at(columnIndex)->getAddButton() == sender) {
308 myRows.at(rowIndex)->getCells().at(columnIndex)->getAddPhaseButton()->setFocus();
321 for (
int columnIndex = 0; columnIndex < (int)
myColumns.size(); columnIndex++) {
322 for (
int rowIndex = 0; rowIndex < (int)
myRows.size(); rowIndex++) {
324 const auto textField =
myRows.at(rowIndex)->getCells().at(columnIndex)->getTextField();
325 if (textField == sender) {
329 textField->setTextColor(FXRGB(0, 0, 0));
330 textField->killFocus();
334 textField->setTextColor(FXRGB(255, 0, 0));
348 FXEvent* eventInfo = (FXEvent*)ptr;
350 if (eventInfo->code == 65362) {
363 }
else if (eventInfo->code == 65364) {
378 return sender->handle(sender, sel, ptr);
387 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
389 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
390 if (cell->getAddPhaseButton() == sender) {
392 cell->hideMenuButtonPopup();
408 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
410 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
411 if (cell->getDuplicatePhaseButton() == sender) {
413 cell->hideMenuButtonPopup();
429 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
431 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
432 if (cell->getAddAllRedPhaseButton() == sender) {
434 cell->hideMenuButtonPopup();
450 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
452 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
453 if (cell->getAddAllYellowPhaseButton() == sender) {
455 cell->hideMenuButtonPopup();
471 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
473 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
474 if (cell->getAddAllGreenPhaseButton() == sender) {
476 cell->hideMenuButtonPopup();
492 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
494 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
495 if (cell->getAddAllGreenPriorityPhaseButton() == sender) {
497 cell->hideMenuButtonPopup();
513 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
515 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
516 if (cell->getButton() == sender) {
532 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
534 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
535 if (cell->getButton() == sender) {
551 for (
int indexRow = 0; indexRow < (int)
myRows.size(); indexRow++) {
553 for (
const auto& cell :
myRows.at(indexRow)->getCells()) {
554 if (cell->getButton() == sender) {
569 for (
int rowIndex = 0; rowIndex < (int)
myRows.size(); rowIndex++) {
571 for (
const auto& cell :
myRows.at(rowIndex)->getCells()) {
572 if (cell->getIndexLabel()) {
574 cell->showIndexLabelBold();
576 cell->showIndexLabelNormal();
589 int durationCol = -1;
590 for (
int i = 0; i < (int)
myColumns.size(); i++) {
596 if (durationCol != -1) {
598 std::vector<double> durations;
600 for (
const auto& row :
myRows) {
601 durations.push_back(row->getCells().at(durationCol)->getDoubleValue());
604 for (
int i = 1; i < (int)durations.size(); i++) {
605 durations.at(i) += durations.at(i - 1);
608 for (
int i = 0; i < (int)
myRows.size(); i++) {
609 myRows.at(i)->getCells().at(durationCol)->setTooltip(
TL(
"Accumulated: ") +
toString(durations.at(i)));
619 for (
int rowIndex = 0; rowIndex < (int)
myRows.size(); rowIndex++) {
620 for (
int cellIndex = 0; cellIndex < (int)
myRows.at(rowIndex)->getCells().size(); cellIndex++) {
621 if (
myRows.at(rowIndex)->getCells().at(cellIndex)->hasFocus()) {
636 myTLSTable(TLSTable),
637 myTextField(textField),
646 myTLSTable(TLSTable),
647 myIndexLabel(indexLabel),
648 myIndexLabelBold(indexLabelBold),
652 indexLabel->create();
653 indexLabelBold->create();
655 indexLabelBold->hide();
656 indexLabelBold->setBackColor(FXRGBA(210, 233, 255, 255));
661 myTLSTable(TLSTable),
671 myTLSTable(TLSTable),
679 (std::string(
"\t") +
TL(
"Add phase") + std::string(
"\t") +
TL(
"Add new phase.")).c_str(),
684 (std::string(
"\t") +
TL(
"Default phase") + std::string(
"\t") +
TL(
"Add default phase.")).c_str(),
689 (std::string(
"\t") +
TL(
"Duplicate phase") + std::string(
"\t") +
TL(
"Duplicate this phase.")).c_str(),
694 (std::string(
"\t") +
TL(
"Red phase") + std::string(
"\t") +
TL(
"Add red phase.")).c_str(),
699 (std::string(
"\t") +
TL(
"Yellow phase") + std::string(
"\t") +
TL(
"Add yellow phase.")).c_str(),
704 (std::string(
"\t") +
TL(
"Green phase") + std::string(
"\t") +
TL(
"Add green phase.")).c_str(),
709 (std::string(
"\t") +
TL(
"Green priority phase") + std::string(
"\t") +
TL(
"Add green priority phase.")).c_str(),
737 if (myIndexLabelBold) {
738 delete myIndexLabelBold;
746 if (myAddPhaseButton) {
747 delete myAddPhaseButton;
749 if (myDuplicatePhaseButton) {
750 delete myDuplicatePhaseButton;
752 if (myAddAllRedButton) {
753 delete myAddAllRedButton;
755 if (myAddAllYellowButton) {
756 delete myAddAllYellowButton;
758 if (myAddAllGreenButton) {
759 delete myAddAllGreenButton;
761 if (myAddAllGreenPriorityButton) {
762 delete myAddAllGreenPriorityButton;
764 if (myMenuButtonPopup) {
765 delete myMenuButtonPopup;
773 myTextField->enable();
776 myIndexLabel->enable();
778 if (myIndexLabelBold) {
779 myIndexLabelBold->enable();
781 if (myButton && !myDisableButton) {
785 myAddButton->enable();
787 if (myAddPhaseButton) {
788 myAddPhaseButton->enable();
790 if (myDuplicatePhaseButton) {
791 myDuplicatePhaseButton->enable();
793 if (myAddAllRedButton) {
794 myAddAllRedButton->enable();
796 if (myAddAllYellowButton) {
797 myAddAllYellowButton->enable();
799 if (myAddAllGreenButton) {
800 myAddAllGreenButton->enable();
802 if (myAddAllGreenPriorityButton) {
803 myAddAllGreenPriorityButton->enable();
805 if (myMenuButtonPopup) {
806 myMenuButtonPopup->enable();
815 myTextField->disable();
818 myIndexLabel->disable();
820 if (myIndexLabelBold) {
821 myIndexLabelBold->disable();
823 if (myButton && !myDisableButton) {
827 myAddButton->disable();
829 if (myAddPhaseButton) {
830 myAddPhaseButton->disable();
832 if (myDuplicatePhaseButton) {
833 myDuplicatePhaseButton->disable();
835 if (myAddAllRedButton) {
836 myAddAllRedButton->disable();
838 if (myAddAllYellowButton) {
839 myAddAllYellowButton->disable();
841 if (myAddAllGreenButton) {
842 myAddAllGreenButton->disable();
844 if (myAddAllGreenPriorityButton) {
845 myAddAllGreenPriorityButton->disable();
847 if (myMenuButtonPopup) {
848 myMenuButtonPopup->disable();
856 if (myTextField && myTextField->hasFocus()) {
858 }
else if (myButton && myButton->hasFocus()) {
860 }
else if (myAddButton && myAddButton->hasFocus()) {
862 }
else if (myAddPhaseButton && myAddPhaseButton->hasFocus()) {
864 }
else if (myDuplicatePhaseButton && myDuplicatePhaseButton->hasFocus()) {
866 }
else if (myAddAllRedButton && myAddAllRedButton->hasFocus()) {
868 }
else if (myAddAllYellowButton && myAddAllYellowButton->hasFocus()) {
870 }
else if (myAddAllGreenButton && myAddAllGreenButton->hasFocus()) {
872 }
else if (myAddAllGreenPriorityButton && myAddAllGreenPriorityButton->hasFocus()) {
884 myTextField->setFocus();
885 }
else if (myButton) {
886 myButton->setFocus();
887 }
else if (myAddButton) {
888 myAddButton->setFocus();
889 }
else if (myAddPhaseButton) {
890 myAddPhaseButton->setFocus();
891 }
else if (myDuplicatePhaseButton) {
892 myDuplicatePhaseButton->setFocus();
893 }
else if (myAddAllRedButton) {
894 myAddAllRedButton->setFocus();
895 }
else if (myAddAllYellowButton) {
896 myAddAllYellowButton->setFocus();
897 }
else if (myAddAllGreenButton) {
898 myAddAllGreenButton->setFocus();
899 }
else if (myAddAllGreenPriorityButton) {
900 myAddAllGreenPriorityButton->setFocus();
907 if (myTextField->getText().empty()) {
909 }
else if (!GNEAttributeCarrier::canParse<double>(myTextField->getText().text())) {
912 return GNEAttributeCarrier::parse<double>(myTextField->getText().text());
920 myTextField->setToolTipText(toolTip.c_str());
953 return myAddPhaseButton;
959 return myDuplicatePhaseButton;
965 return myAddAllRedButton;
971 return myAddAllYellowButton;
977 return myAddAllGreenButton;
983 return myAddAllGreenPriorityButton;
989 myIndexLabel->show();
990 myIndexLabelBold->hide();
992 myIndexLabel->recalc();
993 myIndexLabelBold->recalc();
999 myIndexLabel->hide();
1000 myIndexLabelBold->show();
1002 myIndexLabel->recalc();
1003 myIndexLabelBold->recalc();
1021 return myTLSTable->myColumns.at(myCol)->getType();
1027 myMenuButtonPopup->popdown();
1034 myButton->disable();
1035 myDisableButton =
true;
1102 delete myVerticalFrame;
1108 return myVerticalCellFrame;
1120 return myTopLabel->getText();
1126 myTopLabel->setText(text.c_str());
1127 myTopLabel->setTipText(tooltip.c_str());
1133 myBotLabel->setText(text.c_str());
1140 int columnWidth = 0;
1142 if (myType ==
's') {
1145 }
else if (isTextFieldColumn()) {
1147 columnWidth = myTopLabel->getFont()->getTextWidth(myTopLabel->getText().text(), myTopLabel->getText().length() +
EXTRAMARGIN);
1149 for (
const auto& row : myTable->myRows) {
1151 const auto textField = row->getCells().at(myIndex)->getTextField();
1153 const auto textFieldWidth = textField->getFont()->getTextWidth(textField->getText().text(), textField->getText().length() +
EXTRAMARGIN);
1155 if (textFieldWidth > columnWidth) {
1156 columnWidth = textFieldWidth;
1160 const auto botLabelWidth = myBotLabel->getFont()->getTextWidth(myBotLabel->getText().text(), myBotLabel->getText().length() +
EXTRAMARGIN);
1161 if (botLabelWidth > columnWidth) {
1162 columnWidth = botLabelWidth;
1175 if (isTextFieldColumn()) {
1176 for (
const auto& row : myTable->myRows) {
1177 row->getCells().at(myIndex)->getTextField()->setWidth(colWidth);
1181 myVerticalFrame->setWidth(colWidth);
1182 myTopLabel->setWidth(colWidth);
1183 myVerticalCellFrame->setWidth(colWidth);
1184 myBotLabel->setWidth(colWidth);
1190 return ((myType ==
'u') || (myType ==
'f') || (myType ==
'p') || (myType ==
'm') || (myType ==
'-'));
1205 for (
int columnIndex = 0; columnIndex < (FXint)table->
myColumns.size(); columnIndex++) {
1207 const int numCells = (int)
myCells.size();
1209 switch (table->
myColumns.at(columnIndex)->getType()) {
1212 auto indexLabel =
new FXLabel(table->
myColumns.at(columnIndex)->getVerticalCellFrame(),
1214 auto indexLabelBold =
new FXLabel(table->
myColumns.at(columnIndex)->getVerticalCellFrame(),
1219 myCells.push_back(
new Cell(table, indexLabel, indexLabelBold, columnIndex, numCells));
1230 myCells.push_back(
new Cell(table, textField, columnIndex, numCells));
1240 myCells.push_back(
new Cell(table, textField, columnIndex, numCells));
1245 myCells.push_back(
new Cell(table, columnIndex, numCells));
1252 (std::string(
"\t") +
TL(
"Delete phase") + std::string(
"\t") +
TL(
"Delete this phase.")).c_str(),
1254 myCells.push_back(
new Cell(table, button, columnIndex, numCells));
1261 (std::string(
"\t") +
TL(
"Move phase up") + std::string(
"\t") +
TL(
"Move this phase up.")).c_str(),
1263 myCells.push_back(
new Cell(table, button, columnIndex, numCells));
1270 (std::string(
"\t") +
TL(
"Move phase down") + std::string(
"\t") +
TL(
"Move this phase down.")).c_str(),
1272 myCells.push_back(
new Cell(table, button, columnIndex, numCells));
1284 for (
const auto& cell : myCells) {
1292 if (myCells.at(index)->getTextField()) {
1293 return myCells.at(index)->getTextField()->getText().text();
1303 myCells.at(index)->getTextField()->setText(text.c_str());
1307const std::vector<GNETLSTable::Cell*>&
1316 for (
const auto& cell : myCells) {
1317 if ((cell->getType() ==
'd') || (cell->getType() ==
'b') || (cell->getType() ==
't')) {
1318 cell->disableButton();
FXDEFMAP(GNETLSTable) GNETLSTableMap[]
@ MID_GNE_TLSTABLE_ADDPHASE
TLSTable button for add phase.
@ MID_GNE_TLSTABLE_COPYPHASE
TLSTable button for copy phase.
@ MID_GNE_TLSTABLE_ADDPHASEALLGREENPRIORITY
TLSTable button for add phase green priority.
@ MID_GNE_TLSTABLE_ADDPHASEALLYELLOW
TLSTable button for add phase yelllow.
@ MID_GNE_TLSTABLE_TEXTFIELD
TLSTable textField.
@ MID_GNE_TLSTABLE_ADDPHASEALLRED
TLSTable button for add phase red.
@ MID_GNE_TLSTABLE_MOVEDOWNPHASE
TLSTable button for move down phase.
@ MID_MBTTIP_FOCUS
callback for MFXMenuButtonTooltip
@ MID_GNE_TLSTABLE_ADDPHASEALLGREEN
TLSTable button for add phase green.
@ MID_GNE_TLSTABLE_REMOVEPHASE
TLSTable button for remove phase.
@ MID_GNE_TLSTABLE_MOVEUPPHASE
TLSTable button for move up phase.
#define GUIDesignLabelFixed(width)
label, icon before text, text centered and custom width
#define GUIDesignButtonIcon
button only with icon
#define GUIDesignTextFieldTLSTable
text field with min width (used in TLS table)
#define GUIDesignTextFieldNCol
Num of column of text field.
#define GUIDesignAuxiliarFrameFixWidth
design for auxiliar vertical frames with fixed width (used in TLSTable and DecalsTable)
#define GUIDesignTLSTableCheckableButtonIcon
checkable button only with icon used in TLSTable
#define GUIDesignLabelThickedFixed(width)
label thicked, icon before text, text centered and custom width
@ TLSPHASEALLGREENPRIORITY
int GUIDesignHeight
the default size for GUI elements
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
int getScrollBarWidth() const
get scrollBar width (zero if is hidden)
GNEViewNet * getViewNet() const
get view net
void movePhaseDown(const int row)
move phase down
bool changePhaseValue(const int col, const int row, const std::string &value)
change phase value (state, name, next, etc.)
void movePhaseUp(const int row)
move phase up
void updateTLSColoring()
update TLS coloring
void removePhase(const int row)
delete phase
void duplicatePhase(const int row)
duplicate phase
void addPhase(const int row, const char c=' ')
add phase
GNETLSEditorFrame * getTLSEditorParent() const
get TLSEditor Parent
void showIndexLabelNormal()
show label index normal
MFXButtonTooltip * getDuplicatePhaseButton()
get duplicate phase button
MFXButtonTooltip * myAddAllGreenPriorityButton
add all green priority phase button
MFXButtonTooltip * myAddAllRedButton
add all red phase button
void enable()
Enable cell.
void showIndexLabelBold()
show label index bold
MFXButtonTooltip * getAddPhaseButton()
get add phase button
int getCol() const
column index
void setFocus()
set focus in the current cell
void setTooltip(const std::string &toolTip)
set tooltip
bool hasFocus() const
check if current cell has focus
Cell()
default constructor
GNETLSTable * myTLSTable
pointer to TLSTable parent
FXPopup * myMenuButtonPopup
popup for buttons
MFXButtonTooltip * getAddAllGreenPriorityPhaseButton()
get add all green priority phase button
MFXButtonTooltip * getAddAllYellowPhaseButton()
get add all yellow phase button
int getRow() const
row index
void disableButton()
disable button (used for delete, move up and move down)
MFXMenuButtonTooltip * myAddButton
menu button tooltip
void hideMenuButtonPopup()
hide menuButton popup
MFXTextFieldTooltip * getTextField() const
get textField
FXLabel * getIndexLabel() const
get index label
double getDoubleValue() const
get double value (only for types 'u' and 'd')
MFXButtonTooltip * getButton()
get remove, move up or move down button
MFXMenuButtonTooltip * getAddButton() const
get add button
MFXButtonTooltip * myAddAllYellowButton
add all yellow phase button
void disable()
Disable cell.
MFXButtonTooltip * getAddAllGreenPhaseButton()
get add all green phase button
char getType() const
get column type
MFXButtonTooltip * getAddAllRedPhaseButton()
get add all red phase button
MFXButtonTooltip * myDuplicatePhaseButton
duplicate phase button
MFXButtonTooltip * myAddPhaseButton
add phase button
MFXButtonTooltip * myAddAllGreenButton
add all green phase button
int getColumnMinimumWidth()
get column minimum width
const char myType
column type
FXVerticalFrame * myVerticalFrame
vertical frame
FXLabel * myBotLabel
column bot label
Column()
default constructor
FXVerticalFrame * getVerticalCellFrame() const
get vertical cell frame
FXVerticalFrame * myVerticalCellFrame
vertical frame
void setColumnLabelTop(const std::string &text, const std::string &tooltip)
set column label top
bool isTextFieldColumn() const
check if current type correspond to a textField
char getType() const
get column type
FXString getColumnLabelTop() const
get column label top
void setColumnLabelBot(const std::string &text)
set column label boit
MFXLabelTooltip * myTopLabel
column top tooltip label
void setColumnWidth(const int colWidth)
set colum width
void setText(int index, const std::string &text) const
set text
GNETLSTable * myTable
poiner to table parent
std::vector< Cell * > myCells
list wtih cells
void disableButtons()
disable row buttons
const std::vector< Cell * > & getCells() const
get cells
std::string getText(int index) const
get text
GNETLSEditorFrame::TLSPhases * myTLSPhasesParent
@frame pointer to TLSEditorFrame phases parent
int getNumRows() const
Get number of rows.
int myCurrentSelectedRow
current selected row
long onCmdDuplicatePhase(FXObject *, FXSelector, void *)
called when a duplicate phase button is pressed
long onCmdEditRow(FXObject *, FXSelector, void *)
called when a row is modified
FXFont * myIndexSelectedFont
font for index selected
long onCmdAddPhaseAllRed(FXObject *, FXSelector, void *)
called when an add all green red phase button is pressed
long onCmdAddPhaseAllGreenPriority(FXObject *, FXSelector, void *)
called when an add all green red phase button is pressed
long onCmdAddPhase(FXObject *, FXSelector, void *)
called when an add phase button is pressed
void updateIndexLabel()
update index labels
long onFocusRow(FXObject *, FXSelector, void *)
void setColumnLabelBot(const int column, const std::string &text)
Change column bottom text.
void clearTable()
clear table
void selectRow(const int rowIndex)
Select a row.
long onCmdMoveUpPhase(FXObject *, FXSelector, void *)
called when a move up phase button is pressed
~GNETLSTable()
destructor (Called automatically)
int getCurrentSelectedRow() const
Get current selected row.
long onCmdAddPhasePressed(FXObject *, FXSelector, void *)
called when add phase button is selected
FXFont * myIndexFont
font for index
void enable()
Enable table.
long onCmdAddPhaseAllYellow(FXObject *, FXSelector, void *)
called when an add all green red phase button is pressed
std::string getItemText(const int row, const int column) const
Return cell text.
long onCmdKeyPress(FXObject *, FXSelector, void *)
called when a key is pressed
long onCmdAddPhaseAllGreen(FXObject *, FXSelector, void *)
called when an add all green red phase button is pressed
bool moveFocus()
move focus to current row
void setColumnLabelTop(const int column, const std::string &text, const std::string &tooltip="")
Change column header text.
void setItemText(FXint row, FXint column, const std::string &text)
Modify cell text.
std::vector< Row * > myRows
rows
long onCmdRemovePhase(FXObject *, FXSelector, void *)
called when a remove phase button is pressed
void updateAccumulatedDuration()
update accumulated duration();
void setTableSize(const std::string &columnsType, const int numberRow)
Set the table size to nr rows and nc columns; all existing items will be removed. Format: s -> select...
FXFont * myProgramFont
font for the phase table
void disable()
Disable table.
long onCmdMoveDownPhase(FXObject *, FXSelector, void *)
called when a move up phase button is pressed
void recalcTableWidth()
recalc width (call when all labels and contents are fill)
GNETLSEditorFrame::TLSPhases * getTLSPhasesParent() const
@frame get pointer to TLSEditorFrame phases parent
std::vector< Column * > myColumns
columns
GNEViewParent * getViewParent() const
get the net object
GNEApplicationWindow * getGNEAppWindows() const
get GNE Application Windows
int getFrameAreaWidth() const
get frame area width
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
MFXStaticToolTip * getStaticTooltipMenu() const
get static toolTip for menus