Files
befpc/bepascal/bepascal/be/interface/alert.pp
2003-04-02 21:23:25 +00:00

318 lines
13 KiB
ObjectPascal

{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2003 Olivier Coursiere
Eric Jourde
Oscar Lesta
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit Alert;
interface
uses
BeObj, Archivable, Button, InterfaceDefs, Invoker, Handler,
Message, Rect, SupportDefs, TextView, Window;
type
{ enum for flavors of alert }
// enum alert_type
TAlert_Type = (B_EMPTY_ALERT, B_INFO_ALERT, B_IDEA_ALERT, B_WARNING_ALERT,
B_STOP_ALERT);
//enum button_spacing
TButton_Spacing = (B_EVEN_SPACING, B_OFFSET_SPACING);
TAlert = class(TWindow)
private
public
// Here we have this name colition: type --> kind
constructor Create(title : PChar; text : PChar; button1 : PChar;
button2 : PChar; button3 : PChar; width : TButton_Width;
kind{type} : TAlert_Type);
constructor Create(title : PChar; text : PChar; button1 : PChar;
button2 : PChar; button3 : PChar; width : TButton_Width;
spacing : TButton_Spacing; kind{type} : TAlert_Type);
constructor Create(data : TMessage);
destructor Destroy; override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure SetShortcut(button_index : integer; key : Char);
function Shortcut(button_index : integer) : Char;
function Go : integer;
function Go(invoker : TInvoker) : TStatus_t;
procedure MessageReceived(an_event : TMessage); override;
procedure FrameResized(new_width : double; new_height : double);
function ButtonAt(index : integer) : TButton;
function TextView : TTextView;
function ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
function GetSupportedSuites(data : TMessage) : TStatus_t;
procedure DispatchMessage(msg : TMessage; handler : THandler); override;
procedure Quit;
function QuitRequested : boolean; override;
function AlertPosition(width : double; height : double) : TPoint;
{
function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
procedure _ReservedAlert1;
procedure _ReservedAlert2;
procedure _ReservedAlert3;
procedure InitObject(text : PChar; button1 : PChar; button2 : PChar; button3 : PChar; width : TButton_Width; spacing : TButton_Spacing; type : TAlert_Type);
function InitIcon : TBitmap;
procedure sem_id fAlertSem;
procedure int32 fAlertVal;
procedure BButton *fButtons[3];
procedure BTextView *fTextView;
procedure char fKeys[3];
procedure alert_type fMsgType;
procedure button_width fButtonWidth;
procedure BInvoker *fInvoker;
procedure uint32 _reserved[4];
}
end;
function BAlert_Create(AObject : TBeObject; title : PChar; text : PChar;
button1 : PChar; button2 : PChar; button3 : PChar; width : TButton_Width;
kind{type} : TAlert_Type) : TCPlusObject; cdecl;
external BePascalLibName name 'BAlert_Create';
function BAlert_Create_1(AObject : TBeObject; title : PChar; text : PChar;
button1 : PChar; button2 : PChar; button3 : PChar; width : TButton_Width;
spacing : TButton_Spacing; kind{type} : TAlert_Type) : TCPlusObject; cdecl;
external BePascalLibName name 'BAlert_Create_1';
function BAlert_Create_2(AObject : TBeObject; data : TCPlusObject)
: TCPlusObject; cdecl; external BePascalLibName name 'BAlert_Create_2';
procedure BAlert_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_Free';
function BAlert_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BAlert_Instantiate';
function BAlert_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BAlert_Archive';
procedure BAlert_SetShortcut(AObject : TCPlusObject; button_index : integer; key : Char); cdecl; external BePascalLibName name 'BAlert_SetShortcut';
function BAlert_Shortcut(AObject : TCPlusObject; button_index : integer) : Char; cdecl; external BePascalLibName name 'BAlert_Shortcut';
function BAlert_Go(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BAlert_Go';
function BAlert_Go(AObject : TCPlusObject; invoker : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BAlert_Go';
procedure BAlert_MessageReceived(AObject : TCPlusObject; an_event : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_MessageReceived';
procedure BAlert_FrameResized(AObject : TCPlusObject; new_width : double; new_height : double); cdecl; external BePascalLibName name 'BAlert_FrameResized';
function BAlert_ButtonAt(AObject : TCPlusObject; index : integer) : TButton; cdecl; external BePascalLibName name 'BAlert_ButtonAt';
function BAlert_TextView(AObject : TCPlusObject) : TTextView; cdecl; external BePascalLibName name 'BAlert_TextView';
function BAlert_ResolveSpecifier(AObject : TCPlusObject; msg : TCPlusObject; index : integer; specifier : TCPlusObject; form : integer; properti : PChar) : THandler; cdecl; external BePascalLibName name 'BAlert_ResolveSpecifier';
function BAlert_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BAlert_GetSupportedSuites';
procedure BAlert_DispatchMessage(AObject : TCPlusObject; msg : TCPlusObject; handler : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_DispatchMessage';
procedure BAlert_Quit(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_Quit';
function BAlert_QuitRequested(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BAlert_QuitRequested';
function BAlert_AlertPosition(AObject : TCPlusObject; width : double; height : double) : TPoint; cdecl; external BePascalLibName name 'BAlert_AlertPosition';
{
function BAlert_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BAlert_Perform';
procedure BAlert__ReservedAlert1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert__ReservedAlert1';
procedure BAlert__ReservedAlert2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert__ReservedAlert2';
procedure BAlert__ReservedAlert3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert__ReservedAlert3';
procedure BAlert_InitObject(AObject : TCPlusObject; text : PChar; button1 : PChar; button2 : PChar; button3 : PChar; width : TButton_Width; spacing : TButton_Spacing; type : TAlert_Type); cdecl; external BePascalLibName name 'BAlert_InitObject';
function BAlert_InitIcon(AObject : TCPlusObject) : TBitmap; cdecl; external BePascalLibName name 'BAlert_InitIcon';
procedure BAlert_sem_id fAlertSem(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_sem_id fAlertSem';
procedure BAlert_int32 fAlertVal(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_int32 fAlertVal';
procedure BAlert_BButton *fButtons[3](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_BButton *fButtons[3]';
procedure BAlert_BTextView *fTextView(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_BTextView *fTextView';
procedure BAlert_char fKeys[3](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_char fKeys[3]';
procedure BAlert_alert_type fMsgType(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_alert_type fMsgType';
procedure BAlert_button_width fButtonWidth(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_button_width fButtonWidth';
procedure BAlert_BInvoker *fInvoker(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_BInvoker *fInvoker';
procedure BAlert_uint32 _reserved[4](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BAlert_uint32 _reserved[4]';
}
implementation
constructor TAlert.Create(title : PChar; text : PChar; button1 : PChar;
button2 : PChar; button3 : PChar; width : TButton_Width;
kind{type} : TAlert_Type);
begin
CPlusObject := BAlert_Create(Self, title, text, button1, button2, button3,
width, kind);
end;
constructor TAlert.Create(title : PChar; text : PChar; button1 : PChar; button2 : PChar; button3 : PChar; width : TButton_Width; spacing : TButton_Spacing; kind{type} : TAlert_Type);
begin
CPlusObject := BAlert_Create_1(Self, title, text, button1, button2, button3,
width, spacing, kind{type});
end;
constructor TAlert.Create(data : TMessage);
begin
CPlusObject := BAlert_Create_2(Self, data.CPlusObject);
end;
destructor TAlert.Destroy;
begin
BAlert_Free(CPlusObject);
end;
function TAlert.Instantiate(data : TMessage) : TArchivable;
begin
Result := BAlert_Instantiate(CPlusObject, data.CPlusObject);
end;
function TAlert.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BAlert_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TAlert.SetShortcut(button_index : integer; key : Char);
begin
BAlert_SetShortcut(CPlusObject, button_index, key);
end;
function TAlert.Shortcut(button_index : integer) : Char;
begin
Result := BAlert_Shortcut(CPlusObject, button_index);
end;
function TAlert.Go : integer;
begin
Result := BAlert_Go(CPlusObject);
end;
function TAlert.Go(invoker : TInvoker) : TStatus_t;
begin
Result := BAlert_Go(CPlusObject, invoker.CPlusObject);
end;
procedure TAlert.MessageReceived(an_event : TMessage);
begin
BAlert_MessageReceived(CPlusObject, an_event.CPlusObject);
end;
procedure TAlert.FrameResized(new_width : double; new_height : double);
begin
BAlert_FrameResized(CPlusObject, new_width, new_height);
end;
function TAlert.ButtonAt(index : integer) : TButton;
begin
Result := BAlert_ButtonAt(CPlusObject, index);
end;
function TAlert.TextView : TTextView;
begin
Result := BAlert_TextView(CPlusObject);
end;
function TAlert.ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
begin
Result := BAlert_ResolveSpecifier(CPlusObject, msg.CPlusObject, index, specifier.CPlusObject, form, properti);
end;
function TAlert.GetSupportedSuites(data : TMessage) : TStatus_t;
begin
Result := BAlert_GetSupportedSuites(CPlusObject, data.CPlusObject);
end;
procedure TAlert.DispatchMessage(msg : TMessage; handler : THandler);
begin
BAlert_DispatchMessage(CPlusObject, msg.CPlusObject, handler.CPlusObject);
end;
procedure TAlert.Quit;
begin
BAlert_Quit(CPlusObject);
end;
function TAlert.QuitRequested : boolean;
begin
Result := BAlert_QuitRequested(CPlusObject);
end;
function TAlert.AlertPosition(width : double; height : double) : TPoint;
begin
Result := BAlert_AlertPosition(CPlusObject, width, height);
end;
{
function TAlert.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BAlert_Perform(CPlusObject, d, arg);
end;
procedure TAlert._ReservedAlert1;
begin
BAlert__ReservedAlert1(CPlusObject);
end;
procedure TAlert._ReservedAlert2;
begin
BAlert__ReservedAlert2(CPlusObject);
end;
procedure TAlert._ReservedAlert3;
begin
BAlert__ReservedAlert3(CPlusObject);
end;
procedure TAlert.InitObject(text : PChar; button1 : PChar; button2 : PChar; button3 : PChar; width : TButton_Width; spacing : TButton_Spacing; type : TAlert_Type);
begin
BAlert_InitObject(CPlusObject, text, button1, button2, button3, width, spacing, type);
end;
function TAlert.InitIcon : TBitmap;
begin
Result := BAlert_InitIcon(CPlusObject);
end;
procedure TAlert.sem_id fAlertSem;
begin
BAlert_sem_id fAlertSem(CPlusObject);
end;
procedure TAlert.int32 fAlertVal;
begin
BAlert_int32 fAlertVal(CPlusObject);
end;
procedure TAlert.BButton *fButtons[3];
begin
BAlert_BButton *fButtons[3](CPlusObject);
end;
procedure TAlert.BTextView *fTextView;
begin
BAlert_BTextView *fTextView(CPlusObject);
end;
procedure TAlert.char fKeys[3];
begin
BAlert_char fKeys[3](CPlusObject);
end;
procedure TAlert.alert_type fMsgType;
begin
BAlert_alert_type fMsgType(CPlusObject);
end;
procedure TAlert.button_width fButtonWidth;
begin
BAlert_button_width fButtonWidth(CPlusObject);
end;
procedure TAlert.BInvoker *fInvoker;
begin
BAlert_BInvoker *fInvoker(CPlusObject);
end;
procedure TAlert.uint32 _reserved[4];
begin
BAlert_uint32 _reserved[4](CPlusObject);
end;
}
end.