[GRASS-SVN] r35123 - grass/trunk/gui/wxpython/gui_modules
svn_grass at osgeo.org
svn_grass at osgeo.org
Tue Dec 30 17:18:39 EST 2008
Author: cmbarton
Date: 2008-12-30 17:18:39 -0500 (Tue, 30 Dec 2008)
New Revision: 35123
Modified:
grass/trunk/gui/wxpython/gui_modules/gdialogs.py
grass/trunk/gui/wxpython/gui_modules/mapdisp.py
Log:
Fix for remaining issues in ticket #291 for text overlays: added text show checkbox and disabled right click non-functional functions.
Modified: grass/trunk/gui/wxpython/gui_modules/gdialogs.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/gdialogs.py 2008-12-30 22:15:13 UTC (rev 35122)
+++ grass/trunk/gui/wxpython/gui_modules/gdialogs.py 2008-12-30 22:18:39 UTC (rev 35123)
@@ -466,37 +466,48 @@
sizer = wx.BoxSizer(wx.VERTICAL)
box = wx.GridBagSizer(vgap=5, hgap=5)
+ # show/hide
+ self.chkbox = wx.CheckBox(parent=self, id=wx.ID_ANY, \
+ label='Show text object')
+ if self.parent.Map.GetOverlay(self.ovlId) is None:
+ self.chkbox.SetValue(True)
+ else:
+ self.chkbox.SetValue(self.parent.MapWindow.overlays[self.ovlId]['layer'].IsActive())
+ box.Add(item=self.chkbox, span=(1,2),
+ flag=wx.ALIGN_LEFT|wx.ALL, border=5,
+ pos=(0, 0))
+
# text entry
label = wx.StaticText(parent=self, id=wx.ID_ANY, label=_("Enter text:"))
box.Add(item=label,
flag=wx.ALIGN_CENTER_VERTICAL,
- pos=(0, 0))
+ pos=(1, 0))
self.textentry = wx.TextCtrl(parent=self, id=wx.ID_ANY, value="", size=(300,-1))
self.textentry.SetFont(self.currFont)
self.textentry.SetForegroundColour(self.currClr)
self.textentry.SetValue(self.currText)
box.Add(item=self.textentry,
- pos=(0, 1))
+ pos=(1, 1))
# rotation
label = wx.StaticText(parent=self, id=wx.ID_ANY, label=_("Rotation:"))
box.Add(item=label,
flag=wx.ALIGN_CENTER_VERTICAL,
- pos=(1, 0))
+ pos=(2, 0))
self.rotation = wx.SpinCtrl(parent=self, id=wx.ID_ANY, value="", pos=(30, 50),
size=(75,-1), style=wx.SP_ARROW_KEYS)
self.rotation.SetRange(-360, 360)
self.rotation.SetValue(int(self.currRot))
box.Add(item=self.rotation,
flag=wx.ALIGN_RIGHT,
- pos=(1, 1))
+ pos=(2, 1))
# font
fontbtn = wx.Button(parent=self, id=wx.ID_ANY, label=_("Set font"))
box.Add(item=fontbtn,
flag=wx.ALIGN_RIGHT,
- pos=(2, 1))
+ pos=(3, 1))
sizer.Add(item=box, proportion=1,
flag=wx.ALL, border=10)
@@ -574,7 +585,8 @@
'font' : self.currFont,
'color' : self.currClr,
'rotation' : self.currRot,
- 'coords' : self.currCoords }
+ 'coords' : self.currCoords,
+ 'active' : self.chkbox.IsChecked() }
class LoadMapLayersDialog(wx.Dialog):
"""Load selected map layers (raster, vector) into layer tree"""
Modified: grass/trunk/gui/wxpython/gui_modules/mapdisp.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/mapdisp.py 2008-12-30 22:15:13 UTC (rev 35122)
+++ grass/trunk/gui/wxpython/gui_modules/mapdisp.py 2008-12-30 22:18:39 UTC (rev 35123)
@@ -421,6 +421,7 @@
# self.ovlcoords[drawid] = coords
elif pdctype == 'text': # draw text on top of map
+ if not img['active']: return #only draw active text
if img.has_key('rotation'):
rotation = float(img['rotation'])
else:
@@ -1752,24 +1753,7 @@
"""
Debug.msg (5, "BufferedWindow.OnRightDown(): use=%s" % \
self.mouse["use"])
-
- x,y = event.GetPositionTuple()[:]
- l = self.pdc.FindObjects(x=x, y=y, radius=self.hitradius)
- if not l:
- return
-
- id = l[0]
-
- if id != 99:
- if self.pdc.GetIdGreyedOut(id) == True:
- self.pdc.SetIdGreyedOut(id, False)
- else:
- self.pdc.SetIdGreyedOut(id, True)
-
- r = self.pdc.GetIdBounds(id)
- r.Inflate(4,4)
- self.RefreshRect(r, False)
-
+
digitToolbar = self.parent.toolbars['vdigit']
if digitToolbar:
digitClass = self.parent.digit
@@ -3890,6 +3874,7 @@
checktxt = _("Show/hide scale and North arrow"),
ctrltxt = _("scale object"))
+ self.dialogs['barscale'].CentreOnParent()
self.dialogs['barscale'].Show()
self.MapWindow.mouse['use'] = 'pointer'
@@ -3918,6 +3903,7 @@
checktxt = _("Show/hide legend"),
ctrltxt = _("legend object"))
+ self.dialogs['legend'].CentreOnParent()
self.dialogs['legend'].Show()
self.MapWindow.mouse['use'] = 'pointer'
@@ -3934,18 +3920,20 @@
else:
id = 101
- dlg = gdialogs.TextLayerDialog(parent=self, ovlId=id, title=_('Add text layer'),
- size=(400, 200))
+ self.dialogs['text'] = gdialogs.TextLayerDialog(parent=self, ovlId=id,
+ title=_('Add text layer'),
+ size=(400, 200))
- dlg.CenterOnParent()
+ self.dialogs['text'].CenterOnParent()
# If OK button pressed in decoration control dialog
- if dlg.ShowModal() == wx.ID_OK:
- text = dlg.GetValues()['text']
- coords, w, h = self.MapWindow.TextBounds(dlg.GetValues())
+ if self.dialogs['text'].ShowModal() == wx.ID_OK:
+ text = self.dialogs['text'].GetValues()['text']
+ active = self.dialogs['text'].GetValues()['active']
+ coords, w, h = self.MapWindow.TextBounds(self.dialogs['text'].GetValues())
- # delete object if it has no text
- if text == '':
+ # delete object if it has no text or is not active
+ if text == '' or active == False:
try:
self.MapWindow.pdc.ClearId(id)
self.MapWindow.pdc.RemoveId(id)
@@ -3956,7 +3944,7 @@
self.MapWindow.pdc.ClearId(id)
self.MapWindow.pdc.SetId(id)
- self.MapWindow.textdict[id] = dlg.GetValues()
+ self.MapWindow.textdict[id] = self.dialogs['text'].GetValues()
self.MapWindow.Draw(self.MapWindow.pdcDec, img=self.MapWindow.textdict[id],
drawid=id, pdctype='text', coords=coords)
More information about the grass-commit
mailing list