/*! \page wxpythonlib GRASS wxPython-based GUI
The GUI (Graphical User Interface) is written in the Python
programming language using wxPython library - a blending of
the wxWidgets library for
Python.
The wxPython GUI (so called wxGUI) is composed of two main
components:
- Layer Manager and
- Map Display Window.
The Layer Manager allows users to run different GRASS modules
from a menu, includes map layer management, integrated command-line
prompt, and command output window. The Map Display Window
integrates basic tools for zooming, panning, data querying,
decorations (north arrows, barscale, etc.). Additional tools like
vector digitizer or georectification tool are also available.
\tableofcontents
\par Related pages
\subpage wxguitoolboxes
\section background Background
The plan for a native GUI for GRASS found its origin in the project GFOSS-TN,
a collaboration between FBK
(Fondazione Bruno Kessler) and the Information System Service of the
Trento municipality (Italy). The wxGUI is successor of Tcl/Tk GUI
available in GRASS 5 and GRASS 6.
\section classes List of Modules and Classes
\subsection core Core modules
- core::debug
- debug::DebugMsg
- core::globalvar
- core::gcmd
- gcmd::GError
- gcmd::GWarning
- gcmd::GMessage
- gcmd::GException
- gcmd::Popen
- gcmd::Command
- gcmd::CommandThread
- core::gconsole
- goutput::CmdThread
- goutput::GStdout
- goutput::GStderr
- goutput::GConsole
- core::menutree
- menutree::MenuTreeModelBuilder
- core::modulesdata
- modulesdata::ModulesData
- core::render
- render::Layer
- render::MapLayer
- render::Overlay
- render::Map
- core::settings
- settings::Settings
- core::units
- units::BaseUnits
- core::utils
- core::workspace
- workspace::ProcessWorkspaceFile
- workspace::WriteWorkspaceFile
- workspace::ProcessGrcFile
\subsection gui_core GUI core modules
- gui_core::dialogs
- dialogs::SimpleDialog
- dialogs::LocationDialog
- dialogs::MapsetDialog
- dialogs::NewVectorDialog
- dialogs::SavedRegion
- dialogs::DecorationDialog
- dialogs::TextLayerDialog
- dialogs::GroupDialog
- dialogs::MapLayersDialog
- dialogs::ImportDialog
- dialogs::GdalImportDialog
- dialogs::GdalOutputDialog
- dialogs::DxfImportDialog
- dialogs::LayersList (used by MultiImport)
- dialogs::SetOpacityDialog
- dialogs::StaticWrapText
- dialogs::ImageSizeDialog
- dialogs::SqlQueryFrame
- dialogs::SymbolDialog
- gui_core::forms
- forms::TaskFrame
- forms::CmdPanel
- forms::GrassGUIApp
- gui_core::ghelp
- ghelp::AboutWindow
- ghelp::HelpFrame
- ghelp::HelpWindow
- ghelp::HelpPanel
- gui_core::goutput
- goutput::GConsoleWindow
- goutput::GStc
- gui_core::gselect
- gselect::Select
- gselect::VectorSelect
- gselect::TreeCrtlComboPopup
- gselect::VectorDBInfo
- gselect::LayerSelect
- gselect::DriverSelect
- gselect::DatabaseSelect
- gselect::ColumnSelect
- gselect::DbaseSelect
- gselect::LocationSelect
- gselect::MapsetSelect
- gselect::SubGroupSelect
- gselect::FormatSelect
- gselect::GdalSelect
- gselect::ProjSelect
- gselect::ElementSelect
- gselect::OgrTypeSelect
- gui_core::mapdisp
- mapdisp::MapFrameBase
- mapdisp::SingleMapFrame
- mapdisp::DoubleMapFrame
- gui_core::mapwindow
- mapwindow::MapWindow
- gui_core::menu
- menu::Menu
- menu::SearchModuleWindow
- gui_core::preferences
- preferences::PreferencesBaseDialog
- preferences::PreferencesDialog
- preferences::DefaultFontDialog
- preferences::MapsetAccess
- gui_core::prompt
- prompt::GPrompt
- prompt::GPromptSTC
- gui_core::query
- query::QueryDialog
- gui_core::toolbars
- toolbars::BaseToolbar
- gui_core::treeview
- treeview::TreeView
- gui_core::widgets
- widgets::ScrolledPanel
- widgets::NTCValidator
- widgets::SimpleValidator
- widgets::NumTextCtrl
- widgets::FloatSlider
- widgets::SymbolButton
- widgets::StaticWrapText
- widgets::BaseValidator
- widgets::IntegerValidator
- widgets::FloatValidator
- widgets::NTCValidator
- widgets::SearchModuleWidget
\subsection lmgr Layer Manager
- wxgui
- wxgui::GMApp
- wxgui::Usage
- lmgr::layertree
- lmgr::LayerTree
- lmgr::menudata
- menudata::LayerManagerMenuData
- lmgr::pyshell
- pyshell::PyShellWindow
- lmgr::toolbars
- toolbars::LMWorkspaceToolbar
- toolbars::LMDataToolbar
- toolbars::LMToolsToolbar
- toolbars::LMMiscToolbar
- toolbars::LMVectorToolbar
- toolbars::LMNvizToolbar
- lmgr::frame
- frame::GMFrame
\subsection mapdisp Map Display Window
- mapdisp::frame
- mapdisp::MapFrame
- mapdisp::MapApp
- mapdisp::gprint
- gprint::MapPrint
- gprint::PrintOptions
- mapdisp::mapwindow
- mapwindow::BufferedWindow
- mapdisp::statusbar
- statusbar::SbException
- statusbar::SbManager
- statusbar::SbItem
- statusbar::SbRender
- statusbar::SbShowRegion
- statusbar::SbAlignExtent
- statusbar::SbResolution
- statusbar::SbMapScale
- statusbar::SbGoTo
- statusbar::SbProjection
- statusbar::SbMask
- statusbar::SbTextItem
- statusbar::SbDisplayGeometry
- statusbar::SbCoordinates
- statusbar::SbRegionExtent
- statusbar::SbCompRegionExtent
- statusbar::SbProgress
- mapdisp::toolbars
- toolbars::MapToolbar
\subsection wscreen Welcome screen
- gis_set_error
- gis_set
- gis_set::GRASSStartup
- gis_set::StartUp
- gis_set::GListBox
\subsection dbmgr Database Manager
- dbmgr::dialogs
- dialogs::DisplayAttributesDialog
- dialogs::ModifyTableRecord
- dbmgr::manager
- manager::Log
- manager::VirtualAttributeList
- manager::AttributeManager
- manager::TableListCtrl
- manager::LayerListCtrl
- manager::LayerBook
- dbmgr::sqlbuilder
- sqlbuilder::SQLFrame
- dbmgr::vinfo
- vinfo::VectorDBInfo
\subsection gpc Georectifier
- gcp::manager
- manager::GCPWizard
- manager::LocationPage
- manager::GroupPage
- manager::DispMapPage
- manager::GCP
- manager::GCPList
- manager::VectGroup
- manager::EditGCP
- manager::GrSettingsDialog
- gcp::mapdisplay
- mapdisplay::MapFrame
- gcp::toolbars
- toolbars::GCPMapToolbar
- toolbars::GCPDisplayToolbar
\subsection gmodeler Graphical Modeler
- gmodeler::dialogs
- dialogs::ModelDataDialog
- dialogs::ModelSearchDialog
- dialogs::ModelRelationDialog
- dialogs::ModelItemDialog
- dialogs::ModelLoopDialog
- dialogs::ModelConditionDialog
- dialogs::ModelListCtrl
- dialogs::ValiableListCtrl
- dialogs::ItemListCtrl
- dialogs::ItemCheckListCtrl
- gmodeler::frame
- frame::ModelToolbar
- frame::ModelFrame
- frame::ModelCanvas
- frame::ModelEvtHandler
- frame::VariablePanel
- frame::ItemPanel
- frame::PythonPanel
- gmodeler::menudata
- menudata::ModelerMenuData
- gmodeler::model
- model::Model
- model::ModelObject
- model::ModelAction
- model::ModelData
- model::ModelRelation
- model::ModelItem
- model::ModelLoop
- model::ModelCondition
- model::ProcessModelFile
- model::WriteModelFile
- model::WritePythonFile
- model::ModelParamDialog
- gmodeler::preferences
- preferences::PreferencesDialog
- preferences::PropertiesDialog
- gmodeler::pystc
- pystc::PyStc
\subsection vdigit Vector digitizer
- vdigit::dialogs
- dialogs::VDigitCategoryDialog
- dialogs::CategoryListCtrl
- dialogs::VDigitZBulkDialog
- dialogs::VDigitDuplicatesDialog
- dialogs::CheckListFeature
- vdigit::main
- main::VDigit
- vdigit::mapwindow
- mapwindow::VDigitWindow
- vdigit::preferences
- preferences::VDigitSettingsDialog
- vdigit::toolbars
- toolbars::VDigitToolbar
- vdigit::wxvdigit
- wxdigit::VDigitError
- wxdigit::IVDigit
- vdigit::wxdisplay
- wxdisplay::DisplayDriver
\subsection wxnviz 3D view mode (wxNviz)
- nviz::animation
- animation::Animation
- nviz::main
- nviz::mapwindow
- mapwindow::NvizThread
- mapwindow::GLWindow
- nviz::preferences
- preferences::NvizPreferencesDialog
- nviz::tools
- tools::NvizToolWindow
- tools::PositionWindow
- tools::ViewPositionWindow
- tools::LightPositionWindow
- nviz::workspace
- workspace::NvizSettings
- nviz::wxnviz
- wxnviz::Nviz
- wxnviz::Texture
- wxnviz::ImageTexture
- wxnviz::TextTexture
\subsection psmap Cartograpic Composer
- psmap::dialogs
- dialogs::TCValidator
- dialogs::PenStyleComboBox
- dialogs::CheckListCtrl
- dialogs::PsmapDialog
- dialogs::PageSetupDialog
- dialogs::MapDialog
- dialogs::MapFramePanel
- dialogs::RasterPanel
- dialogs::VectorPanel
- dialogs::RasterDialog
- dialogs::MainVectorDialog
- dialogs::VPropertiesDialog
- dialogs::LegendDialog
- dialogs::MapinfoDialog
- dialogs::ScalebarDialog
- dialogs::TextDialog
- dialogs::ImageDialog
- dialogs::NorthArrowDialog
- psmap::instructions
- dialogs::Instruction
- dialogs::InstructionObject
- dialogs::InitMap
- dialogs::MapFrame
- dialogs::PageSetup
- dialogs::Mapinfo
- dialogs::Text
- dialogs::Image
- dialogs::NorthArrow
- dialogs::Point
- dialogs::Line
- dialogs::Rectangle
- dialogs::Scalebar
- dialogs::RasterLegend
- dialogs::VectorLegend
- dialogs::Raster
- dialogs::Vector
- dialogs::VProperties
- psmap::utils
- utils::Rect2D
- utils::Rect2DPP
- utils::Rect2DPS
- utils::UnitConversion
- psmap::frame
- frame::PsMapFrame
- frame::PsMapBufferedWindow
- psmap::menudata
- menudata::PsMapMenuData
- psmap::toolbars
- toolbars::PsMapToolbar
\subsection locWizard Location Wizard
- location_wizard::base
- location_wizard::BaseClass
- location_wizard::dialogs
- dialogs::RegionDef
- dialogs::TransList
- dialogs::SelectTransformDialog
- location_wizard::wizard
- wizard::TitledPage
- wizard::DatabasePage
- wizard::CoordinateSystemPage
- wizard::ProjectionsPage
- wizard::ItemList
- wizard::ProjParamsPage
- wizard::DatumPage
- wizard::EllipsePage
- wizard::GeoreferencedFilePage
- wizard::EPSGPage
- wizard::CustomPage
- wizard::SummaryPage
- wizard::LocationWizard
\subsection plot Plotting modules
- wxplot::base
- base::BasePlotFrame
- wxplot::dialogs
- dialogs::ProfileRasterDialog
- dialogs::ScatterRasterDialog
- dialogs::PlotStatsFrame
- dialogs::HistRasterDialog
- dialogs::TextDialog
- dialogs::OptDialog
- wxplot::histogram
- histogram::Histogram2Frame
- histogram::Histogram2Toolbar
- wxplot::profile
- profile::ProfileFrame
- profile::ProfileToolbar
- wxplot::scatter
- scatter::ScatterFrame
- scatter::ScatterToolbar
\subsection wxIClass wxIClass
- iclass::dialogs
- dialogs::IClassGroupDialog
- dialogs::IClassMapDialog
- dialogs::IClassCategoryManagerDialog
- dialogs::CategoryListCtrl
- dialogs::IClassSignatureFileDialog
- iclass::digit
- digit::IClassVDigit
- digit::IClassVDigitWindow
- iclass::frame
- frame::IClassMapFrame
- frame::MapManager
- iclass::plots
- plots::PlotPanel
- iclass::statistics
- statistics::Statistics
- statistics::BandStatistics
- iclass::toolbars
- toolbars::IClassMapToolbar
- toolbars::IClassToolbar
- toolbars::IClassMapManagerToolbar
- toolbars::IClassMiscToolbar
\subsection mapswipe Map Swipe
- mapswipe::frame
- frame::SwipeMapFrame
- frame::MapSplitter
- mapswipe::mapwindow
- mapwindow::SwipeBufferedWindow
- mapwindow::_MouseEvent
- mapswipe::dialogs
- dialogs::SwipeMapDialog
- mapswipe::toolbars
- toolbars::SwipeMapToolbar
- toolbars::SwipeMainToolbar
- toolbars::SwipeMiscToolbar
\subsection other Other GUI modules
- modules::colorrules
- colorrules::RulesPanel
- colorrules::ColorTable
- colorrules::RasterColorTable
- colorrules::VectorColorTable
- colorrules::ThematicVectorTable
- colorrules::BufferedWindow
- modules::extensions
- extensions::InstallExtensionWindow
- extensions::ExtensionTree
- extensions::UninstallExtensionWindow
- extensions::CheckListExtension
- modules::histogram
- histogram::BufferedWindow
- histogram::HistogramFrame
- histogram::HistogramToolbar
- modules::mcalc_builder
- mcalc_builder::MapCalcFrame
- modules::ogc_services
- ogc_services::WMSDialog
- ogc_services::LayersList
- modules::vclean
- vclean::VectorCleaningFrame
\section devel Further Development
Ongoing development focuses on stability, portability and on the
integration of OpenGL (see \ref wxnviz).
A Map Composer, a tool for hardcopy map outputs is also planned to be
developed. Currently, the tools for creating hardcopy maps (map
layout) are limited in GRASS because its focus on modeling and spatial
analysis. GRASS gives the user ability to add only a very simple and
standardized legend, north arrow and scale to display to the graphics
monitor and then export the display to an external image file such as
a png. These map features are very basic and cannot be customized. The
goal is to allow users to prepare simple cartographic outputs
comparable e.g. with other, proprietary GIS map layout functionality.
For more info see http://trac.osgeo.org/grass/wiki/wxGUIDevelopment
\section seeAlso See also
- GRASS User Wiki - http://grass.osgeo.org/wiki/WxGUI
- GRASS Devs Wiki - http://trac.osgeo.org/grass/wiki/wxGUIDevelopment
\section refs References
- 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 (PDF)
*/