home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / packages / win32ada / data.z / poly.ads < prev    next >
Encoding:
Text File  |  1996-03-15  |  4.3 KB  |  120 lines

  1. -- $Source: /home/harp/1/proto/monoBANK/winnt/poly.ads,v $ 
  2. -- $Revision: 1.4 $ $Date: 96/03/15 13:52:17 $ $Author: stm $ 
  3. -- $Id: poly.ads 1.2 1995/01/25 15:55:52 teg Exp teg $
  4. --
  5. --  package Poly specification
  6. --
  7. --  This specification is a translation of poly.h which is part of the
  8. --  Microsoft gdidemo sample application.
  9.  
  10.  
  11. with Win32;  use Win32;
  12. with Win32.WinDef;
  13. with Interfaces.C;
  14. with Convert;
  15.  
  16. package Poly is
  17.  
  18.   polyclass_str : aliased constant Win32.CHAR_ARRAY := "POLYDEMO" & Nul;
  19.   polytitle_str : aliased constant Win32.CHAR_ARRAY := "PolyBezier Demo" & Nul;
  20.   POLYCLASS : Win32.LPCSTR := Convert.CP(polyclass_str);
  21.   POLYTITLE : Win32.LPCSTR := Convert.CP(polytitle_str); 
  22.  
  23.   MAX_BEZIER : constant :=  80;
  24.   VELMAX     : constant :=  10;
  25.   VELMIN     : constant :=  2;
  26.   -- Number of Curves in the Bezier
  27.   BEZ_CURVES : constant :=  1; 
  28.   -- Number of Points is the #Curves * 3 + 1 
  29.   BEZ_PTS    : constant := (3 * BEZ_CURVES) + 1;  
  30.   BEZ_PTS_DW : Win32.DWORD := 4;
  31.  
  32.   -- /*
  33.   -- ** This structue defines a basic bezier curve.  It is intended to be
  34.   -- ** used in an array of beziers.
  35.   -- */
  36.   type pt_array is array (0 .. BEZ_PTS-1) of 
  37.                                            aliased Win32.WinDef.POINT;
  38.   type pt_array_ptr is access all pt_array;
  39.  
  40.   type BEZBUFFER is record
  41. --    pPts : pt_array;
  42.     --MPS pPts : Win32.Wingdi.pointl_array; 
  43.     pPts : Win32.Wingdi.pointl_array(0..BEZ_PTS-1); 
  44.  
  45.   end record;
  46.   type PBEZBUFFER is access BEZBUFFER;
  47.  
  48.   null_BEZBUFFER : BEZBUFFER;
  49.  
  50.   -- Create an array of BEZBUFFER to keep track of all of the curves in the
  51.   -- window.
  52.   -- type BEZBUFFER_ARRAY is array (Natural range <>) of aliased BEZBUFFER;
  53.   type BEZBUFFER_ARRAY is array (0 .. MAX_BEZIER - 1) of aliased BEZBUFFER;
  54.   type PBEZBUFFER_ARRAY is access BEZBUFFER_ARRAY;
  55.  
  56.   -- /*
  57.   -- ** This is the main object for the polybezier window.  This structure
  58.   -- ** defines a series of bezier curves and the distance between each curve.
  59.   -- */
  60.   type POLYDATA is record
  61.     nBezTotal  : integer; --Win32.INT;
  62.     nBezCurr   : integer; --Win32.INT;
  63.     nColor     : integer; --Win32.INT;
  64.     pVel       : pt_array;
  65.     hBezBuffer : Win32.Windef.HGLOBAL;
  66.   end record;
  67.   type PPOLYDATA is access POLYDATA;
  68.  
  69.   -- /*
  70.   -- ** POLYBEZIER WINDOW ROUTINES (poly.adb)
  71.   -- */
  72.  
  73.   procedure CreatePolyWindow (hWndClient : Win32.WinDef.HWND;
  74.                               nItem      : Win32.INT);
  75.  
  76.   function PolyProc (hWnd_p   : Win32.WinDef.HWND;
  77.                      wMsg     : Win32.UINT;
  78.                      wParam_p : Win32.WPARAM;
  79.                      lParam_p : Win32.LPARAM) return Win32.LRESULT;
  80.   pragma Convention (Stdcall, PolyProc);
  81.  
  82.   function PolyCreateProc (hWnd_p : Win32.WinDef.HWND) return Win32.BOOL;
  83.  
  84.   procedure PolyDestroyProc (hWnd_p : Win32.WinDef.HWND);
  85.  
  86.   function PolyCommandProc (hWnd_p : Win32.WinDef.HWND;
  87.                             wParam_p : Win32.WPARAM;
  88.                             lParam_p : Win32.LPARAM) return Win32.BOOL;
  89.  
  90.   procedure PolyPaintProc (hWnd_p : Win32.WinDef.HWND);
  91.  
  92.   procedure PolyRedraw (hWnd_p : Win32.WinDef.HWND);
  93.  
  94.   function PolyNewVel (i : Win32.INT) return Win32.LONG;
  95.  
  96.   procedure PolyInitPoints (hWnd_p : Win32.WinDef.HWND);
  97.  
  98.   procedure PolyDrawBez (hWnd_p : Win32.WinDef.HWND);
  99.  
  100. -------------------------------------------------------------------------------
  101. --
  102. -- THIS FILE AND ANY ASSOCIATED DOCUMENTATION IS PROVIDED WITHOUT CHARGE
  103. -- "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
  104. -- BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR
  105. -- FITNESS FOR A PARTICULAR PURPOSE.  The user assumes the entire risk as to
  106. -- the accuracy and the use of this file.  This file may be used, copied,
  107. -- modified and distributed only by licensees of Microsoft Corporation's
  108. -- WIN32 Software Development Kit in accordance with the terms of the 
  109. -- licensee's End-User License Agreement for Microsoft Software for the
  110. -- WIN32 Development Kit.
  111. --
  112. -- Copyright (c) Intermetrics, Inc. 1995
  113. -- Portions (c) 1985-1994 Microsoft Corporation with permission.
  114. -- Microsoft is a registered trademark and Windows and Windows NT are
  115. -- trademarks of Microsoft Corporation.
  116. --
  117. -------------------------------------------------------------------------------
  118.  
  119. end Poly;
  120.