MADDE/GTK Example

TECHNOLOGY PREVIEW

Introduction
This example requires a working configuration of MADDE. At least one target has to be installed and set as 'default'. The basic steps to do this are described in this guide.


 * start a project in MADDE
 * use template-projects for developing
 * compile a project in MADDE
 * build a package

Templates
Templates are used in MADDE to simplify the set up of the basic skeleton for a project. The following command shows the list of available templates:

mad pscreate -l


 * The command gives following output:

TEMPLATE NAME   TYPE     DESCRIPTION empty           prog     Empty project lib_simple      lib      Simple example for C/C++ libraries qt_lib_simple   qtlib    Simple example for Qt libraries qt_simple       qtprog   Simple example for Qt programs simple          prog     Simple example for C/C++ programs

Start the project
The goal of this example is to create a simple GTK helloworld application. Therefore we can use the "simple" template out of the list with small modifications. The following command creates a project using the "simple" template and named as "helloworld"

mad pscreate -t simple helloworld

Afterwards the skeleton is created with the following subdirectories:


 * src: place for sourcefiles
 * debian:configuration files, which are needed to create the package later on
 * uis:empty folder for ui files which would be needed with Qt applications

Further it contains a file named "prog.pro", which is a project file, needed to create the Makefile with qmake.

Lets create a small GTK helloworld application hello.c in src directory:

static void destroy( GtkWidget *widget,                    gpointer   data ) {   gtk_main_quit ; } int main( int  argc,          char *argv[] ) {   GtkWidget *window; GtkWidget *label; gtk_init (&argc, &argv); label = gtk_label_new("Hello world"); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL); gtk_container_add (GTK_CONTAINER (window), label); gtk_widget_show (window); gtk_widget_show(label); gtk_main ; return 0; }
 * 1) include 

Compile & build
Before we can compile GTK application we have to modify prog.pro file. In prog.pro file edit SOURCES += and HEADERS +=   lines to contain source files in the project, in our case wee need only following line: SOURCES += hello.c

For GTK applications we want to use pkgconfig to help compiling and linking against correct libraries.

For our example we add following lines: CONFIG     += link_pkgconfig and PKGCONFIG  += gtk+-2.0

Now we are ready to build our application.

The following steps describe how to compile and build the project.

1. Create the Makefile:

cd helloworld mad qmake

2. Compile the project.

mad make


 * Now the executable program helloworld is created in the helloworld/build directory.

3. Create a debian package:

mad dpkg-buildpackage


 * This command will build the project and make a debian package called helloworld_0.1_armel.deb. The debian package will be created in the projects' parent directory.