/* Expenses widget. * - by Richard W.M. Jones */ #include "config.h" #ifdef HAVE_STRING_H #include #endif #include #include #include #include #include #include #include #include "expenses_widget.h" static void repaint (void *, ml_session, const char *, io_handle); struct ml_widget_operations expenses_widget_ops = { repaint: repaint }; struct expenses_widget { struct ml_widget_operations *ops; pool pool; /* Pool for allocations. */ ml_session session; /* Session. */ vector expenses; /* Underlying data model (vector of * row structures). */ expenses_add_row add; /* Add row. */ }; /* List of expense types. */ const char *expense_types[] = { "Travel and transport", "Employee morale", "Logding and meals", "Parking and motor", "Entertaining customers", "Office supplies", "Phone", "Other (specify)" }; int nr_expense_types = sizeof (expense_types) / sizeof (expense_types[0]); expenses_widget new_expenses_widget (pool pool, ml_session session, vector expenses) { expenses_widget w = pmalloc (pool, sizeof *w); w->ops = &expenses_widget_ops; w->pool = pool; w->expenses = expenses; /* Create the add row. */ w->add = new_expenses_add_row (pool, session, expenses); return w; } static void repaint (void *vw, ml_session session, const char *windowid, io_handle io) { //expenses_widget w = (expenses_widget) vw; io_fputs ("expenses widget", io); }