SUMO - Simulation of Urban MObility
|
00001 /****************************************************************************/ 00007 // missing_desc 00008 /****************************************************************************/ 00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/ 00010 // Copyright (C) 2001-2012 DLR (http://www.dlr.de/) and contributors 00011 /****************************************************************************/ 00012 // 00013 // This file is part of SUMO. 00014 // SUMO is free software: you can redistribute it and/or modify 00015 // it under the terms of the GNU General Public License as published by 00016 // the Free Software Foundation, either version 3 of the License, or 00017 // (at your option) any later version. 00018 // 00019 /****************************************************************************/ 00020 #ifndef MFXEditableTable_h 00021 #define MFXEditableTable_h 00022 00023 00024 // =========================================================================== 00025 // included modules 00026 // =========================================================================== 00027 #ifdef _MSC_VER 00028 #include <windows_config.h> 00029 #else 00030 #include <config.h> 00031 #endif 00032 00033 #include <fx.h> 00034 #include <set> 00035 00036 struct MFXEditedTableItem { 00037 FXTableItem* item; 00038 int row; 00039 int col; 00040 bool updateOnly; 00041 }; 00042 00043 enum { 00044 EDITTABLE_NEXTROW = 0x02000000 00045 }; 00046 00047 00048 class MFXEditableTable : public FXTable { 00049 FXDECLARE(MFXEditableTable) 00050 public: 00051 enum { 00052 ID_LABELEDIT = FXTable::ID_LAST, 00053 ID_EDITEND, 00054 ID_NEXTLINE, 00055 ID_EDITOR, 00056 ID_TEXT_CHANGED, 00057 ID_LAST 00058 }; 00059 MFXEditableTable(FXComposite* p, FXObject* tgt = NULL, FXSelector sel = 0, FXuint opts = 0, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0, FXint pl = DEFAULT_MARGIN, FXint pr = DEFAULT_MARGIN, FXint pt = DEFAULT_MARGIN, FXint pb = DEFAULT_MARGIN); 00060 ~MFXEditableTable(); 00061 00062 public: 00063 long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr); 00064 long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr); 00065 long onLeftBtnClicked(FXObject* sender, FXSelector sel, void* ptr); 00066 00067 virtual void editItem(FXTableItem* item, FXint how); 00068 virtual void editEnd(); 00069 long onEditEnd(FXObject*, FXSelector, void*); 00070 virtual void editCancel(); 00071 long onEditKeyPress(FXObject*, FXSelector, void* ptr); 00072 long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr); 00073 long onEditFocusOut(FXObject*, FXSelector, void*); 00074 // long onTipTimer(FXObject* sender, FXSelector sel, void* ptr); 00075 long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr); 00076 00077 00078 long onHScrollerChanged(FXObject* o, FXSelector s, void* d); 00079 long onVScrollerChanged(FXObject* o, FXSelector s, void* d); 00080 long onHScrollerDragged(FXObject* o, FXSelector s, void* d); 00081 long onVScrollerDragged(FXObject* o, FXSelector s, void* d); 00082 00083 long onAutoScroll(FXObject* o, FXSelector s, void* d); 00084 long onUngrabbed(FXObject* o, FXSelector s, void* d); 00085 long onRightBtnPress(FXObject* o, FXSelector s, void* d); 00086 long onTabKeyPress(FXObject* o, FXSelector s, void* d); 00087 long onTabKeyRelease(FXObject* o, FXSelector s, void* d); 00088 long onFocusIn(FXObject* o, FXSelector s, void* d); 00089 long onFocusOut(FXObject* o, FXSelector s, void* d); 00090 long onSelectionLost(FXObject* o, FXSelector s, void* d); 00091 long onSelectionGained(FXObject* o, FXSelector s, void* d); 00092 long onSelectionRequest(FXObject* o, FXSelector s, void* d); 00093 long onClipboardLost(FXObject* o, FXSelector s, void* d); 00094 long onClipboardGained(FXObject* o, FXSelector s, void* d); 00095 long onClipboardRequest(FXObject* o, FXSelector s, void* d); 00096 long onDoubleClicked(FXObject* o, FXSelector s, void* d); 00097 long onTripleClicked(FXObject* o, FXSelector s, void* d); 00098 long onCommand(FXObject* o, FXSelector s, void* d); 00099 long onUpdHorzGrid(FXObject* o, FXSelector s, void* d); 00100 long onUpdVertGrid(FXObject* o, FXSelector s, void* d); 00101 long onCmdHorzGrid(FXObject* o, FXSelector s, void* d); 00102 long onCmdVertGrid(FXObject* o, FXSelector s, void* d); 00103 long onCmdDeleteColumn(FXObject* o, FXSelector s, void* d); 00104 long onUpdDeleteColumn(FXObject* o, FXSelector s, void* d); 00105 long onCmdDeleteRow(FXObject* o, FXSelector s, void* d); 00106 long onUpdDeleteRow(FXObject* o, FXSelector s, void* d); 00107 long onCmdInsertColumn(FXObject* o, FXSelector s, void* d); 00108 long onCmdInsertRow(FXObject* o, FXSelector s, void* d); 00109 00110 long onCmdMoveLeft(FXObject* o, FXSelector s, void* d); 00111 long onCmdMoveRight(FXObject* o, FXSelector s, void* d); 00112 long onCmdMoveUp(FXObject* o, FXSelector s, void* d); 00113 long onCmdMoveDown(FXObject* o, FXSelector s, void* d); 00114 long onCmdMoveHome(FXObject* o, FXSelector s, void* d); 00115 long onCmdMoveEnd(FXObject* o, FXSelector s, void* d); 00116 long onCmdMoveTop(FXObject* o, FXSelector s, void* d); 00117 long onCmdMoveBottom(FXObject* o, FXSelector s, void* d); 00118 long onCmdMovePageDown(FXObject* o, FXSelector s, void* d); 00119 long onCmdMovePageUp(FXObject* o, FXSelector s, void* d); 00120 00121 long onCmdSelectRowIndex(FXObject* o, FXSelector s, void* d); 00122 long onCmdSelectColumnIndex(FXObject* o, FXSelector s, void* d); 00123 long onCmdSelectColumn(FXObject* o, FXSelector s, void* d); 00124 long onCmdSelectRow(FXObject* o, FXSelector s, void* d); 00125 long onCmdSelectCell(FXObject* o, FXSelector s, void* d); 00126 long onCmdSelectAll(FXObject* o, FXSelector s, void* d); 00127 long onCmdDeselectAll(FXObject* o, FXSelector s, void* d); 00128 long onCmdMark(FXObject* o, FXSelector s, void* d); 00129 long onCmdExtend(FXObject* o, FXSelector s, void* d); 00130 00131 00132 void writeProtectCol(int col, bool val = true); 00133 00134 00135 protected: 00136 FXTextField* myEditor; 00137 FXTableItem* myEditedItem; 00138 FXint myEditedCol, myEditedRow; 00139 std::set<int> myWriteProtectedCols; 00140 FXString myPreviousText; 00141 00142 protected: 00143 MFXEditableTable() { } 00144 00145 }; 00146 00147 00148 #endif 00149 00150 /****************************************************************************/ 00151