Window creation/X11: Difference between revisions

Content added Content deleted
Line 399: Line 399:


=={{header|Pascal}}==
=={{header|Pascal}}==
from wiki.freepascal.org/X11#Examples. Seems to be the translation of C.
Compiled with Freepascal 2.6.4-32
<lang pascal>program xshowwindow;
{$mode objfpc}{$H+}

uses
xlib, x, ctypes;
procedure ModalShowX11Window(AMsg: string);
var
d: PDisplay;
w: TWindow;
e: TXEvent;
msg: PChar;
s: cint;
begin
msg := PChar(AMsg);
{ open connection with the server }
d := XOpenDisplay(nil);
if (d = nil) then
begin
WriteLn('[ModalShowX11Window] Cannot open display');
exit;
end;
s := DefaultScreen(d);
{ create window }
w := XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 50, 1,
BlackPixel(d, s), WhitePixel(d, s));
{ select kind of events we are interested in }
XSelectInput(d, w, ExposureMask or KeyPressMask);
{ map (show) the window }
XMapWindow(d, w);
{ event loop }
while (True) do
begin
XNextEvent(d, @e);
{ draw or redraw the window }
if (e._type = Expose) then
begin
XFillRectangle(d, w, DefaultGC(d, s), 0, 10, 100, 3);
XFillRectangle(d, w, DefaultGC(d, s), 0, 30, 100, 3);
XDrawString (d, w, DefaultGC(d, s), 5, 25, msg, strlen(msg));
end;
{ exit on key press }
if (e._type = KeyPress) then Break;
end;
{ close connection to server }
XCloseDisplay(d);
end;
begin
ModalShowX11Window('Hello, World!');
end.
</lang>


=={{header|Perl}}==
=={{header|Perl}}==