|
GRASS Programmer's Manual
6.5.svn(2012)-r51648
|
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 ))