toolbars.py 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. """
  2. @package gcp.toolbars
  3. @brief Georectification module - toolbars
  4. Classes:
  5. - toolbars::GCPMapToolbar
  6. - toolbars::GCPDisplayToolbar
  7. (C) 2007-2011 by the GRASS Development Team
  8. This program is free software under the GNU General Public License
  9. (>=v2). Read the file COPYING that comes with GRASS for details.
  10. @author Markus Metz
  11. """
  12. import os
  13. import sys
  14. import wx
  15. from core import globalvar
  16. from core.utils import _
  17. from gui_core.toolbars import BaseToolbar, BaseIcons
  18. from icons.icon import MetaIcon
  19. class GCPManToolbar(BaseToolbar):
  20. """Toolbar for managing ground control points
  21. :param parent: reference to GCP widget
  22. """
  23. def __init__(self, parent):
  24. BaseToolbar.__init__(self, parent)
  25. self.InitToolbar(self._toolbarData())
  26. # realize the toolbar
  27. self.Realize()
  28. def _toolbarData(self):
  29. icons = {
  30. 'gcpAdd' : MetaIcon(img = 'gcp-add',
  31. label = _('Add new GCP to the list')),
  32. 'gcpDelete' : MetaIcon(img = 'gcp-delete',
  33. label = _('Delete selected GCP')),
  34. 'gcpClear' : MetaIcon(img = 'gcp-remove',
  35. label = _('Clear selected GCP')),
  36. 'gcpRms' : MetaIcon(img = 'gcp-rms',
  37. label = _('Recalculate RMS error')),
  38. 'georectify' : MetaIcon(img = 'georectify',
  39. label = _('Georectify')),
  40. 'gcpSave' : MetaIcon(img = 'gcp-save',
  41. label = _('Save GCPs to POINTS file')),
  42. 'gcpReload' : MetaIcon(img = 'reload',
  43. label = _('Reload GCPs from POINTS file')),
  44. }
  45. return self._getToolbarData((('gcpAdd', icons["gcpAdd"],
  46. self.parent.AddGCP),
  47. ('gcpDelete', icons["gcpDelete"],
  48. self.parent.DeleteGCP),
  49. ('gcpClear', icons["gcpClear"],
  50. self.parent.ClearGCP),
  51. (None, ),
  52. ('rms', icons["gcpRms"],
  53. self.parent.OnRMS),
  54. ('georect', icons["georectify"],
  55. self.parent.OnGeorect),
  56. (None, ),
  57. ('gcpSave', icons["gcpSave"],
  58. self.parent.SaveGCPs),
  59. ('gcpReload', icons["gcpReload"],
  60. self.parent.ReloadGCPs))
  61. )
  62. class GCPDisplayToolbar(BaseToolbar):
  63. """GCP Display toolbar
  64. """
  65. def __init__(self, parent, toolSwitcher):
  66. """GCP Display toolbar constructor
  67. """
  68. BaseToolbar.__init__(self, parent, toolSwitcher)
  69. self.InitToolbar(self._toolbarData())
  70. self._default = self.gcpset
  71. # add tool to toggle active map window
  72. self.togglemapid = wx.NewId()
  73. self.togglemap = wx.Choice(parent = self, id = self.togglemapid,
  74. choices = [_('source'), _('target')])
  75. self.InsertControl(10, self.togglemap)
  76. self.SetToolShortHelp(self.togglemapid, '%s %s %s' % (_('Set map canvas for '),
  77. BaseIcons["zoomBack"].GetLabel(),
  78. _(' / Zoom to map')))
  79. for tool in (self.gcpset, self.pan, self.zoomin, self.zoomout):
  80. self.toolSwitcher.AddToolToGroup(group='mouseUse', toolbar=self, tool=tool)
  81. # realize the toolbar
  82. self.Realize()
  83. self.EnableTool(self.zoomback, False)
  84. def _toolbarData(self):
  85. """Toolbar data"""
  86. icons = {
  87. 'gcpSet' : MetaIcon(img = 'gcp-create',
  88. label = _('Update GCP coordinates'),
  89. desc = _('Update GCP coordinates)')),
  90. 'quit' : BaseIcons['quit'].SetLabel(_('Quit georectification tool')),
  91. 'settings' : BaseIcons['settings'].SetLabel( _('Georectifier settings')),
  92. 'help' : BaseIcons['help'].SetLabel(_('Georectifier manual')),
  93. }
  94. return self._getToolbarData((("displaymap", BaseIcons["display"],
  95. self.parent.OnDraw),
  96. ("rendermap", BaseIcons["render"],
  97. self.parent.OnRender),
  98. ("erase", BaseIcons["erase"],
  99. self.parent.OnErase),
  100. (None, ),
  101. ("gcpset", icons["gcpSet"],
  102. self.parent.OnPointer,
  103. wx.ITEM_CHECK),
  104. ("pan", BaseIcons["pan"],
  105. self.parent.OnPan,
  106. wx.ITEM_CHECK),
  107. ("zoomin", BaseIcons["zoomIn"],
  108. self.parent.OnZoomIn,
  109. wx.ITEM_CHECK),
  110. ("zoomout", BaseIcons["zoomOut"],
  111. self.parent.OnZoomOut,
  112. wx.ITEM_CHECK),
  113. ("zoommenu", BaseIcons["zoomMenu"],
  114. self.parent.OnZoomMenuGCP),
  115. (None, ),
  116. ("zoomback", BaseIcons["zoomBack"],
  117. self.parent.OnZoomBack),
  118. ("zoomtomap", BaseIcons["zoomExtent"],
  119. self.parent.OnZoomToMap),
  120. (None, ),
  121. ('settings', icons["settings"],
  122. self.parent.OnSettings),
  123. ('help', icons["help"],
  124. self.parent.OnHelp),
  125. (None, ),
  126. ('quit', icons["quit"],
  127. self.parent.OnQuit))
  128. )