toolbars.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. """
  2. @package gmodeler.toolbars
  3. @brief wxGUI Graphical Modeler toolbars classes
  4. Classes:
  5. - toolbars::ModelerToolbar
  6. (C) 2010-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 Martin Landa <landa.martin 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 icons.icon import MetaIcon
  17. class ModelerToolbar(BaseToolbar):
  18. """Graphical modeler toolbaro (see gmodeler.py)
  19. """
  20. def __init__(self, parent):
  21. BaseToolbar.__init__(self, parent)
  22. # workaround for http://trac.wxwidgets.org/ticket/13888
  23. if sys.platform == 'darwin':
  24. parent.SetToolBar(self)
  25. self.InitToolbar(self._toolbarData())
  26. # realize the toolbar
  27. self.Realize()
  28. def _toolbarData(self):
  29. """Toolbar data"""
  30. icons = {
  31. 'new': MetaIcon(img='create',
  32. label=_('Create new model (Ctrl+N)')),
  33. 'open': MetaIcon(img='open',
  34. label=_('Load model from file (Ctrl+O)')),
  35. 'save': MetaIcon(img='save',
  36. label=_('Save current model to file (Ctrl+S)')),
  37. 'toImage': MetaIcon(img='image-export',
  38. label=_('Export model to image')),
  39. 'toPython': MetaIcon(img='python-export',
  40. label=_('Export model to Python script')),
  41. 'actionAdd': MetaIcon(img='module-add',
  42. label=_('Add command (GRASS module) to model')),
  43. 'dataAdd': MetaIcon(img='data-add',
  44. label=_('Add data to model')),
  45. 'relation': MetaIcon(img='relation-create',
  46. label=_('Manually define relation between data and commands')),
  47. 'loop': MetaIcon(img='loop-add',
  48. label=_('Add loop/series to model')),
  49. 'comment': MetaIcon(img='label-add',
  50. label=_('Add comment to model')),
  51. 'run': MetaIcon(img='execute',
  52. label=_('Run model')),
  53. 'validate': MetaIcon(img='check',
  54. label=_('Validate model')),
  55. 'settings': BaseIcons['settings'].SetLabel(_('Modeler settings')),
  56. 'properties': MetaIcon(img='options',
  57. label=_('Show model properties')),
  58. 'variables': MetaIcon(img='modeler-variables',
  59. label=_('Manage model variables')),
  60. 'redraw': MetaIcon(img='redraw',
  61. label=_('Redraw model canvas')),
  62. 'quit': BaseIcons['quit'].SetLabel(_('Quit Graphical Modeler')),
  63. }
  64. return self._getToolbarData((('new', icons['new'],
  65. self.parent.OnModelNew),
  66. ('open', icons['open'],
  67. self.parent.OnModelOpen),
  68. ('save', icons['save'],
  69. self.parent.OnModelSave),
  70. ('image', icons['toImage'],
  71. self.parent.OnExportImage),
  72. ('python', icons['toPython'],
  73. self.parent.OnExportPython),
  74. (None, ),
  75. ('action', icons['actionAdd'],
  76. self.parent.OnAddAction),
  77. ('data', icons['dataAdd'],
  78. self.parent.OnAddData),
  79. ('relation', icons['relation'],
  80. self.parent.OnDefineRelation),
  81. ('loop', icons['loop'],
  82. self.parent.OnDefineLoop),
  83. ('comment', icons['comment'],
  84. self.parent.OnAddComment),
  85. (None, ),
  86. ('redraw', icons['redraw'],
  87. self.parent.OnCanvasRefresh),
  88. ('validate', icons['validate'],
  89. self.parent.OnValidateModel),
  90. ('run', icons['run'],
  91. self.parent.OnRunModel),
  92. (None, ),
  93. ("variables", icons['variables'],
  94. self.parent.OnVariables),
  95. ("settings", icons['settings'],
  96. self.parent.OnPreferences),
  97. ("help", BaseIcons['help'],
  98. self.parent.OnHelp),
  99. (None, ),
  100. ('quit', icons['quit'],
  101. self.parent.OnCloseWindow))
  102. )