Added notebooks to left and right bar frames

This commit is contained in:
Gyedo Jeon 2010-02-11 00:17:07 +00:00
parent 981890183b
commit 98b1526ea6
2 changed files with 79 additions and 37 deletions

View File

@ -96,16 +96,24 @@ class LevelEditorUI(WxAppShell):
menuItem = self.menuEdit.Append(-1, "&Duplicate")
self.Bind(wx.EVT_MENU, self.onDuplicate, menuItem)
self.gridSnapMenuItem = self.menuEdit.Append(-1, "&Grid Snap", kind = wx.ITEM_CHECK)
self.Bind(wx.EVT_MENU, self.toggleGridSnap, self.gridSnapMenuItem)
menuItem = self.menuEdit.Append(-1, "&Undo")
self.Bind(wx.EVT_MENU, self.editor.actionMgr.undo, menuItem)
menuItem = self.menuEdit.Append(-1, "&Rndo")
self.Bind(wx.EVT_MENU, self.editor.actionMgr.redo, menuItem)
self.menuOptions = wx.Menu()
self.menuBar.Insert(2, self.menuOptions, "&Options")
self.gridSizeMenuItem = self.menuOptions.Append(-1, "&Grid Size")
self.Bind(wx.EVT_MENU, self.onGridSize, self.gridSizeMenuItem)
self.showPandaObjectsMenuItem = self.menuOptions.Append(-1, "&Show Panda Objects", kind = wx.ITEM_CHECK)
self.gridSnapMenuItem = self.menuOptions.Append(-1, "Grid &Snap", kind = wx.ITEM_CHECK)
self.Bind(wx.EVT_MENU, self.toggleGridSnap, self.gridSnapMenuItem)
self.showPandaObjectsMenuItem = self.menuOptions.Append(-1, "Show &Panda Objects", kind = wx.ITEM_CHECK)
self.Bind(wx.EVT_MENU, self.onShowPandaObjects, self.showPandaObjectsMenuItem)
self.hotKeysMenuItem = self.menuOptions.Append(-1, "&Hot Keys")
self.Bind(wx.EVT_MENU, self.onHotKeys, self.hotKeysMenuItem)
@ -130,15 +138,32 @@ class LevelEditorUI(WxAppShell):
self.perspView = Viewport.makePerspective(self.viewFrame)
self.viewFrame.AppendWindow(self.perspView)
self.leftBarUpFrame = wx.SplitterWindow(self.leftFrame, wx.SP_3D | wx.SP_BORDER)
self.leftBarUpPane = wx.Panel(self.leftBarUpFrame)
self.leftBarMidPane = wx.Panel(self.leftBarUpFrame)
self.leftBarUpPane = wx.Panel(self.leftFrame)
self.leftBarUpNB = wx.Notebook(self.leftBarUpPane, style=wx.NB_BOTTOM)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.leftBarUpNB, 1, wx.EXPAND)
self.leftBarUpPane.SetSizer(sizer)
self.leftBarUpPane0 = wx.Panel(self.leftBarUpNB, -1)
self.leftBarUpNB.AddPage(self.leftBarUpPane0, 'Object Palette')
self.leftBarUpPane1 = wx.Panel(self.leftBarUpNB, -1)
self.leftBarUpNB.AddPage(self.leftBarUpPane1, 'Proto Palette')
self.leftBarDownPane = wx.Panel(self.leftFrame)
self.leftBarDownNB = wx.Notebook(self.leftBarDownPane)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.leftBarDownNB, 1, wx.EXPAND)
self.leftBarDownPane.SetSizer(sizer)
self.leftBarDownPane0 = wx.Panel(self.leftBarDownNB, -1)
self.leftBarDownNB.AddPage(self.leftBarDownPane0, 'Scene Graph')
self.rightBarUpPane = wx.Panel(self.rightFrame)
self.rightBarDownPane = wx.Panel(self.rightFrame)
self.rightBarDownNB = wx.Notebook(self.rightBarDownPane)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.rightBarDownNB, 1, wx.EXPAND)
self.rightBarDownPane.SetSizer(sizer)
self.rightBarDownPane0 = wx.Panel(self.rightBarDownNB, -1)
self.rightBarDownNB.AddPage(self.rightBarDownPane0, 'Layers')
self.leftFrame.SplitHorizontally(self.leftBarUpFrame, self.leftBarDownPane)
self.leftBarUpFrame.SplitHorizontally(self.leftBarUpPane, self.leftBarMidPane)
self.leftFrame.SplitHorizontally(self.leftBarUpPane, self.leftBarDownPane)
self.rightFrame.SplitHorizontally(self.rightBarUpPane, self.rightBarDownPane)
self.mainFrame.SplitVertically(self.leftFrame, self.baseFrame, 200)
self.baseFrame.SplitVertically(self.viewFrame, self.rightFrame, 600)
@ -149,7 +174,6 @@ class LevelEditorUI(WxAppShell):
self.perspView.SetDropTarget(PandaTextDropTarget(self.editor, self.perspView))
self.leftFrame.SetSashGravity(0.5)
self.leftBarUpFrame.SetSashGravity(0.5)
self.rightFrame.SetSashGravity(0.5)
self.baseFrame.SetSashGravity(1.0)
@ -157,11 +181,11 @@ class LevelEditorUI(WxAppShell):
sizer.Add(self.mainFrame, 1, wx.EXPAND, 0)
self.SetSizer(sizer); self.Layout()
self.objectPaletteUI = ObjectPaletteUI(self.leftBarUpPane, self.editor)
self.protoPaletteUI = ProtoPaletteUI(self.leftBarMidPane, self.editor)
self.objectPaletteUI = ObjectPaletteUI(self.leftBarUpPane0, self.editor)
self.protoPaletteUI = ProtoPaletteUI(self.leftBarUpPane1, self.editor)
self.objectPropertyUI = ObjectPropertyUI(self.rightBarUpPane, self.editor)
self.sceneGraphUI = SceneGraphUI(self.leftBarDownPane, self.editor)
self.layerEditorUI = LayerEditorUI(self.rightBarDownPane, self.editor)
self.sceneGraphUI = SceneGraphUI(self.leftBarDownPane0, self.editor)
self.layerEditorUI = LayerEditorUI(self.rightBarDownPane0, self.editor)
def onSetFocus(self):
print 'wx got focus'

