with Claw;
package Claw.Canvas.Window is
    --
    -- CLAW - Class Library for Ada and Windows.
    --
    -- This package contains window canvas objects and operations.
    --
    -- Copyright 1996, 1997  R.R. Software, Inc.
    -- P.O. Box 1512, Madison WI  53701
    -- All rights reserved.
    --

    type Window_Canvas_Type is new Basic_Canvas_Type with private;
	-- Implementation note: Destroy does a ReleaseDC on the underlying DC.

    procedure Create (Easel : in out Window_Canvas_Type;
		      Window : in Root_Window_Type'Class;
		      Include_Non_Client_Area : in Boolean := FALSE);
	-- Create a Canvas into Easel for Window.
	-- The Canvas includes just the client area of the window unless
	-- Include_Non_Client_Area is true.
	-- Raises:
	--	Not_Valid_Error if Window is not an open window.
	--	Windows_Error if Windows cannot make the canvas.

    -- Inherits all of the Choose flavors, Is_Valid, and Get_Handle.

    procedure Destroy (Easel : in out Window_Canvas_Type);
	-- Destroy the given Canvas.
	-- Raises:
	--	Not_Valid_Error if Easel is not an open canvas.

private

    type Window_Canvas_Type is new Basic_Canvas_Type with record
	Wnd : Claw.Win32.HWnd := Claw.Win32.Null_HWnd;
    end record;

    procedure Finalize   (Easel : in out Window_Canvas_Type);
	-- Finalize Canvas (for Controlled types; this routine need not
	-- be called explicitly).

end Claw.Canvas.Window;