GnuCash 2.4.99
init.py
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()
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines