Updates from Baldur

This commit is contained in:
ocoursiere
2003-12-18 22:19:10 +00:00
parent 90fd508547
commit b4b152c846
32 changed files with 4259 additions and 228 deletions

View File

@@ -178,6 +178,7 @@ DRIVER_PATH on $(NAME) = ;
BeMain libbepascal.so : src/be/bepas_kernel/beobj.cpp BeMain libbepascal.so : src/be/bepas_kernel/beobj.cpp
src/be/app/Application.cpp src/be/app/Application.cpp
src/be/app/Clipboard.cpp src/be/app/Clipboard.cpp
src/be/app/Cursor.cpp
src/be/app/Handler.cpp src/be/app/Handler.cpp
src/be/app/Invoker.cpp src/be/app/Invoker.cpp
src/be/app/Looper.cpp src/be/app/Looper.cpp
@@ -208,6 +209,7 @@ BeMain libbepascal.so : src/be/bepas_kernel/beobj.cpp
src/be/interface/Screen.cpp src/be/interface/Screen.cpp
src/be/interface/ScrollBar.cpp src/be/interface/ScrollBar.cpp
src/be/interface/ScrollView.cpp src/be/interface/ScrollView.cpp
src/be/interface/Shape.cpp
src/be/interface/StatusBar.cpp src/be/interface/StatusBar.cpp
src/be/interface/StringView.cpp src/be/interface/StringView.cpp
src/be/interface/TabView.cpp src/be/interface/TabView.cpp
@@ -217,8 +219,11 @@ BeMain libbepascal.so : src/be/bepas_kernel/beobj.cpp
src/be/interface/Window.cpp src/be/interface/Window.cpp
src/be/mail/E-mail.cpp src/be/mail/E-mail.cpp
src/be/storage/Entry.cpp src/be/storage/Entry.cpp
src/be/storage/File.cpp
src/be/storage/FilePanel.cpp src/be/storage/FilePanel.cpp
src/be/storage/Node.cpp
src/be/storage/Path.cpp src/be/storage/Path.cpp
src/be/storage/Resources.cpp
src/be/storage/Volume.cpp src/be/storage/Volume.cpp
src/be/storage/VolumeRoster.cpp src/be/storage/VolumeRoster.cpp
src/be/support/Archivable.cpp src/be/support/Archivable.cpp

View File

@@ -227,6 +227,11 @@ bool BMessage_WasDropped(TCPlusObject message)
return reinterpret_cast<BMessage*>(message)->WasDropped(); return reinterpret_cast<BMessage*>(message)->WasDropped();
} }
status_t BMessage_Unflatten(TCPlusObject message,BDataIO *stream)
{
return reinterpret_cast<BMessage*>(message)->Unflatten(stream);
}
/*********************************************************************** /***********************************************************************
* Method: BMessage::operator= * Method: BMessage::operator=
* Params: const BMessage &msg * Params: const BMessage &msg

View File

@@ -76,6 +76,16 @@ void BPoint_Set(TCPlusObject Point, float x, float y)
reinterpret_cast<BPoint*>(Point)->Set(x, y); reinterpret_cast<BPoint*>(Point)->Set(x, y);
} }
float BPoint_Get_X(TCPlusObject Point)
{
return reinterpret_cast<BPoint*>(Point)->x;
}
float BPoint_Get_Y(TCPlusObject Point)
{
return reinterpret_cast<BPoint*>(Point)->y;
}
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif

View File

@@ -75,10 +75,363 @@ void BRect_PrintToStream(TCPlusObject rect)
reinterpret_cast<BRect*>(rect)->PrintToStream(); reinterpret_cast<BRect*>(rect)->PrintToStream();
} }
float BRect_left(TCPlusObject rect)
{
return reinterpret_cast<BRect*>(rect)->left;
}
float BRect_top(TCPlusObject rect)
{
return reinterpret_cast<BRect*>(rect)->top;
}
float BRect_right(TCPlusObject rect)
{
return reinterpret_cast<BRect*>(rect)->right;
}
float BRect_bottom(TCPlusObject rect)
{
return reinterpret_cast<BRect*>(rect)->bottom;
}
/***********************************************************************
* Method: BRect::SetLeftTop
* Params: const BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_SetLeftTop(BRect *Rect, const BPoint p)
{
Rect->SetLeftTop(p);
}
/***********************************************************************
* Method: BRect::SetRightBottom
* Params: const BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_SetRightBottom(BRect *Rect, const BPoint p)
{
Rect->SetRightBottom(p);
}
/***********************************************************************
* Method: BRect::SetLeftBottom
* Params: const BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_SetLeftBottom(BRect *Rect, const BPoint p)
{
Rect->SetLeftBottom(p);
}
/***********************************************************************
* Method: BRect::SetRightTop
* Params: const BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_SetRightTop(BRect *Rect, const BPoint p)
{
Rect->SetRightTop(p);
}
/***********************************************************************
* Method: BRect::InsetBy
* Params: BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_InsetBy(BRect *Rect, BPoint p)
{
Rect->InsetBy(p);
}
/***********************************************************************
* Method: BRect::InsetBy
* Params: float dx, float dy
* Returns: void
* Effects:
***********************************************************************/
void
BRect_InsetBy_1
(BRect *Rect, float dx, float dy)
{
Rect->InsetBy(dx, dy);
}
/***********************************************************************
* Method: BRect::OffsetBy
* Params: BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_OffsetBy(BRect *Rect, BPoint p)
{
Rect->OffsetBy(p);
}
/***********************************************************************
* Method: BRect::OffsetBy
* Params: float dx, float dy
* Returns: void
* Effects:
***********************************************************************/
void
BRect_OffsetBy_1
(BRect *Rect, float dx, float dy)
{
Rect->OffsetBy(dx, dy);
}
/***********************************************************************
* Method: BRect::OffsetTo
* Params: BPoint
* Returns: void
* Effects:
***********************************************************************/
void
BRect_OffsetTo(BRect *Rect, BPoint p)
{
Rect->OffsetTo(p);
}
/***********************************************************************
* Method: BRect::OffsetTo
* Params: float x, float y
* Returns: void
* Effects:
***********************************************************************/
void
BRect_OffsetTo_1
(BRect *Rect, float x, float y)
{
Rect->OffsetTo(x, y);
}
/***********************************************************************
* Method: BRect::InsetBySelf
* Params: BPoint
* Returns: BRect &
* Effects:
***********************************************************************/
BRect &
BRect_InsetBySelf(BRect *Rect, BPoint p)
{
return Rect->InsetBySelf(p);
}
/***********************************************************************
* Method: BRect::InsetBySelf
* Params: float dx, float dy
* Returns: BRect &
* Effects:
***********************************************************************/
BRect &
BRect_InsetBySelf_1
(BRect *Rect, float dx, float dy)
{
return Rect->InsetBySelf(dx, dy);
}
/***********************************************************************
* Method: BRect::InsetByCopy
* Params: BPoint
* Returns: BRect
* Effects:
***********************************************************************/
BRect
BRect_InsetByCopy(BRect *Rect, BPoint p)
{
return Rect->InsetByCopy(p);
}
/***********************************************************************
* Method: BRect::InsetByCopy
* Params: float dx, float dy
* Returns: BRect
* Effects:
***********************************************************************/
BRect
BRect_InsetByCopy_1
(BRect *Rect, float dx, float dy)
{
return Rect->InsetByCopy(dx, dy);
}
/***********************************************************************
* Method: BRect::OffsetBySelf
* Params: BPoint
* Returns: BRect &
* Effects:
***********************************************************************/
BRect &
BRect_OffsetBySelf(BRect *Rect, BPoint p)
{
return Rect->OffsetBySelf(p);
}
/***********************************************************************
* Method: BRect::OffsetBySelf
* Params: float dx, float dy
* Returns: BRect &
* Effects:
***********************************************************************/
BRect &
BRect_OffsetBySelf_1
(BRect *Rect, float dx, float dy)
{
return Rect->OffsetBySelf(dx, dy);
}
/***********************************************************************
* Method: BRect::OffsetByCopy
* Params: BPoint
* Returns: BRect
* Effects:
***********************************************************************/
BRect
BRect_OffsetByCopy(BRect *Rect, BPoint p)
{
return Rect->OffsetByCopy(p);
}
/***********************************************************************
* Method: BRect::OffsetByCopy
* Params: float dx, float dy
* Returns: BRect
* Effects:
***********************************************************************/
BRect
BRect_OffsetByCopy_1
(BRect *Rect, float dx, float dy)
{
return Rect->OffsetByCopy(dx, dy);
}
/***********************************************************************
* Method: BRect::OffsetToSelf
* Params: BPoint
* Returns: BRect &
* Effects:
***********************************************************************/
BRect &
BRect_OffsetToSelf(BRect *Rect, BPoint p)
{
return Rect->OffsetToSelf(p);
}
/***********************************************************************
* Method: BRect::OffsetToSelf
* Params: float dx, float dy
* Returns: BRect &
* Effects:
***********************************************************************/
BRect &
BRect_OffsetToSelf_1
(BRect *Rect, float dx, float dy)
{
return Rect->OffsetToSelf(dx, dy);
}
/***********************************************************************
* Method: BRect::OffsetToCopy
* Params: BPoint
* Returns: BRect
* Effects:
***********************************************************************/
BRect
BRect_OffsetToCopy(BRect *Rect, BPoint p)
{
return Rect->OffsetToCopy(p);
}
/***********************************************************************
* Method: BRect::OffsetToCopy
* Params: float dx, float dy
* Returns: BRect
* Effects:
***********************************************************************/
BRect
BRect_OffsetToCopy_1
(BRect *Rect, float dx, float dy)
{
return Rect->OffsetToCopy(dx, dy);
}
/***********************************************************************
* Method: BRect::Intersects
* Params: BRect r
* Returns: bool
* Effects:
***********************************************************************/
bool
BRect_Intersects(BRect *Rect, BRect r)
{
return Rect->Intersects(r);
}
/***********************************************************************
* Method: BRect::Contains
* Params: BPoint
* Returns: bool
* Effects:
***********************************************************************/
bool
BRect_Contains(BRect *Rect, BPoint p)
{
return Rect->Contains(p);
}
/***********************************************************************
* Method: BRect::Contains
* Params: BRect
* Returns: bool
* Effects:
***********************************************************************/
bool
BRect_Contains_1
(BRect *Rect, BRect p)
{
return Rect->Contains(p);
}
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif
#endif _RECT_CPP_ /* _RECT_CPP_ */ #endif _RECT_CPP_ /* _RECT_CPP_ */

File diff suppressed because it is too large Load Diff

View File

