aus dem 7. Teil in die RISC OS C-Programmierung: Symbole: Symbole auf der Symbolleiste.
Alle Listings können heruntergeladen werden.
#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;
}