view pyink/comp_dock.py @ 1309:f2b1b22f7cbc

Make comp_dock editable
author Thinker K.F. Li <thinker@codemud.net>
date Thu, 20 Jan 2011 10:54:27 +0800
parents 49775feefbcf
children 85d04ba11146
line wrap: on
line source

import gtk
import os
import data_monitor


## \brief User interface for management components and their timelines.
#
class comp_dock(object):
    __metaclass__ = data_monitor.data_monitor
    __data_monitor_prefix__ = 'on_'

    def __init__(self, domview_ui, fname=None):
        super(comp_dock, self).__init__()
        
        if not fname:
            dirname = os.path.dirname(__file__)
            fname = os.path.join(dirname, 'component_dock.glade')
            pass

        builder = gtk.Builder()
        builder.add_from_file(fname)
        builder.connect_signals(self)
        dock_top = builder.get_object('component_dock_top')
        components_model = builder.get_object('components_model')
        timelines_model = builder.get_object('timelines_model')
        components_treeview = builder.get_object('treeview_components')
        timelines_treeview = builder.get_object('treeview_timelines')
        
        dock_top_parent = dock_top.get_parent()
        dock_top_parent.remove(dock_top)

        self._domview_ui = domview_ui
        self._locker = domview_ui
        self._builder = builder
        self._dock_top = dock_top
        self._desktop = None
        self._dock_item = None
        
        self._components_model = components_model
        self._timelines_model = timelines_model
        self._components_treeview = components_treeview
        self._timelines_treeview = timelines_treeview

        self._cur_component = -1
        self._cur_timeline = -1
        pass

    def install_dock(self, desktop):
        self._desktop = desktop

        dock = desktop.getDock()
        item = dock.new_item('component_dock',
                             'Component and timeline manager',
                             'feBlend-icon', dock.ITEM_ST_DOCKED_STATE)
        item_vbox = item.get_vbox()
        self._dock_item = item
        
        item_vbox.pack_start(self._dock_top)
        self._dock_top.show()
        pass

    ## \brief Refresh content of component list and timeline list.
    #
    def refresh(self):
        components_model = self._components_model
        components_model.clear()
        
        for comp_name in self._domview_ui.all_comp_names():
            components_model.append((comp_name, True))
            pass

        timelines_model = self._timelines_model
        timelines_model.clear()

        for timeline_name in self._domview_ui.all_timeline_names():
            timelines_model.append((timeline_name, True))
            pass
        pass
    
    def on_add_comp_clicked(self, *args):
        print args
        pass

    def on_remove_comp_clicked(self, *args):
        print args
        pass

    def on_treeview_components_cursor_changed(self, *args):
        print args
        pass
    
    def on_cellrenderer_comp_edited(self, renderer, path,
                                    new_text, *args):
        print '%s - %s' % (path, new_text)
        pass
    
    def on_add_timeline_clicked(self, *args):
        print args
        pass

    def on_remove_timeline_clicked(self, *args):
        print args
        pass

    def on_treeview_timelines_cursor_changed(self, *args):
        print args
        pass

    def on_cellrenderer_timelines_edited(self, renderer, path,
                                         new_text, *args):
        print '%s - %s' % (path, new_text)
        pass
    pass