MADDE/GTK Example
(New page: <div style="border: 1px solid red; background-color: #faa; padding: 20px;"><div style="text-align:center;">'''TECHNOLOGY PREVIEW'''</div></div> === Introduction === This example require...) |
m (→Start the project: use <source>) |
||
Line 42: | Line 42: | ||
Lets create a small GTK helloworld application hello.c in src directory: | Lets create a small GTK helloworld application hello.c in src directory: | ||
- | + | <source lang="c"> | |
- | + | #include <gtk/gtk.h> | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | 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; | ||
+ | } | ||
+ | </source> | ||
=== Compile & build === | === Compile & build === |
Revision as of 08:43, 21 April 2010
Contents |
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:
#include <gtk/gtk.h> 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; }
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.