First great commit for Gtk. It is partially functional now

This commit is contained in:
2015-04-03 16:57:08 -06:00
parent 9356a0544f
commit 2e32fa7ef2
44 changed files with 1814 additions and 110 deletions

View File

@@ -1,4 +1,5 @@
from gi.repository import Gtk, Gdk
from gi.repository import GObject
toolkit = "gtk"
# Code responses for GTK +3 dialogs.
@@ -19,11 +20,13 @@ CLOSE_EVENT = "delete-event"
# This is activated when a button is pressed.
BUTTON_PRESSED = "clicked"
# This is activated when an user enter text on an edit box.
#ENTERED_TEXT = wx.EVT_TEXT
ENTERED_TEXT = "changed"
MENU = "activate"
#KEYPRESS = wx.EVT_CHAR_HOOK
#NOTEBOOK_PAGE_CHANGED = wx.EVT_NOTEBOOK_PAGE_CHANGED
CHECKBOX = "toggled"
def exit_application():
""" Closes the current window cleanly. """
Gtk.main_quit()
@@ -51,21 +54,84 @@ class list(object):
self.list = Gtk.TreeView(model=self.store)
renderer = Gtk.CellRendererText()
for i in range(0, len(self.columns)):
column = Gtk.TreeViewColumn(self.columns[i], renderer, text=0)
column.set_sort_column_id(i)
column = Gtk.TreeViewColumn(self.columns[i], renderer, text=i)
# column.set_sort_column_id(i)
self.list.append_column(column)
def insert_item(self, *item):
self.store.append(item)
def insert_item(self, reversed=False, *item):
if reversed == False:
self.store.append(row=item)
else:
self.store.insert(position=0, row=item)
def get_selected(self):
tree_selection = self.list.get_selection()
(model, pathlist) = tree_selection.get_selected_rows()
return pathlist[0]
return int(pathlist[0].to_string() )
def select_item(self, item):
tree_selection = self.list.get_selection()
tree_selection.select_path(item)
def remove_item(self, item):
self.store.remove(self.store.get_iter(item))
def get_count(self):
return len(self.store)
class baseDialog(Gtk.Dialog):
def __init__(self, *args, **kwargs):
super(baseDialog, self).__init__(*args, **kwargs)
self.box = self.get_content_area()
def get_response(self):
answer = self.run()
return answer
class buffer(GObject.GObject):
name = GObject.property(type=str)
def __init__(self, obj):
super(buffer, self).__init__()
self.buffer = obj
class notebook(object):
def __init__(self):
self.store = Gtk.TreeStore(buffer.__gtype__)
self.view = Gtk.TreeView()
self.view.set_model(self.store)
column = Gtk.TreeViewColumn("Buffer")
cell = Gtk.CellRendererText()
column.pack_start(cell, True)
column.set_cell_data_func(cell, self.get_buffer)
self.view.append_column(column)
def get_buffer(self, column, cell, model, iter, data):
cell.set_property('text', self.store.get_value(iter, 0).name)
def match_func(self, row, name_, account):
name = name_
account = account
iter = self.store.get_iter(row.path)
if self.store[iter][0].buffer.name == name and self.store[iter][0].buffer.account == account:
return (row.path, iter)
else:
return (None, None)
def search(self, rows, name_, account):
if not rows: return None
for row in rows:
(path, iter) = self.match_func(row, name_, account)
if iter != None:
return (path, iter)
(result_path, result_iter) = self.search(row.iterchildren(), name_, account)
if result_path: return (result_path, result_iter)
return (None, None)
class mainLoopObject(object):
def run(self):
GObject.type_register(buffer)
Gtk.main()

View File

@@ -104,11 +104,11 @@ class BaseDialog(wx.Dialog):
def get_title(self):
return self.GetTitle()
class mainloopObject(wx.App):
class mainLoopObject(wx.App):
def __init__(self):
self.app = wx.App()
def run_mainloop(self):
def run(self):
self.app.MainLoop()