toolbars.py 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. """!
  2. @package psmap.toolbars
  3. @brief wxPsMap toolbars classes
  4. Classes:
  5. - toolbars::PsMapToolbar
  6. (C) 2007-2011 by the GRASS Development Team
  7. This program is free software under the GNU General Public License
  8. (>=v2). Read the file COPYING that comes with GRASS for details.
  9. @author Anna Kratochvilova <kratochanna gmail.com>
  10. """
  11. import os
  12. import sys
  13. import wx
  14. from core import globalvar
  15. from gui_core.toolbars import BaseToolbar, BaseIcons
  16. from icon import MetaIcon
  17. class PsMapToolbar(BaseToolbar):
  18. def __init__(self, parent):
  19. """!Toolbar Cartographic Composer (psmap.py)
  20. @param parent parent window
  21. """
  22. BaseToolbar.__init__(self, parent)
  23. self.InitToolbar(self._toolbarData())
  24. self.Realize()
  25. self.action = { 'id' : self.pointer }
  26. self.defaultAction = { 'id' : self.pointer,
  27. 'bind' : self.parent.OnPointer }
  28. self.OnTool(None)
  29. from psmap.frame import havePILImage
  30. if not havePILImage:
  31. self.EnableTool(self.preview, False)
  32. def _toolbarData(self):
  33. """!Toolbar data
  34. """
  35. icons = {
  36. 'scriptSave' : MetaIcon(img = 'script-save',
  37. label = _('Generate text file with mapping instructions')),
  38. 'scriptLoad' : MetaIcon(img = 'script-load',
  39. label = _('Load text file with mapping instructions')),
  40. 'psExport' : MetaIcon(img = 'ps-export',
  41. label = _('Generate PostScript output')),
  42. 'pdfExport' : MetaIcon(img = 'pdf-export',
  43. label = _('Generate PDF output')),
  44. 'pageSetup' : MetaIcon(img = 'page-settings',
  45. label = _('Page setup'),
  46. desc = _('Specify paper size, margins and orientation')),
  47. 'fullExtent' : MetaIcon(img = 'zoom-extent',
  48. label = _("Full extent"),
  49. desc = _("Zoom to full extent")),
  50. 'addMap' : MetaIcon(img = 'layer-add',
  51. label = _("Map frame"),
  52. desc = _("Click and drag to place map frame")),
  53. 'deleteObj' : MetaIcon(img = 'layer-remove',
  54. label = _("Delete selected object")),
  55. 'preview' : MetaIcon(img = 'execute',
  56. label = _("Show preview")),
  57. 'quit' : MetaIcon(img = 'quit',
  58. label = _('Quit Cartographic Composer')),
  59. 'addText' : MetaIcon(img = 'text-add',
  60. label = _('Text')),
  61. 'addMapinfo' : MetaIcon(img = 'map-info',
  62. label = _('Map info')),
  63. 'addLegend' : MetaIcon(img = 'legend-add',
  64. label = _('Legend')),
  65. 'addScalebar' : MetaIcon(img = 'scalebar-add',
  66. label = _('Scale bar')),
  67. 'addImage' : MetaIcon(img = 'image-add',
  68. label = _('Image')),
  69. 'addNorthArrow': MetaIcon(img = 'north-arrow-add',
  70. label = _('North Arrow')),
  71. }
  72. return self._getToolbarData((('loadFile', icons['scriptLoad'],
  73. self.parent.OnLoadFile),
  74. ('instructionFile', icons['scriptSave'],
  75. self.parent.OnInstructionFile),
  76. (None, ),
  77. ('pagesetup', icons['pageSetup'],
  78. self.parent.OnPageSetup),
  79. (None, ),
  80. ("pointer", BaseIcons["pointer"],
  81. self.parent.OnPointer, wx.ITEM_CHECK),
  82. ('pan', BaseIcons['pan'],
  83. self.parent.OnPan, wx.ITEM_CHECK),
  84. ("zoomin", BaseIcons["zoomIn"],
  85. self.parent.OnZoomIn, wx.ITEM_CHECK),
  86. ("zoomout", BaseIcons["zoomOut"],
  87. self.parent.OnZoomOut, wx.ITEM_CHECK),
  88. ('zoomAll', icons['fullExtent'],
  89. self.parent.OnZoomAll),
  90. (None, ),
  91. ('addMap', icons['addMap'],
  92. self.parent.OnAddMap, wx.ITEM_CHECK),
  93. ('addRaster', BaseIcons['addRast'],
  94. self.parent.OnAddRaster),
  95. ('addVector', BaseIcons['addVect'],
  96. self.parent.OnAddVect),
  97. ("dec", BaseIcons["overlay"],
  98. self.OnDecoration),
  99. ("delete", icons["deleteObj"],
  100. self.parent.OnDelete),
  101. (None, ),
  102. ("preview", icons["preview"],
  103. self.parent.OnPreview),
  104. ('generatePS', icons['psExport'],
  105. self.parent.OnPSFile),
  106. ('generatePDF', icons['pdfExport'],
  107. self.parent.OnPDFFile),
  108. (None, ),
  109. ("help", BaseIcons['help'],
  110. self.parent.OnHelp),
  111. ('quit', icons['quit'],
  112. self.parent.OnCloseWindow))
  113. )
  114. def OnDecoration(self, event):
  115. """!Decorations overlay menu
  116. """
  117. self._onMenu(((PsMapIcons["addLegend"], self.parent.OnAddLegend),
  118. (PsMapIcons["addMapinfo"], self.parent.OnAddMapinfo),
  119. (PsMapIcons["addScalebar"], self.parent.OnAddScalebar),
  120. (PsMapIcons["addText"], self.parent.OnAddText),
  121. (PsMapIcons["addImage"], self.parent.OnAddImage),
  122. (PsMapIcons["addNorthArrow"], self.parent.OnAddNorthArrow)))