|
GnuCash 2.4.99
|
00001 import sys 00002 import _sw_app_utils 00003 from gnucash import * 00004 from _sw_core_utils import gnc_is_extra_enabled 00005 import gtk 00006 import os 00007 sys.path.append(os.path.dirname(__file__)) 00008 noisy = gnc_is_extra_enabled() 00009 if noisy: 00010 print "woop", os.path.dirname(__file__) 00011 import pycons.console as cons 00012 00013 if noisy: 00014 print "Hello from python!" 00015 print "test", sys.modules.keys() 00016 print "test2", dir(_sw_app_utils) 00017 00018 root = _sw_app_utils.gnc_get_current_root_account() 00019 00020 if noisy: 00021 print "test", dir(root), root.__class__ 00022 print "test2", dir(gnucash_core_c) 00023 00024 acct = Account(instance = root) 00025 00026 if noisy: 00027 print "test3", dir(acct) 00028 #print acct.GetName() 00029 #print acct.GetBalance() 00030 #print acct.GetSplitList() 00031 #print "test2", dir(gnucash.gnucash_core_c) 00032 00033 class Console (cons.Console): 00034 """ GTK python console """ 00035 00036 def __init__(self, argv=[], shelltype='python', banner=[], 00037 filename=None, size=100): 00038 cons.Console.__init__(self, argv, shelltype, banner, filename, size) 00039 self.buffer.create_tag('center', 00040 justification=gtk.JUSTIFY_CENTER, 00041 font='Mono 4') 00042 self.figures = [] 00043 self.callbacks = [] 00044 self.last_figure = None 00045 self.active_canvas = None 00046 self.view.connect ('key-press-event', self.key_press_event) 00047 self.view.connect ('button-press-event', self.button_press_event) 00048 self.view.connect ('scroll-event', self.scroll_event) 00049 00050 00051 def key_press_event (self, widget, event): 00052 """ Handle key press event """ 00053 00054 if self.active_canvas: 00055 self.active_canvas.emit ('key-press-event', event) 00056 return True 00057 return cons.Console.key_press_event (self, widget, event) 00058 00059 def scroll_event (self, widget, event): 00060 """ Scroll event """ 00061 if self.active_canvas: 00062 return True 00063 return False 00064 00065 def button_press_event (self, widget, event): 00066 """ Button press event """ 00067 return self.refresh() 00068 00069 def refresh (self): 00070 """ Refresh drawing """ 00071 for fig in self.figures: 00072 figure, canvas, anchor = fig 00073 canvas.draw() 00074 return False 00075 00076 00077 # Change this to "if True:" to switch on a python console at gnucash 00078 # startup: 00079 if False: 00080 console = Console(argv = [], shelltype = 'python', banner = [['woop', 'title']], size = 100) 00081 00082 window = gtk.Window(gtk.WINDOW_TOPLEVEL) 00083 window.set_position(gtk.WIN_POS_CENTER) 00084 window.set_default_size(800,600) 00085 window.set_border_width(0) 00086 # Hm. gtk.main_quit will kill gnucash without closing the file 00087 # properly. That's kinda bad. 00088 window.connect('destroy-event', gtk.main_quit) 00089 window.connect('delete-event', gtk.main_quit) 00090 window.add (console) 00091 window.show_all() 00092 console.grab_focus()
1.7.4