#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk
import gtk.glade
import os.path
import sys

from livemagic.model import *
from livemagic.views import *
from livemagic.controllers import *

class Model(object):
    def __init__(self, dir=None):
        self.config = LiveHelperConfiguration(dir)
    def __getattr__(self, k):
        return getattr(self.config, k)
    def __setattr__(self, k, v):
        self.__dict__[k] = v

class View(MainView, BuildView, HooksView, WizardView):
    def __init__(self, controller):
        self.xml = gtk.glade.XML(glade_filename())
        self.controller = controller
        MainView.__init__(self)
        BuildView.__init__(self)
        HooksView.__init__(self)
        WizardView.__init__(self)
        self.xml.signal_autoconnect(self.controller)

class Controller(MainController, BuildController, HooksController, WizardController):
    def __init__(self, model, args):
        self.model = model
        MainController.__init__(self, args)
        BuildController.__init__(self)
        HooksController.__init__(self)
        WizardController.__init__(self)

def glade_filename():
    suffix = "main.glade"

    local = os.path.join('glade', suffix)
    if os.path.isfile(local):
        return local

    for path in ['/usr/share/live-magic']:
        path = os.path.join(path, suffix)
        if os.path.isfile(path):
            return path

if __name__ == "__main__":
    m = Model()
    c = Controller(m, sys.argv[1:])
    v = View(c)
    c.ready()

    gtk.main()