@@ -45,20 +45,7 @@ type
// function InvokeNotify(msg : BMessage; kind : Cardinal) : Status_t; // function InvokeNotify(msg : BMessage; kind : Cardinal) : Status_t;
function SetTimeout(aTimeout : Bigtime_t) : Status_t; function SetTimeout(aTimeout : Bigtime_t) : Status_t;
function Timeout : Bigtime_t; function Timeout : Bigtime_t;
// function InvokeKind(notify : boolean) : Cardinal;
// procedure BeginInvokeNotify(kind : Cardinal);
// procedure EndInvokeNotify;
// procedure _ReservedInvoker1;
// procedure _ReservedInvoker2;
// procedure _ReservedInvoker3;
constructor Create(aInvoker : BInvoker);
// function operator=( : BInvoker) : BInvoker;
// procedure BMessage *fMessage;
// procedure BMessenger fMessenger;
// procedure BHandler *fReplyTo;
// procedure uint32 fTimeout;
// procedure uint32 fNotifyKind;
// procedure uint32 _reserved[2];
end; end;
function BInvoker_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BInvoker_Create'; function BInvoker_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BInvoker_Create';
@@ -227,10 +214,6 @@ end;
// BInvoker__ReservedInvoker3(CPlusObject); // BInvoker__ReservedInvoker3(CPlusObject);
//end; //end;
constructor BInvoker.Create(ainvoker : BInvoker);
begin
BInvoker_Create(Self, aInvoker);
end;
//function BInvoker.operator=( : BInvoker) : BInvoker; //function BInvoker.operator=( : BInvoker) : BInvoker;
//begin //begin

View File

