GRASS Programmer's Manual  6.5.svn(2012)-r51648
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
psmap/toolbars.py
Go to the documentation of this file.
00001 """!
00002 @package psmap.toolbars
00003 
00004 @brief wxPsMap toolbars classes
00005 
00006 Classes:
00007  - toolbars::PsMapToolbar
00008 
00009 (C) 2007-2011 by the GRASS Development Team
00010 
00011 This program is free software under the GNU General Public License
00012 (>=v2). Read the file COPYING that comes with GRASS for details.
00013 
00014 @author Anna Kratochvilova <kratochanna gmail.com>
00015 """
00016 
00017 import os
00018 import sys
00019 
00020 import wx
00021 
00022 from core              import globalvar
00023 from gui_core.toolbars import BaseToolbar, BaseIcons
00024 from icons.icon        import MetaIcon
00025 
00026 class PsMapToolbar(BaseToolbar):
00027     def __init__(self, parent):
00028         """!Toolbar Cartographic Composer (psmap.py)
00029         
00030         @param parent parent window
00031         """
00032         BaseToolbar.__init__(self, parent)
00033         
00034         self.InitToolbar(self._toolbarData())
00035         
00036         self.Realize()
00037         
00038         self.action = { 'id' : self.pointer }
00039         self.defaultAction = { 'id' : self.pointer,
00040                                'bind' : self.parent.OnPointer }
00041         self.OnTool(None)
00042         
00043         from psmap.frame import havePILImage
00044         if not havePILImage:
00045             self.EnableTool(self.preview, False)
00046         
00047     def _toolbarData(self):
00048         """!Toolbar data
00049         """
00050         icons = {
00051             'scriptSave' : MetaIcon(img = 'script-save',
00052                                     label = _('Generate text file with mapping instructions')),
00053             'scriptLoad' : MetaIcon(img = 'script-load',
00054                                     label = _('Load text file with mapping instructions')),                           
00055             'psExport'   : MetaIcon(img = 'ps-export',
00056                                     label = _('Generate PostScript output')),
00057             'pdfExport'  : MetaIcon(img = 'pdf-export',
00058                                     label = _('Generate PDF output')),
00059             'pageSetup'  : MetaIcon(img = 'page-settings',
00060                                     label = _('Page setup'),
00061                                     desc = _('Specify paper size, margins and orientation')),
00062             'fullExtent' : MetaIcon(img = 'zoom-extent',
00063                                     label = _("Full extent"),
00064                                     desc = _("Zoom to full extent")),
00065             'addMap'     : MetaIcon(img = 'layer-add',
00066                                     label = _("Map frame"),
00067                                     desc = _("Click and drag to place map frame")),
00068             'deleteObj'  : MetaIcon(img = 'layer-remove',
00069                                     label = _("Delete selected object")),
00070             'preview'    : MetaIcon(img = 'execute',
00071                                     label = _("Show preview")),
00072             'quit'       : MetaIcon(img = 'quit',
00073                                     label = _('Quit Cartographic Composer')),
00074             'addText'    : MetaIcon(img = 'text-add',
00075                                     label = _('Text')),
00076             'addMapinfo' : MetaIcon(img = 'map-info',
00077                                     label = _('Map info')),
00078             'addLegend'  : MetaIcon(img = 'legend-add',
00079                                     label = _('Legend')),
00080             'addScalebar' : MetaIcon(img = 'scalebar-add',
00081                                      label = _('Scale bar')),
00082             'addImage'   : MetaIcon(img = 'image-add',
00083                                     label = _('Image')),
00084             'addNorthArrow': MetaIcon(img = 'north-arrow-add',
00085                                       label = _('North Arrow')),
00086             'drawGraphics': MetaIcon(img = 'edit',
00087                                      label = _('Add simple graphics')),
00088             'pointAdd'    : MetaIcon(img = '',
00089                                      label = _('Point')),
00090             'lineAdd'     : MetaIcon(img = '',
00091                                      label = _('Line')),
00092             'rectangleAdd': MetaIcon(img = '',
00093                                      label = _('Rectangle')),
00094             }
00095         self.icons = icons
00096         
00097         return self._getToolbarData((('loadFile', icons['scriptLoad'],
00098                                       self.parent.OnLoadFile),                                    
00099                                      ('instructionFile', icons['scriptSave'],
00100                                       self.parent.OnInstructionFile),
00101                                      (None, ),
00102                                      ('pagesetup', icons['pageSetup'],
00103                                       self.parent.OnPageSetup),
00104                                      (None, ),
00105                                      ("pointer", BaseIcons["pointer"],
00106                                       self.parent.OnPointer, wx.ITEM_CHECK),
00107                                      ('pan', BaseIcons['pan'],
00108                                       self.parent.OnPan, wx.ITEM_CHECK),
00109                                      ("zoomin", BaseIcons["zoomIn"],
00110                                       self.parent.OnZoomIn, wx.ITEM_CHECK),
00111                                      ("zoomout", BaseIcons["zoomOut"],
00112                                       self.parent.OnZoomOut, wx.ITEM_CHECK),
00113                                      ('zoomAll', icons['fullExtent'],
00114                                       self.parent.OnZoomAll),
00115                                      (None, ),
00116                                      ('addMap', icons['addMap'],
00117                                       self.parent.OnAddMap, wx.ITEM_CHECK),
00118                                      ('addRaster', BaseIcons['addRast'],
00119                                       self.parent.OnAddRaster),
00120                                      ('addVector', BaseIcons['addVect'],
00121                                       self.parent.OnAddVect),
00122                                      ("dec", BaseIcons["overlay"],
00123                                       self.OnDecoration),
00124                                      ("drawGraphics", icons["drawGraphics"],
00125                                       self.OnDrawGraphics, wx.ITEM_CHECK),
00126                                      ("delete", icons["deleteObj"],
00127                                       self.parent.OnDelete),
00128                                      (None, ),
00129                                      ("preview", icons["preview"],
00130                                       self.parent.OnPreview),
00131                                      ('generatePS', icons['psExport'],
00132                                       self.parent.OnPSFile),
00133                                      ('generatePDF', icons['pdfExport'],
00134                                       self.parent.OnPDFFile),
00135                                      (None, ),
00136                                      ("help", BaseIcons['help'],
00137                                       self.parent.OnHelp),
00138                                      ('quit', icons['quit'],
00139                                       self.parent.OnCloseWindow))
00140                                     )
00141 
00142     def OnDecoration(self, event):
00143         """!Decorations overlay menu
00144         """
00145         self._onMenu(((self.icons["addLegend"],     self.parent.OnAddLegend),
00146                       (self.icons["addMapinfo"],    self.parent.OnAddMapinfo),
00147                       (self.icons["addScalebar"],   self.parent.OnAddScalebar),
00148                       (self.icons["addText"],       self.parent.OnAddText),
00149                       (self.icons["addImage"],      self.parent.OnAddImage),
00150                       (self.icons["addNorthArrow"], self.parent.OnAddNorthArrow)))
00151 
00152     def OnDrawGraphics(self, event):
00153         """!Simple geometry features (point, line, rectangle) overlay menu
00154         """
00155         # we need the previous id
00156         self.actionOld = self.action['id']
00157         self.OnTool(event)
00158         self.action['id'] = self.actionOld
00159         self._onMenu(((self.icons["pointAdd"],      self.parent.OnAddPoint),
00160                       (self.icons["lineAdd"],       self.parent.OnAddLine),
00161                       (self.icons["rectangleAdd"],  self.parent.OnAddRectangle),
00162                     ))