wxpythonlib.dox 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550
  1. /*! \page wxpythonlib GRASS wxPython-based GUI
  2. The GUI (Graphical User Interface) is written in the Python
  3. programming language using <a
  4. href="http://www.wxpython.org">wxPython</a> library - a blending of
  5. the <a href="http://www.wxwidgets.org">wxWidgets</a> library for
  6. Python.
  7. The wxPython GUI (so called <em>wxGUI</em>) is composed of two main
  8. <em>components</em>:
  9. - <b>Layer Manager</b> and
  10. - <b>Map Display Window</b>.
  11. The <em>Layer Manager</em> allows users to run different GRASS modules
  12. from a menu, includes map layer management, integrated command-line
  13. prompt, and command output window. The <em>Map Display Window</em>
  14. integrates basic tools for zooming, panning, data querying,
  15. decorations (north arrows, barscale, etc.). Additional tools like
  16. vector digitizer or georectification tool are also available.
  17. <b>Table of content</b>
  18. - \ref background
  19. - \ref classes
  20. - \ref core
  21. - \ref gui_core
  22. - \ref lmgr
  23. - \ref mapdisp
  24. - \ref wscreen
  25. - \ref dbmgr
  26. - \ref gpc
  27. - \ref gmodeler
  28. - \ref vdigit
  29. - \ref wxnviz
  30. - \ref psmap
  31. - \ref locWizard
  32. - \ref plot
  33. - \ref mapswipe
  34. - \ref other
  35. - \ref devel
  36. - \ref seeAlso
  37. - \ref refs
  38. \section background Background
  39. The plan for a native GUI for GRASS found its origin in the project <a
  40. href="http://geo.fsv.cvut.cz/~landa/publications/2008/unpublished/fbk-report/technology-for-geoinformatics.html">GFOSS-TN</a>,
  41. a collaboration between <a href="http://www.fbk.eu">FBK</a>
  42. (Fondazione Bruno Kessler) and the Information System Service of the
  43. Trento municipality (Italy). The wxGUI is successor of Tcl/Tk GUI
  44. available in GRASS 5 and GRASS 6.
  45. \section classes List of Modules and Classes
  46. \subsection core Core modules
  47. - core::debug
  48. - debug::DebugMsg
  49. - core::globalvar
  50. - core::gcmd
  51. - gcmd::GError
  52. - gcmd::GWarning
  53. - gcmd::GMessage
  54. - gcmd::GException
  55. - gcmd::Popen
  56. - gcmd::Command
  57. - gcmd::CommandThread
  58. - core::menudata
  59. - menudata::MenuData
  60. - core::render
  61. - render::Layer
  62. - render::Layer
  63. - render::MapLayer
  64. - render::Overlay
  65. - render::Map
  66. - core::settings
  67. - settings::Settings
  68. - core::units
  69. - units::BaseUnits
  70. - core::utils
  71. - core::workspace
  72. - workspace::ProcessWorkspaceFile
  73. - workspace::WriteWorkspaceFile
  74. - workspace::ProcessGrcFile
  75. \subsection gui_core GUI core modules
  76. - gui_core::dialogs
  77. - dialogs::ElementDialog
  78. - dialogs::LocationDialog
  79. - dialogs::MapsetDialog
  80. - dialogs::NewVectorDialog
  81. - dialogs::SavedRegion
  82. - dialogs::DecorationDialog
  83. - dialogs::TextLayerDialog
  84. - dialogs::GroupDialog
  85. - dialogs::MapLayersDialog
  86. - dialogs::ImportDialog
  87. - dialogs::GdalImportDialog
  88. - dialogs::GdalOutputDialog
  89. - dialogs::DxfImportDialog
  90. - dialogs::LayersList (used by MultiImport)
  91. - dialogs::SetOpacityDialog
  92. - dialogs::StaticWrapText
  93. - dialogs::ImageSizeDialog
  94. - dialogs::SqlQueryFrame
  95. - dialogs::SymbolDialog
  96. - gui_core::forms
  97. - forms::TaskFrame
  98. - forms::CmdPanel
  99. - forms::GrassGUIApp
  100. - gui_core::ghelp
  101. - ghelp::SearchModuleWindow
  102. - ghelp::AboutWindow
  103. - ghelp::HelpFrame
  104. - ghelp::HelpWindow
  105. - ghelp::HelpPanel
  106. - gui_core::goutput
  107. - goutput::CmdThread
  108. - goutput::GMConsole
  109. - goutput::GMStc
  110. - goutput::GMStdout
  111. - goutput::GMStderr
  112. - gui_core::gselect
  113. - gselect::Select
  114. - gselect::VectorSelect
  115. - gselect::TreeCrtlComboPopup
  116. - gselect::VectorDBInfo
  117. - gselect::LayerSelect
  118. - gselect::DriverSelect
  119. - gselect::DatabaseSelect
  120. - gselect::ColumnSelect
  121. - gselect::DbaseSelect
  122. - gselect::LocationSelect
  123. - gselect::MapsetSelect
  124. - gselect::SubGroupSelect
  125. - gselect::FormatSelect
  126. - gselect::GdalSelect
  127. - gselect::ProjSelect
  128. - gselect::ElementSelect
  129. - gselect::OgrTypeSelect
  130. - gui_core::mapdisp
  131. - mapdisp::MapFrameBase
  132. - mapdisp::SingleMapFrame
  133. - mapdisp::DoubleMapFrame
  134. - gui_core::mapwindow
  135. - mapwindow::MapWindow
  136. - gui_core::menu
  137. - menu::Menu
  138. - menu::MenuTreeWindow
  139. - menu::MenuTree
  140. - gui_core::preferences
  141. - preferences::PreferencesBaseDialog
  142. - preferences::PreferencesDialog
  143. - preferences::DefaultFontDialog
  144. - preferences::MapsetAccess
  145. - gui_core::prompt
  146. - prompt::PromptListCtrl
  147. - prompt::TextCtrlAutoComplete
  148. - prompt::GPrompt
  149. - prompt::GPromptPopUp
  150. - prompt::GPromptSTC
  151. - gui_core::toolbars
  152. - toolbars::BaseToolbar
  153. - gui_core::widgets
  154. - widgets::ScrolledPanel
  155. - widgets::NTCValidator
  156. - widgets::NumTextCtrl
  157. - widgets::FloatSlider
  158. - widgets::SymbolButton
  159. - widgets::StaticWrapText
  160. - widgets::BaseValidator
  161. - widgets::IntegerValidator
  162. - widgets::FloatValidator
  163. - widgets::NTCValidator
  164. - widgets::ItemTree
  165. \subsection lmgr Layer Manager
  166. - wxgui
  167. - wxgui::GMApp
  168. - wxgui::Usage
  169. - lmgr::layertree
  170. - lmgr::LayerTree
  171. - lmgr::menudata
  172. - menudata::MenuData
  173. - lmgr::pyshell
  174. - pyshell::PyShellWindow
  175. - lmgr::toolbars
  176. - toolbars::LMWorkspaceToolbar
  177. - toolbars::LMDataToolbar
  178. - toolbars::LMToolsToolbar
  179. - toolbars::LMMiscToolbar
  180. - toolbars::LMVectorToolbar
  181. - toolbars::LMNvizToolbar
  182. - lmgr::frame
  183. - frame::GMFrame
  184. \subsection mapdisp Map Display Window
  185. - mapdisp::frame
  186. - mapdisp::MapFrame
  187. - mapdisp::MapApp
  188. - mapdisp::gprint
  189. - gprint::MapPrint
  190. - gprint::PrintOptions
  191. - mapdisp::mapwindow
  192. - mapwindow::BufferedWindow
  193. - mapdisp::statusbar
  194. - statusbar::SbException
  195. - statusbar::SbManager
  196. - statusbar::SbItem
  197. - statusbar::SbRender
  198. - statusbar::SbShowRegion
  199. - statusbar::SbAlignExtent
  200. - statusbar::SbResolution
  201. - statusbar::SbMapScale
  202. - statusbar::SbGoTo
  203. - statusbar::SbProjection
  204. - statusbar::SbMask
  205. - statusbar::SbTextItem
  206. - statusbar::SbDisplayGeometry
  207. - statusbar::SbCoordinates
  208. - statusbar::SbRegionExtent
  209. - statusbar::SbCompRegionExtent
  210. - statusbar::SbProgress
  211. - mapdisp::toolbars
  212. - toolbars::MapToolbar
  213. \subsection wscreen Welcome screen
  214. - gis_set_error
  215. - gis_set
  216. - gis_set::GRASSStartup
  217. - gis_set::StartUp
  218. - gis_set::GListBox
  219. \subsection dbmgr Database Manager
  220. - dbmgr::dialogs
  221. - dialogs::DisplayAttributesDialog
  222. - dialogs::ModifyTableRecord
  223. - dbmgr::manager
  224. - manager::Log
  225. - manager::VirtualAttributeList
  226. - manager::AttributeManager
  227. - manager::TableListCtrl
  228. - manager::LayerListCtrl
  229. - manager::LayerBook
  230. - dbmgr::sqlbuilder
  231. - sqlbuilder::SQLFrame
  232. - dbmgr::vinfo
  233. - vinfo::VectorDBInfo
  234. \subsection gpc Georectifier
  235. - gcp::manager
  236. - manager::GCPWizard
  237. - manager::LocationPage
  238. - manager::GroupPage
  239. - manager::DispMapPage
  240. - manager::GCP
  241. - manager::GCPList
  242. - manager::VectGroup
  243. - manager::EditGCP
  244. - manager::GrSettingsDialog
  245. - gcp::mapdisplay
  246. - mapdisplay::MapFrame
  247. - gcp::toolbars
  248. - toolbars::GCPMapToolbar
  249. - toolbars::GCPDisplayToolbar
  250. \subsection gmodeler Graphical Modeler
  251. - gmodeler::dialogs
  252. - dialogs::ModelDataDialog
  253. - dialogs::ModelSearchDialog
  254. - dialogs::ModelRelationDialog
  255. - dialogs::ModelItemDialog
  256. - dialogs::ModelLoopDialog
  257. - dialogs::ModelConditionDialog
  258. - dialogs::ModelListCtrl
  259. - dialogs::ValiableListCtrl
  260. - dialogs::ItemListCtrl
  261. - dialogs::ItemCheckListCtrl
  262. - gmodeler::frame
  263. - frame::ModelToolbar
  264. - frame::ModelFrame
  265. - frame::ModelCanvas
  266. - frame::ModelEvtHandler
  267. - frame::VariablePanel
  268. - frame::ItemPanel
  269. - frame::PythonPanel
  270. - gmodeler::menudata
  271. - menudata::ModelerData
  272. - gmodeler::model
  273. - model::Model
  274. - model::ModelObject
  275. - model::ModelAction
  276. - model::ModelData
  277. - model::ModelRelation
  278. - model::ModelItem
  279. - model::ModelLoop
  280. - model::ModelCondition
  281. - model::ProcessModelFile
  282. - model::WriteModelFile
  283. - model::WritePythonFile
  284. - model::ModelParamDialog
  285. - gmodeler::preferences
  286. - preferences::PreferencesDialog
  287. - preferences::PropertiesDialog
  288. - gmodeler::pystc
  289. - pystc::PyStc
  290. \subsection vdigit Vector digitizer
  291. - vdigit::dialogs
  292. - dialogs::VDigitCategoryDialog
  293. - dialogs::CategoryListCtrl
  294. - dialogs::VDigitZBulkDialog
  295. - dialogs::VDigitDuplicatesDialog
  296. - dialogs::CheckListFeature
  297. - vdigit::main
  298. - main::VDigit
  299. - vdigit::mapwindow
  300. - mapwindow::VDigitWindow
  301. - vdigit::preferences
  302. - preferences::VDigitSettingsDialog
  303. - vdigit::toolbars
  304. - toolbars::VDigitToolbar
  305. - vdigit::wxvdigit
  306. - wxdigit::VDigitError
  307. - wxdigit::IVDigit
  308. - vdigit::wxdisplay
  309. - wxdisplay::DisplayDriver
  310. \subsection wxnviz 3D view mode (wxNviz)
  311. - nviz::animation
  312. - animation::Animation
  313. - nviz::main
  314. - nviz::mapwindow
  315. - mapwindow::NvizThread
  316. - mapwindow::GLWindow
  317. - nviz::preferences
  318. - preferences::NvizPreferencesDialog
  319. - nviz::tools
  320. - tools::NvizToolWindow
  321. - tools::PositionWindow
  322. - tools::ViewPositionWindow
  323. - tools::LightPositionWindow
  324. - nviz::workspace
  325. - workspace::NvizSettings
  326. - nviz::wxnviz
  327. - wxnviz::Nviz
  328. - wxnviz::Texture
  329. - wxnviz::ImageTexture
  330. - wxnviz::TextTexture
  331. \subsection psmap Cartograpic Composer
  332. - psmap::dialogs
  333. - dialogs::TCValidator
  334. - dialogs::PenStyleComboBox
  335. - dialogs::CheckListCtrl
  336. - dialogs::PsmapDialog
  337. - dialogs::PageSetupDialog
  338. - dialogs::MapDialog
  339. - dialogs::MapFramePanel
  340. - dialogs::RasterPanel
  341. - dialogs::VectorPanel
  342. - dialogs::RasterDialog
  343. - dialogs::MainVectorDialog
  344. - dialogs::VPropertiesDialog
  345. - dialogs::LegendDialog
  346. - dialogs::MapinfoDialog
  347. - dialogs::ScalebarDialog
  348. - dialogs::TextDialog
  349. - dialogs::ImageDialog
  350. - dialogs::NorthArrowDialog
  351. - psmap::instructions
  352. - dialogs::Instruction
  353. - dialogs::InstructionObject
  354. - dialogs::InitMap
  355. - dialogs::MapFrame
  356. - dialogs::PageSetup
  357. - dialogs::Mapinfo
  358. - dialogs::Text
  359. - dialogs::Image
  360. - dialogs::NorthArrow
  361. - dialogs::Point
  362. - dialogs::Line
  363. - dialogs::Rectangle
  364. - dialogs::Scalebar
  365. - dialogs::RasterLegend
  366. - dialogs::VectorLegend
  367. - dialogs::Raster
  368. - dialogs::Vector
  369. - dialogs::VProperties
  370. - psmap::utils
  371. - utils::Rect2D
  372. - utils::Rect2DPP
  373. - utils::Rect2DPS
  374. - utils::UnitConversion
  375. - psmap::frame
  376. - frame::PsMapFrame
  377. - frame::PsMapBufferedWindow
  378. - psmap::menudata
  379. - menudata::PsMapData
  380. - psmap::toolbars
  381. - toolbars::PsMapToolbar
  382. \subsection locWizard Location Wizard
  383. - location_wizard::base
  384. - location_wizard::BaseClass
  385. - location_wizard::dialogs
  386. - dialogs::RegionDef
  387. - dialogs::TransList
  388. - dialogs::SelectTransformDialog
  389. - location_wizard::wizard
  390. - wizard::TitledPage
  391. - wizard::DatabasePage
  392. - wizard::CoordinateSystemPage
  393. - wizard::ProjectionsPage
  394. - wizard::ItemList
  395. - wizard::ProjParamsPage
  396. - wizard::DatumPage
  397. - wizard::EllipsePage
  398. - wizard::GeoreferencedFilePage
  399. - wizard::EPSGPage
  400. - wizard::CustomPage
  401. - wizard::SummaryPage
  402. - wizard::LocationWizard
  403. \subsection plot Plotting modules
  404. - wxplot::base
  405. - base::BasePlotFrame
  406. - wxplot::dialogs
  407. - dialogs::ProfileRasterDialog
  408. - dialogs::ScatterRasterDialog
  409. - dialogs::PlotStatsFrame
  410. - dialogs::HistRasterDialog
  411. - dialogs::TextDialog
  412. - dialogs::OptDialog
  413. - wxplot::histogram
  414. - histogram::Histogram2Frame
  415. - histogram::Histogram2Toolbar
  416. - wxplot::profile
  417. - profile::ProfileFrame
  418. - profile::ProfileToolbar
  419. - wxplot::scatter
  420. - scatter::ScatterFrame
  421. - scatter::ScatterToolbar
  422. \subsection wxIClass wxIClass
  423. - iclass::dialogs
  424. - dialogs::IClassGroupDialog
  425. - dialogs::IClassMapDialog
  426. - dialogs::IClassCategoryManagerDialog
  427. - dialogs::CategoryListCtrl
  428. - dialogs::IClassSignatureFileDialog
  429. - iclass::digit
  430. - digit::IClassVDigit
  431. - digit::IClassVDigitWindow
  432. - iclass::frame
  433. - frame::IClassMapFrame
  434. - frame::MapManager
  435. - iclass::plots
  436. - plots::PlotPanel
  437. - iclass::statistics
  438. - statistics::Statistics
  439. - statistics::BandStatistics
  440. - iclass::toolbars
  441. - toolbars::IClassMapToolbar
  442. - toolbars::IClassToolbar
  443. - toolbars::IClassMapManagerToolbar
  444. - toolbars::IClassMiscToolbar
  445. \subsection mapswipe Map Swipe
  446. - mapswipe::frame
  447. - frame::SwipeMapFrame
  448. - frame::MapSplitter
  449. - mapswipe::mapwindow
  450. - mapwindow::SwipeBufferedWindow
  451. - mapwindow::_MouseEvent
  452. - mapswipe::dialogs
  453. - dialogs::SwipeMapDialog
  454. - mapswipe::toolbars
  455. - toolbars::SwipeMapToolbar
  456. - toolbars::SwipeMainToolbar
  457. - toolbars::SwipeMiscToolbar
  458. \subsection other Other GUI modules
  459. - modules::colorrules
  460. - colorrules::RulesPanel
  461. - colorrules::ColorTable
  462. - colorrules::RasterColorTable
  463. - colorrules::VectorColorTable
  464. - colorrules::ThematicVectorTable
  465. - colorrules::BufferedWindow
  466. - modules::extensions
  467. - extensions::InstallExtensionWindow
  468. - extensions::ExtensionTree
  469. - extensions::UninstallExtensionWindow
  470. - extensions::CheckListExtension
  471. - modules::histogram
  472. - histogram::BufferedWindow
  473. - histogram::HistogramFrame
  474. - histogram::HistogramToolbar
  475. - modules::mcalc_builder
  476. - mcalc_builder::MapCalcFrame
  477. - modules::ogc_services
  478. - ogc_services::WMSDialog
  479. - ogc_services::LayersList
  480. - modules::vclean
  481. - vclean::VectorCleaningFrame
  482. \section devel Further Development
  483. Ongoing development focuses on stability, portability and on the
  484. integration of OpenGL (see \ref wxnviz).
  485. A Map Composer, a tool for hardcopy map outputs is also planned to be
  486. developed. Currently, the tools for creating hardcopy maps (map
  487. layout) are limited in GRASS because its focus on modeling and spatial
  488. analysis. GRASS gives the user ability to add only a very simple and
  489. standardized legend, north arrow and scale to display to the graphics
  490. monitor and then export the display to an external image file such as
  491. a png. These map features are very basic and cannot be customized. The
  492. goal is to allow users to prepare simple cartographic outputs
  493. comparable e.g. with other, proprietary GIS map layout functionality.
  494. For more info see http://trac.osgeo.org/grass/wiki/wxGUIDevelopment
  495. \section seeAlso See also
  496. - GRASS User Wiki - http://grass.osgeo.org/wiki/WxGUI
  497. - GRASS Devs Wiki - http://trac.osgeo.org/grass/wiki/wxGUIDevelopment
  498. \section refs References
  499. - M. Landa, C. Moretto, M. Neteler, M. Zanolli, L. Manganelli, 2008: wxPython GUI per GRASS GIS. Proc. IX Meeting degli Utenti Italiani di GRASS - GFOSS - 21-22 Feb 2008, Perugia, Italy (<a href="http://geo.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf">PDF</a>)
  500. */