Browse Source

Improved control to switch between different display modes (2D, 3D, and digitize). Added closing code for nviz window.

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@35159 15284696-431f-4ddb-bdfa-cd5b030d7da7
Michael Barton 16 years ago
parent
commit
c015f8e1fb
2 changed files with 33 additions and 9 deletions
  1. 6 4
      gui/wxpython/gui_modules/mapdisp.py
  2. 27 5
      gui/wxpython/gui_modules/toolbars.py

+ 6 - 4
gui/wxpython/gui_modules/mapdisp.py

@@ -3371,13 +3371,15 @@ class MapFrame(wx.Frame):
         pgnum = None
         pgnum = None
         self.Map.Clean()
         self.Map.Clean()
         
         
-        # close edited map properly
-        digitToolbar = self.toolbars['vdigit']
-        if digitToolbar:
-            maplayer = digitToolbar.GetLayer()
+        # close edited map and 3D tools properly
+        if self.toolbars['vdigit']:
+            maplayer = self.toolbars['vdigit'].GetLayer()
             if maplayer:
             if maplayer:
                 self.toolbars['vdigit'].OnExit()
                 self.toolbars['vdigit'].OnExit()
                 self.imgVectorMap = None
                 self.imgVectorMap = None
+
+        if self.toolbars['nviz']:
+            self.toolbars['nviz'].OnExit()
         
         
         if self.page:
         if self.page:
             pgnum = self.layerbook.GetPageIndex(self.page)
             pgnum = self.layerbook.GetPageIndex(self.page)

+ 27 - 5
gui/wxpython/gui_modules/toolbars.py

@@ -150,8 +150,9 @@ class MapToolbar(AbstractToolbar):
         self.InitToolbar(self.mapdisplay, self.toolbar, self.ToolbarData())
         self.InitToolbar(self.mapdisplay, self.toolbar, self.ToolbarData())
         
         
         # optional tools
         # optional tools
-        self.combo = wx.ComboBox(parent=self.toolbar, id=wx.ID_ANY, value='Tools',
-                                 choices=['Digitize', 'Nviz'], style=wx.CB_READONLY, size=(90, -1))
+        self.combo = wx.ComboBox(parent=self.toolbar, id=wx.ID_ANY, value='2D map',
+                                 choices=['2D map', '3D map', 'Digitize'], 
+                                 style=wx.CB_READONLY, size=(90, -1))
 
 
         self.comboid = self.toolbar.AddControl(self.combo)
         self.comboid = self.toolbar.AddControl(self.combo)
         self.mapdisplay.Bind(wx.EVT_COMBOBOX, self.OnSelectTool, self.comboid)
         self.mapdisplay.Bind(wx.EVT_COMBOBOX, self.OnSelectTool, self.comboid)
@@ -243,12 +244,24 @@ class MapToolbar(AbstractToolbar):
         Select / enable tool available in tools list
         Select / enable tool available in tools list
         """
         """
         tool =  event.GetString()
         tool =  event.GetString()
+        
+        if tool == "2D map":
+            self.ExitToolbars()
+            self.Enable2D(True)
 
 
-        if tool == "Digitize" and not self.mapdisplay.toolbars['vdigit']:
+        elif tool == "3D map" and not self.mapdisplay.toolbars['nviz']:
+            self.ExitToolbars()
+            self.mapdisplay.AddToolbar("nviz")
+            
+        elif tool == "Digitize" and not self.mapdisplay.toolbars['vdigit']:
+            self.ExitToolbars()
             self.mapdisplay.AddToolbar("vdigit")
             self.mapdisplay.AddToolbar("vdigit")
 
 
-        elif tool == "Nviz" and not self.mapdisplay.toolbars['nviz']:
-            self.mapdisplay.AddToolbar("nviz")
+    def ExitToolbars(self):
+        if self.mapdisplay.toolbars['vdigit']:
+            self.mapdisplay.toolbars['vdigit'].OnExit()
+        if self.mapdisplay.toolbars['nviz']:       
+            self.mapdisplay.toolbars['nviz'].OnExit()
 
 
     def Enable2D(self, enabled):
     def Enable2D(self, enabled):
         """Enable/Disable 2D display mode specific tools"""
         """Enable/Disable 2D display mode specific tools"""
@@ -1325,6 +1338,15 @@ class NvizToolbar(AbstractToolbar):
     def OnExit (self, event=None):
     def OnExit (self, event=None):
         """Quit nviz tool (swith to 2D mode)"""
         """Quit nviz tool (swith to 2D mode)"""
 
 
+        # hide dialogs if still open
+        if self.parent.nvizToolWin:
+            self.parent.nvizToolWin.Hide()
+
         # disable the toolbar
         # disable the toolbar
         self.parent.RemoveToolbar ("nviz")
         self.parent.RemoveToolbar ("nviz")
 
 
+        # set default mouse settings
+        self.parent.MapWindow.mouse['use'] = "pointer"
+        self.parent.MapWindow.mouse['box'] = "point"
+        self.parent.MapWindow.polycoords = []
+