@@ -21,7 +21,7 @@ unit message;
interface interface
uses uses
beobj, supportdefs, typeconstants; beobj, supportdefs, typeconstants,dataio;
const const
B_NO_SPECIFIER = 0; B_NO_SPECIFIER = 0;
@@ -75,6 +75,8 @@ type
function Previous : BMessage; function Previous : BMessage;
function WasDropped : boolean; function WasDropped : boolean;
property What : Cardinal read GetWhat write SetWhat; property What : Cardinal read GetWhat write SetWhat;
function Unflatten( stream : BDataIO ):status_t;
end; end;
function BMessage_Create(AObject : TObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMessage_Create_1'; function BMessage_Create(AObject : TObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMessage_Create_1';
@@ -109,6 +111,7 @@ function BMessage_IsSourceWaiting(Message : TCPlusObject) : boolean; cdecl; exte
function BMessage_IsReply(Message : TCPlusObject) : boolean; cdecl; external BePascalLibName; function BMessage_IsReply(Message : TCPlusObject) : boolean; cdecl; external BePascalLibName;
function BMessage_Previous(Message : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName; function BMessage_Previous(Message : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName;
function BMessage_WasDropped(Message : TCPlusObject) : boolean; cdecl; external BePascalLibName; function BMessage_WasDropped(Message : TCPlusObject) : boolean; cdecl; external BePascalLibName;
function BMessage_Unflatten(Message : TCPlusObject; stream : BDataIO ):status_t;cdecl; external BePascalLibName name 'BMessage_Unflatten';
implementation implementation
@@ -278,4 +281,9 @@ begin
result := BMessage_WasDropped(CPlusObject); result := BMessage_WasDropped(CPlusObject);
end; end;
function BMessage.Unflatten( stream : BDataIO ):status_t;
begin
result:=BMessage_Unflatten(CPlusObject,stream);
end;
end. end.

View File

@@ -41,21 +41,10 @@ type
function SendMessage(a_message : BMessage; reply_to : BMessenger; timeout : Bigtime_t) : Status_t; function SendMessage(a_message : BMessage; reply_to : BMessenger; timeout : Bigtime_t) : Status_t;
function SendMessage(command : Cardinal; reply : BMessage) : Status_t; function SendMessage(command : Cardinal; reply : BMessage) : Status_t;
function SendMessage(a_message : BMessage; reply : BMessage; send_timeout : Bigtime_t; reply_timeout : Bigtime_t) : Status_t; function SendMessage(a_message : BMessage; reply : BMessage; send_timeout : Bigtime_t; reply_timeout : Bigtime_t) : Status_t;
// function operator=(from : BMessenger) : BMessenger;
// function operator==(other : BMessenger) : boolean;
function IsValid : boolean; function IsValid : boolean;
function Team : Team_id; function Team : Team_id;
// constructor Create(aTeam : Team_id; port : TPort_id; token : integer; preferred : boolean);
// procedure InitData(mime_sig : PChar; aTeam : Team_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; end;
function BMessenger_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create'; function BMessenger_Create(AObject : TBeObject) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create';

View File

@@ -23,7 +23,7 @@ unit Bitmap;
interface interface
uses uses
BeObj, Archivable, GraphicDefs, Message, OS, Rect, SupportDefs, View; BeObj, Archivable, GraphicDefs, Message, OS, Rect, SupportDefs,accelerant;
const const
B_BITMAP_CLEAR_TO_WHITE = $00000001; B_BITMAP_CLEAR_TO_WHITE = $00000001;
@@ -161,7 +161,7 @@ function BBitmap_Bits(AObject : TCPlusObject) : Pointer; cdecl;
external BePascalLibName name 'BBitmap_Bits'; external BePascalLibName name 'BBitmap_Bits';
function BBitmap_BitsLength(AObject : TCPlusObject) : integer; cdecl; function BBitmap_BitsLength(AObject : TCPlusObject) : integer; cdecl;
external BePascalLibName name 'BBitmap_BitsLength'; external BePascalLibName name 'BBitmap_BitsLength_1';
function BBitmap_BytesPerRow(AObject : TCPlusObject) : integer; cdecl; function BBitmap_BytesPerRow(AObject : TCPlusObject) : integer; cdecl;
external BePascalLibName name 'BBitmap_BytesPerRow'; external BePascalLibName name 'BBitmap_BytesPerRow';
@@ -255,6 +255,7 @@ implementation
constructor BBitmap.Create(frame{bounds} : BRect; flags : Cardinal; constructor BBitmap.Create(frame{bounds} : BRect; flags : Cardinal;
depth : Color_Space; bytes_per_row : Integer; screenID : Screen_ID); depth : Color_Space; bytes_per_row : Integer; screenID : Screen_ID);
begin begin
CreatePas;
CPlusObject := BBitmap_Create(Self, frame, flags, depth, bytes_per_row, CPlusObject := BBitmap_Create(Self, frame, flags, depth, bytes_per_row,
screenID); screenID);
end; end;
@@ -264,6 +265,7 @@ end;
constructor BBitmap.Create(frame{bounds} : BRect; depth : Color_Space; constructor BBitmap.Create(frame{bounds} : BRect; depth : Color_Space;
accepts_views : Boolean; need_contiguous : Boolean); accepts_views : Boolean; need_contiguous : Boolean);
begin begin
CreatePas;
CPlusObject := BBitmap_Create_1(Self, frame.CPlusObject, depth, CPlusObject := BBitmap_Create_1(Self, frame.CPlusObject, depth,
accepts_views, need_contiguous); accepts_views, need_contiguous);
end; end;
@@ -273,11 +275,13 @@ end;
constructor BBitmap.Create(source : BBitmap; accepts_views : Boolean; constructor BBitmap.Create(source : BBitmap; accepts_views : Boolean;
need_contiguous : Boolean); need_contiguous : Boolean);
begin begin
CPlusObject := BBitmap_Create_2(Self, source, accepts_views, need_contiguous); CreatePas;
CPlusObject := BBitmap_Create_2(Self, source, accepts_views, need_contiguous);
end; end;
constructor BBitmap.Create(data : BMessage); constructor BBitmap.Create(data : BMessage);
begin begin
CreatePas;
CPlusObject := BBitmap_Create_3(Self, data.CPlusObject); CPlusObject := BBitmap_Create_3(Self, data.CPlusObject);
end; end;
@@ -554,4 +558,4 @@ begin
end; end;
} }
end. end.

View File

@@ -30,7 +30,7 @@ type
BBox = class(BView) BBox = class(BView)
private private
public public
constructor Create(Frame : BRect; Name : PChar; ResizingMode, Flags : Cardinal; BorderStyle : border_style); constructor Create(Frame : BRect; Name : PChar; sResizingMode, sFlags : Cardinal; BorderStyle : border_style);
constructor Create(data : BMessage); constructor Create(data : BMessage);
destructor Destroy; override; destructor Destroy; override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -106,10 +106,10 @@ function BBox_Perform(AObject : TCPlusObject; d : Perform_code; arg : Pointer) :
implementation implementation
constructor BBox.Create(Frame : BRect; Name : PChar; ResizingMode, Flags : Cardinal; BorderStyle : border_style); constructor BBox.Create(Frame : BRect; Name : PChar; sResizingMode, sFlags : Cardinal; BorderStyle : border_style);
begin begin
CreatePas; CreatePas;
CPlusObject := BBox_Create(Self, Frame.CPlusObject, Name, ResizingMode, Flags, BorderStyle); CPlusObject := BBox_Create(Self, Frame.CPlusObject, Name, sResizingMode, sFlags, BorderStyle);
end; end;
constructor BBox.Create(data : BMessage); constructor BBox.Create(data : BMessage);

View File

@@ -28,7 +28,7 @@ type
private private
public public
destructor Destroy; override; destructor Destroy; override;
constructor Create(frame : BRect; name, aLabel : PChar; message : BMessage; resizingMode, flags : Cardinal); virtual; constructor Create(aframe : BRect; name, aLabel : PChar; message : BMessage; sresizingMode, sflags : Cardinal); virtual;
constructor Create(data : BMessage); override; constructor Create(data : BMessage); override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
function Archive(data : BMessage; deep : boolean) : Status_t; function Archive(data : BMessage; deep : boolean) : Status_t;
@@ -37,7 +37,7 @@ type
procedure AttachedToWindow; override; procedure AttachedToWindow; override;
procedure KeyDown(bytes : PChar; numBytes : integer); override; procedure KeyDown(bytes : PChar; numBytes : integer); override;
// Hook functions // Hook functions
procedure MakeDefault(state : boolean); virtual; procedure MakeDefault(state : boolean);
procedure SetLabel(text : PChar); procedure SetLabel(text : PChar);
function IsDefault : boolean; function IsDefault : boolean;
procedure MessageReceived(msg : BMessage); override; procedure MessageReceived(msg : BMessage); override;
@@ -51,7 +51,7 @@ type
function Invoke(msg : BMessage) : Status_t; function Invoke(msg : BMessage) : Status_t;
procedure FrameMoved(new_position : BPoint); override; procedure FrameMoved(new_position : BPoint); override;
procedure FrameResized(new_width : double; new_height : double); override; procedure FrameResized(new_width : double; new_height : double); override;
procedure MakeFocus(state : boolean); override; procedure MakeFocus(state : boolean);
procedure AllAttached; override; procedure AllAttached; override;
procedure AllDetached; override; procedure AllDetached; override;
function ResolveSpecifier(msg : BMessage; index : integer; specifier : BMessage; form : integer; properti : PChar) : BHandler; function ResolveSpecifier(msg : BMessage; index : integer; specifier : BMessage; form : integer; properti : PChar) : BHandler;
@@ -110,10 +110,10 @@ begin
inherited; inherited;
end; end;
constructor BButton.Create(frame : BRect; name, aLabel : PChar; message : BMessage; resizingMode, flags : Cardinal); constructor BButton.Create(aframe : BRect; name, aLabel : PChar; message : BMessage; sresizingMode, sflags : Cardinal);
begin begin
CreatePas; CreatePas;
CPlusObject := BButton_Create(Self, frame.CPlusObject, name, aLabel, message.CPlusObject, resizingMode, flags); CPlusObject := BButton_Create(Self, aframe.CPlusObject, name, aLabel, message.CPlusObject, sresizingMode, sflags);
end; end;
constructor BButton.Create(data : BMessage); constructor BButton.Create(data : BMessage);

View File

@@ -27,7 +27,7 @@ type BCheckBox = class(BControl)
private private
public public
destructor Destroy;override; destructor Destroy;override;
constructor Create(frame : BRect; name, aLabel : PChar; message : BMessage; resizingMode, flags : Cardinal); virtual; constructor Create(frame : BRect; name, aLabel : PChar; message : BMessage; sresizingMode, sflags : Cardinal); virtual;
constructor Create(data : BMessage) ;override; constructor Create(data : BMessage) ;override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
function Archive(data : BMessage; deep : boolean) : Status_t; function Archive(data : BMessage; deep : boolean) : Status_t;
@@ -48,7 +48,7 @@ type BCheckBox = class(BControl)
procedure FrameResized(new_width : double; new_height : double);override; procedure FrameResized(new_width : double; new_height : double);override;
function ResolveSpecifier(msg : BMessage; index : integer; specifier : BMessage; form : integer; properti : PChar) : BHandler; function ResolveSpecifier(msg : BMessage; index : integer; specifier : BMessage; form : integer; properti : PChar) : BHandler;
function GetSupportedSuites(data : BMessage) : Status_t; function GetSupportedSuites(data : BMessage) : Status_t;
procedure MakeFocus(state : boolean);override; procedure MakeFocus(state : boolean);
procedure AllAttached;override; procedure AllAttached;override;
procedure AllDetached;override; procedure AllDetached;override;
function Perform(d : Perform_code; arg : Pointer) : Status_t; function Perform(d : Perform_code; arg : Pointer) : Status_t;
@@ -89,10 +89,10 @@ begin
inherited; inherited;
end; end;
constructor BCheckBox.Create(frame : BRect; name, aLabel : PChar; message : BMessage; resizingMode, flags : Cardinal); constructor BCheckBox.Create(frame : BRect; name, aLabel : PChar; message : BMessage; sresizingMode, sflags : Cardinal);
begin begin
CreatePas; CreatePas;
CPlusObject := BCheckBox_Create(Self, frame.CPlusObject, name, aLabel, message.CPlusObject, resizingMode, flags); CPlusObject := BCheckBox_Create(Self, frame.CPlusObject, name, aLabel, message.CPlusObject, sresizingMode, sflags);
end; end;
constructor BCheckBox.Create(data : BMessage) ; constructor BCheckBox.Create(data : BMessage) ;

View File

@@ -30,7 +30,7 @@ type
FInvoker : BInvoker; FInvoker : BInvoker;
function GeBInvoker : BInvoker; function GeBInvoker : BInvoker;
public public
constructor Create(frame : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; resizingMode, flags : Cardinal); virtual; constructor Create(aframe : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; sresizingMode, sflags : Cardinal); virtual;
destructor Destroy; override; destructor Destroy; override;
constructor Create(data : BMessage); virtual; constructor Create(data : BMessage); virtual;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -38,7 +38,7 @@ type
procedure WindowActivated(state : boolean); override; procedure WindowActivated(state : boolean); override;
procedure AttachedToWindow; override; procedure AttachedToWindow; override;
procedure MessageReceived(msg : BMessage); override; procedure MessageReceived(msg : BMessage); override;
procedure MakeFocus(state : boolean); virtual; procedure MakeFocus(state : boolean);
procedure KeyDown(bytes : PChar; numBytes : integer); override; procedure KeyDown(bytes : PChar; numBytes : integer); override;
procedure MouseDown(pt : BPoint); override; procedure MouseDown(pt : BPoint); override;
procedure MouseUp(pt : BPoint); override; procedure MouseUp(pt : BPoint); override;
@@ -94,9 +94,9 @@ procedure BControl_InitData(AObject : TCPlusObject; data : TCplusObject); cdecl;
implementation implementation
constructor BControl.Create(frame : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; resizingMode, flags : Cardinal); constructor BControl.Create(aframe : TCPlusObject; name, aLabel : PChar; message : TCPlusObject; sresizingMode, sflags : Cardinal);
begin begin
CPlusObject := BControl_Create(Self, frame, name, aLabel, message, resizingMode, flags); CPlusObject := BControl_Create(Self, aframe, name, aLabel, message, sresizingMode, sflags);
end; end;
destructor BControl.Destroy; destructor BControl.Destroy;

View File

@@ -20,6 +20,22 @@
} }
unit GraphicDefs; unit GraphicDefs;
{
(Manual) Translation of Be's GraphicDefs.h
Ok, if TBitmap doesn't work, the error its most likely to be in this unit.
What this unit needs? that someone take a look at the points marked with:
// Check/Confirm This one, please.
I'm not too sure about how to translate the enums, and also not sure about
the values of the index on a set. Excuse (and fix!) my ignorace :)
Maybe I also screwed up a little the integer types too, be warned :^P
-- BiPolar.
}
interface interface
uses uses
@@ -27,10 +43,296 @@ uses
{$PACKRECORDS C} {$PACKRECORDS C}
type type
// This one must be find a better place. // This one must be find a better place.
PCardinal = ^Cardinal; PCardinal = ^Cardinal;
(*----------------------------------------------------------------*)
type
{ TPattern = pattern }
Pattern = record
Data : array [0..7] of Byte; // uint8
end;
// How we do 'export' these global const?
// Check/Confirm This one, please.
var {const}
B_SOLID_HIGH : Pattern; cvar; external;
B_MIXED_COLORS : Pattern; cvar; external;
B_SOLID_LOW : Pattern; cvar; external;
(*----------------------------------------------------------------*)
type
{ I do prefer TRGBColor but... oh well... }
RGB_Color = record
Red,
Green,
Blue,
Alpha : Byte;
end;
(*----------------------------------------------------------------*)
var
{const}
//extern const rgb_color B_TRANSPARENT_COLOR;
B_TRANSPARENT_COLOR : RGB_Color; cvar; external;
//extern const uint8 B_TRANSPARENT_MAGIC_CMAP8;
B_TRANSPARENT_MAGIC_CMAP8 : Byte; cvar; external;
//extern const uint16 B_TRANSPARENT_MAGIC_RGBA15;
B_TRANSPARENT_MAGIC_RGBA15 : Word; cvar; external;
//extern const uint16 B_TRANSPARENT_MAGIC_RGBA15_BIG;
B_TRANSPARENT_MAGIC_RGBA15_BIG : Word; cvar; external;
//extern const uint32 B_TRANSPARENT_MAGIC_RGBA32;
B_TRANSPARENT_MAGIC_RGBA32 : Cardinal; cvar; external;
//extern const uint32 B_TRANSPARENT_MAGIC_RGBA32_BIG;
B_TRANSPARENT_MAGIC_RGBA32_BIG : Cardinal; cvar; external;
//extern const uint8 B_TRANSPARENT_8_BIT;
B_TRANSPARENT_8_BIT : Byte; cvar; external;
//extern const rgb_color B_TRANSPARENT_32_BIT;
B_TRANSPARENT_32_BIT : RGB_Color; cvar; external;
(*----------------------------------------------------------------*)
type
Color_Map = record
ID : Integer; // int32
ColorList: array [0..255] of RGB_Color;
InversionMap : array [0..255] of Byte; // uint8
IndexMap : array [0..32767] of Byte; // uint8
end;
{ TOverlayRectLimits = overlay_rect_limits }
OverlayRectLimits = record
HorizontalAlignment,
VerticalAlignment,
WidthAlignment,
HeightAlignment,
MinWidth,
MaxWidth,
MinHeight,
MaxHeight : Word; // uint16
Reserved : array [0..7] of Cardinal; // uint32
end;
{ TOverlayRestrictions = overlay_restrictions }
OverlayRestrictions = record
Source,
Destination : OverlayRectLimits;
MinWidthScale,
MaxWidthScale,
MinHeightScale,
MaxHeightScale : Double; // float
Reserved : array [0..7] of Cardinal; // uint32
end;
(*----------------------------------------------------------------*)
//struct screen_id { int32 id; };
Screen_ID = record
ID : Integer
end;
//extern const struct screen_id B_MAIN_SCREEN_ID;
var
{const}
B_MAIN_SCREEN_ID : Screen_ID; cvar; external;
(*----------------------------------------------------------------*)
type
Color_Space = Cardinal; // or is just word?
const
B_NO_COLOR_SPACE = $0000; // byte in memory order, high bit first
// linear color space (little endian is the default)
B_RGB32 = $0008; // B[7:0] G[7:0] R[7:0] -[7:0]
B_RGBA32 = $2008; // B[7:0] G[7:0] R[7:0] A[7:0]
B_RGB24 = $0003; // B[7:0] G[7:0] R[7:0]
B_RGB16 = $0005; // G[2:0],B[4:0] R[4:0],G[5:3]
B_RGB15 = $0010; // G[2:0],B[4:0] -[0],R[4:0],G[4:3]
B_RGBA15 = $2010; // G[2:0],B[4:0] A[0],R[4:0],G[4:3]
B_CMAP8 = $0004; // D[7:0]
B_GRAY8 = $0002; // Y[7:0]
B_GRAY1 = $0001; // Y0[0],Y1[0],Y2[0],Y3[0],Y4[0],Y5[0],Y6[0],Y7[0]
// big endian version, when the encoding is not endianess independant
B_RGB32_BIG = $1008; // -[7:0] R[7:0] G[7:0] B[7:0]
B_RGBA32_BIG = $3008; // A[7:0] R[7:0] G[7:0] B[7:0]
B_RGB24_BIG = $1003; // R[7:0] G[7:0] B[7:0]
B_RGB16_BIG = $1005; // R[4:0],G[5:3] G[2:0],B[4:0]
B_RGB15_BIG = $1010; // -[0],R[4:0],G[4:3] G[2:0],B[4:0]
B_RGBA15_BIG = $3010; // A[0],R[4:0],G[4:3] G[2:0],B[4:0]
// little-endian declarations, for completness
B_RGB32_LITTLE = B_RGB32;
B_RGBA32_LITTLE = B_RGBA32;
B_RGB24_LITTLE = B_RGB24;
B_RGB16_LITTLE = B_RGB16;
B_RGB15_LITTLE = B_RGB15;
B_RGBA15_LITTLE = B_RGBA15;
// non linear color space -- note that these are here for exchange purposes;
// a BBitmap or BView may not necessarily support all these color spaces.
// Loss/Saturation points are Y 16-235 (absoulte); Cb/Cr 16-240 (center 128)
B_YCbCr422 = $4000; // Y0[7:0] Cb0[7:0] Y1[7:0] Cr0[7:0] Y2[7:0]...
// Cb2[7:0] Y3[7:0] Cr2[7:0]
B_YCbCr411 = $4001; // Cb0[7:0] Y0[7:0] Cr0[7:0] Y1[7:0] Cb4[7:0]...
// Y2[7:0] Cr4[7:0] Y3[7:0] Y4[7:0] Y5[7:0]...
// Y6[7:0] Y7[7:0]
B_YCbCr444 = $4003; // Y0[7:0] Cb0[7:0] Cr0[7:0]
B_YCbCr420 = $4004; // Non-interlaced only, Cb0 Y0 Y1 Cb2 Y2 Y3 on even scan lines ...
// Cr0 Y0 Y1 Cr2 Y2 Y3 on odd scan lines
// Extrema points are Y 0 - 207 (absolute) U -91 - 91 (offset 128) V -127 - 127 (offset 128)
// note that YUV byte order is different from YCbCr
// USE YCbCr, not YUV, when that's what you mean!
B_YUV422 = $4020; // U0[7:0] Y0[7:0] V0[7:0] Y1[7:0] ...
// U2[7:0] Y2[7:0] V2[7:0] Y3[7:0]
B_YUV411 = $4021; // U0[7:0] Y0[7:0] Y1[7:0] V0[7:0] Y2[7:0] Y3[7:0]
// U4[7:0] Y4[7:0] Y5[7:0] V4[7:0] Y6[7:0] Y7[7:0]
B_YUV444 = $4023; // U0[7:0] Y0[7:0] V0[7:0] U1[7:0] Y1[7:0] V1[7:0]
B_YUV420 = $4024; // Non-interlaced only, U0 Y0 Y1 U2 Y2 Y3 on even scan lines ...
// V0 Y0 Y1 V2 Y2 Y3 on odd scan lines
B_YUV9 = $402C; // planar? 410?
B_YUV12 = $402D; // planar? 420?
B_UVL24 = $4030; // U0[7:0] V0[7:0] L0[7:0] ...
B_UVL32 = $4031; // U0[7:0] V0[7:0] L0[7:0] X0[7:0]...
B_UVLA32 = $6031; // U0[7:0] V0[7:0] L0[7:0] A0[7:0]...
B_LAB24 = $4032; // L0[7:0] a0[7:0] b0[7:0] ... (a is not alpha!)
B_LAB32 = $4033; // L0[7:0] a0[7:0] b0[7:0] X0[7:0] ... (b is not alpha!)
B_LABA32 = $6033; // L0[7:0] a0[7:0] b0[7:0] A0[7:0] ... (A is alpha)
// red is at hue = 0
B_HSI24 = $4040; // H[7:0] S[7:0] I[7:0]
B_HSI32 = $4041; // H[7:0] S[7:0] I[7:0] X[7:0]
B_HSIA32 = $6041; // H[7:0] S[7:0] I[7:0] A[7:0]
B_HSV24 = $4042; // H[7:0] S[7:0] V[7:0]
B_HSV32 = $4043; // H[7:0] S[7:0] V[7:0] X[7:0]
B_HSVA32 = $6043; // H[7:0] S[7:0] V[7:0] A[7:0]
B_HLS24 = $4044; // H[7:0] L[7:0] S[7:0]
B_HLS32 = $4045; // H[7:0] L[7:0] S[7:0] X[7:0]
B_HLSA32 = $6045; // H[7:0] L[7:0] S[7:0] A[7:0]
B_CMY24 = $C001; // C[7:0] M[7:0] Y[7:0] No gray removal done
B_CMY32 = $C002; // C[7:0] M[7:0] Y[7:0] X[7:0] No gray removal done
B_CMYA32 = $E002; // C[7:0] M[7:0] Y[7:0] A[7:0] No gray removal done
B_CMYK32 = $C003; // C[7:0] M[7:0] Y[7:0] K[7:0]
// compatibility declarations
B_MONOCHROME_1_BIT = B_GRAY1;
B_GRAYSCALE_8_BIT = B_GRAY8;
B_COLOR_8_BIT = B_CMAP8;
B_RGB_32_BIT = B_RGB32;
B_RGB_16_BIT = B_RGB15;
B_BIG_RGB_32_BIT = B_RGB32_BIG;
B_BIG_RGB_16_BIT = B_RGB15_BIG;
// Find out whether a specific color space is supported by BBitmaps.
// Support_flags will be set to what kinds of support are available.
// If support_flags is set to 0, false will be returned.
const
B_VIEWS_SUPPORT_DRAW_BITMAP = $1;
B_BITMAPS_SUPPORT_ATTACHED_VIEWS = $2;
// Check/Confirm This one, please.
function BitmapsSupportSpace(space : Color_Space; support_flags : PCardinal)
: boolean; cdecl; external 'be' name 'bitmaps_support_space';
function GetPixelSizeFor(space : Color_Space; pixel_chunk : Status_t;
row_alignment : Status_t; pixels_per_chunk : Status_t)
: Status_t; cdecl; external 'be' name 'get_pixel_size_for';
{
_IMPEXP_BE bool bitmaps_support_space(color_space space, uint32 * support_flags);
// "pixel_chunk" is the native increment from one pixel starting on an integral
// byte to the next.
// "row_alignment" is the native alignment for pixel scanline starts.
// "pixels_per_chunk" is the number of pixels in a pixel_chunk. For instance,
// B_GRAY1 sets pixel_chunk to 1, row_alignment to 4 and pixels_per_chunk to 8,
// whereas B_RGB24 sets pixel_chunk to 3, row_alignment to 4 and
// pixels_per_chunk to 1.
_IMPEXP_BE status_t get_pixel_size_for(color_space space, size_t * pixel_chunk,
size_t * row_alignment, size_t * pixels_per_chunk);
}
(*----------------------------------------------------------------*)
type
BufferOrientation = (B_BUFFER_TOP_TO_BOTTOM, B_BUFFER_BOTTOM_TO_TOP);
// Check/Confirm This one, please.
BufferLayout = (B_BUFFER_NONINTERLEAVED); // B_BUFFER_NONINTERLEAVED = 1
(*----------------------------------------------------------------*)
Drawing_Mode = (B_OP_COPY, B_OP_OVER, B_OP_ERASE, B_OP_INVERT, B_OP_ADD,
B_OP_SUBTRACT, B_OP_BLEND, B_OP_MIN, B_OP_MAX,
B_OP_SELECT, B_OP_ALPHA);
// Check/Confirm This one, please.
// this was:
// enum source_alpha {
// B_PIXEL_ALPHA=0,
// B_CONSTANT_ALPHA
// };
//
// enum alpha_function {
// B_ALPHA_OVERLAY=0,
// B_ALPHA_COMPOSITE
// };
Source_Alpha = (B_PIXEL_ALPHA, B_CONSTANT_ALPHA);
Alpha_Function = (B_ALPHA_OVERLAY, B_ALPHA_COMPOSITE);
const
B_8_BIT_640x480 = $00000001;
B_8_BIT_800x600 = $00000002;
B_8_BIT_1024x768 = $00000004;
B_8_BIT_1280x1024 = $00000008;
B_8_BIT_1600x1200 = $00000010;
B_16_BIT_640x480 = $00000020;
B_16_BIT_800x600 = $00000040;
B_16_BIT_1024x768 = $00000080;
B_16_BIT_1280x1024 = $00000100;
B_16_BIT_1600x1200 = $00000200;
B_32_BIT_640x480 = $00000400;
B_32_BIT_800x600 = $00000800;
B_32_BIT_1024x768 = $00001000;
B_32_BIT_1280x1024 = $00002000;
B_32_BIT_1600x1200 = $00004000;
B_8_BIT_1152x900 = $00008000;
B_16_BIT_1152x900 = $00010000;
B_32_BIT_1152x900 = $00020000;
B_15_BIT_640x480 = $00040000;
B_15_BIT_800x600 = $00080000;
B_15_BIT_1024x768 = $00100000;
B_15_BIT_1280x1024 = $00200000;
B_15_BIT_1600x1200 = $00400000;
B_15_BIT_1152x900 = $00800000;
// do not use B_FAKE_DEVICE--it will go away!
B_FAKE_DEVICE = $40000000;
B_8_BIT_640x400 = $80000000; // (int)
{
// This one must be find a better place.
PCardinal = ^Cardinal;
(*---------------------------------------------------------------------------*) (*---------------------------------------------------------------------------*)
type type
@@ -260,7 +562,8 @@ const
B_8_BIT_640x400 = $80000000; B_8_BIT_640x400 = $80000000;
(*---------------------------------------------------------------------------*) (*---------------------------------------------------------------------------*)
}
implementation implementation
end. end.

