Fixes and start of BButton support. GUI is comming !

This commit is contained in:
ocoursiere
2002-12-13 00:29:52 +00:00
parent 3eac55ae74
commit 73d044331a
20 changed files with 4077 additions and 17 deletions

View File

@@ -0,0 +1,352 @@
#ifndef _INVOKER_CPP_
#define _INVOKER_CPP_
/***********************************************************************
* AUTHOR: nobody <baron>
* FILE: Invoker.cpp
* DATE: Sat Nov 30 01:48:14 2002
* DESCR:
***********************************************************************/
#include "Invoker.h"
#include <beobj.h>
#if defined(__cplusplus)
extern "C" {
#endif
/***********************************************************************
* Method: BInvoker::BInvoker
* Params:
* Effects:
***********************************************************************/
TCPlusObject BInvoker_Create(TPasObject PasObject)
{
return new BInvoker();
}
/***********************************************************************
* Method: BInvoker::BInvoker
* Params: BMessage *message, const BHandler *handler, const BLooper *looper
* Effects:
***********************************************************************/
TCPlusObject BInvoker_Create_1
(TPasObject PasObject, BMessage *message, const BHandler *handler, const BLooper *looper)
{
return new BInvoker(message, handler, looper);
}
/***********************************************************************
* Method: BInvoker::BInvoker
* Params: BMessage *message, BMessenger target
* Effects:
***********************************************************************/
TCPlusObject BInvoker_Create_2
(TPasObject PasObject, BMessage *message, BMessenger target)
{
return new BInvoker(message, target);
}
/***********************************************************************
* Method: BInvoker::~BInvoker
* Params:
* Effects:
***********************************************************************/
void BInvoker_Free(BInvoker *Invoker)
{
delete Invoker;
}
/***********************************************************************
* Method: BInvoker::SetMessage
* Params: BMessage *message
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_SetMessage(BInvoker *Invoker, BMessage *message)
{
return Invoker->SetMessage(message);
}
/***********************************************************************
* Method: BInvoker::Message
* Params:
* Returns: BMessage *
* Effects:
***********************************************************************/
BMessage *
BInvoker_Message(BInvoker *Invoker)
{
return Invoker->Message();
}
/***********************************************************************
* Method: BInvoker::Command
* Params:
* Returns: uint32
* Effects:
***********************************************************************/
uint32
BInvoker_Command(BInvoker *Invoker)
{
return Invoker->Command();
}
/***********************************************************************
* Method: BInvoker::SetTarget
* Params: const BHandler *h, const BLooper *loop
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_SetTarget(BInvoker *Invoker, const BHandler *h, const BLooper *loop)
{
return Invoker->SetTarget(h, loop);
}
/***********************************************************************
* Method: BInvoker::SetTarget
* Params: BMessenger messenger
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_SetTarget_1
(BInvoker *Invoker, BMessenger messenger)
{
return Invoker->SetTarget(messenger);
}
/***********************************************************************
* Method: BInvoker::IsTargetLocal
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BInvoker_IsTargetLocal(BInvoker *Invoker)
{
return Invoker->IsTargetLocal();
}
/***********************************************************************
* Method: BInvoker::Target
* Params: BLooper **looper
* Returns: BHandler *
* Effects:
***********************************************************************/
BHandler *
BInvoker_Target(BInvoker *Invoker, BLooper **looper)
{
return Invoker->Target(looper);
}
/***********************************************************************
* Method: BInvoker::Messenger
* Params:
* Returns: BMessenger
* Effects:
***********************************************************************/
BMessenger
BInvoker_Messenger(BInvoker *Invoker)
{
return Invoker->Messenger();
}
/***********************************************************************
* Method: BInvoker::SetHandlerForReply
* Params: BHandler *handler
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_SetHandlerForReply(BInvoker *Invoker, BHandler *handler)
{
return Invoker->SetHandlerForReply(handler);
}
/***********************************************************************
* Method: BInvoker::HandlerForReply
* Params:
* Returns: BHandler *
* Effects:
***********************************************************************/
BHandler *
BInvoker_HandlerForReply(BInvoker *Invoker)
{
return Invoker->HandlerForReply();
}
/***********************************************************************
* Method: BInvoker::Invoke
* Params: BMessage *msg
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_Invoke(BInvoker *Invoker, BMessage *msg)
{
return Invoker->Invoke(msg);
}
/***********************************************************************
* Method: BInvoker::InvokeNotify
* Params: BMessage *msg, uint32 kind
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_InvokeNotify_1
(BInvoker *Invoker, BMessage *msg, uint32 kind)
{
return Invoker->InvokeNotify(msg, kind);
}
/***********************************************************************
* Method: BInvoker::SetTimeout
* Params: bigtime_t timeout
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BInvoker_SetTimeout(BInvoker *Invoker, bigtime_t timeout)
{
return Invoker->SetTimeout(timeout);
}
/***********************************************************************
* Method: BInvoker::Timeout
* Params:
* Returns: bigtime_t
* Effects:
***********************************************************************/
bigtime_t
BInvoker_Timeout(BInvoker *Invoker)
{
return Invoker->Timeout();
}
// protected
/***********************************************************************
* Method: BInvoker::InvokeKind
* Params: bool *notify
* Returns: uint32
* Effects:
***********************************************************************/
/* uint32
BInvoker_InvokeKind(BInvoker *Invoker, bool *notify)
{
return Invoker->InvokeKind(notify);
}
*/
/***********************************************************************
* Method: BInvoker::BeginInvokeNotify
* Params: uint32 kind
* Returns: void
* Effects:
***********************************************************************/
/*void
BInvoker_BeginInvokeNotify(BInvoker *Invoker, uint32 kind)
{
Invoker->BeginInvokeNotify(kind);
}
*/
/***********************************************************************
* Method: BInvoker::EndInvokeNotify
* Params:
* Returns: void
* Effects:
***********************************************************************/
/*void
BInvoker_EndInvokeNotify(BInvoker *Invoker)
{
Invoker->EndInvokeNotify();
}
*/
///***********************************************************************
// * Method: BInvoker::_ReservedInvoker1
// * Params:
// * Returns: void
// * Effects:
// ***********************************************************************/
//void
//BInvoker__ReservedInvoker1(BInvoker *Invoker)
//{
// Invoker->_ReservedInvoker1();
//}
//
//
///***********************************************************************
// * Method: BInvoker::_ReservedInvoker2
// * Params:
// * Returns: void
// * Effects:
// ***********************************************************************/
//void
//BInvoker__ReservedInvoker2(BInvoker *Invoker)
//{
// Invoker->_ReservedInvoker2();
//}
//
//
///***********************************************************************
// * Method: BInvoker::_ReservedInvoker3
// * Params:
// * Returns: void
// * Effects:
// ***********************************************************************/
//void
//BInvoker__ReservedInvoker3(BInvoker *Invoker)
//{
// Invoker->_ReservedInvoker3();
//}
//
//
///***********************************************************************
// * Method: BInvoker::BInvoker
// * Params: const BInvoker &
// * Effects:
// ***********************************************************************/
//TCPlusObject BInvoker_Create(TPasObject PasObject, const BInvoker &)
//{
// return new BPInvoker(PasObject, );
//}
//
//
///***********************************************************************
// * Method: BInvoker::operator=
// * Params: const BInvoker &
// * Returns: BInvoker &
// * Effects:
// ***********************************************************************/
//BInvoker &
//BInvoker_operator=(BInvoker *Invoker, const BInvoker &)
//{
// return Invoker->operator=();
//}
#if defined(__cplusplus)
}
#endif
#endif /* _INVOKER_CPP_ */

View File

@@ -0,0 +1,278 @@
#ifndef _MESSENGER_CPP_
#define _MESSENGER_CPP_
/***********************************************************************
* AUTHOR: nobody <baron>
* FILE: Messenger.cpp
* DATE: Sat Nov 30 02:32:17 2002
* DESCR:
***********************************************************************/
#include "Messenger.h"
#include <beobj.h>
#if defined(__cplusplus)
extern "C" {
#endif
/***********************************************************************
* Method: BMessenger::BMessenger
* Params:
* Effects:
***********************************************************************/
TCPlusObject BMessenger_Create(TPasObject PasObject)
{
return new BMessenger();
}
/***********************************************************************
* Method: BMessenger::BMessenger
* Params: const char *mime_sig, team_id team, status_t *perr
* Effects:
***********************************************************************/
TCPlusObject BMessenger_Create_1
(TPasObject PasObject, const char *mime_sig, team_id team, status_t *perr)
{
return new BMessenger(mime_sig, team, perr);
}
/***********************************************************************
* Method: BMessenger::BMessenger
* Params: const BHandler *handler, const BLooper *looper, status_t *perr
* Effects:
***********************************************************************/
TCPlusObject BMessenger_Create_2
(TPasObject PasObject, const BHandler *handler, const BLooper *looper, status_t *perr)
{
return new BMessenger(handler, looper, perr);
}
/***********************************************************************
* Method: BMessenger::BMessenger
* Params: const BMessenger &from
* Effects:
***********************************************************************/
TCPlusObject BMessenger_Create_3
(TPasObject PasObject, const BMessenger &from)
{
return new BMessenger(from);
}
/***********************************************************************
* Method: BMessenger::~BMessenger
* Params:
* Effects:
***********************************************************************/
void BMessenger_Free(BMessenger *Messenger)
{
delete Messenger;
}
/***********************************************************************
* Method: BMessenger::IsTargetLocal
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BMessenger_IsTargetLocal(BMessenger *Messenger)
{
return Messenger->IsTargetLocal();
}
/***********************************************************************
* Method: BMessenger::Target
* Params: BLooper **looper
* Returns: BHandler *
* Effects:
***********************************************************************/
BHandler *
BMessenger_Target(BMessenger *Messenger, BLooper **looper)
{
return Messenger->Target(looper);
}
/***********************************************************************
* Method: BMessenger::LockTarget
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BMessenger_LockTarget(BMessenger *Messenger)
{
return Messenger->LockTarget();
}
/***********************************************************************
* Method: BMessenger::LockTargetWithTimeout
* Params: bigtime_t timeout
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMessenger_LockTargetWithTimeout_1
(BMessenger *Messenger, bigtime_t timeout)
{
return Messenger->LockTargetWithTimeout(timeout);
}
/***********************************************************************
* Method: BMessenger::SendMessage
* Params: uint32 command, BHandler *reply_to
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMessenger_SendMessage(BMessenger *Messenger, uint32 command, BHandler *reply_to)
{
return Messenger->SendMessage(command, reply_to);
}
/***********************************************************************
* Method: BMessenger::SendMessage
* Params: BMessage *a_message, BHandler *reply_to, bigtime_t timeout
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMessenger_SendMessage_1
(BMessenger *Messenger, BMessage *a_message, BHandler *reply_to, bigtime_t timeout)
{
return Messenger->SendMessage(a_message, reply_to, timeout);
}
/***********************************************************************
* Method: BMessenger::SendMessage
* Params: BMessage *a_message, BMessenger reply_to, bigtime_t timeout
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMessenger_SendMessage_2
(BMessenger *Messenger, BMessage *a_message, BMessenger reply_to, bigtime_t timeout)
{
return Messenger->SendMessage(a_message, reply_to, timeout);
}
/***********************************************************************
* Method: BMessenger::SendMessage
* Params: uint32 command, BMessage *reply
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMessenger_SendMessage_3
(BMessenger *Messenger, uint32 command, BMessage *reply)
{
return Messenger->SendMessage(command, reply);
}
/***********************************************************************
* Method: BMessenger::SendMessage
* Params: BMessage *a_message, BMessage *reply, bigtime_t send_timeout, bigtime_t reply_timeout
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMessenger_SendMessage_4
(BMessenger *Messenger, BMessage *a_message, BMessage *reply, bigtime_t send_timeout, bigtime_t reply_timeout)
{
return Messenger->SendMessage(a_message, reply, send_timeout, reply_timeout);
}
///***********************************************************************
// * Method: BMessenger::operator=
// * Params: const BMessenger &from
// * Returns: BMessenger &
// * Effects:
// ***********************************************************************/
//BMessenger &
//BMessenger_operator=(BMessenger *Messenger, const BMessenger &from)
//{
// return Messenger->operator=(from);
//}
//
//
///***********************************************************************
// * Method: BMessenger::operator==
// * Params: const BMessenger &other
// * Returns: bool
// * Effects:
// ***********************************************************************/
//bool
//BMessenger_operator==_1
//(BMessenger *Messenger, const BMessenger &other) const
//{
// return Messenger->operator==(other);
//}
/***********************************************************************
* Method: BMessenger::IsValid
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BMessenger_IsValid(BMessenger *Messenger)
{
return Messenger->IsValid();
}
/***********************************************************************
* Method: BMessenger::Team
* Params:
* Returns: team_id
* Effects:
***********************************************************************/
team_id
BMessenger_Team(BMessenger *Messenger)
{
return Messenger->Team();
}
///***********************************************************************
// * Method: BMessenger::BMessenger
// * Params: team_id team, port_id port, int32 token, bool preferred
// * Effects:
// ***********************************************************************/
//TCPlusObject BMessenger_Create_4(TPasObject PasObject, team_id team, port_id port, int32 token, bool preferred)
//{
// return new BMessenger(team, port, token, preferred);
//}
///***********************************************************************
// * Method: BMessenger::InitData
// * Params: const char *mime_sig, team_id team, status_t *perr
// * Returns: void
// * Effects:
// ***********************************************************************/
//void
//BMessenger_InitData(BMessenger *Messenger, const char *mime_sig, team_id team, status_t *perr)
//{
// Messenger->InitData(mime_sig, team, perr);
//}
#if defined(__cplusplus)
}
#endif
#endif /* _MESSENGER_CPP_ */

View File

