1 /********************************************************** 2 * Version $Id$ 3 *********************************************************/ 4 5 /////////////////////////////////////////////////////////// 6 // // 7 // SAGA // 8 // // 9 // System for Automated Geoscientific Analyses // 10 // // 11 // User Interface // 12 // // 13 // Program: SAGA // 14 // // 15 //-------------------------------------------------------// 16 // // 17 // WKSP_Base_Item.h // 18 // // 19 // Copyright (C) 2005 by Olaf Conrad // 20 // // 21 //-------------------------------------------------------// 22 // // 23 // This file is part of 'SAGA - System for Automated // 24 // Geoscientific Analyses'. SAGA is free software; you // 25 // can redistribute it and/or modify it under the terms // 26 // of the GNU General Public License as published by the // 27 // Free Software Foundation, either version 2 of the // 28 // License, or (at your option) any later version. // 29 // // 30 // SAGA is distributed in the hope that it will be // 31 // useful, but WITHOUT ANY WARRANTY; without even the // 32 // implied warranty of MERCHANTABILITY or FITNESS FOR A // 33 // PARTICULAR PURPOSE. See the GNU General Public // 34 // License for more details. // 35 // // 36 // You should have received a copy of the GNU General // 37 // Public License along with this program; if not, see // 38 // <http://www.gnu.org/licenses/>. // 39 // // 40 //-------------------------------------------------------// 41 // // 42 // contact: Olaf Conrad // 43 // Institute of Geography // 44 // University of Goettingen // 45 // Goldschmidtstr. 5 // 46 // 37077 Goettingen // 47 // Germany // 48 // // 49 // e-mail: oconrad@saga-gis.org // 50 // // 51 /////////////////////////////////////////////////////////// 52 53 //--------------------------------------------------------- 54 55 56 /////////////////////////////////////////////////////////// 57 // // 58 // // 59 // // 60 /////////////////////////////////////////////////////////// 61 62 //--------------------------------------------------------- 63 #ifndef _HEADER_INCLUDED__SAGA_GUI__WKSP_Base_Item_H 64 #define _HEADER_INCLUDED__SAGA_GUI__WKSP_Base_Item_H 65 66 67 /////////////////////////////////////////////////////////// 68 // // 69 // // 70 // // 71 /////////////////////////////////////////////////////////// 72 73 //--------------------------------------------------------- 74 #include <wx/menu.h> 75 #include <wx/treectrl.h> 76 77 #include <saga_api/saga_api.h> 78 79 #include "view_base.h" 80 81 82 /////////////////////////////////////////////////////////// 83 // // 84 // // 85 // // 86 /////////////////////////////////////////////////////////// 87 88 //--------------------------------------------------------- 89 #define LAYER_DRAW_FLAG_NOEDITS 0x01 90 #define LAYER_DRAW_FLAG_NOLABELS 0x02 91 #define LAYER_DRAW_FLAG_THUMBNAIL 0x04 92 93 94 /////////////////////////////////////////////////////////// 95 // // 96 // // 97 // // 98 /////////////////////////////////////////////////////////// 99 100 //--------------------------------------------------------- 101 typedef enum 102 { 103 WKSP_ITEM_Tool_Manager, 104 WKSP_ITEM_Tool_Group, 105 WKSP_ITEM_Tool_Library, 106 WKSP_ITEM_Tool, 107 108 WKSP_ITEM_Data_Manager, 109 110 WKSP_ITEM_Table_Manager, 111 WKSP_ITEM_Table, 112 113 WKSP_ITEM_Shapes_Manager, 114 WKSP_ITEM_Shapes_Type, 115 WKSP_ITEM_Shapes, 116 117 WKSP_ITEM_TIN_Manager, 118 WKSP_ITEM_TIN, 119 120 WKSP_ITEM_PointCloud_Manager, 121 WKSP_ITEM_PointCloud, 122 123 WKSP_ITEM_Grid_Manager, 124 WKSP_ITEM_Grid_System, 125 WKSP_ITEM_Grid, 126 WKSP_ITEM_Grids, 127 128 WKSP_ITEM_Map_Manager, 129 WKSP_ITEM_Map, 130 WKSP_ITEM_Map_Layer, 131 WKSP_ITEM_Map_Graticule, 132 WKSP_ITEM_Map_BaseMap, 133 134 WKSP_ITEM_Undefined 135 } 136 TWKSP_Item; 137 138 139 /////////////////////////////////////////////////////////// 140 // // 141 // // 142 // // 143 /////////////////////////////////////////////////////////// 144 145 //--------------------------------------------------------- 146 class CWKSP_Base_Item : public wxTreeItemData 147 { 148 friend class CWKSP_Base_Manager; 149 150 public: 151 CWKSP_Base_Item(void); 152 virtual ~CWKSP_Base_Item(void); 153 Get_Type(void)154 virtual TWKSP_Item Get_Type (void) { return( WKSP_ITEM_Undefined ); } 155 Get_Name(void)156 virtual wxString Get_Name (void) { return( wxEmptyString ); } Get_Description(void)157 virtual wxString Get_Description (void) { return( wxEmptyString ); } 158 Get_Menu(void)159 virtual wxMenu * Get_Menu (void) { return( NULL ); } 160 161 virtual bool On_Command (int Cmd_ID); 162 virtual bool On_Command_UI (wxUpdateUIEvent &event); 163 164 virtual bool On_Data_Deletion (CSG_Data_Object *pObject); 165 166 virtual CSG_Parameters * Get_Parameters (void); 167 virtual CSG_Parameter * Get_Parameter (const CSG_String &Identifier); 168 virtual void Parameters_Changed (void); 169 170 class CWKSP_Base_Control * Get_Control (void); Get_Manager(void)171 class CWKSP_Base_Manager * Get_Manager (void) { return( m_pManager ); } 172 Get_ID(void)173 int Get_ID (void) { return( m_ID ); } 174 int Get_Index (void); 175 is_Manager(void)176 bool is_Manager (void) { return( m_bManager ); } 177 bool is_Selected (void); 178 179 static wxString Get_Type_Name (TWKSP_Item Type); 180 181 182 protected: 183 184 CSG_Parameters m_Parameters; 185 186 187 virtual void On_Create_Parameters (void); 188 189 virtual int On_Parameter_Changed (CSG_Parameters *pParameters, CSG_Parameter *pParameter, int Flags); 190 191 192 static int Parameter_Callback (CSG_Parameter *pParameter, int Flags); 193 194 195 private: 196 197 bool m_bManager; 198 199 int m_ID; 200 201 CWKSP_Base_Manager *m_pManager; 202 203 204 bool _On_Data_Deletion (CSG_Parameters &Parameters, CSG_Data_Object *pObject); 205 206 }; 207 208 209 /////////////////////////////////////////////////////////// 210 // // 211 // // 212 // // 213 /////////////////////////////////////////////////////////// 214 215 //--------------------------------------------------------- 216 #endif // #ifndef _HEADER_INCLUDED__SAGA_GUI__WKSP_Base_Item_H 217