mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-07 01:02:24 +00:00
61 lines
1.6 KiB
Modula-2
61 lines
1.6 KiB
Modula-2
(***************************************************************************
|
|
Project: HelloWorld
|
|
Purpose: A libglade-Hello-World with oo2c
|
|
Version: 1.0
|
|
Predecessor: -
|
|
Changes: -
|
|
Target: Linux
|
|
Compiler: oo2c
|
|
Date: Jan. 2009
|
|
Author: Frank Hrebabetzky
|
|
|
|
-- converted to use with voc by noch
|
|
***************************************************************************)
|
|
|
|
MODULE HelloWorld;
|
|
|
|
IMPORT
|
|
SYSTEM, Args, Out := Console, G, Gdk, Gtk, Glade, handlers;
|
|
|
|
CONST
|
|
(*GUIFILE = "gui.glade";*)
|
|
ERRXML = 1; (* xml file problem *)
|
|
ERRNOTFOUND = 2; (* widget not found *)
|
|
|
|
VAR
|
|
argc : LONGINT;
|
|
argv : Gtk.ArgVector;
|
|
xml: Glade.XMLPtr;
|
|
drawing: Gtk.WidgetPtr;
|
|
GuiFile, name: Glade.CString;
|
|
|
|
PROCEDURE (*["Hello"]*) Hello* (widget:Gtk.WidgetPtr; data:SYSTEM.PTR);
|
|
BEGIN
|
|
Out.String("Hello, world!"); Out.Ln;
|
|
END Hello;
|
|
|
|
|
|
PROCEDURE (*["Draw"]*) Draw* (widget:Gtk.WidgetPtr;
|
|
event:Gdk.EventExposePtr; data:G.pointer): G.boolean;
|
|
VAR a: G.int;
|
|
BEGIN
|
|
a:= widget.allocation.width DIV 2;
|
|
Gdk.drawArc (widget.window, widget.style.fgGc[ORD(widget.state)], G.TRUE,
|
|
a DIV 2, a DIV 2, a, a, 0, 64*360);
|
|
RETURN G.TRUE;
|
|
END Draw;
|
|
|
|
BEGIN
|
|
argc:= Args.argc;
|
|
argv:= SYSTEM.VAL (Gtk.ArgVector, Args.argv);
|
|
Gtk.init (argc, argv);
|
|
NEW(GuiFile);
|
|
COPY("gui.glade", GuiFile^);
|
|
xml:= Glade.xmlNew (GuiFile, NIL, NIL);
|
|
ASSERT (SYSTEM.VAL(SYSTEM.PTR, xml)#NIL, ERRXML);
|
|
Glade.xmlSignalAutoconnect (xml);
|
|
NEW(name); COPY("drawing", name^);
|
|
drawing:= Glade.xmlGetWidget (xml, name);
|
|
ASSERT (drawing#NIL, ERRNOTFOUND);
|
|
Gtk.main;
|
|
END HelloWorld.
|