def __init__(self, identifier=0):
        super(ContactWindow, self).__init__()

        self.aux_contact = None

        #Database parameter
        self.db = BasicDb()

        is_new = True
        if identifier == 0:
            self.set_title("Add Contact")
            self.aux_contact = Contacto()
        else:
            self.set_title("Edit Contact")
            self.aux_contact = self.db.retrieveDb().findOne(identifier)
            is_new = False

        self.set_size_request(400, 400)

        self.set_position(gtk.WIN_POS_CENTER_ON_PARENT)

        self.connect("destroy", self.close_window)

        table = gtk.Table(6, 2, True)

        self.name_entry = gtk.Entry()
        self.last_name_entry = gtk.Entry()
        self.email_entry = gtk.Entry()
        self.mobile_entry = gtk.Entry()
        self.telephone_entry = gtk.Entry()

        if not is_new:
            self.name_entry.set_text(self.aux_contact.name)
            self.last_name_entry.set_text(self.aux_contact.last_name)
            self.email_entry.set_text(self.aux_contact.email)
            self.mobile_entry.set_text(self.aux_contact.mobile)
            self.telephone_entry.set_text(self.aux_contact.telephone)

        table.attach(gtk.Label("Name"), 0, 1, 0, 1)
        table.attach(self.name_entry, 1, 2, 0, 1)
        table.attach(gtk.Label("Last Name"), 0, 1, 1, 2)
        table.attach(self.last_name_entry, 1, 2, 1, 2)

        table.attach(gtk.Label("Email"), 0, 1, 2, 3)
        table.attach(self.email_entry, 1, 2, 2, 3)
        table.attach(gtk.Label("Mobile"), 0, 1, 3, 4)
        table.attach(self.mobile_entry, 1, 2, 3, 4)

        table.attach(gtk.Label("Telephone"), 0, 1, 4, 5)
        table.attach(self.telephone_entry, 1, 2, 4, 5)

        button_save = gtk.Button("Save")
        button_cancel = gtk.Button("Cancel")

        button_save.set_size_request(60, 60)
        button_cancel.set_size_request(60, 60)

        button_save.connect("clicked", self.save_contacto)
        button_cancel.connect("clicked", self.close_window)

        table.attach(button_save, 0, 1, 5, 6)
        table.attach(button_cancel, 1, 2, 5, 6)

        self.add(table)

        self.show_all()
示例#2
0
 def __init__(self):
     self.db = BasicDb()
    def __init__(self):
        super(AgendaWindow, self).__init__()

        self.set_title("Agenda")
        self.set_size_request(500, 400)
        self.set_position(gtk.WIN_POS_CENTER)

        self.connect("destroy", gtk.main_quit)

        # Database parameters
        self.page_limit = setup_options.getLimit()
        self.current_page = 1
        self.items_quantity = 0
        self.db = BasicDb()

        #Contact id
        self.contact_id = 0

        # Menu bar
        mb = gtk.MenuBar()

        filemenu = gtk.Menu()
        filem = gtk.MenuItem("_File")
        filem.set_submenu(filemenu)

        agr = gtk.AccelGroup()
        self.add_accel_group(agr)

        newi = gtk.ImageMenuItem(gtk.STOCK_NEW, agr)
        key, mod = gtk.accelerator_parse("<Control>N")
        newi.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE)
        filemenu.append(newi)

        sep = gtk.SeparatorMenuItem()
        filemenu.append(sep)

        exit = gtk.ImageMenuItem(gtk.STOCK_QUIT, agr)
        key, mod = gtk.accelerator_parse("<Control>Q")
        exit.add_accelerator("activate", agr, key, mod, gtk.ACCEL_VISIBLE)

        exit.connect("activate", gtk.main_quit)
        newi.connect("activate", self.add_contact)

        filemenu.append(exit)

        mb.append(filem)

        sw = gtk.ScrolledWindow()
        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)

        toolbar = gtk.Toolbar()

        toolbar.set_style(gtk.TOOLBAR_ICONS)

        newtb = gtk.ToolButton(gtk.STOCK_NEW)
        self.back = gtk.ToolButton(gtk.STOCK_GO_BACK)
        self.back.set_sensitive(False)
        self.next = gtk.ToolButton(gtk.STOCK_GO_FORWARD)
        self.next.set_sensitive(False)

        sep = gtk.SeparatorToolItem()
        quittb = gtk.ToolButton(gtk.STOCK_QUIT)

        toolbar.insert(newtb, 0)
        toolbar.insert(self.back, 1)
        toolbar.insert(self.next, 2)
        toolbar.insert(sep, 3)
        toolbar.insert(quittb, 4)

        newtb.connect("clicked", self.add_contact)
        quittb.connect("clicked", gtk.main_quit)
        self.back.connect("clicked", self.previous_page)
        self.next.connect("clicked", self.next_page)

        vbox = gtk.VBox(False, 3)

        vbox.pack_start(mb, False, False, 0)
        vbox.pack_start(toolbar, False, False, 0)
        vbox.pack_start(sw, True, True, 0)

        self.store = self.create_model()

        self.treeView = gtk.TreeView(self.store)
        self.treeView.connect("row-activated", self.on_activated)
        self.treeView.set_rules_hint(True)

        self.populate_model()

        self.selected = self.treeView.get_selection()
        self.selected.connect("changed", self.on_changed)

        sw.add(self.treeView)

        self.create_columns(self.treeView)

        self.enable_next_previous()

        hbox = gtk.HBox(True, 3)
        self.edit = gtk.Button("Edit")
        self.edit.set_size_request(70, 30)
        self.edit.set_sensitive(False)
        self.edit.connect("clicked", self.edit_contact)
        self.label = gtk.Label(" - ")

        self.delete = gtk.Button("Delete")
        self.delete.set_size_request(70, 30)
        self.delete.set_sensitive(False)
        self.delete.connect("clicked", self.delete_contact)

        hbox.add(self.label)
        hbox.add(self.edit)
        hbox.add(self.delete)

        halign = gtk.Alignment(1, 0, 0, 0)
        halign.add(hbox)
        vbox.pack_start(halign, False, False, 3)

        self.add(vbox)

        self.show_all()