Browse Source

+ added unit xag (header translation of X11/extensions/Xag.h)

Nikolay Nikolov 4 years ago
parent
commit
9846fd3f37
4 changed files with 165 additions and 0 deletions
  1. 7 0
      packages/x11/fpmake.pp
  2. 47 0
      packages/x11/src/ag.inc
  3. 96 0
      packages/x11/src/xag.pp
  4. 15 0
      packages/x11/tests/xag_linktest.pp

+ 7 - 0
packages/x11/fpmake.pp

@@ -167,6 +167,13 @@ begin
           AddInclude('lbx.inc');
           AddUnit('xlib');
         end;
+    T:=P.Targets.AddUnit('xag.pp');
+      with T.Dependencies do
+        begin
+          AddInclude('ag.inc');
+          AddUnit('x');
+          AddUnit('xlib');
+        end;
 
 {$ifndef ALLPACKAGES}
     Run;

+ 47 - 0
packages/x11/src/ag.inc

@@ -0,0 +1,47 @@
+(*
+Copyright 1996, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+*)
+
+const
+  XAGNAME = 'XC-APPGROUP';
+
+  XAG_MAJOR_VERSION      = 1;  { current version numbers }
+  XAG_MINOR_VERSION      = 0;
+
+  XagWindowTypeX11       = 0;
+  XagWindowTypeMacintosh = 1;
+  XagWindowTypeWin32     = 2;
+  XagWindowTypeWin16     = 3;
+
+  XagBadAppGroup         = 0;
+  XagNumberErrors        = XagBadAppGroup + 1;
+
+  XagNsingleScreen       = 7;
+  XagNdefaultRoot        = 1;
+  XagNrootVisual         = 2;
+  XagNdefaultColormap    = 3;
+  XagNblackPixel         = 4;
+  XagNwhitePixel         = 5;
+  XagNappGroupLeader     = 6;

+ 96 - 0
packages/x11/src/xag.pp

@@ -0,0 +1,96 @@
+(*
+Copyright 1996, 1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+*)
+
+unit xag;
+
+interface
+
+{$MODE objfpc}
+
+uses
+  ctypes, x, xlib;
+
+const
+  libXext = 'Xext';
+
+{$I ag.inc}
+
+//#include <stdarg.h>
+
+type
+  PXAppGroup = ^TXAppGroup;
+  TXAppGroup = TXID;
+
+function XagQueryVersion(
+    dpy: PDisplay;
+    major_version,
+    minor_version: Pcint
+): TBoolResult; cdecl; external libXext;
+
+function XagCreateEmbeddedApplicationGroup(
+    dpy: PDisplay;
+    root_visual: TVisualID;
+    default_colormap: TColormap;
+    black_pixel,
+    white_pixel: culong;
+    app_group_return: PXAppGroup
+): TStatus; cdecl; external libXext;
+
+function XagCreateNonembeddedApplicationGroup(
+    dpy: PDisplay;
+    app_group_return: PXAppGroup
+): TStatus; cdecl; external libXext;
+
+function XagDestroyApplicationGroup(
+    dpy: PDisplay;
+    app_group: TXAppGroup
+): TStatus; cdecl; external libXext;
+
+function XagGetApplicationGroupAttributes(
+    dpy: PDisplay;
+    app_group: TXAppGroup;
+    dotdotdot: array of const
+): TStatus; cdecl; external libXext;
+
+function XagQueryApplicationGroup(
+    dpy: PDisplay;
+    resource_base: TXID;
+    app_group_ret: PXAppGroup
+): TStatus; cdecl; external libXext;
+
+function XagCreateAssociation(
+    dpy: PDisplay;
+    window_ret: PWindow;
+    system_window: Pointer
+): TStatus; cdecl; external libXext;
+
+function XagDestroyAssociation(
+    dpy: PDisplay;
+    window: TWindow
+): TStatus; cdecl; external libXext;
+
+implementation
+end.

+ 15 - 0
packages/x11/tests/xag_linktest.pp

@@ -0,0 +1,15 @@
+{ this program just links all externals, declared in the xag unit }
+program xag_linktest;
+uses
+  xag;
+begin
+  halt(0);
+  XagQueryVersion(nil,nil,nil);
+  XagCreateEmbeddedApplicationGroup(nil,0,0,0,0,nil);
+  XagCreateNonembeddedApplicationGroup(nil,nil);
+  XagDestroyApplicationGroup(nil,0);
+  XagGetApplicationGroupAttributes(nil,0,[]);
+  XagQueryApplicationGroup(nil,0,nil);
+  XagCreateAssociation(nil,nil,nil);
+  XagDestroyAssociation(nil,0);
+end.