14460e7057e3ae4a8840333fffd40222fac32fdd
[AXE.git] / demos / doodle2.cpp
1 /**************************************************************************
2 **  (c) Copyright 2002, Andromeda Technology & Automation
3 ***************************************************************************
4 ** MODULE INFORMATION *
5 ***********************
6 **      FILE NAME      : doodle2.cpp
7 **      SYSTEM NAME    : AXE - Andromeda X-windows Encapsulation
8 **      VERSION NUMBER : $Revision: 1.1 $
9 **
10 **  DESCRIPTION      :  Doodle is an exmaple application to demonstrate
11 **                      the functions in AXE as a tutorial.
12 **                      The second phase shows how to draw graphics in a
13 **                      window and the event handling mechanism.
14 **
15 **  EXPORTED OBJECTS : 
16 **  LOCAL    OBJECTS : 
17 **  MODULES  USED    :
18 ***************************************************************************
19 **  ADMINISTRATIVE INFORMATION *
20 ********************************
21 **      ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
22 **      CREATION DATE   : Mar 01, 2002
23 **************************************************************************/
24
25 /*****************************
26    $Log: doodle2.cpp,v $
27    Revision 1.1  2002-07-25 08:01:18  arjen
28    First checkin, AXE release 0.2
29
30 *****************************/
31
32 static const char *RCSID = "$Id: doodle2.cpp,v 1.1 2002-07-25 08:01:18 arjen Exp $";
33
34 #include <AXE/xappl.h>
35
36 class doodle_view : public window
37 {
38 public:
39
40    doodle_view(window *parent) : window (*parent, 10, 30, 300, 220)
41    {
42       SelectInput(ExposureMask, 1);
43       Background(color("lightyellow"));
44    }
45
46    virtual int EV_Expose(XExposeEvent);
47 };
48
49 class doodle: public xapplication
50 {
51    managed_window *main_frame;
52    doodle_view    *draw_frame;
53
54    virtual void SetupResources(void);
55 };
56
57 doodle DoodleApp;
58
59 void doodle::SetupResources()
60 {
61    main_frame = new managed_window("Doodling with AXE");
62    main_frame->Map();
63
64    draw_frame = new doodle_view(main_frame);
65    draw_frame->Map();
66 }
67
68 int doodle_view::EV_Expose(XExposeEvent ev)
69 {
70    gc    graphic("black");
71
72    DrawRectangle(graphic, 50, 70, 200, 100);
73
74    return 1;
75 }