package Claw.Low_Level.Resources is
--
-- CLAW - Class Library for Ada and Windows.
--
-- This is the place where various commonly used low-level routines
-- are collected.
--
-- This child package deals with resource-related windows routines:
--
-- Icons, Cursors, Strings, Dialogs, etc.
--
-- It is a child of a private package, so it cannot be withed by user
-- code.
--
-- Copyright 1996, 1997 R.R. Software, Inc.
-- P.O. Box 1512, Madison WI 53701
-- All rights reserved.
--
use Claw.Win32;
-- Basic resource routines:
function Load_Icon(Instance: HInstance;
Icon_Name: Lpcstr) return HIcon;
pragma Import (StdCall, Load_Icon, "LoadIconA");
function Load_Std_Icon(Instance: HInstance;
Icon: DWord) return HIcon;
pragma Import (StdCall, Load_Std_Icon, "LoadIconA");
function Load_Cursor(Instance: HInstance;
Cursor_Name: Lpcstr) return Hcursor;
pragma Import (StdCall, Load_Cursor, "LoadCursorA");
function Load_Cursor_from_File (File_Name: Lpcstr) return Hcursor;
pragma Import (StdCall, Load_Cursor_from_File, "LoadCursorFromFileA");
function Load_Std_Cursor(Instance: HInstance;
Cursor: DWord) return Hcursor;
pragma Import (StdCall, Load_Std_Cursor, "LoadCursorA");
-- Cursor routines:
function Get_Cursor_Pos (Point : access Claw.Point_Type) return Bool;
pragma Import (StdCall, Get_Cursor_Pos, "GetCursorPos");
function Set_Cursor_Pos (X : in Claw.Int; Y : in Claw.Int) return Bool;
pragma Import (StdCall, Set_Cursor_Pos, "SetCursorPos");
function Get_Cursor return Hcursor;
pragma Import (StdCall, Get_Cursor, "GetCursor");
function Set_Cursor (New_Cursor : in Hcursor) return Hcursor;
pragma Import (StdCall, Set_Cursor, "SetCursor");
function Copy_Cursor (Cursor : in Hcursor) return Hcursor;
pragma Import (StdCall, Copy_Cursor, "CopyCursor");
function Create_Cursor (Instance: in HInstance;
X_Hotspot: in Claw.Int;
Y_Hotspot: in Claw.Int;
Width: in Claw.Int;
Height: in Claw.Int;
And_Mask: in Pixel_Byte_Ptr_Type;
Xor_Mask: in Pixel_Byte_Ptr_Type) return HCursor;
pragma Import (StdCall, Create_Cursor, "CreateCursor");
function Destroy_Cursor (Cursor : in Hcursor) return Bool;
pragma Import (StdCall, Destroy_Cursor, "DestroyCursor");
function Show_Cursor (Show : in Bool) return Int;
pragma Import (StdCall, Show_Cursor, "ShowCursor");
function Clip_Cursor (Rect : access Claw.Rectangle_Type) return Bool;
pragma Import (StdCall, Clip_Cursor, "ClipCursor");
function Cancel_Clip_Cursor (Not_Used : in DWord := 0) return Bool;
pragma Import (StdCall, Cancel_Clip_Cursor, "ClipCursor");
function Get_Clip_Cursor (Rect : access Claw.Rectangle_Type) return Bool;
pragma Import (StdCall, Get_Clip_Cursor, "GetClipCursor");
function Load_Cursor_Image1 (Instance: in HInstance;
Name: in LpCStr;
UType: in UInt := 2; -- Cursor.
Width: in Int;
Height: in Int;
Flags: in UInt) return HCursor;
pragma Import (StdCall, Load_Cursor_Image1, "LoadImageA");
-- Many functions are available only on Windows 4.x and later.
function Load_Cursor_Image2 (Instance: in HInstance;
Code: in UInt; -- OCR_xxx value.
UType: in UInt := 2; -- Cursor.
Height: in Int;
Width: in Int;
Flags: in UInt) return HCursor;
pragma Import (StdCall, Load_Cursor_Image2, "LoadImageA");
-- Many functions are available only on Windows 4.x and later.
function Load_Cursor_Image (Instance: in HInstance;
Name: in LpCStr;
UType: in UInt := 2; -- Cursor.
Width: in Int;
Height: in Int;
Flags: in UInt) return HCursor renames Load_Cursor_Image1;
function Load_Cursor_Image (Instance: in HInstance;
Code: in UInt;
UType: in UInt := 2; -- Cursor.
Width: in Int;
Height: in Int;
Flags: in UInt) return HCursor renames Load_Cursor_Image2;
-- Dialog Window related specifications
function Def_Dialog_Proc(Wnd : Hwnd;
Msg : UInt;
W_Param : WParam;
L_Param : LParam) return LResult;
pragma Import (StdCall, Def_Dialog_Proc, "DefDlgProcA");
function Dialog_Box (HInst : HInstance;
Template : access Interfaces.C.Char;
Wnd : Hwnd;
DialogProc : Dialog_Func_Type;
L_Param : LParam) return Int;
pragma Import (StdCall, Dialog_Box, "DialogBoxParamA");
function Dialog_Box_Indirect (HInst : HInstance;
Template : HGlobal;
Wnd : Hwnd;
DialogProc : Dialog_Func_Type;
L_Param : LParam) return Int;
pragma Import (StdCall, Dialog_Box_Indirect, "DialogBoxIndirectParamA");
function End_Dialog (hDlg : HWnd;
ReturnResult : Int ) return Bool;
pragma Import (StdCall, End_Dialog, "EndDialog");
function Get_Dialog_Base_Units return Long;
pragma Import (StdCall, Get_Dialog_Base_Units, "GetDialogBaseUnits");
function Map_Dialog_Rect (Dlg : Hwnd;
Rect : access Rectangle_Type) return Bool;
pragma Import (StdCall, Map_Dialog_Rect, "MapDialogRect");
function Get_Dialog_Item (Dialog : Claw.Win32.HWnd;
Id : Identifier_Type) return Claw.Win32.HWnd;
pragma Import (StdCall, Get_Dialog_Item, "GetDlgItem");
function Check_Dlg_Button(Dlg : Hwnd;
D_Button: Int;
Check : UInt) return Bool;
pragma Import (StdCall, Check_Dlg_Button, "CheckDlgButton");
function Check_Radio_Button (Dlg : Hwnd;
First_Button,
Last_Button,
Check_Button: Int) return Bool;
pragma Import (StdCall, Check_Radio_Button, "CheckRadioButton");
function Is_Dlg_Button_Checked (Dlg : Hwnd;
Id_Button: Int) return UInt;
pragma Import (StdCall, Is_Dlg_Button_Checked, "IsDlgButtonChecked");
-- Scroll bar routines:
type Scroll_Info is record
Size : UInt := 7*4;
Mask : UInt;
Min : Int;
Max : Int;
Page : UInt;
Pos : Int;
TrackPos : Int;
end record;
function Enable_Scroll_Bar (Wnd : HWnd;
SBFlags : UInt;
Which_Arrows : UInt) return Bool;
pragma Import (StdCall, Enable_Scroll_Bar, "EnableScrollBar");
function Get_Scroll_Pos (Wnd : HWnd;
Bar : UInt) return Int;
pragma Import (StdCall, Get_Scroll_Pos, "GetScrollPos");
function Get_Scroll_Range (Wnd : HWnd;
Bar : UInt;
Min : access Int;
Max : access Int) return Bool;
pragma Import (StdCall, Get_Scroll_Range, "GetScrollRange");
function Get_Scroll_Info (Wnd : HWnd;
Bar : UInt;
Info : access Scroll_Info) return Bool;
pragma Import (StdCall, Get_Scroll_Info, "GetScrollInfo");
function Set_Scroll_Pos (Wnd : HWnd;
Bar : UInt;
Pos : Int;
Redraw : Bool) return Int;
pragma Import (StdCall, Set_Scroll_Pos, "SetScrollPos");
function Set_Scroll_Range (Wnd : HWnd;
Bar : UInt;
Min : Int;
Max : Int;
Redraw : Bool) return Bool;
pragma Import (StdCall, Set_Scroll_Range, "SetScrollRange");
function Set_Scroll_Info (Wnd : HWnd;
Bar : UInt;
Info : access Scroll_Info;
Redraw : Bool) return Int;
pragma Import (StdCall, Set_Scroll_Info, "SetScrollInfo");
function Show_Scroll_Bar (Wnd : HWnd;
Bar : UInt;
Show : Bool) return Bool;
pragma Import (StdCall, Show_Scroll_Bar, "ShowScrollBar");
end Claw.Low_Level.Resources;