home *** CD-ROM | disk | FTP | other *** search
- #
- # This file is part of OpenVIP (http://openvip.sourceforge.net)
- #
- # Copyright (C) 2002-2003
- # Michal Dvorak, Jiri Sedlar, Antonin Slavik, Vaclav Slavik, Jozef Smizansky
- #
- # This program is licensed under GNU General Public License version 2;
- # see file COPYING in the top level directory for details.
- #
- # $Id: ObjectPanel.py,v 1.20 2003/06/09 09:08:47 vaclavslavik Exp $
- #
-
- from wxPython.wx import *
- from FilterPanel import FilterPanel
- from TransitionPanel import TransitionPanel
- import model
-
- class ObjectPanel(wxPanel):
- """ObjectPanel is the panel with details about object selected on timeline.
- It is on the right side of OpenVIP GUI's main frame. This class is
- container class that can hold either FilterPanel or TransitionPanel
- inside, depending on current selection.
- """
- def __init__(self, *args, **kwds):
- # begin wxGlade: ObjectPanel.__init__
- wxPanel.__init__(self, *args, **kwds)
- self.panel = wxPanel(self, -1)
-
- self.__set_properties()
- self.__do_layout()
- # end wxGlade
- self.filterpanel = FilterPanel(self, -1)
- self.transpanel = TransitionPanel(self, -1)
- self.nopanel = wxPanel(self, -1)
- self.filterpanel.Show(0)
- self.transpanel.Show(0)
- self.nopanel.Show(0)
-
- def __set_properties(self):
- # begin wxGlade: ObjectPanel.__set_properties
- pass
- # end wxGlade
-
- def __do_layout(self):
- # begin wxGlade: ObjectPanel.__do_layout
- sizer_5 = wxBoxSizer(wxHORIZONTAL)
- sizer_5.Add(self.panel, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0)
- self.SetAutoLayout(1)
- self.SetSizer(sizer_5)
- sizer_5.Fit(self)
- sizer_5.SetSizeHints(self)
- self.Layout()
- # end wxGlade
-
- def SetObject(self, modl, obj):
- """Called when selection changes to display appropriate panel.
- Depending on what type 'obj' is, creates either FilterPanel or
- TransitionPanel subpanel."""
- # self.panel.Destroy()
- if isinstance(obj,model.Object):
- if not isinstance(self.panel,FilterPanel):
- self.panel.Show(0)
- self.panel = self.filterpanel
- self.panel.Show(1)
- self.panel.SetObject(modl, obj)
- elif isinstance(obj,model.Transition):
- if not isinstance(self.panel,TransitionPanel):
- self.panel.Show(0)
- self.panel = self.transpanel
- self.panel.Show(1)
- self.panel.SetObject(modl, obj)
- else:
- self.panel.Show(0)
- self.panel = self.nopanel
- self.panel.Show(1)
- self.panel.Layout()
- self.__do_layout()
- # an ugly hack to force correct size of window embedded in splitter:
- self.GetParent().ReplaceWindow(self, self)
-
- # end of class ObjectPanel
-
-
-