I'd like to create an applet for gnucash

Christian Stimming stimming at tuhh.de
Mon Jun 25 10:19:42 EDT 2007

Hi Martin,

Quoting Martin Kaffanke <technik at roomandspace.com>:
> I'd like to create an applet or notification for gnucash.  (Like we have
> for tomboy.)

interesting plan. I'm afraid our answers won't make you really happy,  
but I'd like to explain the technical conditions concerning a gnucash  

First of all, you need to keep in mind that gnucash works only on a  
single data file as storage mechanism. So if an applet would like to  
do something with that data file (either retrieve information or  
adding new transactions), the data file cannot be used by another  
full-blown gnucash process at the same time, and vice versa.

With this constraint, an applet could basically act as a  
"mini-gnucash", i.e. it offers only a very small subset of the gnucash  
features, but loads and saves the data file just as the normal gnucash  
does. I think writing something like that is still non-trivial, but is  
probably manageable.  I'd suggest starting with the gnucash main  
window src/gnome-utils/gnc-main-window.c and simply removing all  
undesired widgets and functionality.

> - Show the balance of a few chosen accounts,

Easiest part. Once your applet uses the src/engine/libgncmod-engine.c  
library just like the normal gnucash does, you can always query the  
accounts for their balance.

> - Show the actual situation of the finance status, the data we see at
> the bottom in the accounts view

That's the src/gnome-utils/window-main-summarybar.c widget.

> - Simple add a new income or expense, so i.e. you buy a coke and put it
> into gnucash, but you don't like to start anything else

The normal data entry is done in the "register" widget, which I think  
is not quite suitable for an applet. But the "Transfer" dialog window  
(Toolbar -> Transfer) of gnucash already exists and can be called from  
your small applet just as well.

> Where can I start?  Would this be easy on the gnucash side.

If you start from the gnc-main-window and simply remove all unneeded  
functionality it is probably rather easy. We'd even be happy to  
include this as an additional subproject into our SVN repository once  
you got some usable code.

However, I'm not sure whether this is what you want.



More information about the gnucash-devel mailing list