toolbars.py 5.5 KB

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