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