View File

@ -250,42 +250,54 @@ class ObjectPropertyUI(ScrolledPanel):
mainSizer.Add(self.propPane, 1, wx.EXPAND, 0)
self.SetSizer(mainSizer)
self.propX = ObjectPropUIEntry(self.propPane, 'X')
self.propY = ObjectPropUIEntry(self.propPane, 'Y')
self.propZ = ObjectPropUIEntry(self.propPane, 'Z')
self.nb = wx.Notebook(self.propPane, style=wx.NB_BOTTOM)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.nb, 1, wx.EXPAND)
self.propPane.SetSizer(sizer)
self.propH = ObjectPropUISlider(self.propPane, 'H', 0, 0, 360)
self.propP = ObjectPropUISlider(self.propPane, 'P', 0, 0, 360)
self.propR = ObjectPropUISlider(self.propPane, 'R', 0, 0, 360)
self.transformPane = wx.Panel(self.nb, -1)
self.nb.AddPage(self.transformPane, 'Transform')
self.propSX = ObjectPropUIEntry(self.propPane, 'SX')
self.propSY = ObjectPropUIEntry(self.propPane, 'SY')
self.propSZ = ObjectPropUIEntry(self.propPane, 'SZ')
self.propX = ObjectPropUIEntry(self.transformPane, 'X')
self.propY = ObjectPropUIEntry(self.transformPane, 'Y')
self.propZ = ObjectPropUIEntry(self.transformPane, 'Z')
self.propH = ObjectPropUISlider(self.transformPane, 'H', 0, 0, 360)
self.propP = ObjectPropUISlider(self.transformPane, 'P', 0, 0, 360)
self.propR = ObjectPropUISlider(self.transformPane, 'R', 0, 0, 360)
self.propSX = ObjectPropUIEntry(self.transformPane, 'SX')
self.propSY = ObjectPropUIEntry(self.transformPane, 'SY')
self.propSZ = ObjectPropUIEntry(self.transformPane, 'SZ')
transformProps = [self.propX, self.propY, self.propZ, self.propH, self.propP, self.propR,
self.propSX, self.propSY, self.propSZ]
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddMany(transformProps)
self.transformPane.SetSizer(sizer)
for transformProp in transformProps:
transformProp.bindFunc(self.editor.objectMgr.onEnterObjectPropUI,
self.editor.objectMgr.onLeaveObjectPropUI,
self.editor.objectMgr.updateObjectTransform)
self.lookPane = wx.Panel(self.nb, -1)
self.nb.AddPage(self.lookPane, 'Look')
objNP = obj[OG.OBJ_NP]
objRGBA = obj[OG.OBJ_RGBA]
self.propCR = ObjectPropUISlider(self.propPane, 'CR', objRGBA[0], 0, 1)
self.propCG = ObjectPropUISlider(self.propPane, 'CG', objRGBA[1], 0, 1)
self.propCB = ObjectPropUISlider(self.propPane, 'CB', objRGBA[2], 0, 1)
self.propCA = ObjectPropUISlider(self.propPane, 'CA', objRGBA[3], 0, 1)
self.propCR = ObjectPropUISlider(self.lookPane, 'CR', objRGBA[0], 0, 1)
self.propCG = ObjectPropUISlider(self.lookPane, 'CG', objRGBA[1], 0, 1)
self.propCB = ObjectPropUISlider(self.lookPane, 'CB', objRGBA[2], 0, 1)
self.propCA = ObjectPropUISlider(self.lookPane, 'CA', objRGBA[3], 0, 1)
colorProps = [self.propCR, self.propCG, self.propCB, self.propCA]
for colorProp in colorProps:
colorProp.ui.bindFunc(self.onColorSlider)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddMany(colorProps)
button = wx.Button(self.propPane, -1, 'Color Picker', (0,0), (140, 20))
button = wx.Button(self.lookPane, -1, 'Color Picker', (0,0), (140, 20))
_colourData = wx.ColourData()
_colourData.SetColour(wx.Colour(objRGBA[0] * 255, objRGBA[1] * 255, objRGBA[2] * 255))
button.Bind(wx.EVT_BUTTON, lambda p0=None, p1=_colourData, p2=objRGBA[3] * 255: self.openColorPicker(p0, p1, p2))
@ -298,7 +310,7 @@ class ObjectPropertyUI(ScrolledPanel):
objDef = obj[OG.OBJ_DEF]
if objDef.model is not None:
propUI = ObjectPropUICombo(self.propPane, 'model', obj[OG.OBJ_MODEL], objDef.models)
propUI = ObjectPropUICombo(self.lookPane, 'model', obj[OG.OBJ_MODEL], objDef.models)
sizer.Add(propUI)
propUI.bindFunc(self.editor.objectMgr.onEnterObjectPropUI,
@ -306,13 +318,19 @@ class ObjectPropertyUI(ScrolledPanel):
lambda p0=None, p1=obj: self.editor.objectMgr.updateObjectModelFromUI(p0, p1))
if len(objDef.anims) > 0:
propUI = ObjectPropUICombo(self.propPane, 'anim', obj[OG.OBJ_ANIM], objDef.anims)
propUI = ObjectPropUICombo(self.lookPane, 'anim', obj[OG.OBJ_ANIM], objDef.anims)
sizer.Add(propUI)
propUI.bindFunc(self.editor.objectMgr.onEnterObjectPropUI,
self.editor.objectMgr.onLeaveObjectPropUI,
lambda p0=None, p1=obj: self.editor.objectMgr.updateObjectAnimFromUI(p0, p1))
self.lookPane.SetSizer(sizer)
self.propsPane = wx.Panel(self.nb, -1)
self.nb.AddPage(self.propsPane, 'Props')
sizer = wx.BoxSizer(wx.VERTICAL)
for key in objDef.properties.keys():
propDef = objDef.properties[key]
propType = propDef[OG.PROP_TYPE]
@ -320,7 +338,7 @@ class ObjectPropertyUI(ScrolledPanel):
value = obj[OG.OBJ_PROP].get(key)
if propType == OG.PROP_UI_ENTRY:
propUI = ObjectPropUIEntry(self.propPane, key)
propUI = ObjectPropUIEntry(self.propsPane, key)
propUI.setValue(value)
sizer.Add(propUI)
@ -332,7 +350,7 @@ class ObjectPropertyUI(ScrolledPanel):
if value is None:
continue
propUI = ObjectPropUISlider(self.propPane, key, value, propRange[OG.RANGE_MIN], propRange[OG.RANGE_MAX])
propUI = ObjectPropUISlider(self.propsPane, key, value, propRange[OG.RANGE_MIN], propRange[OG.RANGE_MAX])
sizer.Add(propUI)
elif propType == OG.PROP_UI_SPIN:
@ -343,14 +361,14 @@ class ObjectPropertyUI(ScrolledPanel):
if value is None:
continue
propUI = ObjectPropUISpinner(self.propPane, key, value, propRange[OG.RANGE_MIN], propRange[OG.RANGE_MAX])
propUI = ObjectPropUISpinner(self.propsPane, key, value, propRange[OG.RANGE_MIN], propRange[OG.RANGE_MAX])
sizer.Add(propUI)
elif propType == OG.PROP_UI_CHECK:
if value is None:
continue
propUI = ObjectPropUICheck(self.propPane, key, value)
propUI = ObjectPropUICheck(self.propsPane, key, value)
sizer.Add(propUI)
elif propType == OG.PROP_UI_RADIO:
@ -367,7 +385,7 @@ class ObjectPropertyUI(ScrolledPanel):
value = str(value)
propUI = ObjectPropUIRadio(self.propPane, key, value, propRange)
propUI = ObjectPropUIRadio(self.propsPane, key, value, propRange)
sizer.Add(propUI)
elif propType == OG.PROP_UI_COMBO:
@ -384,7 +402,7 @@ class ObjectPropertyUI(ScrolledPanel):
value = str(value)
propUI = ObjectPropUICombo(self.propPane, key, value, propRange)
propUI = ObjectPropUICombo(self.propsPane, key, value, propRange)
sizer.Add(propUI)
else:
@ -396,6 +414,6 @@ class ObjectPropertyUI(ScrolledPanel):
lambda p0=None, p1=obj, p2=key: self.editor.objectMgr.updateObjectProperty(p0, p1, p2))
self.propPane.SetSizer(sizer);
self.propsPane.SetSizer(sizer);
self.Layout()
self.SetupScrolling(self, scroll_y = True, rate_y = 20)