소스 검색

more MS Windows-related fixes
(merge from relbr64, https://trac.osgeo.org/grass/changeset/35579)


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@35581 15284696-431f-4ddb-bdfa-cd5b030d7da7

Martin Landa 16 년 전
부모
커밋
b01bd64047
3개의 변경된 파일26개의 추가작업 그리고 10개의 파일을 삭제
  1. 4 1
      gui/wxpython/gis_set.py
  2. 6 7
      gui/wxpython/gui_modules/mapdisp.py
  3. 16 2
      gui/wxpython/gui_modules/toolbars.py

+ 4 - 1
gui/wxpython/gis_set.py

@@ -25,6 +25,7 @@ import sys
 import glob
 import shutil
 import copy
+import platform
 
 ### i18N
 import gettext
@@ -778,8 +779,10 @@ class GListBox(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin):
         self.__LoadData(choices, disabled)
 
     def SetSelection(self, item):
-        if item != wx.NOT_FOUND:
+        if item != wx.NOT_FOUND and platform.system() != 'Windows':
+            ### Windows -> FIXME
             self.SetItemState(item, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED)
+	
         self.selected = item
         
     def GetSelection(self):

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

@@ -283,7 +283,8 @@ class MapFrame(wx.Frame):
                               LeftDockable(False).RightDockable(False).
                               BottomDockable(False).TopDockable(True).
                               CloseButton(False).Layer(2).
-                              BestSize((globalvar.MAP_WINDOW_SIZE[0]-15, -1)))
+                              BestSize((self.toolbars['map'].GetToolbar().GetSize())))
+	
         # vector digitizer
         elif name == "vdigit":
             if self.gismanager:
@@ -302,8 +303,8 @@ class MapFrame(wx.Frame):
                                   LeftDockable(False).RightDockable(False).
                                   BottomDockable(False).TopDockable(True).
                                   CloseButton(False).Layer(2).
-                                  BestSize((globalvar.MAP_WINDOW_SIZE[0]-15, -1)))
-
+                                  BestSize((self.toolbars['vdigit'].GetToolbar().GetSize())))
+	
             # change mouse to draw digitized line
             self.MapWindow.mouse['box'] = "point"
             self.MapWindow.zoomtype = 0
@@ -319,8 +320,7 @@ class MapFrame(wx.Frame):
                               ToolbarPane().Top().
                               LeftDockable(False).RightDockable(False).
                               BottomDockable(False).TopDockable(True).
-                              CloseButton(False).Layer(2).
-                              BestSize((globalvar.MAP_WINDOW_SIZE[0]-15, -1)))
+                              CloseButton(False).Layer(2))
         # nviz
         elif name == "nviz":
             import nviz
@@ -399,8 +399,7 @@ class MapFrame(wx.Frame):
                               ToolbarPane().Top().Row(1).
                               LeftDockable(False).RightDockable(False).
                               BottomDockable(False).TopDockable(True).
-                              CloseButton(False).Layer(2).
-                              BestSize((globalvar.MAP_WINDOW_SIZE[0]-15, -1)))
+                              CloseButton(False).Layer(2))
             
             self.MapWindow = self.MapWindow3D
             self.SetStatusText("", 0)

+ 16 - 2
gui/wxpython/gui_modules/toolbars.py

@@ -23,6 +23,7 @@ COPYING that comes with GRASS for details.
 
 import wx
 import os, sys
+import platform
 
 import grass
 
@@ -133,6 +134,15 @@ class AbstractToolbar(object):
         self.action = { 'id' : self.defaultAction['id'],
                         'desc' : self.defaultAction.get('desc', '') }
         
+    def FixSize(self, width):
+	"""Fix toolbar width on Windows
+        
+	@todo Determine why combobox causes problems here
+	"""
+        if platform.system() == 'Windows':
+            size = self._toolbar.GetBestSize()
+            self._toolbar.SetSize((size[0] + width, size[1]))
+        
 class MapToolbar(AbstractToolbar):
     """
     Main Map Display toolbar
@@ -153,7 +163,7 @@ class MapToolbar(AbstractToolbar):
         self.combo = wx.ComboBox(parent=self.toolbar, id=wx.ID_ANY, value=_('2D view'),
                                  choices=[_('2D view'), _('3D view'), _('Digitize')], 
                                  style=wx.CB_READONLY, size=(90, -1))
-
+        
         self.comboid = self.toolbar.AddControl(self.combo)
         self.mapdisplay.Bind(wx.EVT_COMBOBOX, self.OnSelectTool, self.comboid)
 
@@ -163,13 +173,15 @@ class MapToolbar(AbstractToolbar):
         # workaround for Mac bug. May be fixed by 2.8.8, but not before then.
         self.combo.Hide()
         self.combo.Show()
-
+        
         # default action
         self.action = { 'id' : self.pointer }
         self.defaultAction = { 'id' : self.pointer,
                                'bind' : self.mapdisplay.OnPointer }
         self.OnTool(None)
         
+        self.FixSize(width = 90)
+        
     def ToolbarData(self):
         """Toolbar data"""
 
@@ -472,6 +484,8 @@ class VDigitToolbar(AbstractToolbar):
         # toogle to pointer by default
         self.OnTool(None)
         
+        self.FixSize(width = 105)
+        
     def ToolbarData(self, row=None):
         """
         Toolbar data