View File

@@ -296,6 +296,19 @@ type
B_MENU_ITEM_TEXT_COLOR, // 7 B_MENU_ITEM_TEXT_COLOR, // 7
B_MENU_SELECTED_ITEM_TEXT_COLOR); // 8 B_MENU_SELECTED_ITEM_TEXT_COLOR); // 8
join_mode =(
B_ROUND_JOIN,
B_MITER_JOIN,
B_BEVEL_JOIN,
B_BUTT_JOIN,
B_SQUARE_JOIN);
cap_mode = join_mode;
var
B_ROUND_CAP,
B_BUTT_CAP,
B_SQUARE_CAP : join_mode;
function ui_color(which : color_which) : rgb_color; cdecl; external 'be' name 'ui_color__F11color_which'; function ui_color(which : color_which) : rgb_color; cdecl; external 'be' name 'ui_color__F11color_which';
function tint_color(color : rgb_color; which : color_which) : rgb_color; cdecl; external 'be' name 'tint_color__FG9rgb_colorf'; function tint_color(color : rgb_color; which : color_which) : rgb_color; cdecl; external 'be' name 'tint_color__FG9rgb_colorf';
@@ -319,4 +332,9 @@ const
implementation implementation
end. Initialization
B_ROUND_CAP:=B_ROUND_JOIN;
B_BUTT_CAP:=B_BUTT_JOIN;
B_SQUARE_CAP:=B_SQUARE_JOIN;
end.

View File

