|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 13605 (0x3525)
Types: TextFile
Names: »V«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00
└─⟦0c20f784e⟧ »DATA«
└─⟦1abbe589f⟧
└─⟦059497ac5⟧
└─⟦this⟧
with Unchecked_Deallocation;
with Xlbt_Arithmetic;
use Xlbt_Arithmetic;
with Xlbt_Basic3;
use Xlbt_Basic3;
with Xlbt_Extension4;
use Xlbt_Extension4;
package Xlbt_Gc3 is
------------------------------------------------------------------------------
-- X Library Graphics Context - Full Interface
--
-- Xlbt_Gc3 - Types that need not be imported directly into most programs.
------------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
-- Copyright 1985 - 1989 by the Massachusetts Institute of Technology
--
-- All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the names of MIT or Rational not be
-- used in advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- MIT and Rational disclaim all warranties with regard to this software,
-- including all implied warranties of merchantability and fitness, in no
-- event shall MIT or Rational be liable for any special, indirect or
-- consequential damages or any damages whatsoever resulting from loss of use,
-- data or profits, whether in an action of contract, negligence or other
-- tortious action, arising out of or in connection with the use or performance
-- of this software.
------------------------------------------------------------------------------
--\f
------------------------------------------------------------------------------
-- X_Arc_Mode
------------------------------------------------------------------------------
type X_Arc_Mode is (Arc_Chord, -- join endpoints of arc
Arc_Pie_Slice); -- join endpoints to center of arc
None_X_Arc_Mode : constant X_Arc_Mode := X_Arc_Mode'Val (0);
------------------------------------------------------------------------------
-- X_Best_Size_Class
------------------------------------------------------------------------------
type X_Best_Size_Class is
(Cursor_Shape, -- largest size that can be displayed
Tile_Shape, -- size tiled fastest
Stipple_Shape); -- size stippled fastest
--/ if Length_Clauses then
for X_Best_Size_Class'Size use 8;
--/ end if;
------------------------------------------------------------------------------
-- X_Cap_Style
------------------------------------------------------------------------------
type X_Cap_Style is (Cap_Not_Last,
Cap_Butt,
Cap_Round,
Cap_Projecting);
None_X_Cap_Style : constant X_Cap_Style := X_Cap_Style'Val (0);
------------------------------------------------------------------------------
-- X_Clip_Ordering
------------------------------------------------------------------------------
type X_Clip_Ordering is (Unsorted,
Y_Sorted,
Y_X_Sorted,
Y_X_Banded);
--/ if Length_Clauses then
for X_Clip_Ordering'Size use 8;
--/ end if;
None_X_Clip_Ordering : constant X_Clip_Ordering := X_Clip_Ordering'Val (0);
------------------------------------------------------------------------------
-- X_Fill_Rule
------------------------------------------------------------------------------
type X_Fill_Rule is (Even_Odd_Rule,
Winding_Rule);
None_X_Fill_Rule : constant X_Fill_Rule := X_Fill_Rule'Val (0);
------------------------------------------------------------------------------
-- X_Fill_Style
------------------------------------------------------------------------------
type X_Fill_Style is (Fill_Solid,
Fill_Tiled,
Fill_Stippled,
Fill_Opaque_Stippled);
None_X_Fill_Style : constant X_Fill_Style := X_Fill_Style'Val (0);
------------------------------------------------------------------------------
-- X_Gc_Components - masks used in X_Create_Gc, X_Copy_Gc, X_Change_Gc,
-- OR'ed into GC.State_Changes
------------------------------------------------------------------------------
--/ if Bit0_Sign_Bit then
type X_Gc_Components_Index is
(Xgcl31, Xgcl30, Xgcl29, Xgcl28, Xgcl27,
Xgcl26, Xgcl25, Xgcl24, Xgcl23, -- Unused
Gc_Arc_Mode,
Gc_Dash_List,
Gc_Dash_Offset,
Gc_Clip_Mask,
Gc_Clip_Y_Origin,
Gc_Clip_X_Origin,
Gc_Graphics_Exposures,
Gc_Subwindow_Mode,
Gc_Font,
Gc_Tile_Stip_Y_Origin,
Gc_Tile_Stip_X_Origin,
Gc_Stipple,
Gc_Tile,
Gc_Fill_Rule,
Gc_Fill_Style,
Gc_Join_Style,
Gc_Cap_Style,
Gc_Line_Style,
Gc_Line_Width,
Gc_Background,
Gc_Foreground,
Gc_Plane_Mask,
Gc_Function);
--/ else -- not Bit0_Sign_Bit then
--//
--// type X_Gc_Components_Index is
--// (Gc_Function,
--// Gc_Plane_Mask,
--// Gc_Foreground,
--// Gc_Background,
--// Gc_Line_Width,
--// Gc_Line_Style,
--// Gc_Cap_Style,
--// Gc_Join_Style,
--// Gc_Fill_Style,
--// Gc_Fill_Rule,
--// Gc_Tile,
--// Gc_Stipple,
--// Gc_Tile_Stip_X_Origin,
--// Gc_Tile_Stip_Y_Origin,
--// Gc_Font,
--// Gc_Subwindow_Mode,
--// Gc_Graphics_Exposures,
--// Gc_Clip_X_Origin,
--// Gc_Clip_Y_Origin,
--// Gc_Clip_Mask,
--// Gc_Dash_Offset,
--// Gc_Dash_List,
--// Gc_Arc_Mode,
--// Xgcl23, Xgcl24, Xgcl25, Xgcl26, Xgcl27,
--// Xgcl28, Xgcl29, Xgcl30, Xgcl31); -- Unused
--//
--/ end if;
Gc_Last_Bit : constant X_Gc_Components_Index := Gc_Arc_Mode;
type X_Gc_Components is array (X_Gc_Components_Index) of Boolean;
--/ if Length_Clauses then
for X_Gc_Components'Size use 32;
--/ elsif Pack then
--// pragma Pack (X_Gc_Components);
--/ end if;
None_X_Gc_Components : constant X_Gc_Components :=
(others => False);
All_Gc_Components : constant X_Gc_Components :=
X_Gc_Components'(Xgcl31 | Xgcl30 | Xgcl29 | Xgcl28 | Xgcl27 |
Xgcl26 | Xgcl25 | Xgcl24 | Xgcl23 => False, -- Unused
Gc_Arc_Mode | Gc_Dash_List | Gc_Dash_Offset |
Gc_Clip_Mask | Gc_Clip_Y_Origin | Gc_Clip_X_Origin |
Gc_Graphics_Exposures | Gc_Subwindow_Mode | Gc_Font |
Gc_Tile_Stip_Y_Origin | Gc_Tile_Stip_X_Origin |
Gc_Stipple | Gc_Tile | Gc_Fill_Rule |
Gc_Fill_Style | Gc_Join_Style | Gc_Cap_Style |
Gc_Line_Style | Gc_Line_Width | Gc_Background |
Gc_Foreground | Gc_Plane_Mask | Gc_Function => True);
------------------------------------------------------------------------------
-- X_Graphic_Function
------------------------------------------------------------------------------
type X_Graphic_Function is
(Gx_Clear, -- 0
Gx_And, -- src AND dst
Gx_And_Reverse, -- src AND NOT dst
Gx_Copy, -- src
Gx_And_Inverted, -- NOT src AND dst
Gx_Noop, -- dst
Gx_Xor, -- src X_OR dst
Gx_Or, -- src OR dst
Gx_Nor, -- NOT src AND NOT dst
Gx_Equiv, -- NOT src X_OR dst
Gx_Invert, -- NOT dst
Gx_Or_Reverse, -- src OR NOT dst
Gx_Copy_Inverted,-- NOT src
Gx_Or_Inverted, -- NOT src OR dst
Gx_Nand, -- NOT src OR NOT dst
Gx_Set); -- 1
--/ if Length_Clauses then
for X_Graphic_Function'Size use 32;
--/ end if;
None_X_Graphic_Function : constant X_Graphic_Function :=
X_Graphic_Function'Val (0);
------------------------------------------------------------------------------
-- X_Join_Style
------------------------------------------------------------------------------
type X_Join_Style is (Join_Miter,
Join_Round,
Join_Bevel);
None_X_Join_Style : constant X_Join_Style := X_Join_Style'Val (0);
------------------------------------------------------------------------------
-- X_Line_Style
------------------------------------------------------------------------------
type X_Line_Style is (Line_Solid,
Line_On_Off_Dash,
Line_Double_Dash);
None_X_Line_Style : constant X_Line_Style := X_Line_Style'Val (0);
------------------------------------------------------------------------------
-- X_Subwindow_Mode
------------------------------------------------------------------------------
type X_Subwindow_Mode is (Clip_By_Children,
Include_Inferiors);
None_X_Subwindow_Mode : constant X_Subwindow_Mode :=
X_Subwindow_Mode'Val (0);
--\f
------------------------------------------------------------------------------
-- X_Gc_Values - Graphic data structure for setting a Graphics Context.
------------------------------------------------------------------------------
type X_Gc_Values is
record
Funct : -- logical operation
X_Graphic_Function := None_X_Graphic_Function;
Plane_Mask : -- plane mask
X_Plane_Mask := No_Planes;
Foreground : -- foreground pixel
X_Pixel := None_X_Pixel;
Background : -- background pixel
X_Pixel := None_X_Pixel;
Line_Width : U_Short := 0; -- line width
Line_Style : X_Line_Style := None_X_Line_Style;
Cap_Style : X_Cap_Style := None_X_Cap_Style;
Join_Style : X_Join_Style := None_X_Join_Style;
Fill_Style : X_Fill_Style := None_X_Fill_Style;
Fill_Rule : X_Fill_Rule := None_X_Fill_Rule;
Arc_Mode : X_Arc_Mode := None_X_Arc_Mode;
Tile : X_Pixmap := -- tile pixmap for tiling operations
None_X_Pixmap;
Stipple : -- stipple 1 plane pixmap for
X_Pixmap := None_X_Pixmap; -- stippling
Ts_X_Origin : S_Short := 0; -- offset for tile or stipple
Ts_Y_Origin : S_Short := 0; -- operations
Font : X_Font; -- default text font for text
-- operations
Subwindow_Mode : X_Subwindow_Mode := None_X_Subwindow_Mode;
Graphics_Exposures : -- should exposures be generated
Boolean := False;
Clip_X_Origin : -- origin for clipping
S_Short := 0;
Clip_Y_Origin : S_Short := 0;
Clip_Mask : -- bitmap clipping; other calls
X_Pixmap := None_X_Pixmap; -- for rects
Dash_Offset : U_Short := 0; -- patterned/dashed line information
Dashes : U_Char := 0;
end record;
None_X_Gc_Values : constant X_Gc_Values :=
(None_X_Graphic_Function, No_Planes, None_X_Pixel,
None_X_Pixel, 0, None_X_Line_Style, None_X_Cap_Style,
None_X_Join_Style, None_X_Fill_Style, None_X_Fill_Rule,
None_X_Arc_Mode, None_X_Pixmap, None_X_Pixmap, 0, 0, None_X_Font,
None_X_Subwindow_Mode, False, 0, 0, None_X_Pixmap, 0, 0);
--\f
------------------------------------------------------------------------------
-- X_Gc - Graphics context. All X_lib routines deal in this rather than
-- in raw protocol G_Context ID's. This is so that the library can keep
-- a "shadow" set of values, and thus avoid passing values over the
-- wire which are not in fact changing.
------------------------------------------------------------------------------
type X_Gc_Rec is
record
Ext_Data : X_Ext_Data := null; -- hook for extension to hang data
Gid : -- protocol ID for graphics context
X_G_Context := None_X_G_Context;
Rects : Boolean := False; -- TRUE if clipmask is list
-- of rectangles
Dashes : Boolean := False; -- boolean: TRUE if dash-list is
-- really a list
Dirty : -- cache dirty bits
X_Gc_Components := None_X_Gc_Components;
Values : X_Gc_Values; -- shadow structure of values
end record;
type X_Gc is access X_Gc_Rec;
--/ if Enable_Deallocation then
pragma Enable_Deallocation (X_Gc);
--/ end if;
None_X_Gc : constant X_Gc := null;
type X_Gc_Array is array (S_Natural range <>) of X_Gc;
type X_Gc_List is access X_Gc_Array;
--/ if Enable_Deallocation then
pragma Enable_Deallocation (X_Gc);
--/ end if;
None_X_Gc_List : constant X_Gc_List := null;
----procedure Free_X_Gc ---- Use Xlbp_Gc.X_Free_Gc to free an X_Gc.
end Xlbt_Gc3;