toolbars.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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 gui_core.toolbars import BaseToolbar
  17. sys.path.append(os.path.join(globalvar.ETCWXDIR, "icons"))
  18. from icon import Icons
  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 = Icons['georectify']
  30. return self._getToolbarData((('gcpSave', icons["gcpSave"],
  31. self.parent.SaveGCPs),
  32. ('gcpReload', icons["gcpReload"],
  33. self.parent.ReloadGCPs),
  34. (None, ),
  35. ('gcpAdd', icons["gcpAdd"],
  36. self.parent.AddGCP),
  37. ('gcpDelete', icons["gcpDelete"],
  38. self.parent.DeleteGCP),
  39. ('gcpClear', icons["gcpClear"],
  40. self.parent.ClearGCP),
  41. (None, ),
  42. ('rms', icons["gcpRms"],
  43. self.parent.OnRMS),
  44. ('georect', icons["georectify"],
  45. self.parent.OnGeorect))
  46. )
  47. class GCPDisplayToolbar(BaseToolbar):
  48. """!GCP Display toolbar
  49. """
  50. def __init__(self, parent):
  51. """!GCP Display toolbar constructor
  52. """
  53. BaseToolbar.__init__(self, parent)
  54. self.InitToolbar(self._toolbarData())
  55. # add tool to toggle active map window
  56. self.togglemapid = wx.NewId()
  57. self.togglemap = wx.Choice(parent = self, id = self.togglemapid,
  58. choices = [_('source'), _('target')],
  59. style = wx.CB_READONLY)
  60. self.InsertControl(10, self.togglemap)
  61. self.SetToolShortHelp(self.togglemapid, '%s %s %s' % (_('Set map canvas for '),
  62. Icons['displayWindow']["zoomBack"].GetLabel(),
  63. _(' / Zoom to map')))
  64. # realize the toolbar
  65. self.Realize()
  66. self.action = { 'id' : self.gcpset }
  67. self.defaultAction = { 'id' : self.gcpset,
  68. 'bind' : self.parent.OnPointer }
  69. self.OnTool(None)
  70. self.EnableTool(self.zoomback, False)
  71. def _toolbarData(self):
  72. """!Toolbar data"""
  73. icons = Icons['displayWindow']
  74. return self._getToolbarData((("displaymap", icons["display"],
  75. self.parent.OnDraw),
  76. ("rendermap", icons["render"],
  77. self.parent.OnRender),
  78. ("erase", icons["erase"],
  79. self.parent.OnErase),
  80. (None, ),
  81. ("gcpset", Icons["georectify"]["gcpSet"],
  82. self.parent.OnPointer),
  83. ("pan", icons["pan"],
  84. self.parent.OnPan),
  85. ("zoomin", icons["zoomIn"],
  86. self.parent.OnZoomIn),
  87. ("zoomout", icons["zoomOut"],
  88. self.parent.OnZoomOut),
  89. ("zoommenu", icons["zoomMenu"],
  90. self.parent.OnZoomMenuGCP),
  91. (None, ),
  92. ("zoomback", icons["zoomBack"],
  93. self.parent.OnZoomBack),
  94. ("zoomtomap", icons["zoomExtent"],
  95. self.parent.OnZoomToMap),
  96. (None, ),
  97. ('settings', Icons["georectify"]["settings"],
  98. self.parent.OnSettings),
  99. ('help', Icons["misc"]["help"],
  100. self.parent.OnHelp),
  101. (None, ),
  102. ('quit', Icons["georectify"]["quit"],
  103. self.parent.OnQuit))
  104. )