@@ -35,7 +35,7 @@ type
BListView = class(BView) BListView = class(BView)
private private
public public
constructor Create(frame : BRect; name : pchar; atype : list_view_type; resizeMask: longint; flags : longint); virtual; constructor Create(aframe : BRect; name : pchar; atype : list_view_type; resizeMask: longint; sflags : longint); virtual;
constructor Create(data : BMessage); constructor Create(data : BMessage);
destructor Destroy;override; destructor Destroy;override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -188,10 +188,10 @@ var
ListItem_SelectionChanged_hook: Pointer; cvar; external; ListItem_SelectionChanged_hook: Pointer; cvar; external;
ListString_InitiateDrag_hook: Pointer; cvar; external; ListString_InitiateDrag_hook: Pointer; cvar; external;
constructor BListView.Create(frame : BRect; name : pchar; atype : list_view_type; resizeMask: longint; flags : longint); constructor BListView.Create(aframe : BRect; name : pchar; atype : list_view_type; resizeMask: longint; sflags : longint);
begin begin
CreatePas; CreatePas;
CPlusObject := BListView_Create(Self,frame.CPlusObject,name,atype,resizeMask,flags); CPlusObject := BListView_Create(Self,aframe.CPlusObject,name,atype,resizeMask,sflags);
end; end;
constructor BListView.Create(data : BMessage); constructor BListView.Create(data : BMessage);

View File

@@ -58,9 +58,9 @@ type
function AddItem(item : bMenuItem) : boolean; function AddItem(item : bMenuItem) : boolean;
function AddItem(item : bMenuItem; index : integer) : boolean; function AddItem(item : bMenuItem; index : integer) : boolean;
function AddItem(item : bMenuItem; frame : BRect) : boolean; function AddItem(item : bMenuItem; aframe : BRect) : boolean;
function AddItem(menu : BMenu; index : integer) : boolean; function AddItem(menu : BMenu; index : integer) : boolean;
function AddItem(menu : BMenu; frame : BRect) : boolean; function AddItem(menu : BMenu; aframe : BRect) : boolean;
function AddItem(menu : BMenu) : boolean; function AddItem(menu : BMenu) : boolean;
function AddList(list : BList; index : integer) : boolean; function AddList(list : BList; index : integer) : boolean;
@@ -801,13 +801,13 @@ begin
Result := BMenu_AddItem_2(CPlusObject, item.CPlusObject, index); Result := BMenu_AddItem_2(CPlusObject, item.CPlusObject, index);
end; end;
function BMenu.AddItem(item : bMenuItem; frame : BRect) : boolean; function BMenu.AddItem(item : bMenuItem; aframe : BRect) : boolean;
begin begin
SendText('ici'); SendText('ici');
SendText('function BMenu.AddItem(item : bMenuItem; frame : BRect) : boolean;'); SendText('function BMenu.AddItem(item : bMenuItem; frame : BRect) : boolean;');
frame.PrintToStream; frame.PrintToStream;
SendText('toto'); SendText('toto');
Result := BMenu_AddItem_3(CPlusObject, item.CPlusObject, frame.CPlusObject); Result := BMenu_AddItem_3(CPlusObject, item.CPlusObject, aframe.CPlusObject);
end; end;
function BMenu.AddItem(menu : BMenu) : boolean; function BMenu.AddItem(menu : BMenu) : boolean;
@@ -823,10 +823,10 @@ begin
Result := BMenu_AddItem_5(CPlusObject, menu.CPlusObject, index); Result := BMenu_AddItem_5(CPlusObject, menu.CPlusObject, index);
end; end;
function BMenu.AddItem(menu : BMenu; frame : BRect) : boolean; function BMenu.AddItem(menu : BMenu; aframe : BRect) : boolean;
begin begin
SendText('function BMenu.AddItem(menu : BMenu; frame : BRect) : boolean;'); SendText('function BMenu.AddItem(menu : BMenu; frame : BRect) : boolean;');
Result := BMenu_AddItem_6(CPlusObject, menu.CPlusObject, frame.CPlusObject); Result := BMenu_AddItem_6(CPlusObject, menu.CPlusObject, aframe.CPlusObject);
end; end;

View File

@@ -30,7 +30,7 @@ type
BMenuBar = class(BMenu) BMenuBar = class(BMenu)
private private
public public
constructor Create(frame : BRect; viewName : PChar; resizingMode : Cardinal; layout : Menu_Layout; resizeToFit : boolean); constructor Create(aframe : BRect; viewName : PChar; sresizingMode : Cardinal; layout : Menu_Layout; resizeToFit : boolean);
constructor Create; override; constructor Create; override;
destructor Destroy; override; destructor Destroy; override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -85,9 +85,9 @@ procedure BMenuBar_AllDetached(AObject : TCPlusObject); cdecl; external BePascal
implementation implementation
constructor BMenuBar.Create(frame : BRect; viewName : PChar; resizingMode : Cardinal; layout : Menu_Layout; resizeToFit : boolean); constructor BMenuBar.Create(aframe : BRect; viewName : PChar; sresizingMode : Cardinal; layout : Menu_Layout; resizeToFit : boolean);
begin begin
CPlusObject := BMenuBar_Create(Self, frame.CPlusObject, viewName, resizingMode, 0, resizeToFit); CPlusObject := BMenuBar_Create(Self, aframe.CPlusObject, viewName, sresizingMode, 0, resizeToFit);
end; end;
constructor BMenuBar.Create; constructor BMenuBar.Create;

View File

