File: helloworld.hpp

package info (click to toggle)
guichan 0.8.2-21
  • links: PTS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 3,724 kB
  • sloc: cpp: 15,578; sh: 10,130; makefile: 255
file content (51 lines) | stat: -rw-r--r-- 1,671 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
 * Code to populate a global Gui object with a simple
 * Hello World example.
 */

namespace helloworld
{
    gcn::Container* top;
    gcn::ImageFont* font;
    gcn::Label* label;

    /**
     * Initialises the Hello World example by populating the global Gui
     * object.
     */
    void init()
    {
        // We first create a container to be used as the top widget.
        // The top widget in Guichan can be any kind of widget, but
        // in order to make the Gui contain more than one widget we
        // make the top widget a container.
        top = new gcn::Container();
        // We set the dimension of the top container to match the screen.
        top->setDimension(gcn::Rectangle(0, 0, 640, 480));
        // Finally we pass the top widget to the Gui object.
        globals::gui->setTop(top);

        // Now we load the font used in this example.
        font = new gcn::ImageFont("fixedfont.bmp", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
        // Widgets may have a global font so we don't need to pass the
        // font object to every created widget. The global font is static.
        gcn::Widget::setGlobalFont(font);

        // Now we create a label with the text "Hello World".
        label = new gcn::Label("Hello World");
        // We give the label a position.
        label->setPosition(280, 220);
        // And finally we add the label to the top container.
        top->add(label);
    }
    
    /**
     * Halts the Hello World example.
     */
    void halt()
    {
        delete label;
        delete font;
        delete top;
    }
}