home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sa104os2.zip
/
SATHR104.ZIP
/
SATHER
/
CONTRIB
/
SCHNETTR
/
XLIB
/
SCREEN.SA
< prev
next >
Wrap
Text File
|
1994-11-25
|
5KB
|
147 lines
-- -*-Sather-*-
-- access to the X window system routines
-- (c) 1994/11/22 - 1994/11/24 by Erik Schnetter
class X_SCREEN is
-- handle a screen.
-- internal representation
readonly attr display: X_DISPLAY; -- display the screen is on
readonly attr c_screen: EXT_OB; -- pointer to the C Screen structure
-- create a non-attached screen
create: SAME post result.Void is return new end;
-- create a screen from an external object
create (display: X_DISPLAY, c_screen: EXT_OB): SAME post ~result.Void is
res ::= new;
res.display := display;
res.c_screen := c_screen;
return res;
end; -- create
-- is this object attached to a screen?
Void: BOOL is return void(self) or void(c_screen) end;
-- black pixel value
BlackPixel: INT pre ~Void is
return C_X_SCREEN::X_BlackPixelOfScreen(c_screen)
end; -- BlackPixel
-- white pixel value
WhitePixel: INT pre ~Void is
return C_X_SCREEN::X_WhitePixelOfScreen(c_screen)
end; -- WhitePixel
-- number of colormap cells
Cells: INT pre ~Void is
return C_X_SCREEN::X_CellsOfScreen(c_screen)
end; -- Cells
-- default colormap
DefaultColormap: X_COLORMAP pre ~Void is
return #X_COLORMAP(display,C_X_SCREEN::X_DefaultColormapOfScreen(c_screen))
end; -- DefaultColormap
-- default depth
DefaultDepth: INT pre ~Void is
return C_X_SCREEN::X_DefaultDepthOfScreen(c_screen)
end; -- DefaultDepth
-- default visual
DefaultVisual: X_VISUAL pre ~Void post ~result.Void is
return #X_VISUAL(display,C_X_SCREEN::X_DefaultVisualOfScreen(c_screen))
end; -- DefaultVisual
-- does this screen support backing stores?
-- (returns X_WINDOW_DEFS::WhenMapped, NotUseful, or Always)
DoesBackingStore: INT
pre ~Void post result=X_WINDOW_DEFS::WhenMapped or result=X_WINDOW_DEFS::NotUseful or result=X_WINDOW_DEFS::Always is
return C_X_SCREEN::X_DoesBackingStore(c_screen)
end; -- DoesBackingStore
-- does this screen support save unders?
DoesSaveUnders: BOOL pre ~Void is
return C_X_SCREEN::X_DoesSaveUnders(c_screen)
end; -- DoesSaveUnders
-- event mask of the root screen
EventMask: ARRAY{INT} pre ~Void post ~void(result) is
mask::=C_X_SCREEN::X_EventMaskOfScreen(c_screen);
res::=#ARRAY{INT}(INT::asize); cnt::=0;
loop pos::=INT::asize.times!;
if mask.bit(pos) then res[cnt]:=pos; cnt:=cnt+1; end;
end;
return res.resize(cnt);
end; -- EventMask
-- height in pixels
Height: INT pre ~Void post result>0 is
return C_X_SCREEN::X_HeightOfScreen(c_screen)
end; -- Height
-- height in millimeters
HeightMM: INT pre ~Void post result>=0 is
return C_X_SCREEN::X_HeightMMOfScreen(c_screen)
end; -- HeightMM
-- maximum number of colormaps
MaxCmaps: INT pre ~Void post result>0 is
return C_X_SCREEN::X_MaxCmapsOfScreen(c_screen)
end; -- MaxCmaps
-- minimum number of colormaps
MinCmaps: INT pre ~Void post result>0 is
return C_X_SCREEN::X_MinCmapsOfScreen(c_screen)
end; -- MinCmaps
-- number of planes in the root window
Planes: INT pre ~Void post result>0 is
return C_X_SCREEN::X_PlanesOfScreen(c_screen)
end; -- Planes
-- root window
RootWindow: X_WINDOW pre ~Void post ~result.Void is
return #X_WINDOW(display,C_X_SCREEN::X_RootWindowOfScreen(c_screen))
end; -- RootWindow
-- width in pixels
Width: INT pre ~Void post result>0 is
return C_X_SCREEN::X_WidthOfScreen(c_screen)
end; -- Width
-- width in millimeters
WidthMM: INT pre ~Void post result>=0 is
return C_X_SCREEN::X_WidthMMOfScreen(c_screen)
end; -- WidthMM
end; -- class X_SCREEN
external class C_X_SCREEN is
X_BlackPixelOfScreen(screen:EXT_OB):INT;
X_WhitePixelOfScreen(screen:EXT_OB):INT;
X_CellsOfScreen(screen:EXT_OB):INT;
X_DefaultColormapOfScreen(screen:EXT_OB):INT;
X_DefaultDepthOfScreen(screen:EXT_OB):INT;
X_DefaultVisualOfScreen(screen:EXT_OB):EXT_OB;
X_DoesBackingStore(screen:EXT_OB):INT;
X_DoesSaveUnders(screen:EXT_OB):BOOL;
X_DisplayOfScreen(screen:EXT_OB):EXT_OB;
X_EventMaskOfScreen(screen:EXT_OB):INT;
X_HeightOfScreen(screen:EXT_OB):INT;
X_HeightMMOfScreen(screen:EXT_OB):INT;
X_MaxCmapsOfScreen(screen:EXT_OB):INT;
X_MinCmapsOfScreen(screen:EXT_OB):INT;
X_PlanesOfScreen(screen:EXT_OB):INT;
X_RootWindowOfScreen(screen:EXT_OB):INT;
X_WidthOfScreen(screen:EXT_OB):INT;
X_WidthMMOfScreen(screen:EXT_OB):INT;
end; -- class C_X_SCREEN