C File for the Bicycle Ride Calorie Calculator

Below follows the example C source code for the calculator.

/*
 * FILE:
 * biker.c
 *
 * FUNCTION:
 * Demonstrate how to hook up DWI to a generic GLib GObject.
 * This is the 'main program' for the Bicycle Ride Calorie
 * Calculator.  It does little else but to initialize the
 * the GUI and DWI systems, and create an instance of the 
 * bike-calc object. Its mostly 'boiler-plate'.
 *
 * HISTORY:
 * Linas Vepstas <linas@linas.org> March 2004
 */

#include "config.h"

#include <stdio.h>

#include <glib.h>
#include <gnome.h>
#include <glade/glade.h>

#include "perr.h"
#include "readfile.h"

#include "bike-calc.h"
#include "time-hms.h"


int
main (int argc, char *argv[])
{
	/* Generic gnome/glib boiler-plate */
	g_type_init ();
	gnome_program_init ("dwi-run", VERSION, LIBGNOMEUI_MODULE, argc, argv, 
	         GNOME_PROGRAM_STANDARD_PROPERTIES, NULL);
	glade_gnome_init();

#define ERR_ONLY	 G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING 
	g_log_set_handler (G_LOG_DOMAIN, ERR_ONLY, dui_show_message, NULL);

	/* Initialize DWI, and read in the controlliing DWI file. */
	DuiInterface *di = dui_interface_new();
	dui_interface_parse (di, "biker.dui");

	/* Create an instance of our object, and tell DWI about it.  
	 * The second argument to dui_interface_add_object() is important:
	 * it is the name by which we will refer to this instance in the 
	 * active-object.dui file. */
	GObject *biker = bike_calc_new ();
	dui_interface_add_object (di, "ibiker", biker);

	GObject *time_converter = time_hms_new ();
	dui_interface_add_object (di, "time-conv", time_converter);
	
	/* OK, now let it run. */
	dui_interface_realize (di, TRUE);
	gtk_main ();

	dui_interface_destroy(di);
	printf ("Bye! Please Come Again!\n");

	return 0;
}

/* ========================== END OF FILE ============================ */