Browse Source

Made manipulating widget not be shown for unmovable objects

Gyedo Jeon 15 years ago
parent
commit
448b975efe
2 changed files with 15 additions and 0 deletions
  1. 9 0
      direct/src/leveleditor/LevelEditorBase.py
  2. 6 0
      direct/src/leveleditor/ObjectMgr.py

+ 9 - 0
direct/src/leveleditor/LevelEditorBase.py

@@ -104,6 +104,7 @@ class LevelEditorBase(DirectObject):
         base.direct.ignore('DIRECT-delete')
         base.direct.ignore('DIRECT-select')
         base.direct.ignore('DIRECT-preDeselectAll')
+        base.direct.ignore('DIRECT-toggleWidgetVis')
         base.direct.fIgnoreDirectOnlyKeyMap = 1
         
         # [gjeon] do not use the old way of finding current DR
@@ -132,6 +133,7 @@ class LevelEditorBase(DirectObject):
             ('LE-OpenScene', self.ui.onOpen),
             ('LE-Quit', self.ui.quit),
             ('DIRECT-mouse3', self.handleMouse3),
+            ('DIRECT-toggleWidgetVis', self.toggleWidget),
             ])
 
         # Add all the action events
@@ -171,6 +173,13 @@ class LevelEditorBase(DirectObject):
                 __builtins__['last'] = None
             base.direct.selected.last = None
 
+    def toggleWidget(self):
+        if self.objectMgr.currNodePath:
+            obj = self.objectMgr.findObjectByNodePath(self.objectMgr.currNodePath)
+            if obj and not obj[OG.OBJ_DEF].movable:
+                return
+        base.direct.toggleWidgetVis()
+
     def handleMouse3(self, modifiers):
         if base.direct.fAlt or modifiers == 4:
             return

+ 6 - 0
direct/src/leveleditor/ObjectMgr.py

@@ -215,6 +215,12 @@ class ObjectMgr:
         if fLEPane == 0:
            self.editor.ui.sceneGraphUI.select(obj[OG.OBJ_UID])
 
+        if not obj[OG.OBJ_DEF].movable:
+            if base.direct.widget.fActive:
+                base.direct.widget.toggleWidget()
+
+            
+
     def updateObjectPropertyUI(self, obj):
         objDef = obj[OG.OBJ_DEF]
         objProp = obj[OG.OBJ_PROP]