@@ -28,7 +28,7 @@ type
BOutlineListView = class(BListView) BOutlineListView = class(BListView)
private private
public public
constructor Create(frame : BRect; name : pchar; atype : List_view_type; resizeMask: longint; flags : longint); override; constructor Create(aframe : BRect; name : pchar; atype : List_view_type; resizeMask: longint; aflags : longint); override;
constructor Create(data : BMessage); constructor Create(data : BMessage);
destructor Destroy;override; destructor Destroy;override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -124,10 +124,10 @@ function BOutlineListView_ItemUnderAt(AObject : TCPlusObject; underItem : TCPlus
implementation implementation
constructor BOutlineListView.Create(frame : BRect; name : pchar; atype : list_view_type; resizeMask: longint; flags : longint); constructor BOutlineListView.Create(aframe : BRect; name : pchar; atype : list_view_type; resizeMask: longint; aflags : longint);
begin begin
CreatePas; CreatePas;
CPlusObject := BOutlineListView_Create(Self,frame.CPlusObject,name,atype,resizeMask,flags); CPlusObject := BOutlineListView_Create(Self,aframe.CPlusObject,name,atype,resizeMask,aflags);
end; end;
constructor BOutlineListView.Create(data : BMessage); constructor BOutlineListView.Create(data : BMessage);

View File

@@ -1,105 +1,102 @@
{ BePascal - A pascal wrapper around the BeOS API { BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2003 Olivier Coursiere Copyright (C) 2002 Olivier Coursiere
Eric Jourde Eric Jourde
Oscar Lesta
This library is free software; you can redistribute it and/or
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public
modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either
License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free
License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA }
}
unit polygon; unit polygon;
interface interface
uses uses
BeObj, Archivable, GraphicDefs, Message, OS, Rect, SupportDefs,dataio; beobj,rect;
type type
BPolygon = class(TBeObject)
BPolygon = class(TBeObject)
private private
public public
constructor Create;override; constructor Create;override;
// constructor Create;
constructor Create(poly : BPolygon); constructor Create(poly : BPolygon);
// constructor Create(data : BMessage); destructor Destroy;override;
function Frame : BRect;
destructor Destroy; override; // procedure AddPoints(ptArray : ; numPoints : integer);
function CountPoints : integer;
procedure MapTo(srcRect : BRect; dstRect : BRect);
procedure PrintToStream;
end; end;
function BPicture_Create(AObject : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BPicture_Create'; function BPolygon_Create(AObject : TBeObject):TCPlusObject; cdecl; external BePascalLibName name 'BPolygon_Create';
function BPicture_Create(AObject : TCPlusObject;data : BMessage) : TCPlusObject; cdecl; external BePascalLibName name 'BPicture_Create_2'; //function BPolygon_Create(AObject : TBeObject); cdecl; external BePascalLibName name 'BPolygon_Create_1';
function BPolygon_Create(AObject : TBeObject; poly : TCPlusObject):TCPlusObject; cdecl; external BePascalLibName name 'BPolygon_Create_2';
procedure BPolygon_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPolygon_Free';
procedure BPicture_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPicture_Free'; function BPolygon_Frame(AObject : TCPlusObject) : BRect; cdecl; external BePascalLibName name 'BPolygon_Frame';
function BPicture_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : BArchivable; cdecl; external BePascalLibName name 'BPicture_Instantiate'; //procedure BPolygon_AddPoints(AObject : TCPlusObject; ptArray : ; numPoints : integer); cdecl; external BePascalLibName name 'BPolygon_AddPoints';
function BPicture_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : Status_t; cdecl; external BePascalLibName name 'BPicture_Archive'; function BPolygon_CountPoints(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BPolygon_CountPoints';
function BPicture_Perform(AObject : TCPlusObject; d : Perform_code; arg : Pointer) : Status_t; cdecl; external BePascalLibName name 'BPicture_Perform'; procedure BPolygon_MapTo(AObject : TCPlusObject; srcRect : TCPlusObject; dstRect : TCPlusObject); cdecl; external BePascalLibName name 'BPolygon_MapTo';
function BPicture_Flatten(AObject : TCPlusObject; stream : TCPlusObject) : Status_t; cdecl; external BePascalLibName name 'BPicture_Flatten'; procedure BPolygon_PrintToStream(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BPolygon_PrintToStream';
function BPicture_Unflatten(AObject : TCPlusObject; stream : TCPlusObject) : Status_t; cdecl; external BePascalLibName name 'BPicture_Unflatten';
implementation implementation
constructor BPolygon.Create;
constructor BPicture.Create;
begin begin
CreatePas; CreatePas;
CPlusObject := BPicture_Create(Self); CPlusObject := BPolygon_Create(Self);
end; end;
constructor BPicture.Create(data : BMessage);
{constructor BPolygon.Create;
begin begin
CreatePas; CreatePas;
CPlusObject := BPicture_Create(Self,data); CPlusObject := BPolygon_Create(Self);
end;
}
constructor BPolygon.Create(poly : BPolygon);
begin
CreatePas; CPlusObject := BPolygon_Create(Self, poly);
end;
destructor BPolygon.Destroy;
begin
BPolygon_Free(CPlusObject);
inherited;
end; end;
function BPolygon.Frame : BRect;
destructor BPicture.Destroy;
begin begin
BPicture_Free(CPlusObject); Result := BPolygon_Frame(CPlusObject);
inherited;
end; end;
function BPicture.Instantiate(data :BMessage) : BArchivable; {procedure BPolygon.AddPoints(ptArray : ; numPoints : integer);
begin begin
Result := BPicture_Instantiate(CPlusObject, data.CPlusObject); BPolygon_AddPoints(CPlusObject, ptArray, numPoints);
end;
}
function BPolygon.CountPoints : integer;
begin
Result := BPolygon_CountPoints(CPlusObject);
end; end;
function BPicture.Archive(data : BMessage; deep : boolean) : Status_t; procedure BPolygon.MapTo(srcRect : BRect; dstRect : BRect);
begin begin
Result := BPicture_Archive(CPlusObject, data.CPlusObject, deep); BPolygon_MapTo(CPlusObject, srcRect.CPlusObject, dstRect.CPlusObject);
end; end;
procedure BPolygon.PrintToStream;
function BPicture.Perform(d : Perform_code; arg : Pointer) : Status_t;
begin begin
Result := BPicture_Perform(CPlusObject, d, arg); BPolygon_PrintToStream(CPlusObject);
end;
function BPicture.Flatten(var stream : BDataIO) : Status_t;
begin
Result:=BPicture_Flatten(CPlusObject,stream.CPlusObject);
end;
function BPicture.Unflatten(var stream : BDataIO) : Status_t;
begin
Result:=BPicture_Unflatten(CPlusObject,stream.CPlusObject);
end; end;

View File

@@ -28,7 +28,7 @@ type
BRadioButton = class(BControl) BRadioButton = class(BControl)
private private
public public
constructor Create(frame : BRect; name, aLabel : PChar; message : BMessage; resizingMode, flags : Cardinal); virtual; constructor Create(frame : BRect; name, aLabel : PChar; message : BMessage; sresizingMode, sflags : Cardinal); virtual;
constructor Create(data : BMessage); override; constructor Create(data : BMessage); override;
destructor Destroy; override; destructor Destroy; override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -49,7 +49,7 @@ type
procedure FrameMoved(new_position : BPoint); override; procedure FrameMoved(new_position : BPoint); override;
procedure FrameResized(new_width : double; new_height : double); override; procedure FrameResized(new_width : double; new_height : double); override;
function ResolveSpecifier(msg : BMessage; index : integer; specifier : BMessage; form : integer; properti : PChar) : BHandler; function ResolveSpecifier(msg : BMessage; index : integer; specifier : BMessage; form : integer; properti : PChar) : BHandler;
procedure MakeFocus(state : boolean); override; procedure MakeFocus(state : boolean);
procedure AllAttached; override; procedure AllAttached; override;
procedure AllDetached; override; procedure AllDetached; override;
function GetSupportedSuites(data : BMessage) : Status_t; function GetSupportedSuites(data : BMessage) : Status_t;
@@ -102,10 +102,10 @@ function BRadioButton_Perform(AObject : TCPlusObject; d : Perform_code; arg : Po
implementation implementation
constructor BRadioButton.Create(frame : BRect; name, aLabel : PChar; message : BMessage; resizingMode, flags : Cardinal); constructor BRadioButton.Create(frame : BRect; name, aLabel : PChar; message : BMessage; sresizingMode, sflags : Cardinal);
begin begin
CreatePas; CreatePas;
CPlusObject := BRadioButton_Create(Self, frame.CPlusObject, name, aLabel, message.CPlusObject, resizingMode, flags); CPlusObject := BRadioButton_Create(Self, frame.CPlusObject, name, aLabel, message.CPlusObject, sresizingMode, sflags);
end; end;
constructor BRadioButton.Create(data : BMessage); constructor BRadioButton.Create(data : BMessage);

View File

@@ -24,26 +24,8 @@ uses
beobj; beobj;
type type
// BPoint and BRect are defined in the same unit to avoid circular reference BRect =class;
BPoint = class;
BRect = class(TBeObject)
public
constructor Create; override;
constructor Create(rect : BRect); virtual; // Problème de référence circulaire avec BPoint
constructor Create(l, t, r, b : single); virtual;
constructor Create(leftTop, rightBottom : BPoint); virtual;
destructor Destroy; override;
procedure PrintToStream;
end;
function BRect_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_1';
function BRect_Create(AObject : TBeObject; rect : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_2';
function BRect_Create(AObject : TBeObject; l, t, r, b : single) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_3';
function BRect_Create(AObject : TBeObject; leftTop, rightBottom : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_4';
procedure BRect_Free(rect : TCPlusObject); cdecl; external BePascalLibName name 'BRect_Free';
procedure BRect_PrintToStream(Rect : TCPlusObject); cdecl; external bePascalLibName name 'BRect_PrintToStream';
type
BPoint = class(TBeObject) BPoint = class(TBeObject)
public public
constructor Create; override; constructor Create; override;
@@ -54,6 +36,95 @@ type
procedure PrintToStream; procedure PrintToStream;
procedure Sept(x, y : single); procedure Sept(x, y : single);
end; end;
type
// BPoint and BRect are defined in the same unit to avoid circular reference
BRect = class(TBeObject)
private
function Get_Left : single;
function Get_Right : single;
function Get_bottom : single;
function Get_top : single;
public
constructor Create; override;
constructor Create(rect : BRect); virtual; // Problème de référence circulaire avec BPoint
constructor Create(l, t, r, b : single);
constructor Create(leftTop, rightBottom : BPoint); virtual;
destructor Destroy; override;
procedure PrintToStream;
procedure SetLeftTop(Rect : TCPlusObject; p : BPoint);
procedure SetRightBottom(Rect : TCPlusObject; p : BPoint);
procedure SetLeftBottom(Rect : TCPlusObject; p : BPoint);
procedure SetRightTop(Rect : TCPlusObject; p : BPoint);
procedure InsetBy(Rect : TCPlusObject; p : BPoint);
procedure InsetBy(Rect : TCPlusObject; dx,dy : single);
procedure OffsetBy(Rect : TCPlusObject; p : BPoint);
procedure OffSetBy(Rect : TCPlusObject; dx,dy : single);
procedure OffsetTo(Rect : TCPlusObject; p : BPoint);
procedure OffSetTo(Rect : TCPlusObject; dx,dy : single);
function InsetBySelf(Rect : TCPlusObject; p : BPoint): BRect;
function InsetBySelf(Rect : TCPlusObject; dx,dy :single): BRect;
function InsetByCopy(Rect : TCPlusObject; p : BPoint): BRect;
function InsetByCopy(Rect : TCPlusObject; dx,dy :single): BRect;
function OffSetBySelf(Rect : TCPlusObject; p : BPoint): BRect;
function OffSetBySelf(Rect : TCPlusObject; dx,dy :single): BRect;
function OffSetByCopy(Rect : TCPlusObject; p : BPoint): BRect;
function OffSetByCopy(Rect : TCPlusObject; dx,dy :single): BRect;
function OffSetToSelf(Rect : TCPlusObject; p : BPoint): BRect;
function OffSetToSelf(Rect : TCPlusObject; dx,dy :single): BRect;
function OffSetToCopy(Rect : TCPlusObject; p : BPoint): BRect;
function OffSetToCopy(Rect : TCPlusObject; dx,dy :single): BRect;
function Intersects(Rect : TCPlusObject; p : Brect): boolean;
function Contains(Rect : TCPlusObject; p : BPoint): boolean;
function Contains(Rect : TCPlusObject; p : Brect): boolean;
property left : single read Get_left;
property right : single read Get_right;
property bottom : single read Get_bottom;
property top : single read Get_top;
end;
function BRect_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_1';
function BRect_Create(AObject : TBeObject; rect : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_2';
function BRect_Create(AObject : TBeObject; l, t, r, b : single) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_3';
function BRect_Create(AObject : TBeObject; leftTop, rightBottom : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BRect_Create_4';
procedure BRect_Free(rect : TCPlusObject); cdecl; external BePascalLibName name 'BRect_Free';
procedure BRect_PrintToStream(Rect : TCPlusObject); cdecl; external bePascalLibName name 'BRect_PrintToStream';
function BRect_left(Rect : TCPlusObject): single; cdecl; external bePascalLibName name 'BRect_left';
function BRect_right(Rect : TCPlusObject): single; cdecl; external bePascalLibName name 'BRect_right';
function BRect_bottom(Rect : TCPlusObject): single; cdecl; external bePascalLibName name 'BRect_bottom';
function BRect_top(Rect : TCPlusObject): single; cdecl; external bePascalLibName name 'BRect_top';
procedure BRect_SetLeftTop(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_SetLeftTop';
procedure BRect_SetRightBottom(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_SetRightBottom';
procedure BRect_SetLeftBottom(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_SetLeftBottom';
procedure BRect_SetRightTop(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_SetRightTop';
procedure BRect_InsetBy(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_InsetBy';
procedure BRect_InsetBy(Rect : TCPlusObject; dx,dy : single); cdecl; external bePascalLibName name 'BRect_InsetBy_1';
procedure BRect_OffsetBy(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_OffsetBy';
procedure BRect_OffSetBy(Rect : TCPlusObject; dx,dy : single); cdecl; external bePascalLibName name 'BRect_OffsetBy_1';
procedure BRect_OffsetTo(Rect : TCPlusObject; p : BPoint); cdecl; external bePascalLibName name 'BRect_OffsetTo';
procedure BRect_OffSetTo(Rect : TCPlusObject; dx,dy : single); cdecl; external bePascalLibName name 'BRect_OffsetTo_1';
function BRect_InsetBySelf(Rect : TCPlusObject; p : BPoint): BRect; cdecl; external bePascalLibName name 'BRect_InsetBySelf';
function BRect_InsetBySelf(Rect : TCPlusObject; dx,dy :single): BRect; cdecl; external bePascalLibName name 'BRect_InsetBySelf_1';
function BRect_InsetByCopy(Rect : TCPlusObject; p : BPoint): BRect; cdecl; external bePascalLibName name 'BRect_InsetByCopy';
function BRect_InsetByCopy(Rect : TCPlusObject; dx,dy :single): BRect; cdecl; external bePascalLibName name 'BRect_InsetByCopy_1';
function BRect_OffSetBySelf(Rect : TCPlusObject; p : BPoint): BRect; cdecl; external bePascalLibName name 'BRect_OffsetBySelf';
function BRect_OffSetBySelf(Rect : TCPlusObject; dx,dy :single): BRect; cdecl; external bePascalLibName name 'BRect_OffsetBySelf_1';
function BRect_OffSetByCopy(Rect : TCPlusObject; p : BPoint): BRect; cdecl; external bePascalLibName name 'BRect_OffsetByCopy';
function BRect_OffSetByCopy(Rect : TCPlusObject; dx,dy :single): BRect; cdecl; external bePascalLibName name 'BRect_OffsetByCopy_1';
function BRect_OffSetToSelf(Rect : TCPlusObject; p : BPoint): BRect; cdecl; external bePascalLibName name 'BRect_OffsetToSelf';
function BRect_OffSetToSelf(Rect : TCPlusObject; dx,dy :single): BRect; cdecl; external bePascalLibName name 'BRect_OffsetToSelf_1';
function BRect_OffSetToCopy(Rect : TCPlusObject; p : BPoint): BRect; cdecl; external bePascalLibName name 'BRect_OffsetToCopy';
function BRect_OffSetToCopy(Rect : TCPlusObject; dx,dy :single): BRect; cdecl; external bePascalLibName name 'BRect_OffsetToCopy_1';
function BRect_Intersects(Rect : TCPlusObject; p : Brect): boolean; cdecl; external bePascalLibName name 'BRect_Intersects';
function BRect_Contains(Rect : TCPlusObject; p : BPoint): boolean; cdecl; external bePascalLibName name 'BRect_Contains';
function BRect_Contains(Rect : TCPlusObject; p : Brect): boolean; cdecl; external bePascalLibName name 'BRect_Contains_1';
function BPoint_Create(AObject : TBeObject; x, y : single) : TCPlusObject; cdecl; external BePascalLibName name 'BPoint_Create_1'; function BPoint_Create(AObject : TBeObject; x, y : single) : TCPlusObject; cdecl; external BePascalLibName name 'BPoint_Create_1';
function BPoint_Create(AObject : TBeObject; point : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BPoint_Create_2'; function BPoint_Create(AObject : TBeObject; point : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BPoint_Create_2';
@@ -100,6 +171,154 @@ begin
BRect_PrintToStream(CPlusObject); BRect_PrintToStream(CPlusObject);
end; end;
function Brect.Get_Left : single;
begin
result:=BRect_left(CPlusObject);
end;
function Brect.Get_right : single;
begin
result:=BRect_right(CPlusObject);
end;
function Brect.Get_bottom : single;
begin
result:=BRect_bottom(CPlusObject);
end;
function Brect.Get_top : single;
begin
result:=BRect_top(CPlusObject);
end;
procedure Brect.SetLeftTop(Rect : TCPlusObject; p : BPoint);
begin
BRect_SetLeftTop(CPlusObject,p);
end;
procedure Brect.SetRightBottom(Rect : TCPlusObject; p : BPoint);
begin
BRect_SetRightBottom(CPlusObject,p);
end;
procedure Brect.SetLeftBottom(Rect : TCPlusObject; p : BPoint);
begin
BRect_SetLeftBottom(CPlusObject,p);
end;
procedure Brect.SetRightTop(Rect : TCPlusObject; p : BPoint);
begin
BRect_SetRightTop(CPlusObject,p);
end;
procedure Brect.InsetBy(Rect : TCPlusObject; p : BPoint);
begin
BRect_InsetBy(CPlusObject,p);
end;
procedure Brect.InsetBy(Rect : TCPlusObject; dx,dy : single);
begin
BRect_InsetBy(CPlusObject,dx,dy);
end;
procedure Brect.OffsetBy(Rect : TCPlusObject; p : BPoint);
begin
BRect_OffsetBy(CPlusObject,p);
end;
procedure Brect.OffSetBy(Rect : TCPlusObject; dx,dy : single);
begin
BRect_OffSetBy(CPlusObject,dx,dy);
end;
procedure Brect.OffsetTo(Rect : TCPlusObject; p : BPoint);
begin
BRect_OffsetTo(CPlusObject,p);
end;
procedure Brect.OffSetTo(Rect : TCPlusObject; dx,dy : single);
begin
BRect_OffSetTo(CPlusObject,dx,dy);
end;
function Brect.InsetBySelf(Rect : TCPlusObject; p : BPoint): BRect;
begin
result:=BRect_InsetBySelf(CPlusObject,p);
end;
function Brect.InsetBySelf(Rect : TCPlusObject; dx,dy :single): BRect;
begin
result:=BRect_InsetBySelf(CPlusObject,dx,dy);
end;
function Brect.InsetByCopy(Rect : TCPlusObject; p : BPoint): BRect;
begin
result:=BRect_InsetByCopy(CPlusObject,p);
end;
function Brect.InsetByCopy(Rect : TCPlusObject; dx,dy :single): BRect;
begin
result:=BRect_InsetByCopy(CPlusObject,dx,dy);
end;
function Brect.OffSetBySelf(Rect : TCPlusObject; p : BPoint): BRect;
begin
result:=BRect_OffSetBySelf(CPlusObject,p);
end;
function Brect.OffSetBySelf(Rect : TCPlusObject; dx,dy :single): BRect;
begin
result:=BRect_OffSetBySelf(CPlusObject,dx,dy);
end;
function Brect.OffSetByCopy(Rect : TCPlusObject; p : BPoint): BRect;
begin
result:=BRect_OffSetByCopy(CPlusObject,p);
end;
function Brect.OffSetByCopy(Rect : TCPlusObject; dx,dy :single): BRect;
begin
result:=BRect_OffSetByCopy(CPlusObject,dx,dy);
end;
function Brect.OffSetToSelf(Rect : TCPlusObject; p : BPoint): BRect;
begin
result:=BRect_OffSetToSelf(CPlusObject,p);
end;
function Brect.OffSetToSelf(Rect : TCPlusObject; dx,dy :single): BRect;
begin
result:=BRect_OffSetToSelf(CPlusObject,dx,dy);
end;
function Brect.OffSetToCopy(Rect : TCPlusObject; p : BPoint): BRect;
begin
result:=BRect_OffSetToCopy(CPlusObject,p);
end;
function Brect.OffSetToCopy(Rect : TCPlusObject; dx,dy :single): BRect;
begin
result:=BRect_OffSetToCopy(CPlusObject,dx,dy);
end;
function Brect.Intersects(Rect : TCPlusObject; p : Brect): boolean;
begin
result:=BRect_Intersects(CPlusObject,p);
end;
function Brect.Contains(Rect : TCPlusObject; p : BPoint): boolean;
begin
result:=BRect_Contains(CPlusObject,p);
end;
function Brect.Contains(Rect : TCPlusObject; p : Brect): boolean;
begin
result:=BRect_Contains(CPlusObject,p);
end;
// BPoint
constructor BPoint.Create(x, y : single); constructor BPoint.Create(x, y : single);
begin begin
inherited Create; inherited Create;
@@ -139,6 +358,8 @@ begin
BPoint_Set(CPlusObject, x, y); BPoint_Set(CPlusObject, x, y);
end; end;
initialization initialization
end. end.

View File

@@ -27,7 +27,7 @@ type
BScrollBar = class(BView) BScrollBar = class(BView)
private private
public public
constructor Create(frame : BRect; name : pchar; atarget : BView; min,max : real; direction : orientation); constructor Create(aframe : BRect; name : pchar; atarget : BView; min,max : real; direction : orientation);
constructor Create_1(data : BMessage); constructor Create_1(data : BMessage);
destructor Destroy;override; destructor Destroy;override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -102,10 +102,10 @@ function BScrollBar_Perform(AObject : TCPlusObject; d : Perform_code; arg : Poin
implementation implementation
constructor BScrollBar.Create(frame : BRect; name : pchar; atarget : BView; min,max : real; direction : Orientation); constructor BScrollBar.Create(aframe : BRect; name : pchar; atarget : BView; min,max : real; direction : Orientation);
begin begin
CreatePas; CreatePas;
CPlusObject := BScrollBar_Create(Self,frame.CPlusObject, name, target.CPlusObject,min,max, direction ); CPlusObject := BScrollBar_Create(Self,aframe.CPlusObject, name, target.CPlusObject,min,max, direction );
end; end;
constructor BScrollBar.Create_1(data : BMessage); constructor BScrollBar.Create_1(data : BMessage);

View File

@@ -31,7 +31,7 @@ type
constructor Create(name : pchar; constructor Create(name : pchar;
atarget :BView; atarget :BView;
resizeMask : longint; resizeMask : longint;
flags : longint; sflags : longint;
horizontal, horizontal,
vertical : boolean; vertical : boolean;
aborder :border_style ); virtual; aborder :border_style ); virtual;
@@ -101,13 +101,13 @@ implementation
constructor BScrollView.Create(name : pchar; constructor BScrollView.Create(name : pchar;
atarget :BView; atarget :BView;
resizeMask : longint; resizeMask : longint;
flags : longint; sflags : longint;
horizontal, horizontal,
vertical : boolean; vertical : boolean;
aborder :border_style ); aborder :border_style );
begin begin
CreatePas; CreatePas;
CPlusObject := BScrollView_Create(Self,name,atarget.CplusObject,resizeMask,flags,horizontal,vertical,aborder); CPlusObject := BScrollView_Create(Self,name,atarget.CplusObject,resizeMask,sflags,horizontal,vertical,aborder);
end; end;

View File

@@ -28,7 +28,7 @@ type
BStatusBar = class(BView) BStatusBar = class(BView)
private private
public public
constructor Create( frame : BRect; constructor Create( aframe : BRect;
name : pchar; name : pchar;
alabel : Pchar; alabel : Pchar;
trailing_label : Pchar);virtual; trailing_label : Pchar);virtual;
@@ -113,13 +113,13 @@ function BStatusBar_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObje
implementation implementation
constructor BStatusBar.Create(frame : BRect; constructor BStatusBar.Create(aframe : BRect;
name : pchar; name : pchar;
alabel : Pchar; alabel : Pchar;
trailing_label : Pchar); trailing_label : Pchar);
begin begin
CreatePas; CreatePas;
CPlusObject := BStatusBar_Create(Self, frame.CPlusObject, name, alabel, trailing_label); CPlusObject := BStatusBar_Create(Self, aframe.CPlusObject, name, alabel, trailing_label);
end; end;
constructor BStatusBar.Create(data : BMessage); constructor BStatusBar.Create(data : BMessage);

View File

@@ -27,7 +27,7 @@ type
BStringView = class(BView) BStringView = class(BView)
private private
public public
constructor Create(bounds : BRect; name : pchar; texte : pchar; resizeflags, flags : cardinal); virtual; constructor Create(abounds : BRect; name : pchar; texte : pchar; resizeflags, sflags : cardinal); virtual;
destructor Destroy; override; destructor Destroy; override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
function Archive(data : BMessage; deep : boolean) : Status_t; function Archive(data : BMessage; deep : boolean) : Status_t;
@@ -36,7 +36,7 @@ type
procedure SeAlignment(flag : Alignment); procedure SeAlignment(flag : Alignment);
function GetAlignment : Alignment; function GetAlignment : Alignment;
procedure AttachedToWindow; override; procedure AttachedToWindow; override;
procedure Draw(bounds : BRect); override; procedure Draw(abounds : BRect); override;
procedure MessageReceived(msg : BMessage);override; procedure MessageReceived(msg : BMessage);override;
procedure MouseDown(pt : BPoint);override; procedure MouseDown(pt : BPoint);override;
procedure MouseUp(pt : BPoint);override; procedure MouseUp(pt : BPoint);override;
@@ -96,10 +96,10 @@ function BStringView_Perform(AObject : TCPlusObject; d : Perform_code; arg : Poi
implementation implementation
constructor BStringView.Create(bounds : BRect; name : pchar; texte : pchar; resizeflags, flags : cardinal); constructor BStringView.Create(abounds : BRect; name : pchar; texte : pchar; resizeflags, sflags : cardinal);
begin begin
CreatePas; CreatePas;
CPlusObject := BStringView_Create(Self,bounds.CPlusObject,name,texte,resizeflags, flags); CPlusObject := BStringView_Create(Self,abounds.CPlusObject,name,texte,resizeflags, sflags);
end; end;
destructor BStringView.Destroy; destructor BStringView.Destroy;
@@ -143,9 +143,9 @@ begin
// BStringView_AttachedToWindow(CPlusObject); // BStringView_AttachedToWindow(CPlusObject);
end; end;
procedure BStringView.Draw(bounds : BRect); procedure BStringView.Draw(abounds : BRect);
begin begin
// BStringView_Draw(CPlusObject, bounds.CPlusObject); // BStringView_Draw(CPlusObject, abounds.CPlusObject);
end; end;
procedure BStringView.MessageReceived(msg : BMessage); procedure BStringView.MessageReceived(msg : BMessage);

View File

@@ -59,7 +59,7 @@ type
private private
public public
destructor Destroy;override; destructor Destroy;override;
constructor Create(frame : BRect; name : Pchar; width : button_width; resizingMode : cardinal; flags : cardinal);virtual; constructor Create(aframe : BRect; name : Pchar; width : button_width; sresizingMode : cardinal; sflags : cardinal);virtual;
constructor Create(msg : BMessage);virtual; constructor Create(msg : BMessage);virtual;
function Instantiate( msg: BMessage) : BArchivable; function Instantiate( msg: BMessage) : BArchivable;
function Archive( msg : BMessage; deep : boolean) : Status_t; function Archive( msg : BMessage; deep : boolean) : Status_t;
@@ -86,7 +86,7 @@ type
function DrawTabs : BRect; function DrawTabs : BRect;
procedure DrawBox(selectedTabFrame : BRect); procedure DrawBox(selectedTabFrame : BRect);
function TabFrame(tabIndex : integer) : BRect; function TabFrame(tabIndex : integer) : BRect;
procedure SetFlags(flags : Cardinal); procedure SetFlags(sflags : Cardinal);
procedure SetResizingMode(mode : Cardinal); procedure SetResizingMode(mode : Cardinal);
procedure GetPreferredSize(width : double; height : double); procedure GetPreferredSize(width : double; height : double);
procedure ResizeToPreferred;override; procedure ResizeToPreferred;override;
@@ -299,10 +299,10 @@ begin
inherited; inherited;
end; end;
constructor BTabView.Create( frame : BRect; name : Pchar; width : button_width; resizingMode : cardinal; flags : cardinal); constructor BTabView.Create( aframe : BRect; name : Pchar; width : button_width; sresizingMode : cardinal; sflags : cardinal);
begin begin
createPas; createPas;
CPlusObject := BTabView_Create(Self, frame.CPlusObject, name, Integer(width),resizingMode,flags); CPlusObject := BTabView_Create(Self, aframe.CPlusObject, name, Integer(width),sresizingMode,sflags);
end; end;
@@ -437,9 +437,9 @@ begin
Result := BTabView_TabFrame(CPlusObject, tabIndex); Result := BTabView_TabFrame(CPlusObject, tabIndex);
end; end;
procedure BTabView.SetFlags(flags : Cardinal); procedure BTabView.SetFlags(sflags : Cardinal);
begin begin
BTabView_SetFlags(CPlusObject, flags); BTabView_SetFlags(CPlusObject, sflags);
end; end;
procedure BTabView.SetResizingMode(mode : Cardinal); procedure BTabView.SetResizingMode(mode : Cardinal);

View File

@@ -29,7 +29,7 @@ type
private private
public public
destructor Destroy;override; destructor Destroy;override;
constructor Create(frame : BRect; name, aLabel,initial : PChar; message : BMessage; resizingMode, flags : Cardinal); virtual; constructor Create(frame : BRect; name, aLabel,initial : PChar; message : BMessage; sresizingMode, sflags : Cardinal); virtual;
constructor Create(data : BMessage);override; constructor Create(data : BMessage);override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
function Archive(data : BMessage; deep : boolean) : Status_t; function Archive(data : BMessage; deep : boolean) : Status_t;
@@ -47,7 +47,7 @@ type
procedure Draw(updateRect : BRect);override; procedure Draw(updateRect : BRect);override;
procedure MouseDown(where : BPoint);override; procedure MouseDown(where : BPoint);override;
procedure AttachedToWindow;override; procedure AttachedToWindow;override;
procedure MakeFocus(focusState : boolean);override; procedure MakeFocus(focusState : boolean);
procedure SetEnabled(state : boolean); procedure SetEnabled(state : boolean);
procedure FrameMoved(new_position : BPoint);override; procedure FrameMoved(new_position : BPoint);override;
procedure FrameResized(new_width : double; new_height : double);override; procedure FrameResized(new_width : double; new_height : double);override;
@@ -88,7 +88,7 @@ type
end; end;
procedure BTextControl_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextControl_Free'; procedure BTextControl_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextControl_Free';
function BTextControl_Create(AObject : TBeObject; frame : TCPlusObject; name, aLabel ,initial: PChar; message : TCPlusObject; resizingMode, flags : Cardinal): TCPlusObject; cdecl; external BePascalLibName name 'BTextControl_Create'; function BTextControl_Create(AObject : TBeObject; frame : TCPlusObject; name, aLabel ,initial: PChar; message : TCPlusObject; sresizingMode, flags : Cardinal): TCPlusObject; cdecl; external BePascalLibName name 'BTextControl_Create';
function BTextControl_Create(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BTextControl_Create_1'; function BTextControl_Create(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BTextControl_Create_1';
function BTextControl_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : BArchivable; cdecl; external BePascalLibName name 'BTextControl_Instantiate'; function BTextControl_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : BArchivable; cdecl; external BePascalLibName name 'BTextControl_Instantiate';
function BTextControl_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : Status_t; cdecl; external BePascalLibName name 'BTextControl_Archive'; function BTextControl_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : Status_t; cdecl; external BePascalLibName name 'BTextControl_Archive';
@@ -155,10 +155,10 @@ begin
inherited; inherited;
end; end;
constructor BTextControl.Create(frame : BRect; name, aLabel,initial : PChar; message : BMessage; resizingMode, flags : Cardinal); constructor BTextControl.Create(frame : BRect; name, aLabel,initial : PChar; message : BMessage; sresizingMode, sflags : Cardinal);
begin begin
CreatePas; CreatePas;
CPlusObject := BTextControl_Create(Self, frame.CPlusObject, name, aLabel,initial, message.CPlusObject, resizingMode, flags); CPlusObject := BTextControl_Create(Self, frame.CPlusObject, name, aLabel,initial, message.CPlusObject, sresizingMode, sflags);
end; end;

View File

@@ -49,8 +49,8 @@ type
BTextView = class(BView) BTextView = class(BView)
private private
public public
constructor Create(frame : BRect; name : pchar;atexBRect: BRect ; resizeMask, flags : cardinal); virtual; constructor Create(aframe : BRect; name : pchar;atexBRect: BRect ; resizeMask, sflags : cardinal); virtual;
// constructor Create(bounds : BRect; name : pchar; texte : pchar; resizeflags, flags : cardinal); virtual; // constructor Create(bounds : BRect; name : pchar; texte : pchar; resizeflags, sflags : cardinal); virtual;
constructor Create(data : BMessage);virtual; constructor Create(data : BMessage);virtual;
destructor Destroy;override; destructor Destroy;override;
function Instantiate(data : BMessage) : BArchivable; function Instantiate(data : BMessage) : BArchivable;
@@ -318,10 +318,10 @@ procedure BTextView_UnlockWidthBuffer(AObject : TCPlusObject); cdecl; external B
implementation implementation
constructor BTextView.Create(frame : BRect; name : pchar;atexBRect: BRect ; resizeMask, flags : cardinal); constructor BTextView.Create(aframe : BRect; name : pchar;atexBRect: BRect ; resizeMask, sflags : cardinal);
begin begin
CreatePas; CreatePas;
CPlusObject := BTextView_Create(Self, frame.CplusObject,name,atexBRect.CPlusObject,resizeMask,flags); CPlusObject := BTextView_Create(Self, aframe.CplusObject,name,atexBRect.CPlusObject,resizeMask,sflags);
end; end;
constructor BTextView.Create(data : BMessage); constructor BTextView.Create(data : BMessage);

File diff suppressed because it is too large Load Diff

View File

@@ -24,6 +24,11 @@ uses
beobj, storagedefs,SupportDefs; beobj, storagedefs,SupportDefs;
type type
Entry_Ref = record
device : dev_t;
directory : ino_t;
name : PChar;
end;
EntryRef = record EntryRef = record
device : dev_t; device : dev_t;
directory : ino_t; directory : ino_t;

View File

@@ -20,34 +20,45 @@ program codegen;
{$H+} // use AnsiStrings {$H+} // use AnsiStrings
uses uses
dom, xmlread, apireader, typmap, codewrite, SysUtils; dom, xmlread, apireader, typmap, codewrite, SysUtils, OptionReader,
getopts;
const
SupportedOptions : array[0..2] of TOption = ((Name : 'aoption'; Has_arg : Optional_Argument; Flag : nil; Value : #0),
(Name : 'boption'; Has_arg : Optional_Argument; Flag : nil; Value : #0),
(Name : ''; Has_arg : NO_Argument; Flag : nil; Value : #0));
var var
aDoc : TXMLDocument; aDoc : TXMLDocument;
HooksDoc : TXMLDocument; HooksDoc : TXMLDocument;
Classes, Hooks : TDocument; Classes, Hooks : TDocument;
SrcGen : TSourceGen; SrcGen : TSourceGen;
Options : TOptions;
begin begin
if ParamCount > 0 then if ParamCount > 0 then
begin begin
ReadXMLFile(aDoc, Paramstr(1)); Options := TOptions.Create('a::b::', @SupportedOptions[0]);
ReadXMLFile(HooksDoc, 'hooks.xml');
Classes := TDocument.Create(aDoc);
try try
Hooks := TDocument.Create(HooksDoc); ReadXMLFile(aDoc, Paramstr(1));
ReadXMLFile(HooksDoc, 'hooks.xml');
Classes := TDocument.Create(aDoc);
try try
SrcGen := TSourceGen.Create(Classes, Hooks, StringReplace(Paramstr(1), '.xml', '', [])); Hooks := TDocument.Create(HooksDoc);
try try
SrcGen.Gen; SrcGen := TSourceGen.Create(Classes, Hooks, StringReplace(Paramstr(1), '.xml', '', []));
WriteLn('After gen'); try
SrcGen.Gen;
WriteLn('After gen');
finally
SrcGen.Free;
end;
finally finally
SrcGen.Free; Hooks.Free;
end; end;
finally finally
Hooks.Free; Classes.Free;
end; end;
finally finally
Classes.Free; Options.Free;
end; end;
end; end;