[fpc-pascal] [OOT?] xlib+gnome: bring Run dialog up front

Bee bisma at brawijaya.ac.id
Wed Nov 28 12:32:57 CET 2007


Ok, I give up. :-D

How to bring the Run dialog up front?

Here's the code, I got it from 
http://darkness.codefu.org/wordpress/2004/07/24/152 and translate it to 
pascal. It works but the dialog is not brought to front. :(

----->8--- pascal code begin --->8--------

program gnome_run;

{$MODE OBJFPC}{$H+}

uses
   x, xlib;

function FindAtom(ADisplay: PXDisplay; const AtomName: string): TAtom;
var
   FAtom: TAtom;
begin
   FAtom := XInternAtom(ADisplay, PChar(AtomName), false);
   if FAtom = None then
   begin
     Writeln('Error: can''t find requested atom.');
     Halt;
   end;

   Result := FAtom;
end;

(******** main program ********)

var
   Display: PXDisplay;
   GnomePanelAtom, RunDialogAtom: TAtom;
   ClientEvent: TXClientMessageEvent;

begin
   // open x display
   Display := XOpenDisplay(nil);
   if Display = nil then
   begin
     Writeln('Error: can''t open X display.');
     Halt;
   end;

   // find panel atoms
   GnomePanelAtom := FindAtom(Display, '_GNOME_PANEL_ACTION');
   RunDialogAtom := FindAtom(Display, '_GNOME_PANEL_ACTION_RUN_DIALOG');

   // set event properties
   ClientEvent._Type := ClientMessage;
   ClientEvent.Window := DefaultRootWindow(Display);
   ClientEvent.Message_Type := GnomePanelAtom;
   ClientEvent.Format := 32;
   ClientEvent.Data.l[0] := RunDialogAtom;
   Clientevent.Data.l[1] := TTime(0);

   // run panel
   XSendEvent(Display, ClientEvent.Window, false, StructureNotifyMask, 
PXEvent(@ClientEvent));
   XCloseDisplay(Display);
end.

-----8<--- pascal code end ---8<--------

Using fpc 2.2.1 on Ubuntu Gutsy i386.

TIA.

-Bee-

has Bee.ography at:
http://beeography.wordpress.com



More information about the fpc-pascal mailing list