RosettaCodeData/Task/Hello-world-Graphical/COBOL/hello-world-graphical-4.cob
2026-04-30 12:34:36 -04:00

62 lines
2 KiB
COBOL

*>
*> cobweb-gui-hello, using gtk-label
*> Tectonics:
*> cobc -w -xj cobweb-gui-hello.cob cobweb-gtk.cob \
*> `pkg-config --libs gtk+-3.0`
*>
identification division.
program-id. cobweb-gui-hello.
environment division.
configuration section.
repository.
function new-window
function new-box
function new-label
function gtk-go
function all intrinsic.
data division.
working-storage section.
01 TOPLEVEL usage binary-long value 0.
01 HORIZONTAL usage binary-long value 0.
01 VERTICAL usage binary-long value 1.
01 width-hint usage binary-long value 160.
01 height-hint usage binary-long value 16.
01 spacing usage binary-long value 8.
01 homogeneous usage binary-long value 0.
01 extraneous usage binary-long.
01 gtk-window-data.
05 gtk-window usage pointer.
01 gtk-container-data.
05 gtk-container usage pointer.
01 gtk-box-data.
05 gtk-box usage pointer.
01 gtk-label-data.
05 gtk-label usage pointer.
procedure division.
cobweb-hello-main.
*> Main window and top level container
move new-window("Hello", TOPLEVEL, width-hint, height-hint)
to gtk-window-data
move new-box(gtk-window, VERTICAL, spacing, homogeneous)
to gtk-container-data
*> Box, across, with simple label
move new-box(gtk-container, HORIZONTAL, spacing, homogeneous)
to gtk-box-data
move new-label(gtk-box, "Goodbye, World!") to gtk-label-data
*> GTK+ event loop now takes over
move gtk-go(gtk-window) to extraneous
goback.
end program cobweb-gui-hello.