""" @package gcp.toolbars @brief Georectification module - toolbars Classes: - toolbars::GCPMapToolbar - toolbars::GCPDisplayToolbar (C) 2007-2011 by the GRASS Development Team This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details. @author Markus Metz """ import wx from gui_core.toolbars import BaseToolbar, BaseIcons from icons.icon import MetaIcon class GCPManToolbar(BaseToolbar): """Toolbar for managing ground control points :param parent: reference to GCP widget """ def __init__(self, parent): BaseToolbar.__init__(self, parent) self.InitToolbar(self._toolbarData()) # realize the toolbar self.Realize() def _toolbarData(self): icons = { "gcpAdd": MetaIcon(img="gcp-add", label=_("Add new GCP to the list")), "gcpDelete": MetaIcon(img="gcp-delete", label=_("Delete selected GCP")), "gcpClear": MetaIcon(img="gcp-remove", label=_("Clear selected GCP")), "gcpRms": MetaIcon(img="gcp-rms", label=_("Recalculate RMS error")), "georectify": MetaIcon(img="georectify", label=_("Georectify")), "gcpSave": MetaIcon(img="gcp-save", label=_("Save GCPs to POINTS file")), "gcpReload": MetaIcon( img="reload", label=_("Reload GCPs from POINTS file") ), } return self._getToolbarData( ( ("gcpAdd", icons["gcpAdd"], self.parent.AddGCP), ("gcpDelete", icons["gcpDelete"], self.parent.DeleteGCP), ("gcpClear", icons["gcpClear"], self.parent.ClearGCP), (None,), ("rms", icons["gcpRms"], self.parent.OnRMS), ("georect", icons["georectify"], self.parent.OnGeorect), (None,), ("gcpSave", icons["gcpSave"], self.parent.SaveGCPs), ("gcpReload", icons["gcpReload"], self.parent.ReloadGCPs), ) ) class GCPDisplayToolbar(BaseToolbar): """GCP Display toolbar""" def __init__(self, parent, toolSwitcher): """GCP Display toolbar constructor""" BaseToolbar.__init__(self, parent, toolSwitcher) self.InitToolbar(self._toolbarData()) self._default = self.gcpset # add tool to toggle active map window self.togglemap = wx.Choice( parent=self, id=wx.ID_ANY, choices=[_("source"), _("target")] ) self.InsertControl(10, self.togglemap) self.SetToolShortHelp( self.togglemap.GetId(), "%s %s %s" % ( _("Set map canvas for "), BaseIcons["zoomBack"].GetLabel(), _(" / Zoom to map"), ), ) for tool in (self.gcpset, self.pan, self.zoomin, self.zoomout): self.toolSwitcher.AddToolToGroup(group="mouseUse", toolbar=self, tool=tool) # realize the toolbar self.Realize() self.EnableTool(self.zoomback, False) def _toolbarData(self): """Toolbar data""" icons = { "gcpSet": MetaIcon( img="gcp-create", label=_("Update GCP coordinates"), desc=_("Update GCP coordinates)"), ), "quit": BaseIcons["quit"].SetLabel(_("Quit georectification tool")), "settings": BaseIcons["settings"].SetLabel(_("Georectifier settings")), "help": BaseIcons["help"].SetLabel(_("Georectifier manual")), } return self._getToolbarData( ( ("displaymap", BaseIcons["display"], self.parent.OnDraw), ("rendermap", BaseIcons["render"], self.parent.OnRender), ("erase", BaseIcons["erase"], self.parent.OnErase), (None,), ("gcpset", icons["gcpSet"], self.parent.OnPointer, wx.ITEM_CHECK), ("pan", BaseIcons["pan"], self.parent.OnPan, wx.ITEM_CHECK), ("zoomin", BaseIcons["zoomIn"], self.parent.OnZoomIn, wx.ITEM_CHECK), ("zoomout", BaseIcons["zoomOut"], self.parent.OnZoomOut, wx.ITEM_CHECK), ("zoommenu", BaseIcons["zoomMenu"], self.parent.OnZoomMenuGCP), (None,), ("zoomback", BaseIcons["zoomBack"], self.parent.OnZoomBack), ("zoomtomap", BaseIcons["zoomExtent"], self.parent.OnZoomToMap), (None,), ("settings", icons["settings"], self.parent.OnSettings), ("help", icons["help"], self.parent.OnHelp), (None,), ("quit", icons["quit"], self.parent.OnQuit), ) )