[GRASS-SVN] r39592 - grass/trunk/gui/wxpython/gui_modules

svn_grass at osgeo.org svn_grass at osgeo.org
Tue Oct 20 00:52:50 EDT 2009


Author: cmbarton
Date: 2009-10-20 00:52:50 -0400 (Tue, 20 Oct 2009)
New Revision: 39592

Modified:
   grass/trunk/gui/wxpython/gui_modules/location_wizard.py
Log:
Backport from develbranch_6  r39591 . Make zone entry a spinctrl and change boolean reply to Yes/No

Modified: grass/trunk/gui/wxpython/gui_modules/location_wizard.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/location_wizard.py	2009-10-20 04:49:50 UTC (rev 39591)
+++ grass/trunk/gui/wxpython/gui_modules/location_wizard.py	2009-10-20 04:52:50 UTC (rev 39592)
@@ -719,14 +719,30 @@
         self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
         
     def OnParamEntry(self, event):
-        self.pval[event.GetId() - 2000] = event.GetString()
+        num = 0
+        # deal with weird spin control text event behavior, sending dup. event with negative number        
+        if event.GetId() >= 2000:
+            num = event.GetId() - 2000
+        else:
+            pass
+        val = event.GetString()
+        if self.ptype[num] == 'zone':
+            if val.isdigit():
+                if int(val) < 0: self.pentry[num].SetValue(0)
+                if int(val) > 60: self.pentry[num].SetValue(60)
+            else: 
+                self.pentry[num].SetValue(0)
+            
+        self.pval[num] = val
+        
+        event.Skip()
 
     def OnPageChange(self,event=None):
         if event.GetDirection():
             self.p4projparams = ''
             for num in range(self.pcount + 1):
                 if self.ptype[num] == 'bool':
-                    if self.pval[num] == 'N':
+                    if self.pval[num] == 'No':
                         continue
                     else:
                         self.p4projparams += (' +' + self.proj4param[num])
@@ -781,25 +797,27 @@
                 self.pdesc[num] = self.parent.paramdesc[paramgrp[0]][2]
 
                 # default values
-                if self.ptype[num] == 'bool': self.pval[num] = 'N'
-                elif self.ptype[num] == 'zone': self.pval[num] = '30' 
+                if self.ptype[num] == 'bool': self.pval[num] = 'No'
+                elif self.ptype[num] == 'zone': 
+                    self.pval[num] = '30' 
+                    self.pdesc[num] += ' (0-60)'
                 else: self.pval[num] = paramgrp[2]
 
                 label = wx.StaticText(self.panel, id=1000+num, label=self.pdesc[num], 
                                       style=wx.ALIGN_RIGHT | wx.ST_NO_AUTORESIZE)
                 if self.ptype[num] == 'bool':
                     self.pentry[num] = wx.Choice(self.panel, id=2000+num, size=(100,-1), 
-                                                 choices = ['N','Y'])  
+                                                 choices = ['No','Yes'])  
                     self.pentry[num].SetStringSelection(self.pval[num])
                     self.Bind(wx.EVT_CHOICE, self.OnParamEntry)
                 elif self.ptype[num] == 'zone':
-                    zone = []
-                    for i in range(1, 61):
-                        zone.append(str(i))
-                    self.pentry[num] = wx.Choice(self.panel, id=2000+num, size=(100,-1), 
-                                                 choices = zone)  
-                    self.pentry[num].SetStringSelection(self.pval[num])
-                    self.Bind(wx.EVT_CHOICE, self.OnParamEntry)
+                    self.pentry[num] = wx.SpinCtrl(self.panel, id=2000+num,
+                                                   value='30',
+                                                   size=(100,-1), 
+                                                   style=wx.SP_ARROW_KEYS | wx.SP_WRAP,
+                                                   min=0, max=60, initial=30)  
+                    self.pentry[num].SetValue(int(self.pval[num]))
+                    self.Bind(wx.EVT_TEXT, self.OnParamEntry)
                 else:
                     self.pentry[num] = wx.TextCtrl(self.panel, id=2000+num, value=self.pval[num],
                                                    size=(100,-1))
@@ -809,9 +827,13 @@
                         self.pentry[num].SetBackgroundColour(wx.LIGHT_GREY)
 
                 self.prjparamsizer.Add(item=label, pos=(num, 1),
-                               flag=wx.ALIGN_RIGHT | wx.RIGHT, border=5)
+                               flag=wx.ALIGN_RIGHT | 
+                               wx.ALIGN_CENTER_VERTICAL |
+                               wx.RIGHT, border=5)
                 self.prjparamsizer.Add(item=self.pentry[num], pos=(num, 2),
-                               flag=wx.ALIGN_LEFT | wx.LEFT, border=5)                
+                               flag=wx.ALIGN_LEFT | 
+                               wx.ALIGN_CENTER_VERTICAL |
+                               wx.LEFT, border=5)                
                 num += 1    
                 
         self.panel.SetSize(self.panel.GetBestSize())



More information about the grass-commit mailing list