@@ -0,0 +1,276 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
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 invoker;
interface
uses
beobj, Message, Handler, Looper, SupportDefs, Messenger;
type
TInvoker = class(TBeObject)
private
public
constructor Create; override;
constructor Create(aMessage : TMessage; handler : THandler; looper : TLooper);
constructor Create(aMessage : TMessage; aTarget : TMessenger);
destructor Destroy; override;
function SetMessage(aMessage : TMessage) : TStatus_t;
function Message : TMessage;
function Command : Cardinal;
function SetTarget(h : THandler; loop : TLooper) : TStatus_t;
function SetTarget(aMessenger : TMessenger) : TStatus_t;
function IsTargetLocal : boolean;
function Target(looper : TLooper) : THandler;
function Messenger : TMessenger;
function SetHandlerForReply(handler : THandler) : TStatus_t;
function HandlerForReply : THandler;
function Invoke(msg : TMessage) : TStatus_t;
// function InvokeNotify(msg : TMessage; kind : Cardinal) : TStatus_t;
function SetTimeout(aTimeout : TBigtime_t) : TStatus_t;
function Timeout : TBigtime_t;
// function InvokeKind(notify : boolean) : Cardinal;
// procedure BeginInvokeNotify(kind : Cardinal);
// procedure EndInvokeNotify;
// procedure _ReservedInvoker1;
// procedure _ReservedInvoker2;
// procedure _ReservedInvoker3;
constructor Create(aInvoker : TInvoker);
// function operator=( : TInvoker) : TInvoker;
// procedure BMessage *fMessage;
// procedure BMessenger fMessenger;
// procedure BHandler *fReplyTo;
// procedure uint32 fTimeout;
// procedure uint32 fNotifyKind;
// procedure uint32 _reserved[2];
end;
function BInvoker_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BInvoker_Create';
function BInvoker_Create(AObject : TBeObject; message : TCplusObject; handler : TCplusObject; looper : TCPlusObject) : TCplusObject; cdecl; external BePascalLibName name 'BInvoker_Create';
function BInvoker_Create(AObject : TBeObject; message : TCplusObject; target : TCplusObject) : TCplusObject; cdecl; external BePascalLibName name 'BInvoker_Create';
procedure BInvoker_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_Free';
function BInvoker_SetMessage(AObject : TCPlusObject; message : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_SetMessage';
function BInvoker_Message(AObject : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BInvoker_Message';
function BInvoker_Command(AObject : TCPlusObject) : Cardinal; cdecl; external BePascalLibName name 'BInvoker_Command';
function BInvoker_SetTarget(AObject : TCPlusObject; h : TCPlusObject; loop : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_SetTarget';
function BInvoker_SetTarget(AObject : TCPlusObject; messenger : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_SetTarget_1';
function BInvoker_IsTargetLocal(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BInvoker_IsTargetLocal';
function BInvoker_Target(AObject : TCPlusObject; looper : TCplusObject) : THandler; cdecl; external BePascalLibName name 'BInvoker_Target';
function BInvoker_Messenger(AObject : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BInvoker_Messenger';
function BInvoker_SetHandlerForReply(AObject : TCPlusObject; handler : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_SetHandlerForReply';
function BInvoker_HandlerForReply(AObject : TCPlusObject) : THandler; cdecl; external BePascalLibName name 'BInvoker_HandlerForReply';
function BInvoker_Invoke(AObject : TCPlusObject; msg : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_Invoke';
//function BInvoker_InvokeNotify(AObject : TCPlusObject; msg : TCplusObject; kind : Cardinal) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_InvokeNotify';
function BInvoker_SetTimeout(AObject : TCPlusObject; timeout : TBigtime_t) : TStatus_t; cdecl; external BePascalLibName name 'BInvoker_SetTimeout';
function BInvoker_Timeout(AObject : TCPlusObject) : TBigtime_t; cdecl; external BePascalLibName name 'BInvoker_Timeout';
//function BInvoker_InvokeKind(AObject : TCPlusObject; notify : boolean) : Cardinal; cdecl; external BePascalLibName name 'BInvoker_InvokeKind';
//procedure BInvoker_BeginInvokeNotify(AObject : TCPlusObject; kind : Cardinal); cdecl; external BePascalLibName name 'BInvoker_BeginInvokeNotify';
//procedure BInvoker_EndInvokeNotify(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_EndInvokeNotify';
//procedure BInvoker__ReservedInvoker1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker__ReservedInvoker1';
//procedure BInvoker__ReservedInvoker2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker__ReservedInvoker2';
//procedure BInvoker__ReservedInvoker3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker__ReservedInvoker3';
function BInvoker_Create(AObject : TBeObject; aInvoker : TCPlusObject) : TCplusObject; cdecl; external BePascalLibName name 'BInvoker_Create';
//function BInvoker_operator=(AObject : TCPlusObject; : TInvoker) : TInvoker; cdecl; external BePascalLibName name 'BInvoker_operator=';
//procedure BInvoker_BMessage *fMessage(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_BMessage *fMessage';
//procedure BInvoker_BMessenger fMessenger(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_BMessenger fMessenger';
//procedure BInvoker_BHandler *fReplyTo(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_BHandler *fReplyTo';
//procedure BInvoker_uint32 fTimeout(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_uint32 fTimeout';
//procedure BInvoker_uint32 fNotifyKind(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_uint32 fNotifyKind';
//procedure BInvoker_uint32 _reserved[2](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BInvoker_uint32 _reserved[2]';
implementation
constructor TInvoker.Create;
begin
BInvoker_Create(Self);
end;
constructor TInvoker.Create(aMessage : TMessage; handler : THandler; looper : TLooper);
begin
CPlusObject := BInvoker_Create(Self, aMessage.CPlusObject, handler, looper);
end;
constructor TInvoker.Create(aMessage : TMessage; aTarget : TMessenger);
begin
CPlusObject := BInvoker_Create(Self, aMessage.CPlusObject, aTarget.CPlusObject);
end;
destructor TInvoker.Destroy;
begin
BInvoker_Free(CPlusObject);
end;
function TInvoker.SetMessage(aMessage : TMessage) : TStatus_t;
begin
Result := BInvoker_SetMessage(CPlusObject, aMessage.CPlusObject);
end;
function TInvoker.Message : TMessage;
begin
Result := TMessage.Wrap(BInvoker_Message(CPlusObject));
end;
function TInvoker.Command : Cardinal;
begin
Result := BInvoker_Command(CPlusObject);
end;
function TInvoker.SetTarget(h : THandler; loop : TLooper) : TStatus_t;
begin
WriteLn('Start of SetTarget');
if loop <> nil then
begin
WriteLn('Différent de nil');
Result := BInvoker_SetTarget(CPlusObject, h.CPlusObject, loop.CPlusObject);
end
else if h <> nil then
begin
WriteLn('Egale de nil');
// Result := BInvoker_SetTarget(CPlusObject, h.CPlusObject, nil);
end
else
begin
WriteLn('nil et nil');
Result := BInvoker_SetTarget(CPlusObject, nil, nil);
end;
WriteLn('End of SetTarget');
end;
function TInvoker.SetTarget(aMessenger : TMessenger) : TStatus_t;
begin
Result := BInvoker_SetTarget(CPlusObject, aMessenger.CPlusObject);
end;
function TInvoker.IsTargetLocal : boolean;
begin
Result := BInvoker_IsTargetLocal(CPlusObject);
end;
function TInvoker.Target(looper : TLooper) : THandler;
begin
Result := BInvoker_Target(CPlusObject, looper.CPlusObject);
end;
function TInvoker.Messenger : TMessenger;
begin
Result := TMessenger.Wrap(BInvoker_Messenger(CPlusObject));
end;
function TInvoker.SetHandlerForReply(handler : THandler) : TStatus_t;
begin
Result := BInvoker_SetHandlerForReply(CPlusObject, handler.CPlusObject);
end;
function TInvoker.HandlerForReply : THandler;
begin
Result := BInvoker_HandlerForReply(CPlusObject);
end;
function TInvoker.Invoke(msg : TMessage) : TStatus_t;
begin
Result := BInvoker_Invoke(CPlusObject, msg.CPlusObject);
end;
//function TInvoker.InvokeNotify(msg : TMessage; kind : Cardinal) : TStatus_t;
//begin
// BInvoker_InvokeNotify(CPlusObject, msg.CPlusObject, kind);
//end;
function TInvoker.SetTimeout(aTimeout : TBigtime_t) : TStatus_t;
begin
Result := BInvoker_SetTimeout(CPlusObject, timeout);
end;
function TInvoker.Timeout : TBigtime_t;
begin
Result := BInvoker_Timeout(CPlusObject);
end;
//function TInvoker.InvokeKind(notify : boolean) : Cardinal;
//begin
// BInvoker_InvokeKind(CPlusObject, notify);
//end;
//
//procedure TInvoker.BeginInvokeNotify(kind : Cardinal);
//begin
// BInvoker_BeginInvokeNotify(CPlusObject, kind);
//end;
//
//procedure TInvoker.EndInvokeNotify;
//begin
// BInvoker_EndInvokeNotify(CPlusObject);
//end;
//procedure TInvoker._ReservedInvoker1;
//begin
// BInvoker__ReservedInvoker1(CPlusObject);
//end;
//
//procedure TInvoker._ReservedInvoker2;
//begin
// BInvoker__ReservedInvoker2(CPlusObject);
//end;
//
//procedure TInvoker._ReservedInvoker3;
//begin
// BInvoker__ReservedInvoker3(CPlusObject);
//end;
constructor TInvoker.Create(ainvoker : TInvoker);
begin
BInvoker_Create(Self, aInvoker);
end;
//function TInvoker.operator=( : TInvoker) : TInvoker;
//begin
// BInvoker_operator=(CPlusObject, );
//end;
//procedure TInvoker.BMessage *fMessage;
//begin
// BInvoker_BMessage *fMessage(CPlusObject);
//end;
//
//procedure TInvoker.BMessenger fMessenger;
//begin
// BInvoker_BMessenger fMessenger(CPlusObject);
//end;
//
//procedure TInvoker.BHandler *fReplyTo;
//begin
// BInvoker_BHandler *fReplyTo(CPlusObject);
//end;
//
//procedure TInvoker.uint32 fTimeout;
//begin
// BInvoker_uint32 fTimeout(CPlusObject);
//end;
//
//procedure TInvoker.uint32 fNotifyKind;
//begin
// BInvoker_uint32 fNotifyKind(CPlusObject);
//end;
//
//procedure TInvoker.uint32 _reserved[2];
//begin
// BInvoker_uint32 _reserved[2](CPlusObject);
//end;
end.

View File

@@ -0,0 +1,240 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
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 messenger;
interface
uses
beobj, os, Handler, Looper, Message, SupportDefs;
type
TMessenger = class(TBeObject)
private
public
constructor Create; override;
constructor Create(mime_sig : PChar; aTeam : TTeam_id; perr : PStatus_t);
constructor Create(handler : THandler; looper : TLooper; perr : PStatus_t);
constructor Create(from : TMessenger);
destructor Destroy; override;
function IsTargetLocal : boolean;
function Target(looper : TLooper) : THandler;
function LockTarget : boolean;
// function LockTargetWithTimeout(timeout : TBigtime_t) : TStatus_t;
function SendMessage(command : Cardinal; reply_to : THandler) : TStatus_t;
function SendMessage(a_message : TMessage; reply_to : THandler; timeout : TBigtime_t) : TStatus_t;
function SendMessage(a_message : TMessage; reply_to : TMessenger; timeout : TBigtime_t) : TStatus_t;
function SendMessage(command : Cardinal; reply : TMessage) : TStatus_t;
function SendMessage(a_message : TMessage; reply : TMessage; send_timeout : TBigtime_t; reply_timeout : TBigtime_t) : TStatus_t;
// function operator=(from : TMessenger) : TMessenger;
// function operator==(other : TMessenger) : boolean;
function IsValid : boolean;
function Team : TTeam_id;
constructor Create(aTeam : TTeam_id; port : TPort_id; token : integer; preferred : boolean);
// procedure InitData(mime_sig : PChar; aTeam : TTeam_id; perr : PStatus_t);
// procedure port_id fPort;
// procedure int32 fHandlerToken;
// procedure team_id fTeam;
// procedure int32 extra0;
// procedure int32 extra1;
// procedure bool fPreferredTarget;
// procedure bool extra2;
// procedure bool extra3;
// procedure bool extra4;
end;
function BMessenger_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create';
function BMessenger_Create(AObject : TBeObject; mime_sig : PChar; team : TTeam_id; perr : PStatus_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create';
function BMessenger_Create(AObject : TBeObject; handler : THandler; looper : TLooper; perr : PStatus_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create';
function BMessenger_Create(AObject : TBeObject; from : TMessenger) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create';
procedure BMessenger_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_Free';
function BMessenger_IsTargetLocal(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMessenger_IsTargetLocal';
function BMessenger_Target(AObject : TCPlusObject; looper : TCplusObject) : THandler; cdecl; external BePascalLibName name 'BMessenger_Target';
function BMessenger_LockTarget(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMessenger_LockTarget';
//function BMessenger_LockTargetWithTimeout(AObject : TCPlusObject; timeout : TBigtime_t) : TStatus_t; cdecl; external BePascalLibName name 'BMessenger_LockTargetWithTimeout';
function BMessenger_SendMessage(AObject : TCPlusObject; command : Cardinal; reply_to : THandler) : TStatus_t; cdecl; external BePascalLibName name 'BMessenger_SendMessage';
function BMessenger_SendMessage(AObject : TCPlusObject; a_message : TCplusObject; reply_to : TCplusObject; timeout : TBigtime_t) : TStatus_t; cdecl; external BePascalLibName name 'BMessenger_SendMessage';
// How to handle this ? (remove the comment to see what to fix)
//function BMessenger_SendMessage(AObject : TCPlusObject; a_message : TCplusObject; reply_to : TCplusObject; timeout : TBigtime_t) : TStatus_t; cdecl; external BePascalLibName name 'BMessenger_SendMessage';
function BMessenger_SendMessage(AObject : TCPlusObject; command : Cardinal; reply : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BMessenger_SendMessage';
function BMessenger_SendMessage(AObject : TCPlusObject; a_message : TCplusObject; reply : TCplusObject; send_timeout : TBigtime_t; reply_timeout : TBigtime_t) : TStatus_t; cdecl; external BePascalLibName name 'BMessenger_SendMessage';
//function BMessenger_operator=(AObject : TCPlusObject; from : TMessenger) : TMessenger; cdecl; external BePascalLibName name 'BMessenger_operator=';
//function BMessenger_operator==(AObject : TCPlusObject; other : TMessenger) : boolean; cdecl; external BePascalLibName name 'BMessenger_operator==';
function BMessenger_IsValid(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMessenger_IsValid';
function BMessenger_Team(AObject : TCPlusObject) : TTeam_id; cdecl; external BePascalLibName name 'BMessenger_Team';
function BMessenger_Create(AObject : TBeObject; team : TTeam_id; port : TPort_id; token : integer; preferred : boolean) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create';
//procedure BMessenger_InitData(AObject : TCPlusObject; mime_sig : PChar; team : TTeam_id; perr : PStatus_t); cdecl; external BePascalLibName name 'BMessenger_InitData';
//procedure BMessenger_port_id fPort(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_port_id fPort';
//procedure BMessenger_int32 fHandlerToken(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_int32 fHandlerToken';
//procedure BMessenger_team_id fTeam(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_team_id fTeam';
//procedure BMessenger_int32 extra0(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_int32 extra0';
//procedure BMessenger_int32 extra1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_int32 extra1';
//procedure BMessenger_bool fPreferredTarget(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_bool fPreferredTarget';
//procedure BMessenger_bool extra2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_bool extra2';
//procedure BMessenger_bool extra3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_bool extra3';
//procedure BMessenger_bool extra4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMessenger_bool extra4';
implementation
constructor TMessenger.Create;
begin
BMessenger_Create(Self);
end;
constructor TMessenger.Create(mime_sig : PChar; aTeam : TTeam_id; perr : PStatus_t);
begin
CPlusObject := BMessenger_Create(Self, mime_sig, aTeam, perr);
end;
constructor TMessenger.Create(handler : THandler; looper : TLooper; perr : PStatus_t);
begin
CPlusObject := BMessenger_Create(Self, handler, looper, perr);
end;
constructor TMessenger.Create(from : TMessenger);
begin
CPlusObject := BMessenger_Create(Self, from);
end;
destructor TMessenger.Destroy;
begin
BMessenger_Free(CPlusObject);
end;
function TMessenger.IsTargetLocal : boolean;
begin
Result := BMessenger_IsTargetLocal(CPlusObject);
end;
function TMessenger.Target(looper : TLooper) : THandler;
begin
Result := BMessenger_Target(CPlusObject, looper.CPlusObject);
end;
function TMessenger.LockTarget : boolean;
begin
Result := BMessenger_LockTarget(CPlusObject);
end;
//function TMessenger.LockTargetWithTimeout(timeout : TBigtime_t) : TStatus_t;
//begin
// BMessenger_LockTargetWithTimeout(CPlusObject, timeout);
//end;
function TMessenger.SendMessage(command : Cardinal; reply_to : THandler) : TStatus_t;
begin
Result := BMessenger_SendMessage(CPlusObject, command, reply_to.CPlusObject);
end;
function TMessenger.SendMessage(a_message : TMessage; reply_to : THandler; timeout : TBigtime_t) : TStatus_t;
begin
Result := BMessenger_SendMessage(CPlusObject, a_message.CPlusObject, reply_to.CPlusObject, timeout);
end;
function TMessenger.SendMessage(a_message : TMessage; reply_to : TMessenger; timeout : TBigtime_t) : TStatus_t;
begin
Result := BMessenger_SendMessage(CPlusObject, a_message.CPlusObject, reply_to.CPlusObject, timeout);
end;
function TMessenger.SendMessage(command : Cardinal; reply : TMessage) : TStatus_t;
begin
Result := BMessenger_SendMessage(CPlusObject, command, reply.CPlusObject);
end;
function TMessenger.SendMessage(a_message : TMessage; reply : TMessage; send_timeout : TBigtime_t; reply_timeout : TBigtime_t) : TStatus_t;
begin
Result := BMessenger_SendMessage(CPlusObject, a_message.CPlusObject, reply.CPlusObject, send_timeout, reply_timeout);
end;
//function TMessenger.operator=(from : TMessenger) : TMessenger;
//begin
// BMessenger_operator=(CPlusObject, from);
//end;
//
//function TMessenger.operator==(other : TMessenger) : boolean;
//begin
// BMessenger_operator==(CPlusObject, other);
//end;
function TMessenger.IsValid : boolean;
begin
Result := BMessenger_IsValid(CPlusObject);
end;
function TMessenger.Team : TTeam_id;
begin
Result := BMessenger_Team(CPlusObject);
end;
constructor TMessenger.Create(aTeam : TTeam_id; port : TPort_id; token : integer; preferred : boolean);
begin
CPlusObject := BMessenger_Create(Self, aTeam, port, token, preferred);
end;
//procedure TMessenger.InitData(mime_sig : PChar; aTeam : TTeam_id; perr : PStatus_t);
//begin
// BMessenger_InitData(CPlusObject, mime_sig, aTeam, perr);
//end;
//procedure TMessenger.port_id fPort;
//begin
// BMessenger_port_id fPort(CPlusObject);
//end;
//
//procedure TMessenger.int32 fHandlerToken;
//begin
// BMessenger_int32 fHandlerToken(CPlusObject);
//end;
//
//procedure TMessenger.team_id fTeam;
//begin
// BMessenger_team_id fTeam(CPlusObject);
//end;
//
//procedure TMessenger.int32 extra0;
//begin
// BMessenger_int32 extra0(CPlusObject);
//end;
//
//procedure TMessenger.int32 extra1;
//begin
// BMessenger_int32 extra1(CPlusObject);
//end;
//
//procedure TMessenger.bool fPreferredTarget;
//begin
// BMessenger_bool fPreferredTarget(CPlusObject);
//end;
//
//procedure TMessenger.bool extra2;
//begin
// BMessenger_bool extra2(CPlusObject);
//end;
//
//procedure TMessenger.bool extra3;
//begin
// BMessenger_bool extra3(CPlusObject);
//end;
//
//procedure TMessenger.bool extra4;
//begin
// BMessenger_bool extra4(CPlusObject);
//end;
end.

View File

@@ -40,6 +40,7 @@ type
FCPlusObject : TCPlusObject;
public
constructor Create; virtual;
constructor CreatePas; virtual;
constructor Wrap(ACPlusObject : TCPlusObject); virtual;
destructor UnWrap; virtual;
property CPlusObject : TCPlusObject read FCPlusObject write FCPlusObject;
@@ -80,6 +81,11 @@ begin
Debug;
end;
constructor TBeObject.CreatePas;
begin
Create;
end;
procedure TBeObject.Debug;
var
size : cardinal;

View File

@@ -0,0 +1,555 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
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
*/
#ifndef _BUTTON_CPP_
#define _BUTTON_CPP_
/***********************************************************************
* AUTHOR: nobody <baron>
* FILE: Button.cpp
* DATE: Tue Dec 3 00:28:35 2002
* DESCR:
***********************************************************************/
#include "Button.h"
#include "control.h"
#include <beobj.h>
typedef void (*BButton_MakeDefault_hook) (TPasObject PasObject, bool flag);
#if defined(__cplusplus)
extern "C" {
#endif
BButton_MakeDefault_hook Button_MakeDefault_hook;
#if defined(__cplusplus)
}
#endif
class BPButton : public BButton, virtual public BPControl
{
public:
// <BView_Constructor>
BPButton(TPasObject PasObject,
BRect frame,
const char *name,
const char *label,
BMessage *message,
uint32 resizeMask,
uint32 flags);
BPButton(TPasObject PasObject, BMessage *archive);
virtual void MakeDefault(bool flag);
private:
};
BPButton::BPButton(TPasObject PasObject, BRect frame,
const char *name,
const char *label,
BMessage *message,
uint32 resizeMask,
uint32 flags)
:
BButton(frame, name, label, message,
resizeMask, flags),
BPControl(PasObject, frame, name, label, message,
resizeMask, flags),
BPView(PasObject, frame, name, resizeMask, flags),
BPHandler(PasObject, name),
BPasObject(PasObject)
{
}
BPButton::BPButton(TPasObject PasObject, BMessage *archive)
:BButton(archive),
BPControl(PasObject, archive),
BPView(PasObject, archive),
BPHandler(PasObject, archive),
BPasObject(PasObject)
{
}
void BPButton::MakeDefault(bool flag)
{
Button_MakeDefault_hook(GetPasObject(), flag);
}
#if defined(__cplusplus)
extern "C" {
#endif
/***********************************************************************
* Method: BButton::~BButton
* Params:
* Effects:
***********************************************************************/
void BButton_Free(BButton *Button)
{
delete Button;
}
/***********************************************************************
* Method: BButton::BButton
* Params:
* Effects:
***********************************************************************/
TCPlusObject BButton_Create(TPasObject PasObject, BRect frame,
const char *name,
const char *label,
BMessage *message,
uint32 resizeMask,
uint32 flags)
{
return new BPButton(PasObject, frame, name, label, message, resizeMask, flags);
}
/***********************************************************************
* Method: BButton::BButton
* Params: BMessage *data
* Effects:
***********************************************************************/
TCPlusObject BButton_Create_1(TPasObject PasObject, BMessage *data)
{
return new BPButton(PasObject, data);
}
/***********************************************************************
* Method: BButton::Instantiate
* Params: BMessage *data
* Returns: BArchivable *
* Effects:
***********************************************************************/
BArchivable *
BButton_Instantiate(BButton *Button, BMessage *data)
{
return Button->Instantiate(data);
}
/***********************************************************************
* Method: BButton::Archive
* Params: BMessage *data, bool deep
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BButton_Archive(BButton *Button, BMessage *data, bool deep)
{
return Button->Archive(data, deep);
}
/***********************************************************************
* Method: BButton::Draw
* Params: BRect updateRect
* Returns: void
* Effects:
***********************************************************************/
void
BButton_Draw(BButton *Button, BRect updateRect)
{
Button->Draw(updateRect);
}
/***********************************************************************
* Method: BButton::MouseDown
* Params: BPoint where
* Returns: void
* Effects:
***********************************************************************/
void
BButton_MouseDown(BButton *Button, BPoint where)
{
Button->MouseDown(where);
}
/***********************************************************************
* Method: BButton::AttachedToWindow
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BButton_AttachedToWindow(BButton *Button)
{
Button->AttachedToWindow();
}
/***********************************************************************
* Method: BButton::KeyDown
* Params: const char *bytes, int32 numBytes
* Returns: void
* Effects:
***********************************************************************/
void
BButton_KeyDown(BButton *Button, const char *bytes, int32 numBytes)
{
Button->KeyDown(bytes, numBytes);
}
/***********************************************************************
* Method: BButton::MakeDefault
* Params: bool state
* Returns: void
* Effects:
***********************************************************************/
void
BButton_MakeDefault(BButton *Button, bool state)
{
Button->MakeDefault(state);
}
/***********************************************************************
* Method: BButton::SetLabel
* Params: const char *text
* Returns: void
* Effects:
***********************************************************************/
void
BButton_SetLabel(BButton *Button, const char *text)
{
Button->SetLabel(text);
}
/***********************************************************************
* Method: BButton::IsDefault
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BButton_IsDefault(BButton *Button)
{
return Button->IsDefault();
}
/***********************************************************************
* Method: BButton::MessageReceived
* Params: BMessage *msg
* Returns: void
* Effects:
***********************************************************************/
void
BButton_MessageReceived(BButton *Button, BMessage *msg)
{
Button->MessageReceived(msg);
}
/***********************************************************************
* Method: BButton::WindowActivated
* Params: bool state
* Returns: void
* Effects:
***********************************************************************/
void
BButton_WindowActivated(BButton *Button, bool state)
{
Button->WindowActivated(state);
}
/***********************************************************************
* Method: BButton::MouseUp
* Params: BPoint pt
* Returns: void
* Effects:
***********************************************************************/
void
BButton_MouseUp(BButton *Button, BPoint pt)
{
Button->MouseUp(pt);
}
/***********************************************************************
* Method: BButton::MouseMoved
* Params: BPoint pt, uint32 code, const BMessage *msg
* Returns: void
* Effects:
***********************************************************************/
void
BButton_MouseMoved(BButton *Button, BPoint pt, uint32 code, const BMessage *msg)
{
Button->MouseMoved(pt, code, msg);
}
/***********************************************************************
* Method: BButton::DetachedFromWindow
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BButton_DetachedFromWindow(BButton *Button)
{
Button->DetachedFromWindow();
}
/***********************************************************************
* Method: BButton::SetValue
* Params: int32 value
* Returns: void
* Effects:
***********************************************************************/
void
BButton_SetValue(BButton *Button, int32 value)
{
Button->SetValue(value);
}
/***********************************************************************
* Method: BButton::GetPreferredSize
* Params: float *width, float *height
* Returns: void
* Effects:
***********************************************************************/
void
BButton_GetPreferredSize(BButton *Button, float *width, float *height)
{
Button->GetPreferredSize(width, height);
}
/***********************************************************************
* Method: BButton::ResizeToPreferred
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BButton_ResizeToPreferred(BButton *Button)
{
Button->ResizeToPreferred();
}
/***********************************************************************
* Method: BButton::Invoke
* Params: BMessage *msg
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BButton_Invoke(BButton *Button, BMessage *msg)
{
return Button->Invoke(msg);
}
/***********************************************************************
* Method: BButton::FrameMoved
* Params: BPoint new_position
* Returns: void
* Effects:
***********************************************************************/
void
BButton_FrameMoved(BButton *Button, BPoint new_position)
{
Button->FrameMoved(new_position);
}
/***********************************************************************
* Method: BButton::FrameResized
* Params: float new_width, float new_height
* Returns: void
* Effects:
***********************************************************************/
void
BButton_FrameResized(BButton *Button, float new_width, float new_height)
{
Button->FrameResized(new_width, new_height);
}
/***********************************************************************
* Method: BButton::MakeFocus
* Params: bool state
* Returns: void
* Effects:
***********************************************************************/
void
BButton_MakeFocus(BButton *Button, bool state)
{
Button->MakeFocus(state);
}
/***********************************************************************
* Method: BButton::AllAttached
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BButton_AllAttached(BButton *Button)
{
Button->AllAttached();
}
/***********************************************************************
* Method: BButton::AllDetached
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BButton_AllDetached(BButton *Button)
{
Button->AllDetached();
}
/***********************************************************************
* Method: BButton::ResolveSpecifier
* Params: BMessage *msg, int32 index, BMessage *specifier, int32 form, const char *property
* Returns: BHandler *
* Effects:
***********************************************************************/
BHandler *
BButton_ResolveSpecifier(BButton *Button, BMessage *msg, int32 index, BMessage *specifier, int32 form, const char *property)
{
return Button->ResolveSpecifier(msg, index, specifier, form, property);
}
/***********************************************************************
* Method: BButton::GetSupportedSuites
* Params: BMessage *data
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BButton_GetSupportedSuites(BButton *Button, BMessage *data)
{
return Button->GetSupportedSuites(data);
}
/***********************************************************************
* Method: BButton::Perform
* Params: perform_code d, void *arg
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BButton_Perform(BButton *Button, perform_code d, void *arg)
{
return Button->Perform(d, arg);
}
/***********************************************************************
* Method: BButton::_ReservedButton1
* Params:
* Returns: void
* Effects:
***********************************************************************/
/*void
BButton__ReservedButton1(BButton *Button)
{
Button->_ReservedButton1();
}
*/
/***********************************************************************
* Method: BButton::_ReservedButton2
* Params:
* Returns: void
* Effects:
***********************************************************************/
/*void
BButton__ReservedButton2(BButton *Button)
{
Button->_ReservedButton2();
}
*/
/***********************************************************************
* Method: BButton::_ReservedButton3
* Params:
* Returns: void
* Effects:
***********************************************************************/
/*void
BButton__ReservedButton3(BButton *Button)
{
Button->_ReservedButton3();
}
*/
/***********************************************************************
* Method: BButton::operator=
* Params: const BButton &
* Returns: BButton &
* Effects:
***********************************************************************/
/*BButton &
BButton_operator=(BButton *Button, const BButton &)
{
return Button->operator=();
}
*/
/***********************************************************************
* Method: BButton::DrawDefault
* Params: BRect bounds, bool enabled
* Returns: BRect
* Effects:
***********************************************************************/
/*BRect
BButton_DrawDefault(BButton *Button, BRect bounds, bool enabled)
{
return Button->DrawDefault(bounds, enabled);
}
*/
/***********************************************************************
* Method: BButton::Execute
* Params:
* Returns: status_t
* Effects:
***********************************************************************/
/*status_t
BButton_Execute(BButton *Button)
{
return Button->Execute();
}
*/
#if defined(__cplusplus)
}
#endif
#endif /* _BUTTON_CPP_ */

View File

@@ -0,0 +1,532 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
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
*/
#ifndef _CONTROL_CPP_
#define _CONTROL_CPP_
#include "Control.h"
#include "Rect.h"
#include "View.h"
#include "Message.h"
#include <beobj.h>
#include "view.h"
#include "control.h"
#if defined(__cplusplus)
extern "C" {
#endif
BControl_SetEnabled_hook Control_SetEnabled_hook;
BControl_SetValue_hook Control_SetValue_hook;
#if defined(__cplusplus)
}
#endif
BPControl::BPControl(TPasObject PasObject, BRect frame,
const char *name,
const char *label,
BMessage *message,
uint32 resizeMask,
uint32 flags)
:
BControl(frame, name, label, message,
resizeMask, flags),
BPView(PasObject, frame, name, resizeMask, flags),
BPHandler(PasObject, name),
BPasObject(PasObject)
{
}
BPControl::BPControl(TPasObject PasObject, BMessage *message):
BControl(message),
BPView(PasObject, message),
BPHandler(PasObject, message),
BPasObject(PasObject)
{
}
void BPControl::SetEnabled(bool enabled)
{
Control_SetEnabled_hook(GetPasObject(), enabled);
}
void BPControl::SetValue(int32 value)
{
Control_SetValue_hook(GetPasObject(), value);
}
#if defined(__cplusplus)
extern "C" {
#endif
/*
* Method: BControl::BControl()
* Descr:
*/
TCPlusObject BControl_Create(TPasObject PasObject, BRect frame,
const char *name,
const char *label,
BMessage *message,
uint32 resizeMask,
uint32 flags)
{
return new BPControl(PasObject, frame,
name,
label,
message,
resizeMask,
flags);
}
/*
* Method: BControl::~BControl()
* Descr:
*/
void BControl_Free(BControl *Control)
{
delete Control;
}
/*
* Method: BControl::BControl()
* Descr:
*/
/*TCPlusObject BControl_Create(TPasObject PasObject, BMessage *data)
{
return new BPControl(PasObject, data);
}
*/
/*
* Method: BControl::Instantiate()
* Descr:
*/
BArchivable *
BControl_Instantiate(BControl *Control, BMessage *data)
{
return Control->Instantiate(data);
}
/*
* Method: BControl::Archive()
* Descr:
*/
status_t
BControl_Archive(BControl *Control, BMessage *data,
bool deep)
{
return Control->Archive(data,
deep);
}
/*
* Method: BControl::WindowActivated()
* Descr:
*/
void
BControl_WindowActivated(BControl *Control, bool state)
{
Control->WindowActivated(state);
}
/*
* Method: BControl::AttachedToWindow()
* Descr:
*/
void
BControl_AttachedToWindow(BControl *Control)
{
Control->AttachedToWindow();
}
/*
* Method: BControl::MessageReceived()
* Descr:
*/
void
BControl_MessageReceived(BControl *Control, BMessage *msg)
{
Control->MessageReceived(msg);
}
/*
* Method: BControl::MakeFocus()
* Descr:
*/
void
BControl_MakeFocus(BControl *Control, bool state)
{
Control->MakeFocus(state);
}
/*
* Method: BControl::KeyDown()
* Descr:
*/
void
BControl_KeyDown(BControl *Control, const char *bytes,
int32 numBytes)
{
Control->KeyDown(bytes,
numBytes);
}
/*
* Method: BControl::MouseDown()
* Descr:
*/
void
BControl_MouseDown(BControl *Control, BPoint pt)
{
Control->MouseDown(pt);
}
/*
* Method: BControl::MouseUp()
* Descr:
*/
void
BControl_MouseUp(BControl *Control, BPoint pt)
{
Control->MouseUp(pt);
}
/*
* Method: BControl::MouseMoved()
* Descr:
*/
void
BControl_MouseMoved(BControl *Control, BPoint pt,
uint32 code,
const BMessage *msg)
{
Control->MouseMoved(pt,
code,
msg);
}
/*
* Method: BControl::DetachedFromWindow()
* Descr:
*/
void
BControl_DetachedFromWindow(BControl *Control)
{
Control->DetachedFromWindow();
}
/*
* Method: BControl::SetLabel()
* Descr:
*/
void
BControl_SetLabel(BControl *Control, const char *text)
{
Control->SetLabel(text);
}
/*
* Method: BControl::Label()
* Descr:
*/
const char *
BControl_Label(BControl *Control)
{
return Control->Label();
}
/*
* Method: BControl::SetValue()
* Descr:
*/
void
BControl_SetValue(BControl *Control, int32 value)
{
Control->SetValue(value);
}
/*
* Method: BControl::Value()
* Descr:
*/
int32
BControl_Value(BControl *Control)
{
return Control->Value();
}
/*
* Method: BControl::SetEnabled()
* Descr:
*/
void
BControl_SetEnabled(BControl *Control, bool on)
{
Control->SetEnabled(on);
}
/*
* Method: BControl::IsEnabled()
* Descr:
*/
bool
BControl_IsEnabled(BControl *Control)
{
return Control->IsEnabled();
}
/*
* Method: BControl::GetPreferredSize()
* Descr:
*/
void
BControl_GetPreferredSize(BControl *Control, float *width,
float *height)
{
Control->GetPreferredSize(width,
height);
}
/*
* Method: BControl::ResizeToPreferred()
* Descr:
*/
void
BControl_ResizeToPreferred(BControl *Control)
{
Control->ResizeToPreferred();
}
/*
* Method: BControl::Invoke()
* Descr:
*/
status_t
BControl_Invoke(BControl *Control, BMessage *msg)
{
return Control->Invoke(msg);
}
/*
* Method: BControl::ResolveSpecifier()
* Descr:
*/
BHandler *
BControl_ResolveSpecifier(BControl *Control, BMessage *msg,
int32 index,
BMessage *specifier,
int32 form,
const char *property)
{
return Control->ResolveSpecifier(msg,
index,
specifier,
form,
property);
}
/*
* Method: BControl::GetSupportedSuites()
* Descr:
*/
status_t
BControl_GetSupportedSuites(BControl *Control, BMessage *data)
{
return Control->GetSupportedSuites(data);
}
/*
* Method: BControl::AllAttached()
* Descr:
*/
void
BControl_AllAttached(BControl *Control)
{
Control->AllAttached();
}
/*
* Method: BControl::AllDetached()
* Descr:
*/
void
BControl_AllDetached(BControl *Control)
{
Control->AllDetached();
}
/*
* Method: BControl::Perform()
* Descr:
*/
status_t
BControl_Perform(BControl *Control, perform_code d,
void *arg)
{
return Control->Perform(d,
arg);
}
/*
* Method: BControl::IsFocusChanging()
* Descr:
*/
/*bool
BControl_IsFocusChanging(BControl *Control)
{
return Control->IsFocusChanging();
}*/
/*
* Method: BControl::IsTracking()
* Descr:
*/
/*bool
BControl_IsTracking(BControl *Control)
{
return Control->IsTracking();
}*/
/*
* Method: BControl::SetTracking()
* Descr:
*/
/*void
BControl_SetTracking(BControl *Control, bool state)
{
Control->SetTracking(state);
}*/
/*
* Method: BControl::SetValueNoUpdate()
* Descr:
*/
/*void
BControl_SetValueNoUpdate(BControl *Control, int32 value)
{
Control->SetValueNoUpdate(value);
}*/
/*
* Method: BControl::_ReservedControl1()
* Descr:
*/
/*void
BControl__ReservedControl1(BControl *Control)
{
Control->_ReservedControl1();
}*/
/*
* Method: BControl::_ReservedControl2()
* Descr:
*/
/*void
BControl__ReservedControl2(BControl *Control)
{
Control->_ReservedControl2();
}*/
/*
* Method: BControl::_ReservedControl3()
* Descr:
*/
/*void
BControl__ReservedControl3(BControl *Control)
{
Control->_ReservedControl3();
}*/
/*
* Method: BControl::_ReservedControl4()
* Descr:
*/
/*void
BControl__ReservedControl4(BControl *Control)
{
Control->_ReservedControl4();
}*/
/*
* Method: BControl::operator=()
* Descr:
*/
/*BControl &
BControl_operator=(BControl *Control, const BControl &)
{
return Control->operator=();
}*/
/*
* Method: BControl::InitData()
* Descr:
*/
/*void
BControl_InitData(BControl *Control, BMessage *data)
{
Control->InitData(data);
}*/
#if defined(__cplusplus)
}
#endif
#endif /* _CONTROL_CPP_ */

View File

@@ -128,6 +128,7 @@ void BPView::DetachedFromWindow(void)
void BPView::Draw(BRect updateRect)
{
BView::Draw(updateRect);
View_Draw_hook(GetPasObject(), &updateRect);
}

View File

@@ -73,6 +73,7 @@ void BWindow_Free(TCPlusObject Window)
void BWindow_Show(TCPlusObject Window)
{
reinterpret_cast<BWindow*>(Window)->Show();
reinterpret_cast<BWindow*>(Window)->UpdateIfNeeded();
}
void BWindow_Hide(TCPlusObject Window)

View File

@@ -0,0 +1,332 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
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 button;
interface
uses
beobj, Control, Message, Archivable, SupportDefs, Rect, Handler;
type
TButton = class(TControl)
private
public
destructor Destroy; override;
constructor Create(frame : TRect; name, aLabel : PChar; message : TMessage; resizingMode, flags : Cardinal); virtual;
constructor Create(data : TMessage); override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure Draw(updateRect : TRect); override;
procedure MouseDown(where : TPoint); override;
procedure AttachedToWindow; override;
procedure KeyDown(bytes : PChar; numBytes : integer); override;
// Hook functions
procedure MakeDefault(state : boolean); virtual;
procedure SetLabel(text : PChar);
function IsDefault : boolean;
procedure MessageReceived(msg : TMessage); override;
procedure WindowActivated(state : boolean); override;
procedure MouseUp(pt : TPoint); override;
procedure MouseMoved(pt : TPoint; code : Cardinal; msg : TMessage); override;
procedure DetachedFromWindow; override;
procedure SetValue(aValue : integer);
procedure GetPreferredSize(width : double; height : double);
procedure ResizeToPreferred; override;
function Invoke(msg : TMessage) : TStatus_t;
procedure FrameMoved(new_position : TPoint); override;
procedure FrameResized(new_width : double; new_height : double); override;
procedure MakeFocus(state : boolean); override;
procedure AllAttached; override;
procedure AllDetached; override;
function ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
function GetSupportedSuites(data : TMessage) : TStatus_t;
function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
// procedure _ReservedButton1;
// procedure _ReservedButton2;
// procedure _ReservedButton3;
// function operator=( : TButton) : TButton;
// function DrawDefault(bounds : TRect; enabled : boolean) : TRect;
// function Execute : TStatus_t;
// procedure float fCachedWidth;
// procedure bool fDrawAsDefault;
// procedure uint32 _reserved[3];
// procedure MakeDefault(flag : boolean); virtual;
end;
procedure BButton_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_Free';
function BButton_Create(AObject : TBeObject; frame : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; resizingMode, flags : Cardinal) : TCPlusObject; cdecl; external BePascalLibName name 'BButton_Create';
function BButton_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BButton_Create';
function BButton_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BButton_Instantiate';
function BButton_Archive(AObject : TCPlusObject; data : TCplusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BButton_Archive';
procedure BButton_Draw(AObject : TCPlusObject; updateRect : TCPlusObject); cdecl; external BePascalLibName name 'BButton_Draw';
procedure BButton_MouseDown(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BButton_MouseDown';
procedure BButton_AttachedToWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_AttachedToWindow';
procedure BButton_KeyDown(AObject : TCPlusObject; bytes : PChar; numBytes : integer); cdecl; external BePascalLibName name 'BButton_KeyDown';
procedure BButton_MakeDefault(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BButton_MakeDefault';
procedure BButton_SetLabel(AObject : TCPlusObject; text : PChar); cdecl; external BePascalLibName name 'BButton_SetLabel';
function BButton_IsDefault(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BButton_IsDefault';
procedure BButton_MessageReceived(AObject : TCPlusObject; msg : TCPlusObject); cdecl; external BePascalLibName name 'BButton_MessageReceived';
procedure BButton_WindowActivated(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BButton_WindowActivated';
procedure BButton_MouseUp(AObject : TCPlusObject; pt : TCplusObject); cdecl; external BePascalLibName name 'BButton_MouseUp';
procedure BButton_MouseMoved(AObject : TCPlusObject; pt : TCPlusObject; code : Cardinal; msg : TMessage); cdecl; external BePascalLibName name 'BButton_MouseMoved';
procedure BButton_DetachedFromWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_DetachedFromWindow';
procedure BButton_SetValue(AObject : TCPlusObject; aValue : integer); cdecl; external BePascalLibName name 'BButton_SetValue';
procedure BButton_GetPreferredSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BButton_GetPreferredSize';
procedure BButton_ResizeToPreferred(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_ResizeToPreferred';
function BButton_Invoke(AObject : TCPlusObject; msg : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BButton_Invoke';
procedure BButton_FrameMoved(AObject : TCPlusObject; new_position : TCPlusObject); cdecl; external BePascalLibName name 'BButton_FrameMoved';
procedure BButton_FrameResized(AObject : TCPlusObject; new_width : double; new_height : double); cdecl; external BePascalLibName name 'BButton_FrameResized';
procedure BButton_MakeFocus(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BButton_MakeFocus';
procedure BButton_AllAttached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_AllAttached';
procedure BButton_AllDetached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_AllDetached';
function BButton_ResolveSpecifier(AObject : TCPlusObject; msg : TCPlusObject; index : integer; specifier : TCPlusObject; form : integer; properti : PChar) : THandler; cdecl; external BePascalLibName name 'BButton_ResolveSpecifier';
function BButton_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BButton_GetSupportedSuites';
function BButton_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BButton_Perform';
//procedure BButton__ReservedButton1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton__ReservedButton1';
//procedure BButton__ReservedButton2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton__ReservedButton2';
//procedure BButton__ReservedButton3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton__ReservedButton3';
//function BButton_operator=(AObject : TCPlusObject; : TButton) : TButton; cdecl; external BePascalLibName name 'BButton_operator=';
//function BButton_DrawDefault(AObject : TCPlusObject; bounds : TCPlusObject; enabled : boolean) : TRect; cdecl; external BePascalLibName name 'BButton_DrawDefault';
//function BButton_Execute(AObject : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BButton_Execute';
//procedure BButton_float fCachedWidth(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_float fCachedWidth';
//procedure BButton_bool fDrawAsDefault(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_bool fDrawAsDefault';
//procedure BButton_uint32 _reserved[3](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BButton_uint32 _reserved[3]';
//var
// procedure BButton_MakeDefault_hook(Button : TButton; flag : boolean); cdecl; external BePascalLibName name 'BButton_MakeDefault';
implementation
var
Button_MakeDefault_hook : Pointer; cvar; external;
destructor TButton.Destroy;
begin
BButton_Free(CPlusObject);
inherited;
end;
constructor TButton.Create(frame : TRect; name, aLabel : PChar; message : TMessage; resizingMode, flags : Cardinal);
begin
CreatePas;
WriteLn('Creation bouton');
CPlusObject := BButton_Create(Self, frame.CPlusObject, name, aLabel, message.CPlusObject, resizingMode, flags);
end;
constructor TButton.Create(data : TMessage);
begin
CreatePas;
CPlusObject := BButton_Create(Self, data.CPlusObject);
end;
function TButton.Instantiate(data : TMessage) : TArchivable;
begin
Result := BButton_Instantiate(CPlusObject, data.CPlusObject);
end;
function TButton.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BButton_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TButton.Draw(updateRect : TRect);
begin
BButton_Draw(CPlusObject, updateRect.CPlusObject);
end;
procedure TButton.MouseDown(where : TPoint);
begin
BButton_MouseDown(CPlusObject, where.CPlusObject);
end;
procedure TButton.AttachedToWindow;
begin
BButton_AttachedToWindow(CPlusObject);
end;
procedure TButton.KeyDown(bytes : PChar; numBytes : integer);
begin
BButton_KeyDown(CPlusObject, bytes, numBytes);
end;
procedure TButton.MakeDefault(state : boolean);
begin
BButton_MakeDefault(CPlusObject, state);
end;
procedure TButton.SetLabel(text : PChar);
begin
BButton_SetLabel(CPlusObject, text);
end;
function TButton.IsDefault : boolean;
begin
Result := BButton_IsDefault(CPlusObject);
end;
procedure TButton.MessageReceived(msg : TMessage);
begin
WriteLn('Bonjour, ici le bouton !');
// BButton_MessageReceived(CPlusObject, msg.CPlusObject);
end;
procedure TButton.WindowActivated(state : boolean);
begin
BButton_WindowActivated(CPlusObject, state);
end;
procedure TButton.MouseUp(pt : TPoint);
begin
BButton_MouseUp(CPlusObject, pt.CPlusObject);
end;
procedure TButton.MouseMoved(pt : TPoint; code : Cardinal; msg : TMessage);
begin
BButton_MouseMoved(CPlusObject, pt.CPlusObject, code, msg);
end;
procedure TButton.DetachedFromWindow;
begin
BButton_DetachedFromWindow(CPlusObject);
end;
procedure TButton.SetValue(aValue : integer);
begin
BButton_SetValue(CPlusObject, aValue);
end;
procedure TButton.GetPreferredSize(width : double; height : double);
begin
BButton_GetPreferredSize(CPlusObject, width, height);
end;
procedure TButton.ResizeToPreferred;
begin
BButton_ResizeToPreferred(CPlusObject);
end;
function TButton.Invoke(msg : TMessage) : TStatus_t;
begin
Result := BButton_Invoke(CPlusObject, msg.CPlusObject);
end;
procedure TButton.FrameMoved(new_position : TPoint);
begin
BButton_FrameMoved(CPlusObject, new_position.CPlusObject);
end;
procedure TButton.FrameResized(new_width : double; new_height : double);
begin
BButton_FrameResized(CPlusObject, new_width, new_height);
end;
procedure TButton.MakeFocus(state : boolean);
begin
BButton_MakeFocus(CPlusObject, state);
end;
procedure TButton.AllAttached;
begin
BButton_AllAttached(CPlusObject);
end;
procedure TButton.AllDetached;
begin
BButton_AllDetached(CPlusObject);
end;
function TButton.ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
begin
Result := BButton_ResolveSpecifier(CPlusObject, msg.CPlusObject, index, specifier.CPlusObject, form, properti);
end;
function TButton.GetSupportedSuites(data : TMessage) : TStatus_t;
begin
Result := BButton_GetSupportedSuites(CPlusObject, data.CPlusObject);
end;
function TButton.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BButton_Perform(CPlusObject, d, arg);
end;
{procedure TButton._ReservedButton1;
begin
BButton__ReservedButton1(CPlusObject);
end;
procedure TButton._ReservedButton2;
begin
BButton__ReservedButton2(CPlusObject);
end;
procedure TButton._ReservedButton3;
begin
BButton__ReservedButton3(CPlusObject);
end;}
{function TButton.operator=( : TButton) : TButton;
begin
Result := BButton_operator=(CPlusObject, );
end;
}
{function TButton.DrawDefault(bounds : TRect; enabled : boolean) : TRect;
begin
Result := BButton_DrawDefault(CPlusObject, bounds.CPlusObject, enabled);
end;
function TButton.Execute : TStatus_t;
begin
Result := BButton_Execute(CPlusObject);
end;}
{procedure TButton.float fCachedWidth;
begin
BButton_float fCachedWidth(CPlusObject);
end;
}
{procedure TButton.bool fDrawAsDefault;
begin
BButton_bool fDrawAsDefault(CPlusObject);
end;
}
{procedure TButton.uint32 _reserved[3];
begin
BButton_uint32 _reserved[3](CPlusObject);
end;
}
{procedure TButton.MakeDefault(flag : boolean);
begin
end;
}
procedure Button_MakeDefault_hook_func(Button : TButton; flag : boolean); cdecl;
begin
if Button <> nil then
Button.MakeDefault(flag);
end;
initialization
Button_MakeDefault_hook := @Button_MakeDefault_hook_func;
end.

View File

@@ -0,0 +1,46 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
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
*/
#ifndef _CONTROL_H_
#define _CONTROL_H_
#include <beobj.h>
#include "view.h"
typedef void (*BControl_SetEnabled_hook) (TPasObject PasObject, bool enabled);
typedef void (*BControl_SetValue_hook) (TPasObject PasObject, int32 value);
class BPControl : public BControl, virtual public BPView
{
public:
// <BView_Constructor>
BPControl(TPasObject PasObject,
BRect frame,
const char *name,
const char *label,
BMessage *message,
uint32 resizeMask,
uint32 flags);
BPControl(TPasObject PasObject, BMessage *message);
virtual void SetEnabled(bool enabled);
virtual void SetValue(int32 value);
private:
};
#endif /* _CONTROL_H_ */

View File

@@ -0,0 +1,368 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
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 control;
interface
uses
beobj, View, Message, Archivable, Rect, Handler, SupportDefs, Invoker;
type
TControl = class(TView)
private
protected
FInvoker : TInvoker;
function GetInvoker : TInvoker;
public
constructor Create(frame : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; resizingMode, flags : Cardinal); virtual;
destructor Destroy; override;
constructor Create(data : TMessage); virtual;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure WindowActivated(state : boolean); override;
procedure AttachedToWindow; override;
procedure MessageReceived(msg : TMessage); override;
procedure MakeFocus(state : boolean); virtual;
procedure KeyDown(bytes : PChar; numBytes : integer); override;
procedure MouseDown(pt : TPoint); override;
procedure MouseUp(pt : TPoint); override;
procedure MouseMoved(pt : TPoint; code : Cardinal; msg : TMessage); override;
procedure DetachedFromWindow; override;
procedure SetLabel(text : PChar);
function Labl : PChar;
procedure SetValue(aValue : integer);
function Value : integer;
procedure SetEnabled(aOn : boolean);
function IsEnabled : boolean;
procedure GetPreferredSize(width : double; height : double);
procedure ResizeToPreferred; override;
function Invoke(msg : TMessage) : TStatus_t;
function ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti{;-)} : PChar) : THandler;
function GetSupportedSuites(data : TMessage) : TStatus_t;
procedure AllAttached; override;
procedure AllDetached; override;
function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
// function IsFocusChanging : boolean;
// function IsTracking : boolean;
// procedure SetTracking(state : boolean);
// procedure SetValueNoUpdate(aValue : integer);
// procedure _ReservedControl1;
// procedure _ReservedControl2;
// procedure _ReservedControl3;
// procedure _ReservedControl4;
// function operator=( : TControl) : TControl;
// procedure InitData(data : TMessage);
// procedure char *fLabel;
// procedure int32 fValue;
// procedure bool fEnabled;
// procedure bool fFocusChanging;
// procedure bool fTracking;
// procedure bool fWantsNav;
// procedure uint32 _reserved[4];
property Invoker : TInvoker read GetInvoker;
end;
//function BControl_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BControl_Create';
function BControl_Create(AObject : TBeObject; frame : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; resizingMode, flags : Cardinal) : TCPlusObject; cdecl; external BePascalLibName name 'BControl_Create';
procedure BControl_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_Free';
function BControl_Create(AObject : TBeObject; data : TCplusObject) : TCplusObject; cdecl; external BePascalLibName name 'BControl_Create';
function BControl_Instantiate(AObject : TCPlusObject; data : TCplusObject) : TArchivable; cdecl; external BePascalLibName name 'BControl_Instantiate';
function BControl_Archive(AObject : TCPlusObject; data : TCplusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BControl_Archive';
procedure BControl_WindowActivated(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BControl_WindowActivated';
procedure BControl_AttachedToWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_AttachedToWindow';
procedure BControl_MessageReceived(AObject : TCPlusObject; msg : TCplusObject); cdecl; external BePascalLibName name 'BControl_MessageReceived';
procedure BControl_MakeFocus(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BControl_MakeFocus';
procedure BControl_KeyDown(AObject : TCPlusObject; bytes : PChar; numBytes : integer); cdecl; external BePascalLibName name 'BControl_KeyDown';
procedure BControl_MouseDown(AObject : TCPlusObject; pt : TCplusObject); cdecl; external BePascalLibName name 'BControl_MouseDown';
procedure BControl_MouseUp(AObject : TCPlusObject; pt : TCplusObject); cdecl; external BePascalLibName name 'BControl_MouseUp';
procedure BControl_MouseMoved(AObject : TCPlusObject; pt : TCplusObject; code : Cardinal; msg : TCplusObject); cdecl; external BePascalLibName name 'BControl_MouseMoved';
procedure BControl_DetachedFromWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_DetachedFromWindow';
procedure BControl_SetLabel(AObject : TCPlusObject; text : PChar); cdecl; external BePascalLibName name 'BControl_SetLabel';
function BControl_Labl(AObject : TCPlusObject) : PChar; cdecl; external BePascalLibName name 'BControl_Label';
procedure BControl_SetValue(AObject : TCPlusObject; value : integer); cdecl; external BePascalLibName name 'BControl_SetValue';
function BControl_Value(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BControl_Value';
procedure BControl_SetEnabled(AObject : TCPlusObject; aOn : boolean); cdecl; external BePascalLibName name 'BControl_SetEnabled';
function BControl_IsEnabled(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BControl_IsEnabled';
procedure BControl_GetPreferredSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BControl_GetPreferredSize';
procedure BControl_ResizeToPreferred(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_ResizeToPreferred';
function BControl_Invoke(AObject : TCPlusObject; msg : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BControl_Invoke';
function BControl_ResolveSpecifier(AObject : TCPlusObject; msg : TCplusObject; index : integer; specifier : TCplusObject; form : integer; properti : PChar) : THandler; cdecl; external BePascalLibName name 'BControl_ResolveSpecifier';
function BControl_GetSupportedSuites(AObject : TCPlusObject; data : TCplusObject) : TStatus_t; cdecl; external BePascalLibName name 'BControl_GetSupportedSuites';
procedure BControl_AllAttached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_AllAttached';
procedure BControl_AllDetached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_AllDetached';
function BControl_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BControl_Perform';
//function BControl_IsFocusChanging(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BControl_IsFocusChanging';
//function BControl_IsTracking(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BControl_IsTracking';
//procedure BControl_SetTracking(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BControl_SetTracking';
//procedure BControl_SetValueNoUpdate(AObject : TCPlusObject; aValue : integer); cdecl; external BePascalLibName name 'BControl_SetValueNoUpdate';
//procedure BControl__ReservedControl1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl__ReservedControl1';
//procedure BControl__ReservedControl2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl__ReservedControl2';
//procedure BControl__ReservedControl3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl__ReservedControl3';
//procedure BControl__ReservedControl4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl__ReservedControl4';
//function BControl_operator=(AObject : TCPlusObject; : TControl) : TControl; cdecl; external BePascalLibName name 'BControl_operator=';
procedure BControl_InitData(AObject : TCPlusObject; data : TCplusObject); cdecl; external BePascalLibName name 'BControl_InitData';
//procedure BControl_char *fLabel(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_char *fLabel';
//procedure BControl_int32 fValue(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_int32 fValue';
//procedure BControl_bool fEnabled(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_bool fEnabled';
//procedure BControl_bool fFocusChanging(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_bool fFocusChanging';
//procedure BControl_bool fTracking(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_bool fTracking';
//procedure BControl_bool fWantsNav(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_bool fWantsNav';
//procedure BControl_uint32 _reserved[4](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BControl_uint32 _reserved[4]';
implementation
constructor TControl.Create(frame : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; resizingMode, flags : Cardinal);
begin
CPlusObject := BControl_Create(Self, frame, name, aLabel, message, resizingMode, flags);
end;
destructor TControl.Destroy;
begin
if FInvoker <> nil then
FInvoker.UnWrap;
BControl_Free(CPlusObject);
end;
constructor TControl.Create(data : TMessage);
begin
CPlusObject := BControl_Create(Self, data.CPlusObject);
end;
function TControl.Instantiate(data : TMessage) : TArchivable;
begin
Result := BControl_Instantiate(CPlusObject, data.CPlusObject);
end;
function TControl.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BControl_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TControl.WindowActivated(state : boolean);
begin
BControl_WindowActivated(CPlusObject, state);
end;
procedure TControl.AttachedToWindow;
begin
BControl_AttachedToWindow(CPlusObject);
end;
procedure TControl.MessageReceived(msg : TMessage);
begin
BControl_MessageReceived(CPlusObject, msg.CPlusObject);
end;
procedure TControl.MakeFocus(state : boolean);
begin
BControl_MakeFocus(CPlusObject, state);
end;
procedure TControl.KeyDown(bytes : PChar; numBytes : integer);
begin
BControl_KeyDown(CPlusObject, bytes, numBytes);
end;
procedure TControl.MouseDown(pt : TPoint);
begin
BControl_MouseDown(CPlusObject, pt.CPlusObject);
end;
procedure TControl.MouseUp(pt : TPoint);
begin
BControl_MouseUp(CPlusObject, pt.CPlusObject);
end;
procedure TControl.MouseMoved(pt : TPoint; code : Cardinal; msg : TMessage);
begin
BControl_MouseMoved(CPlusObject, pt.CPlusObject, code, msg);
end;
procedure TControl.DetachedFromWindow;
begin
BControl_DetachedFromWindow(CPlusObject);
end;
procedure TControl.SetLabel(text : PChar);
begin
BControl_SetLabel(CPlusObject, text);
end;
function TControl.Labl : PChar;
begin
Result := BControl_Labl(CPlusObject);
end;
procedure TControl.SetValue(aValue : integer);
begin
BControl_SetValue(CPlusObject, aValue);
end;
function TControl.Value : integer;
begin
Result := BControl_Value(CPlusObject);
end;
procedure TControl.SetEnabled(aOn : boolean);
begin
BControl_SetEnabled(CPlusObject, aOn);
end;
function TControl.IsEnabled : boolean;
begin
Result := BControl_IsEnabled(CPlusObject);
end;
procedure TControl.GetPreferredSize(width : double; height : double);
begin
BControl_GetPreferredSize(CPlusObject, width, height);
end;
procedure TControl.ResizeToPreferred;
begin
BControl_ResizeToPreferred(CPlusObject);
end;
function TControl.Invoke(msg : TMessage) : TStatus_t;
begin
Result := BControl_Invoke(CPlusObject, msg.CPlusObject);
end;
function TControl.ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
begin
Result := BControl_ResolveSpecifier(CPlusObject, msg.CPlusObject, index, specifier.CPlusObject, form, properti);
end;
function TControl.GetSupportedSuites(data : TMessage) : TStatus_t;
begin
Result := BControl_GetSupportedSuites(CPlusObject, data.CPlusObject);
end;
procedure TControl.AllAttached;
begin
BControl_AllAttached(CPlusObject);
end;
procedure TControl.AllDetached;
begin
BControl_AllDetached(CPlusObject);
end;
function TControl.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BControl_Perform(CPlusObject, d, arg);
end;
//function TControl.IsFocusChanging : boolean;
//begin
// Result := BControl_IsFocusChanging(CPlusObject);
//end;
//
//function TControl.IsTracking : boolean;
//begin
// Result := BControl_IsTracking(CPlusObject);
//end;
//
//procedure TControl.SetTracking(state : boolean);
//begin
// BControl_SetTracking(CPlusObject, state);
//end;
//
//procedure TControl.SetValueNoUpdate(aValue : integer);
//begin
// BControl_SetValueNoUpdate(CPlusObject, aValue);
//end;
//procedure TControl._ReservedControl1;
//begin
// BControl__ReservedControl1(CPlusObject);
//end;
//
//procedure TControl._ReservedControl2;
//begin
// BControl__ReservedControl2(CPlusObject);
//end;
//
//procedure TControl._ReservedControl3;
//begin
// BControl__ReservedControl3(CPlusObject);
//end;
//
//procedure TControl._ReservedControl4;
//begin
// BControl__ReservedControl4(CPlusObject);
//end;
//function TControl.operator=( : TControl) : TControl;
//begin
// Result := BControl_operator=(CPlusObject, );
//end;
//procedure TControl.InitData(data : TMessage);
//begin
// BControl_InitData(CPlusObject, data.CPlusObject);
//end;
//procedure TControl.char *fLabel;
//begin
// BControl_char *fLabel(CPlusObject);
//end;
//
//procedure TControl.int32 fValue;
//begin
// BControl_int32 fValue(CPlusObject);
//end;
//
//procedure TControl.bool fEnabled;
//begin
// BControl_bool fEnabled(CPlusObject);
//end;
//
//procedure TControl.bool fFocusChanging;
//begin
// BControl_bool fFocusChanging(CPlusObject);
//end;
//
//procedure TControl.bool fTracking;
//begin
// BControl_bool fTracking(CPlusObject);
//end;
//
//procedure TControl.bool fWantsNav;
//begin
// BControl_bool fWantsNav(CPlusObject);
//end;
//
//procedure TControl.uint32 _reserved[4];
//begin
// BControl_uint32 _reserved[4](CPlusObject);
//end;
function TControl.GetInvoker : TInvoker;
begin
if FInvoker = nil then
begin
WriteLn('Before GetInvoker');
Result := TInvoker.Wrap(CPlusObject);
WriteLn('After GetInvoker');
end;
Result := FInvoker;
end;
end.

View File

@@ -180,6 +180,8 @@ end;
procedure TView.Draw(updateRect : TRect);
begin
WriteLn('Drawing view');
end;
procedure TView.DrawAfterChildren(updateRect : TRect);
@@ -243,7 +245,10 @@ end;
procedure TView.AddChild(aView, before : TView);
begin
BView_AddChild(Self.CPlusObject, aView.CPlusObject, before.CPlusObject);
if before <> nil then
BView_AddChild(Self.CPlusObject, aView.CPlusObject, before.CPlusObject)
else
BView_AddChild(Self.CPlusObject, aView.CPlusObject, nil);
end;
function TView.RemoveChild(aView : TView) : boolean;

View File

@@ -36,7 +36,11 @@ const
B_INFINITE_TIMEOUT = 9223372036854775807;
type
TArea_id = Longint;
TPort_id = Longint;
TSem_id = Longint;
TThread_id = Longint;
TTeam_id = Longint;
implementation

View File

@@ -0,0 +1,385 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
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
*/
#include <DataIO.h>
#include <beobj.h>
#if defined(__cplusplus)
extern "C" {
#endif
/***********************************************************************
* Method: BDataIO::BDataIO
* Params:
* Effects:
***********************************************************************/
TCPlusObject BDataIO_Create_1(TPasObject PasObject)
{
// return new BDataIO(PasObject);
return NULL;
}
/***********************************************************************
* Method: BDataIO::~BDataIO
* Params:
* Effects:
***********************************************************************/
void BDataIO_Free(BDataIO *DataIO)
{
delete DataIO;
}
/***********************************************************************
* Method: BDataIO::BDataIO
* Params: const BDataIO &
* Effects:
***********************************************************************/
TCPlusObject BDataIO_Create_2(TPasObject PasObject, const BDataIO &)
{
// return new BPDataIO(PasObject, );
return NULL;
}
/***********************************************************************
* Method: BDataIO::operator=
* Params: const BDataIO &
* Returns: BDataIO &
* Effects:
***********************************************************************/
/*BDataIO &
BDataIO_operator=(BDataIO *DataIO, const BDataIO &)
{
return DataIO->operator=();
}*/
/***********************************************************************
* Method: BPositionIO::BPositionIO
* Params:
* Effects:
***********************************************************************/
TCPlusObject BPositionIO_Create(TPasObject PasObject)
{
// return new BPositionIO(PasObject);
return NULL;
}
/***********************************************************************
* Method: BPositionIO::~BPositionIO
* Params:
* Effects:
***********************************************************************/
void BPositionIO_Free(BPositionIO *PositionIO)
{
delete PositionIO;
}
/***********************************************************************
* Method: BPositionIO::Read
* Params: void *buffer, size_t size
* Returns: ssize_t
* Effects:
***********************************************************************/
ssize_t
BPositionIO_Read(BPositionIO *PositionIO, void *buffer, size_t size)
{
return PositionIO->Read(buffer, size);
}
/***********************************************************************
* Method: BPositionIO::Write
* Params: const void *buffer, size_t size
* Returns: ssize_t
* Effects:
***********************************************************************/
ssize_t
BPositionIO_Write(BPositionIO *PositionIO, const void *buffer, size_t size)
{
return PositionIO->Write(buffer, size);
}
/***********************************************************************
* Method: BPositionIO::SetSize
* Params: off_t size
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BPositionIO_SetSize(BPositionIO *PositionIO, off_t size)
{
return PositionIO->SetSize(size);
}
/***********************************************************************
* Method: BMallocIO::BMallocIO
* Params:
* Effects:
***********************************************************************/
TCPlusObject BMallocIO_Create(TPasObject PasObject)
{
return new BMallocIO();
}
/***********************************************************************
* Method: BMallocIO::~BMallocIO
* Params:
* Effects:
***********************************************************************/
void BMallocIO_Free(BMallocIO *MallocIO)
{
delete MallocIO;
}
/***********************************************************************
* Method: BMallocIO::ReadAt
* Params: off_t pos, void *buffer, size_t size
* Returns: ssize_t
* Effects:
***********************************************************************/
ssize_t
BMallocIO_ReadAt(BMallocIO *MallocIO, off_t pos, void *buffer, size_t size)
{
return MallocIO->ReadAt(pos, buffer, size);
}
/***********************************************************************
* Method: BMallocIO::WriteAt
* Params: off_t pos, const void *buffer, size_t size
* Returns: ssize_t
* Effects:
***********************************************************************/
ssize_t
BMallocIO_WriteAt(BMallocIO *MallocIO, off_t pos, const void *buffer, size_t size)
{
return MallocIO->WriteAt(pos, buffer, size);
}
/***********************************************************************
* Method: BMallocIO::Seek
* Params: off_t pos, uint32 seek_mode
* Returns: off_t
* Effects:
***********************************************************************/
off_t
BMallocIO_Seek(BMallocIO *MallocIO, off_t pos, uint32 seek_mode)
{
return MallocIO->Seek(pos, seek_mode);
}
/***********************************************************************
* Method: BMallocIO::Position
* Params:
* Returns: off_t
* Effects:
***********************************************************************/
off_t
BMallocIO_Position(BMallocIO *MallocIO)
{
return MallocIO->Position();
}
/***********************************************************************
* Method: BMallocIO::SetSize
* Params: off_t size
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMallocIO_SetSize(BMallocIO *MallocIO, off_t size)
{
return MallocIO->SetSize(size);
}
/***********************************************************************
* Method: BMallocIO::SetBlockSize
* Params: size_t blocksize
* Returns: void
* Effects:
***********************************************************************/
void
BMallocIO_SetBlockSize(BMallocIO *MallocIO, size_t blocksize)
{
MallocIO->SetBlockSize(blocksize);
}
/***********************************************************************
* Method: BMallocIO::Buffer
* Params:
* Returns: const void *
* Effects:
***********************************************************************/
const void *
BMallocIO_Buffer(BMallocIO *MallocIO)
{
return MallocIO->Buffer();
}
/***********************************************************************
* Method: BMallocIO::BufferLength
* Params:
* Returns: size_t
* Effects:
***********************************************************************/
size_t
BMallocIO_BufferLength_1(BMallocIO *MallocIO)
{
return MallocIO->BufferLength();
}
/***********************************************************************
* Method: BMallocIO::operator=
* Params: const BMallocIO &
* Returns: BMallocIO &
* Effects:
***********************************************************************/
/*BMallocIO &
BMallocIO_operator=(BMallocIO *MallocIO, const BMallocIO &)
{
return MallocIO->operator=();
}*/
/***********************************************************************
* Method: BMemoryIO::BMemoryIO
* Params: void *p, size_t len
* Effects:
***********************************************************************/
TCPlusObject BMemoryIO_Create(TPasObject PasObject, void *p, size_t len)
{
return new BMemoryIO(p, len);
}
/***********************************************************************
* Method: BMemoryIO::BMemoryIO
* Params: const void *p, size_t len
* Effects:
***********************************************************************/
TCPlusObject BMemoryIO_Create_1
(TPasObject PasObject, const void *p, size_t len)
{
return new BMemoryIO(p, len);
}
/***********************************************************************
* Method: BMemoryIO::~BMemoryIO
* Params:
* Effects:
***********************************************************************/
void BMemoryIO_Free(BMemoryIO *MemoryIO)
{
delete MemoryIO;
}
/***********************************************************************
* Method: BMemoryIO::ReadAt
* Params: off_t pos, void *buffer, size_t size
* Returns: ssize_t
* Effects:
***********************************************************************/
ssize_t
BMemoryIO_ReadAt(BMemoryIO *MemoryIO, off_t pos, void *buffer, size_t size)
{
return MemoryIO->ReadAt(pos, buffer, size);
}
/***********************************************************************
* Method: BMemoryIO::WriteAt
* Params: off_t pos, const void *buffer, size_t size
* Returns: ssize_t
* Effects:
***********************************************************************/
ssize_t
BMemoryIO_WriteAt(BMemoryIO *MemoryIO, off_t pos, const void *buffer, size_t size)
{
return MemoryIO->WriteAt(pos, buffer, size);
}
/***********************************************************************
* Method: BMemoryIO::Seek
* Params: off_t pos, uint32 seek_mode
* Returns: off_t
* Effects:
***********************************************************************/
off_t
BMemoryIO_Seek(BMemoryIO *MemoryIO, off_t pos, uint32 seek_mode)
{
return MemoryIO->Seek(pos, seek_mode);
}
/***********************************************************************
* Method: BMemoryIO::Position
* Params:
* Returns: off_t
* Effects:
***********************************************************************/
off_t
BMemoryIO_Position(BMemoryIO *MemoryIO)
{
return MemoryIO->Position();
}
/***********************************************************************
* Method: BMemoryIO::SetSize
* Params: off_t size
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BMemoryIO_SetSize(BMemoryIO *MemoryIO, off_t size)
{
return MemoryIO->SetSize(size);
}
/***********************************************************************
* Method: BMemoryIO::operator=
* Params: const BMemoryIO &
* Returns: BMemoryIO &
* Effects:
***********************************************************************/
/*BMemoryIO &
BMemoryIO_operator=(BMemoryIO *MemoryIO, const BMemoryIO &)
{
return MemoryIO->operator=();
}*/
#if defined(__cplusplus)
}
#endif

View File

@@ -0,0 +1,629 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
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 dataio;
interface
uses
beobj, supportdefs;
type
TDataIO = class(TBeObject)
private
public
constructor Create; override;
destructor Destroy; override;
function Read(buffer : Pointer; size : TSize_t) : TSSize_t; virtual; abstract;
function Write(buffer : Pointer; size : TSize_t) : TSSize_t; virtual; abstract;
{ procedure _ReservedDataIO1;
procedure _ReservedDataIO2;
procedure _ReservedDataIO3;
procedure _ReservedDataIO4;
procedure _ReservedDataIO5;
procedure _ReservedDataIO6;
procedure _ReservedDataIO7;
procedure _ReservedDataIO8;
procedure _ReservedDataIO9;
procedure _ReservedDataIO10;
procedure _ReservedDataIO11;
procedure _ReservedDataIO12;
}
constructor Create(DataIO : TDataIO);
// function operator=( : TDataIO) : TDataIO;
// procedure int32 _reserved[2];
end;
type
TPositionIO = class(TDataIO)
private
public
constructor Create; override;
destructor Destroy; override;
// function Read(buffer : Pointer; size : TSize_t) : TSSize_t; override;
// function Write(buffer : Pointer; size : TSize_t) : TSSize_t; override;
function ReadAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; virtual; abstract;
function WriteAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; virtual; abstract;
function Seek(aposition : Toff_t; seek_mode : Cardinal) : Toff_t; virtual; abstract;
// function Position : Toff_t; virtual;
function SetSize(size : Toff_t) : TStatus_t; virtual;
{ procedure _ReservedPositionIO1;
procedure _ReservedPositionIO2;
procedure _ReservedPositionIO3;
procedure _ReservedPositionIO4;
procedure _ReservedPositionIO5;
procedure _ReservedPositionIO6;
procedure _ReservedPositionIO7;
procedure _ReservedPositionIO8;
procedure _ReservedPositionIO9;
procedure _ReservedPositionIO10;
procedure _ReservedPositionIO11;
procedure _ReservedPositionIO12;
}
// procedure int32 _reserved[2];
end;
type
TMallocIO = class(TPositionIO)
private
public
constructor Create; override;
destructor Destroy; override;
function ReadAt(pos : Toff_t; abuffer : Pointer; size : TSize_t) : TSSize_t; override;
function WriteAt(pos : Toff_t; abuffer : Pointer; size : TSize_t) : TSSize_t; override;
function Seek(pos : Toff_t; seek_mode : Cardinal) : Toff_t; override;
// function Position : Toff_t; override;
function SetSize(size : Toff_t) : TStatus_t; override;
procedure SetBlockSize(blocksize : TSize_t); virtual;
function Buffer : Pointer;
// function BufferLength : TSize_t;
{ procedure _ReservedMallocIO1;
procedure _ReservedMallocIO2;
}
constructor Create(MallocIO : TMallocIO);
// function operator=( : TMallocIO) : TMallocIO;
{ function fBlockSize : TSize_t;
function fMallocSize : TSize_t;
function fLength : TSize_t;
function fData : PChar;
function fPosition : Toff_t;
}
// procedure _reserved[1] : integer;
end;
type
TMemoryIO = class(TPositionIO)
private
public
constructor Create; override;
constructor Create(p : Pointer; len : TSize_t); virtual;
destructor Destroy; override;
function ReadAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; override;
function WriteAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; override;
function Seek(pos : Toff_t; seek_mode : Cardinal) : Toff_t; override;
// function Position : Toff_t; override;
function SetSize(size : Toff_t) : TStatus_t; override;
{ procedure _ReservedMemoryIO1;
procedure _ReservedMemoryIO2;
}
constructor Create(MemoryIO : TMemoryIO);
// function operator=(MemoryIO : TMemoryIO) : TMemoryIO;
{ function fReadOnly : boolean;
function fBuf : PChar;
function fLen : TSize_t;
function fPhys : TSize_t;
function fPos : TSize_t;
}
// function _reserved[1] : int32;
end;
function BDataIO_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BDataIO_Create_1';
procedure BDataIO_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO_Free';
//function BDataIO_Read(AObject : TCPlusObject; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BDataIO_Read';
//function BDataIO_Write(AObject : TCPlusObject; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BDataIO_Write';
{procedure BDataIO__ReservedDataIO1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO1';
procedure BDataIO__ReservedDataIO2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO2';
procedure BDataIO__ReservedDataIO3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO3';
procedure BDataIO__ReservedDataIO4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO4';
procedure BDataIO__ReservedDataIO5(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO5';
procedure BDataIO__ReservedDataIO6(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO6';
procedure BDataIO__ReservedDataIO7(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO7';
procedure BDataIO__ReservedDataIO8(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO8';
procedure BDataIO__ReservedDataIO9(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO9';
procedure BDataIO__ReservedDataIO10(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO10';
procedure BDataIO__ReservedDataIO11(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO11';
procedure BDataIO__ReservedDataIO12(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO__ReservedDataIO12';
}
function BDataIO_Create(AObject : TBeObject; DataIO : TDataIO) : TCPlusObject; cdecl; external BePascalLibName name 'BDataIO_Create_2';
//function BDataIO_operator=(AObject : TCPlusObject; : TDataIO) : TDataIO; cdecl; external BePascalLibName name 'BDataIO_operator=';
//procedure BDataIO_int32 _reserved[2](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BDataIO_int32 _reserved[2]';
function BPositionIO_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BPositionIO_Create';
procedure BPositionIO_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO_Free';
function BPositionIO_Read(AObject : TCPlusObject; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BPositionIO_Read';
function BPositionIO_Write(AObject : TCPlusObject; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BPositionIO_Write';
function BPositionIO_ReadAt(AObject : TCPlusObject; pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BPositionIO_ReadAt';
function BPositionIO_WriteAt(AObject : TCPlusObject; pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BPositionIO_WriteAt';
function BPositionIO_Seek(AObject : TCPlusObject; position : Toff_t; seek_mode : Cardinal) : Toff_t; cdecl; external BePascalLibName name 'BPositionIO_Seek';
//function BPositionIO_Position(AObject : TCPlusObject) : Toff_t; cdecl; external BePascalLibName name 'BPositionIO_Position';
function BPositionIO_SetSize(AObject : TCPlusObject; size : Toff_t) : TStatus_t; cdecl; external BePascalLibName name 'BPositionIO_SetSize';
{procedure BPositionIO__ReservedPositionIO1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO1';
procedure BPositionIO__ReservedPositionIO2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO2';
procedure BPositionIO__ReservedPositionIO3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO3';
procedure BPositionIO__ReservedPositionIO4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO4';
procedure BPositionIO__ReservedPositionIO5(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO5';
procedure BPositionIO__ReservedPositionIO6(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO6';
procedure BPositionIO__ReservedPositionIO7(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO7';
procedure BPositionIO__ReservedPositionIO8(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO8';
procedure BPositionIO__ReservedPositionIO9(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO9';
procedure BPositionIO__ReservedPositionIO10(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO10';
procedure BPositionIO__ReservedPositionIO11(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO11';
procedure BPositionIO__ReservedPositionIO12(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO__ReservedPositionIO12';
}
//procedure BPositionIO_int32 _reserved[2](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPositionIO_int32 _reserved[2]';
function BMallocIO_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMallocIO_Create';
procedure BMallocIO_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_Free';
function BMallocIO_ReadAt(AObject : TCPlusObject; pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BMallocIO_ReadAt';
function BMallocIO_WriteAt(AObject : TCPlusObject; pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BMallocIO_WriteAt';
function BMallocIO_Seek(AObject : TCPlusObject; pos : Toff_t; seek_mode : Cardinal) : Toff_t; cdecl; external BePascalLibName name 'BMallocIO_Seek';
//function BMallocIO_Position(AObject : TCPlusObject) : Toff_t; cdecl; external BePascalLibName name 'BMallocIO_Position';
function BMallocIO_SetSize(AObject : TCPlusObject; size : Toff_t) : TStatus_t; cdecl; external BePascalLibName name 'BMallocIO_SetSize';
procedure BMallocIO_SetBlockSize(AObject : TCPlusObject; blocksize : TSize_t); cdecl; external BePascalLibName name 'BMallocIO_SetBlockSize';
function BMallocIO_Buffer(AObject : TCPlusObject) : Pointer; cdecl; external BePascalLibName name 'BMallocIO_Buffer';
//function BMallocIO_BufferLength(AObject : TCPlusObject) : TSize_t; cdecl; external BePascalLibName name 'BMallocIO_BufferLength';
{procedure BMallocIO__ReservedMallocIO1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO__ReservedMallocIO1';
procedure BMallocIO__ReservedMallocIO2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO__ReservedMallocIO2';
}
function BMallocIO_Create(AObject : TBeObject; MallocIO : TMallocIO) : TCPlusObject; cdecl; external BePascalLibName name 'BMallocIO_Create';
//function BMallocIO_operator=(AObject : TCPlusObject; MallocIO : TMallocIO) : TMallocIO; cdecl; external BePascalLibName name 'BMallocIO_operator=';
{procedure BMallocIO_size_t fBlockSize(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_size_t fBlockSize';
procedure BMallocIO_size_t fMallocSize(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_size_t fMallocSize';
procedure BMallocIO_size_t fLength(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_size_t fLength';
procedure BMallocIO_char *fData(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_char *fData';
procedure BMallocIO_off_t fPosition(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_off_t fPosition';
procedure BMallocIO_int32 _reserved[1](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMallocIO_int32 _reserved[1]';
}
function BMemoryIO_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMemoryIO_Create';
function BMemoryIO_Create(AObject : TBeObject; p : Pointer; len : TSize_t) : TCPlusObject; cdecl; external BePascalLibName name 'BMemoryIO_Create';
procedure BMemoryIO_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_Free';
function BMemoryIO_ReadAt(AObject : TCPlusObject; pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BMemoryIO_ReadAt';
function BMemoryIO_WriteAt(AObject : TCPlusObject; pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t; cdecl; external BePascalLibName name 'BMemoryIO_WriteAt';
function BMemoryIO_Seek(AObject : TCPlusObject; pos : Toff_t; seek_mode : Cardinal) : Toff_t; cdecl; external BePascalLibName name 'BMemoryIO_Seek';
function BMemoryIO_Position(AObject : TCPlusObject) : Toff_t; cdecl; external BePascalLibName name 'BMemoryIO_Position';
function BMemoryIO_SetSize(AObject : TCPlusObject; size : Toff_t) : TStatus_t; cdecl; external BePascalLibName name 'BMemoryIO_SetSize';
{procedure BMemoryIO__ReservedMemoryIO1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO__ReservedMemoryIO1';
procedure BMemoryIO__ReservedMemoryIO2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO__ReservedMemoryIO2';
}
function BMemoryIO_Create(AObject : TBeObject; MemoryIO : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMemoryIO_Create';
//function BMemoryIO_operator=(AObject : TCPlusObject; : TMemoryIO) : TMemoryIO; cdecl; external BePascalLibName name 'BMemoryIO_operator=';
{procedure BMemoryIO_bool fReadOnly(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_bool fReadOnly';
procedure BMemoryIO_char *fBuf(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_char *fBuf';
procedure BMemoryIO_size_t fLen(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_size_t fLen';
procedure BMemoryIO_size_t fPhys(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_size_t fPhys';
procedure BMemoryIO_size_t fPos(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_size_t fPos';
procedure BMemoryIO_int32 _reserved[1](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMemoryIO_int32 _reserved[1]';
}
implementation
constructor TDataIO.Create;
begin
inherited;
CPlusObject := BDataIO_Create(Self);
end;
destructor TDataIO.Destroy;
begin
if CPlusObject <> nil then
BDataIO_Free(CPlusObject);
inherited;
end;
{procedure TDataIO._ReservedDataIO1;
begin
BDataIO__ReservedDataIO1(CPlusObject);
end;
procedure TDataIO._ReservedDataIO2;
begin
BDataIO__ReservedDataIO2(CPlusObject);
end;
procedure TDataIO._ReservedDataIO3;
begin
BDataIO__ReservedDataIO3(CPlusObject);
end;
procedure TDataIO._ReservedDataIO4;
begin
BDataIO__ReservedDataIO4(CPlusObject);
end;
procedure TDataIO._ReservedDataIO5;
begin
BDataIO__ReservedDataIO5(CPlusObject);
end;
procedure TDataIO._ReservedDataIO6;
begin
BDataIO__ReservedDataIO6(CPlusObject);
end;
procedure TDataIO._ReservedDataIO7;
begin
BDataIO__ReservedDataIO7(CPlusObject);
end;
procedure TDataIO._ReservedDataIO8;
begin
BDataIO__ReservedDataIO8(CPlusObject);
end;
procedure TDataIO._ReservedDataIO9;
begin
BDataIO__ReservedDataIO9(CPlusObject);
end;
procedure TDataIO._ReservedDataIO10;
begin
BDataIO__ReservedDataIO10(CPlusObject);
end;
procedure TDataIO._ReservedDataIO11;
begin
BDataIO__ReservedDataIO11(CPlusObject);
end;
procedure TDataIO._ReservedDataIO12;
begin
BDataIO__ReservedDataIO12(CPlusObject);
end;
}
constructor TDataIO.Create(DataIO : TDataIO);
begin
inherited Create;
CPlusObject := BDataIO_Create(Self, DataIO);
end;
{function TDataIO.operator=( : TDataIO) : TDataIO;
begin
BDataIO_operator=(CPlusObject, );
end;
}
{procedure TDataIO.int32 _reserved[2];
begin
BDataIO_int32 _reserved[2](CPlusObject);
end;
}
constructor TPositionIO.Create;
begin
CPlusObject := BPositionIO_Create(Self);
end;
destructor TPositionIO.Destroy;
begin
BPositionIO_Free(CPlusObject);
end;
{function TPositionIO.Read(buffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BPositionIO_Read(CPlusObject, buffer, size);
end;
function TPositionIO.Write(buffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BPositionIO_Write(CPlusObject, buffer, size);
end;
}
{function TPositionIO.ReadAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BPositionIO_ReadAt(CPlusObject, pos, buffer, size);
end;
function TPositionIO.WriteAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BPositionIO_WriteAt(CPlusObject, pos, buffer, size);
end;
function TPositionIO.Seek(aposition : Toff_t; seek_mode : Cardinal) : Toff_t;
begin
Result := BPositionIO_Seek(CPlusObject, aposition, seek_mode);
end;
}
{function TPositionIO.Position : Toff_t;
begin
Result := BPositionIO_Position(CPlusObject);
end;
}
function TPositionIO.SetSize(size : Toff_t) : TStatus_t;
begin
Result := BPositionIO_SetSize(CPlusObject, size);
end;
{procedure TPositionIO._ReservedPositionIO1;
begin
BPositionIO__ReservedPositionIO1(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO2;
begin
BPositionIO__ReservedPositionIO2(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO3;
begin
BPositionIO__ReservedPositionIO3(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO4;
begin
BPositionIO__ReservedPositionIO4(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO5;
begin
BPositionIO__ReservedPositionIO5(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO6;
begin
BPositionIO__ReservedPositionIO6(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO7;
begin
BPositionIO__ReservedPositionIO7(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO8;
begin
BPositionIO__ReservedPositionIO8(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO9;
begin
BPositionIO__ReservedPositionIO9(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO10;
begin
BPositionIO__ReservedPositionIO10(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO11;
begin
BPositionIO__ReservedPositionIO11(CPlusObject);
end;
procedure TPositionIO._ReservedPositionIO12;
begin
BPositionIO__ReservedPositionIO12(CPlusObject);
end;
}
{procedure TPositionIO.int32 _reserved[2];
begin
BPositionIO_int32 _reserved[2](CPlusObject);
end;
}
constructor TMallocIO.Create;
begin
CPlusObject := BMallocIO_Create(Self);
end;
destructor TMallocIO.Destroy;
begin
BMallocIO_Free(CPlusObject);
end;
function TMallocIO.ReadAt(pos : Toff_t; abuffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BMallocIO_ReadAt(CPlusObject, pos, abuffer, size);
end;
function TMallocIO.WriteAt(pos : Toff_t; abuffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BMallocIO_WriteAt(CPlusObject, pos, abuffer, size);
end;
function TMallocIO.Seek(pos : Toff_t; seek_mode : Cardinal) : Toff_t;
begin
Result := BMallocIO_Seek(CPlusObject, pos, seek_mode);
end;
{function TMallocIO.Position : Toff_t;
begin
Result := BMallocIO_Position(CPlusObject);
end;
}
function TMallocIO.SetSize(size : Toff_t) : TStatus_t;
begin
Result := BMallocIO_SetSize(CPlusObject, size);
end;
procedure TMallocIO.SetBlockSize(blocksize : TSize_t);
begin
BMallocIO_SetBlockSize(CPlusObject, blocksize);
end;
function TMallocIO.Buffer : Pointer;
begin
Result := BMallocIO_Buffer(CPlusObject);
end;
{function TMallocIO.BufferLength : TSize_t;
begin
Result := BMallocIO_BufferLength(CPlusObject);
end;
}
{procedure TMallocIO._ReservedMallocIO1;
begin
BMallocIO__ReservedMallocIO1(CPlusObject);
end;
procedure TMallocIO._ReservedMallocIO2;
begin
BMallocIO__ReservedMallocIO2(CPlusObject);
end;
}
constructor TMallocIO.Create(MallocIO : TMallocIO);
begin
CPlusObject := BMallocIO_Create(Self, MallocIO);
end;
{function TMallocIO.operator=( : TMallocIO) : TMallocIO;
begin
BMallocIO_operator=(CPlusObject, );
end;
}
{function TMallocIO.fBlockSize : TSize_t;
begin
Result := BMallocIO_fBlockSize(CPlusObject);
end;
function TMallocIO.fMallocSize : TSize_t;
begin
Result := BMallocIO_size_t fMallocSize(CPlusObject);
end;
function TMallocIO.fLength : TSize_t;
begin
BMallocIO_size_t fLength(CPlusObject);
end;
function TMallocIO.fData : PChar;
begin
Result := BMallocIO_char *fData(CPlusObject);
end;
function TMallocIO.fPosition : Toff_t;
begin
Result := BMallocIO_fPosition(CPlusObject);
end;
}
{procedure TMallocIO.int32 _reserved[1];
begin
BMallocIO_int32 _reserved[1](CPlusObject);
end;
}
constructor TMemoryIO.Create;
begin
CPlusObject := BMemoryIO_Create(Self);
end;
constructor TMemoryIO.Create(p : Pointer; len : TSize_t);
begin
CPlusObject := BMemoryIO_Create(Self, p, len);
end;
destructor TMemoryIO.Destroy;
begin
BMemoryIO_Free(CPlusObject);
end;
function TMemoryIO.ReadAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BMemoryIO_ReadAt(CPlusObject, pos, buffer, size);
end;
function TMemoryIO.WriteAt(pos : Toff_t; buffer : Pointer; size : TSize_t) : TSSize_t;
begin
Result := BMemoryIO_WriteAt(CPlusObject, pos, buffer, size);
end;
function TMemoryIO.Seek(pos : Toff_t; seek_mode : Cardinal) : Toff_t;
begin
Result := BMemoryIO_Seek(CPlusObject, pos, seek_mode);
end;
{function TMemoryIO.Position : Toff_t;
begin
Result := BMemoryIO_Position(CPlusObject);
end;
}
function TMemoryIO.SetSize(size : Toff_t) : TStatus_t;
begin
Result := BMemoryIO_SetSize(CPlusObject, size);
end;
{procedure TMemoryIO._ReservedMemoryIO1;
begin
BMemoryIO__ReservedMemoryIO1(CPlusObject);
end;
procedure TMemoryIO._ReservedMemoryIO2;
begin
BMemoryIO__ReservedMemoryIO2(CPlusObject);
end;
}
constructor TMemoryIO.Create(MemoryIO : TMemoryIO);
begin
CPlusObject := BMemoryIO_Create(Self, MemoryIO.CPlusObject);
end;
{function TMemoryIO.operator=( : TMemoryIO) : TMemoryIO;
begin
BMemoryIO_operator=(CPlusObject, );
end;
}
{procedure TMemoryIO.bool fReadOnly;
begin
BMemoryIO_bool fReadOnly(CPlusObject);
end;
procedure TMemoryIO.char *fBuf;
begin
BMemoryIO_char *fBuf(CPlusObject);
end;
procedure TMemoryIO.size_t fLen;
begin
BMemoryIO_size_t fLen(CPlusObject);
end;
procedure TMemoryIO.size_t fPhys;
begin
BMemoryIO_size_t fPhys(CPlusObject);
end;
procedure TMemoryIO.size_t fPos;
begin
BMemoryIO_size_t fPos(CPlusObject);
end;
procedure TMemoryIO.int32 _reserved[1];
begin
BMemoryIO_int32 _reserved[1](CPlusObject);
end;
}
end.

View File

@@ -301,7 +301,7 @@ function TFunction.GetCppParams(StartWithComma : boolean) : string;
if (i > 0) then
Result := Result + ', ';
if FParams.Names[i] <> '' then
Result := Result + Format('%s%s', [FParams.Values[FParams.Names[i]], FParams.Names[i] ]);
Result := Result + Format('%s %s', [FParams.Values[FParams.Names[i]], FParams.Names[i] ]);
end;
end;
begin

View File

@@ -21,7 +21,8 @@ program Hello;
{$M+}
uses
beobj, application, message, _beep, roster, SysUtils,
archivable, handler, toto, rect, window;
archivable, handler, toto, rect, window, view, graphicdefs, dataio,
invoker, messenger, Control, Button;
type
TMonApplication = class(TApplication)
@@ -30,7 +31,14 @@ type
procedure MessageReceived(aMessage : TMessage); override;
function QuitRequested : boolean; override;
end;
TMyWindow = class(TWindow)
private
aView : TView;
aButton : TButton;
public
constructor Create(frame : TRect; title : PChar; atype, flags, workspaces : Cardinal); override;
destructor Destroy; override;
end;
TMonObjet = class(TObject)
private
FMessage : string;
@@ -45,6 +53,47 @@ type
var
MonObj : TMonObjet;
constructor TMyWindow.Create(frame : TRect; title : PChar; atype, flags, workspaces : Cardinal);
var
aRect, aRect2 : TRect;
rgb_color : TRGB_color;
mess : TMessage;
begin
inherited;
aRect := TRect.Create(20, 20, 100, 100);
try
aRect2 := TRect.Create(120, 120, 300, 300);
try
aView := TView.Create(aRect, 'Test', B_FOLLOW_NONE, B_WILL_DRAW);
rgb_color.red := 255;
rgb_color.green := 0;
rgb_color.blue := 0;
rgb_color.alpha := 0;
aView.SetViewColor(rgb_color);
Self.AddChild(aView, nil);
mess := TMessage.Create(100);
aButton := TButton.Create(aRect2, 'Test', 'Test', mess, B_FOLLOW_NONE, B_WILL_DRAW);
WriteLn('before addchild');
Self.AddChild(aButton, nil);
aButton.Invoker.SetTarget(aView, nil);
if aButton.IsEnabled then
WriteLn('Actif');
WriteLn('after addchild');
finally
aRect2.Free;
end;
finally
aRect.Free;
end;
end;
destructor TMyWindow.Destroy;
begin
// aButton.Free;
// aView.Free;
inherited;
end;
function TMonApplication.QuitRequested : boolean;
begin
Result := inherited;
@@ -74,23 +123,23 @@ begin
end;
constructor TMonObjet.Create;
var
a, b : string;
c : longint;
//var
// a, b : string;
// c : longint;
begin
inherited;
// GetLineInfo($A0000DB4, a, b, c);
Writeln(a + ' ' + b + ' ' + IntToStr(c));
// GetLineInfo($A0000DB4, a, b, c);
// Writeln(a + ' ' + b + ' ' + IntToStr(c));
WriteLn('Constructor');
end;
procedure TMonObjet.Bonjour(test : string);
var
a, b : string;
c : longint;
//var
// a, b : string;
// c : longint;
begin
// GetLineInfo($8002AEA5, a, b, c);
Writeln(a + ' ' + b + ' ' + IntToStr(c));
// Writeln(a + ' ' + b + ' ' + IntToStr(c));
WriteLn(test);
beep;
WriteLn('Fin de ' + test);
@@ -118,7 +167,7 @@ end;
var
aRect : TRect;
win : TWindow;
win : TMyWindow;
begin
beep;
@@ -127,7 +176,7 @@ begin
TMonApplication.Create;
try
aRect := TRect.Create(20, 20, 200, 200);
win := TWindow.Create(aRect, 'Bonjour', B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE, B_CURRENT_WORKSPACE);
win := TMyWindow.Create(aRect, 'Bonjour', B_TITLED_WINDOW, B_NOT_RESIZABLE or B_NOT_ZOOMABLE or B_QUIT_ON_WINDOW_CLOSE, B_CURRENT_WORKSPACE);
win.Show;
be_app.Run;
be_app.HideCursor;
@@ -137,4 +186,4 @@ begin
aRect.Free;
win.Free;
end;
end.
end.

View File

@@ -21,11 +21,12 @@ program test;
{$M+}
type
TTest = class;
TObjet = class(TObject)
private
public
end;
TTest = class(TObject); external;
var
obj : TObjet;
begin