Listing 7-11

aus dem 7. Teil in die RISC OS C-Programmierung: Symbole: Symbole auf der Symbolleiste.

Alle Listings können heruntergeladen werden.

Symbolleiste


#include "oslib/wimp.h"
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>

int main()
{

 // melde Aufgabe beim Betriebssystem an
 wimp_version_no version_out;
 wimp_t task_handle;
 task_handle=wimp_initialise(310, "Hallo Welt!", NULL, &version_out);

 // Erzeuge Symbol
 wimp_icon_create iconbar;
 iconbar.w = wimp_ICON_BAR_RIGHT;
 iconbar.icon.extent.x0 = 0;
 iconbar.icon.extent.y0 = 0;
 iconbar.icon.extent.x1 = 68;
 iconbar.icon.extent.y1 = 68;
 iconbar.icon.flags = wimp_ICON_SPRITE |
                      wimp_BUTTON_CLICK << wimp_ICON_BUTTON_TYPE_SHIFT;
 char iconname[12]="cddisc";
 strncpy (iconbar.icon.data.sprite, iconname, 7);
 wimp_i icon_0;
 icon_0 = wimp_create_icon (&iconbar);;

 wimp_block block;

 // Variablen zum Pollen
 wimp_event_no event;
 wimp_poll_flags mask=1;
 osbool quit_pending = FALSE;

 // Hauptschleife; Ereignisverarbeitung
 while (!quit_pending)
    {
      event = wimp_poll(mask, &block, NULL);
      switch (event)
      {

        case wimp_MOUSE_CLICK:
            {
              quit_pending = true;
              break;
            }

        case wimp_USER_MESSAGE:
        case wimp_USER_MESSAGE_RECORDED:
           if (block.message.action == message_QUIT)
             {
                 quit_pending = true;
                 break;
             }
       }

    }
 wimp_close_down(task_handle);
 return 0;
}