after 2 months : menu support works + fixes

This commit is contained in:
ocoursiere
2003-03-30 14:56:37 +00:00
parent 4a8ba2a2fd
commit a826637324
6 changed files with 314 additions and 193 deletions

View File

@@ -59,9 +59,9 @@ type
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';
function BMessenger_Create(AObject : TBeObject; mime_sig : PChar; team : TTeam_id; perr : PStatus_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_1';
function BMessenger_Create(AObject : TBeObject; handler : THandler; looper : TLooper; perr : PStatus_t) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_2';
function BMessenger_Create(AObject : TBeObject; from : TMessenger) : TCplusObject; cdecl; external BePascalLibName name 'BMessenger_Create_3';
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';

View File

@@ -33,22 +33,25 @@ void BPMenuBar::MessageReceived(BMessage *message)
void BPMenuBar::AllAttached(void)
{
BMenuBar::AllAttached();
// AllAttached_hookCall(message);
}
void BPMenuBar::AttachedToWindow(void)
{
BMenuBar::AttachedToWindow();
// AttachedToWindow_hookCall();
AttachedToWindow_hookCall();
}
void BPMenuBar::AllDetached(void)
{
BMenuBar::AllDetached();
// View_AllDetached_hook(GetPasObject());
}
void BPMenuBar::DetachedFromWindow(void)
{
BMenuBar::DetachedFromWindow();
// View_DetachedFromWindow_hook(GetPasObject());
}
@@ -60,56 +63,67 @@ void BPMenuBar::Draw(BRect updateRect)
void BPMenuBar::DrawAfterChildren(BRect updateRect)
{
BMenuBar::DrawAfterChildren(updateRect);
// View_DrawAfterChildren_hook(GetPasObject(), &updateRect);
}
void BPMenuBar::FrameMoved(BPoint parentPoint)
{
BMenuBar::FrameMoved(parentPoint);
// View_FrameMoved_hook(GetPasObject(), &parentPoint);
}
void BPMenuBar::FrameResized(float width, float height)
{
BMenuBar::FrameResized(width, height);
// View_FrameResized_hook(GetPasObject(), width, height);
}
void BPMenuBar::GetPreferredSize(float *width, float *height)
{
BMenuBar::GetPreferredSize(width, height);
// View_GetPreferredSize_hook(GetPasObject(), width, height);
}
void BPMenuBar::ResizeToPreferred(void)
{
BMenuBar::ResizeToPreferred();
// View_ResizeToPreferred_hook(GetPasObject());
}
void BPMenuBar::KeyDown(const char *bytes, int32 numBytes)
{
BMenuBar::KeyDown(bytes, numBytes);
// View_KeyDown_hook(GetPasObject(), bytes, numBytes);
}
void BPMenuBar::KeyUp(const char *bytes, int32 numBytes)
{
BMenuBar::KeyUp(bytes, numBytes);
// View_KeyUp_hook(GetPasObject(), bytes, numBytes);
}
void BPMenuBar::MouseDown(BPoint point)
{
BMenuBar::MouseDown(point);
// View_MouseDown_hook(GetPasObject(), &point);
}
void BPMenuBar::MouseMoved(BPoint point, uint32 transit, const BMessage *message)
{
BMenuBar::MouseMoved(point, transit, message);
// View_MouseMoved_hook(GetPasObject(), &point, transit, &message);
}
void BPMenuBar::MouseUp(BPoint point)
{
BMenuBar::MouseUp(point);
// View_MouseUp_hook(GetPasObject(), &point);
}
void BPMenuBar::Pulse(void)
{
BMenuBar::Pulse();
// View_Pulse_hook(GetPasObject());
}
@@ -120,15 +134,18 @@ void BPMenuBar::Pulse(void)
void BPMenuBar::WindowActivated(bool active)
{
BMenuBar::WindowActivated(active);
// View_WindowActivated_hook(GetPasObject(), active);
}
void BPMenuBar::SetEnabled(bool enabled)
{
BMenuBar::SetEnabled(enabled);
}
void BPMenuBar::SetValue(int32 value)
{
}
void BPMenuBar::MakeDefault(bool flag)

View File

@@ -52,6 +52,36 @@ void BPMenuItem::Draw(void)
BMenuItem::Draw();
}
void BPMenuItem::DrawContent(void)
{
BMenuItem::DrawContent();
}
void BPMenuItem::GetContentSize(float *width, float *height)
{
BMenuItem::GetContentSize(width, height);
}
void BPMenuItem::TruncateLabel(float max, char *new_label)
{
BMenuItem::TruncateLabel(max, new_label);
}
void BPMenuItem::Highlight(bool on)
{
BMenuItem::Highlight(on);
}
bool BPMenuItem::IsSelected() const
{
return BMenuItem::IsSelected();
}
BPoint BPMenuItem::ContentLocation() const
{
return BMenuItem::ContentLocation();
}
BPSeparatorItem::BPSeparatorItem(TPasObject PasObject)
:BSeparatorItem(),
BPMenuItem(PasObject, "", NULL),
@@ -71,6 +101,11 @@ void BPSeparatorItem::Draw(void)
BSeparatorItem::Draw();
}
void BPSeparatorItem::DrawContent(void)
{
BSeparatorItem::DrawContent();
}
#if defined(__cplusplus)
extern "C" {
@@ -118,7 +153,7 @@ TCPlusObject BMenuItem_Create_2
***********************************************************************/
void BMenuItem_Free(BMenuItem *MenuItem)
{
return MenuItem->~BMenuItem();
delete MenuItem;
}
@@ -347,7 +382,7 @@ TCPlusObject BSeparatorItem_Create_1
***********************************************************************/
void BSeparatorItem_Free(BSeparatorItem *SeparatorItem)
{
return SeparatorItem->~BSeparatorItem();
delete SeparatorItem;
}

View File

@@ -43,24 +43,26 @@ type
TMenu_Tracking_Hook = function() : TStatus_t; cdecl;
type
TMenuItem = class;
type
TMenu = class(TView)
private
public
constructor Create; override;
// constructor Create; override;
constructor Create(title : PChar; width : double; height : double);
constructor Create(title : PChar; layout : TMenu_Layout);
destructor Destroy; override;
constructor Create(data : TMessage);
// constructor Create(data : TMessage);
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure AttachedToWindow; override;
procedure DetachedFromWindow; override;
function AddItem(item : TMenuItem) : boolean; virtual;
function AddItem(item : TMenuItem; index : integer) : boolean; virtual;
function AddItem(item : TMenuItem; frame : TRect) : boolean; virtual;
function AddItem(menu : TMenu) : boolean; virtual;
function AddItem(menu : TMenu; index : integer) : boolean; virtual;
function AddItem(menu : TMenu; index : integer) : boolean; virtual;
function AddItem(menu : TMenu; frame : TRect) : boolean; virtual;
function AddItem(item : TMenuItem) : boolean; virtual;
function AddItem(menu : TMenu) : boolean; virtual;
function AddList(list : TList; index : integer) : boolean;
function AddSeparatorItem : boolean;
function RemoveItem(item : TMenuItem) : boolean;
@@ -206,6 +208,163 @@ type
procedure bool fAttachAborted;}
end;
TMenuItem = class(TBeObject)
private
public
constructor Create; override;
constructor Create(aMenu : TMenu; message : TMessage); virtual;
constructor Create(data : TMessage); virtual;
constructor Create(aLabel : PChar; message : TMessage; aShortcut : Char; modifiers : Cardinal); virtual;
destructor Destroy; override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure SetLabel(name : PChar);
procedure SetEnabled(state : boolean);
procedure SetMarked(state : boolean);
procedure SetTrigger(ch : Char);
procedure SetShortcut(ch : Char; modifiers : Cardinal);
// function aLabel : PChar;
function IsEnabled : boolean;
function IsMarked : boolean;
function Trigger : Char;
// function Shortcut(modifiers : Cardinal) : Char;
function Submenu : TMenu;
function Menu : TMenu;
function Frame : TRect;
{ procedure GetContentSize(width : double; height : double);
procedure TruncateLabel(max : double; new_label : PChar);
procedure DrawContent;
procedure Draw;
procedure Highlight(aOn : boolean);
function IsSelected : boolean;
function ContentLocation : TPoint;
procedure _ReservedMenuItem2;
procedure _ReservedMenuItem3;
procedure _ReservedMenuItem4;
constructor Create(MenuItem : TMenuItem);
function operator=(MenuItem : TMenuItem) : TMenuItem;
procedure InitData;
procedure InitMenuData(menu : TMenu);
procedure Install(window : TWindow);
function Invoke(msg : TMessage) : TStatus_t;
procedure Uninstall;
procedure SetSuper(super : TMenu);
procedure Select(on : boolean);
procedure DrawMarkSymbol;
procedure DrawShortcutSymbol;
procedure DrawSubmenuSymbol;
procedure DrawControlChar(control : PChar);
procedure SetSysTrigger(ch : Char);
procedure char *fLabel;
procedure BMenu *fSubmenu;
procedure BWindow *fWindow;
procedure BMenu *fSuper;
procedure BRect fBounds;
procedure uint32 fModifiers;
procedure float fCachedWidth;
procedure int16 fTriggerIndex;
procedure char fUserTrigger;
procedure char fSysTrigger;
procedure char fShortcutChar;
procedure bool fMark;
procedure bool fEnabled;
procedure bool fSelected;
procedure uint32 _reserved[4];
}
end;
type
TSeparatorItem = class(TMenuItem)
private
public
constructor Create; override;
constructor Create(data : TMessage); override;
destructor Destroy; override;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
function Instantiate(data : TMessage) : TArchivable;
procedure SetEnabled(state : boolean);
{ procedure GetContentSize(width : double; height : double);
procedure Draw;
procedure _ReservedSeparatorItem1;
procedure _ReservedSeparatorItem2;
function operator=( : TSeparatorItem) : TSeparatorItem;
procedure uint32 _reserved[1];
}
end;
//function BMenuItem_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create';
function BMenuItem_Create(AObject : TBeObject; aLabel : PChar; message : TCPlusObject; shortcut : Char; modifiers : Cardinal) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create';
function BMenuItem_Create(AObject : TBeObject; menu : TCPlusObject; message : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create_1';
function BMenuItem_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create_2';
procedure BMenuItem_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Free';
function BMenuItem_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BMenuItem_Instantiate';
function BMenuItem_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BMenuItem_Archive';
procedure BMenuItem_SetLabel(AObject : TCPlusObject; name : PChar); cdecl; external BePascalLibName name 'BMenuItem_SetLabel';
procedure BMenuItem_SetEnabled(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BMenuItem_SetEnabled';
procedure BMenuItem_SetMarked(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BMenuItem_SetMarked';
procedure BMenuItem_SetTrigger(AObject : TCPlusObject; ch : Char); cdecl; external BePascalLibName name 'BMenuItem_SetTrigger';
procedure BMenuItem_SetShortcut(AObject : TCPlusObject; ch : Char; modifiers : Cardinal); cdecl; external BePascalLibName name 'BMenuItem_SetShortcut';
function BMenuItem_Label(AObject : TCPlusObject) : PChar; cdecl; external BePascalLibName name 'BMenuItem_Label';
function BMenuItem_IsEnabled(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenuItem_IsEnabled';
function BMenuItem_IsMarked(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenuItem_IsMarked';
function BMenuItem_Trigger(AObject : TCPlusObject) : Char; cdecl; external BePascalLibName name 'BMenuItem_Trigger';
function BMenuItem_Shortcut(AObject : TCPlusObject; modifiers : Cardinal) : Char; cdecl; external BePascalLibName name 'BMenuItem_Shortcut';
function BMenuItem_Submenu(AObject : TCPlusObject) : TMenu; cdecl; external BePascalLibName name 'BMenuItem_Submenu';
function BMenuItem_Menu(AObject : TCPlusObject) : TMenu; cdecl; external BePascalLibName name 'BMenuItem_Menu';
function BMenuItem_Frame(AObject : TCPlusObject) : TRect; cdecl; external BePascalLibName name 'BMenuItem_Frame';
{procedure BMenuItem_GetContentSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BMenuItem_GetContentSize';
procedure BMenuItem_TruncateLabel(AObject : TCPlusObject; max : double; new_label : PChar); cdecl; external BePascalLibName name 'BMenuItem_TruncateLabel';
procedure BMenuItem_DrawContent(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawContent';
procedure BMenuItem_Draw(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Draw';
procedure BMenuItem_Highlight(AObject : TCPlusObject; aOn : boolean); cdecl; external BePascalLibName name 'BMenuItem_Highlight';
function BMenuItem_IsSelected(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenuItem_IsSelected';
function BMenuItem_ContentLocation(AObject : TCPlusObject) : TPoint; cdecl; external BePascalLibName name 'BMenuItem_ContentLocation';
procedure BMenuItem__ReservedMenuItem2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem__ReservedMenuItem2';
procedure BMenuItem__ReservedMenuItem3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem__ReservedMenuItem3';
procedure BMenuItem__ReservedMenuItem4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem__ReservedMenuItem4';
function BMenuItem_Create(AObject : TBeObject; : TMenuItem) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create';
function BMenuItem_operator=(AObject : TCPlusObject; : TMenuItem) : TMenuItem; cdecl; external BePascalLibName name 'BMenuItem_operator=';
procedure BMenuItem_InitData(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_InitData';
procedure BMenuItem_InitMenuData(AObject : TCPlusObject; menu : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_InitMenuData';
procedure BMenuItem_Install(AObject : TCPlusObject; window : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Install';
function BMenuItem_Invoke(AObject : TCPlusObject; msg : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BMenuItem_Invoke';
procedure BMenuItem_Uninstall(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Uninstall';
procedure BMenuItem_SetSuper(AObject : TCPlusObject; super : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_SetSuper';
procedure BMenuItem_Select(AObject : TCPlusObject; on : boolean); cdecl; external BePascalLibName name 'BMenuItem_Select';
procedure BMenuItem_DrawMarkSymbol(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawMarkSymbol';
procedure BMenuItem_DrawShortcutSymbol(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawShortcutSymbol';
procedure BMenuItem_DrawSubmenuSymbol(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawSubmenuSymbol';
procedure BMenuItem_DrawControlChar(AObject : TCPlusObject; control : PChar); cdecl; external BePascalLibName name 'BMenuItem_DrawControlChar';
procedure BMenuItem_SetSysTrigger(AObject : TCPlusObject; ch : Char); cdecl; external BePascalLibName name 'BMenuItem_SetSysTrigger';
procedure BMenuItem_char *fLabel(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char *fLabel';
procedure BMenuItem_BMenu *fSubmenu(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BMenu *fSubmenu';
procedure BMenuItem_BWindow *fWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BWindow *fWindow';
procedure BMenuItem_BMenu *fSuper(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BMenu *fSuper';
procedure BMenuItem_BRect fBounds(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BRect fBounds';
procedure BMenuItem_uint32 fModifiers(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_uint32 fModifiers';
procedure BMenuItem_float fCachedWidth(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_float fCachedWidth';
procedure BMenuItem_int16 fTriggerIndex(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_int16 fTriggerIndex';
procedure BMenuItem_char fUserTrigger(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char fUserTrigger';
procedure BMenuItem_char fSysTrigger(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char fSysTrigger';
procedure BMenuItem_char fShortcutChar(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char fShortcutChar';
procedure BMenuItem_bool fMark(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_bool fMark';
procedure BMenuItem_bool fEnabled(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_bool fEnabled';
procedure BMenuItem_bool fSelected(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_bool fSelected';
procedure BMenuItem_uint32 _reserved[4](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_uint32 _reserved[4]';
}
function BSeparatorItem_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BSeparatorItem_Create';
function BSeparatorItem_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BSeparatorItem_Create_1';
procedure BSeparatorItem_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem_Free';
function BSeparatorItem_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BSeparatorItem_Archive';
function BSeparatorItem_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BSeparatorItem_Instantiate';
procedure BSeparatorItem_SetEnabled(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BSeparatorItem_SetEnabled';
procedure BSeparatorItem_GetContentSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BSeparatorItem_GetContentSize';
//procedure BSeparatorItem_Draw(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem_Draw';
{procedure BSeparatorItem__ReservedSeparatorItem1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem__ReservedSeparatorItem1';
procedure BSeparatorItem__ReservedSeparatorItem2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem__ReservedSeparatorItem2';
function BSeparatorItem_operator=(AObject : TCPlusObject; : TSeparatorItem) : TSeparatorItem; cdecl; external BePascalLibName name 'BSeparatorItem_operator=';
procedure BSeparatorItem_uint32 _reserved[1](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem_uint32 _reserved[1]';
}
//procedure menu_info_float font_size(AObject : TCPlusObject); cdecl; external BePascalLibName name 'menu_info_float font_size';
//procedure menu_info_font_family f_family(AObject : TCPlusObject); cdecl; external BePascalLibName name 'menu_info_font_family f_family';
//procedure menu_info_font_style f_style(AObject : TCPlusObject); cdecl; external BePascalLibName name 'menu_info_font_style f_style';
@@ -213,20 +372,21 @@ type
//procedure menu_info_int32 separator(AObject : TCPlusObject); cdecl; external BePascalLibName name 'menu_info_int32 separator';
//procedure menu_info_bool click_to_open(AObject : TCPlusObject); cdecl; external BePascalLibName name 'menu_info_bool click_to_open';
//procedure menu_info_bool triggers_always_shown(AObject : TCPlusObject); cdecl; external BePascalLibName name 'menu_info_bool triggers_always_shown';
function BMenu_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create';
function BMenu_Create(AObject : TBeObject; title : PChar; width : double; height : double) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create';
//function BMenu_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create';
function BMenu_Create(AObject : TBeObject; title : PChar; layout : Integer) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create';
function BMenu_Create(AObject : TBeObject; title : PChar; width : double; height : double) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create_1';
procedure BMenu_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenu_Free';
function BMenu_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create';
function BMenu_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenu_Create_3';
function BMenu_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BMenu_Instantiate';
function BMenu_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BMenu_Archive';
procedure BMenu_AttachedToWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenu_AttachedToWindow';
procedure BMenu_DetachedFromWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenu_DetachedFromWindow';
function BMenu_AddItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem';
function BMenu_AddItem(AObject : TCPlusObject; item : TCPlusObject; index : integer) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_1';
function BMenu_AddItem(AObject : TCPlusObject; item : TCPlusObject; frame : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_2';
function BMenu_AddItem_2(AObject : TCPlusObject; menu : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem';
function BMenu_AddItem_2(AObject : TCPlusObject; menu : TCPlusObject; index : integer) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem';
function BMenu_AddItem_2(AObject : TCPlusObject; menu : TCPlusObject; frame : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem';
function BMenu_AddItem_1(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem';
function BMenu_AddItem_2(AObject : TCPlusObject; item : TCPlusObject; index : integer) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_1';
function BMenu_AddItem_3(AObject : TCPlusObject; item : TCPlusObject; frame : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_2';
function BMenu_AddItem_4(AObject : TCPlusObject; menu : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_3';
function BMenu_AddItem_5(AObject : TCPlusObject; menu : TCPlusObject; index : integer) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_4';
function BMenu_AddItem_6(AObject : TCPlusObject; menu : TCPlusObject; frame : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddItem_5';
function BMenu_AddList(AObject : TCPlusObject; list : TCPlusObject; index : integer) : boolean; cdecl; external BePascalLibName name 'BMenu_AddList';
function BMenu_AddSeparatorItem(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_AddSeparatorItem';
function BMenu_RemoveItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenu_RemoveItem';
@@ -537,164 +697,6 @@ procedure BMenu_bool fRedrawAfterSticky(AObject : TCPlusObject); cdecl; external
procedure BMenu_bool fAttachAborted(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenu_bool fAttachAborted';
}
type
TMenuItem = class(TBeObject)
private
public
constructor Create; override;
constructor Create(aMenu : TMenu; message : TMessage); virtual;
constructor Create(data : TMessage); virtual;
constructor Create(aLabel : PChar; message : TMessage; aShortcut : Char; modifiers : Cardinal); virtual;
destructor Destroy; override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure SetLabel(name : PChar);
procedure SetEnabled(state : boolean);
procedure SetMarked(state : boolean);
procedure SetTrigger(ch : Char);
procedure SetShortcut(ch : Char; modifiers : Cardinal);
// function aLabel : PChar;
function IsEnabled : boolean;
function IsMarked : boolean;
function Trigger : Char;
// function Shortcut(modifiers : Cardinal) : Char;
function Submenu : TMenu;
function Menu : TMenu;
function Frame : TRect;
{ procedure GetContentSize(width : double; height : double);
procedure TruncateLabel(max : double; new_label : PChar);
procedure DrawContent;
procedure Draw;
procedure Highlight(aOn : boolean);
function IsSelected : boolean;
function ContentLocation : TPoint;
procedure _ReservedMenuItem2;
procedure _ReservedMenuItem3;
procedure _ReservedMenuItem4;
constructor Create(MenuItem : TMenuItem);
function operator=(MenuItem : TMenuItem) : TMenuItem;
procedure InitData;
procedure InitMenuData(menu : TMenu);
procedure Install(window : TWindow);
function Invoke(msg : TMessage) : TStatus_t;
procedure Uninstall;
procedure SetSuper(super : TMenu);
procedure Select(on : boolean);
procedure DrawMarkSymbol;
procedure DrawShortcutSymbol;
procedure DrawSubmenuSymbol;
procedure DrawControlChar(control : PChar);
procedure SetSysTrigger(ch : Char);
procedure char *fLabel;
procedure BMenu *fSubmenu;
procedure BWindow *fWindow;
procedure BMenu *fSuper;
procedure BRect fBounds;
procedure uint32 fModifiers;
procedure float fCachedWidth;
procedure int16 fTriggerIndex;
procedure char fUserTrigger;
procedure char fSysTrigger;
procedure char fShortcutChar;
procedure bool fMark;
procedure bool fEnabled;
procedure bool fSelected;
procedure uint32 _reserved[4];
}
end;
type
TSeparatorItem = class(TMenuItem)
private
public
constructor Create; override;
constructor Create(data : TMessage); override;
destructor Destroy; override;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
function Instantiate(data : TMessage) : TArchivable;
procedure SetEnabled(state : boolean);
{ procedure GetContentSize(width : double; height : double);
procedure Draw;
procedure _ReservedSeparatorItem1;
procedure _ReservedSeparatorItem2;
function operator=( : TSeparatorItem) : TSeparatorItem;
procedure uint32 _reserved[1];
}
end;
function BMenuItem_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create';
function BMenuItem_Create(AObject : TBeObject; menu : TCPlusObject; message : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create_1';
function BMenuItem_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create_2';
function BMenuItem_Create(AObject : TBeObject; aLabel : PChar; message : TCPlusObject; shortcut : Char; modifiers : Cardinal) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create';
procedure BMenuItem_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Free';
function BMenuItem_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BMenuItem_Instantiate';
function BMenuItem_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BMenuItem_Archive';
procedure BMenuItem_SetLabel(AObject : TCPlusObject; name : PChar); cdecl; external BePascalLibName name 'BMenuItem_SetLabel';
procedure BMenuItem_SetEnabled(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BMenuItem_SetEnabled';
procedure BMenuItem_SetMarked(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BMenuItem_SetMarked';
procedure BMenuItem_SetTrigger(AObject : TCPlusObject; ch : Char); cdecl; external BePascalLibName name 'BMenuItem_SetTrigger';
procedure BMenuItem_SetShortcut(AObject : TCPlusObject; ch : Char; modifiers : Cardinal); cdecl; external BePascalLibName name 'BMenuItem_SetShortcut';
function BMenuItem_Label(AObject : TCPlusObject) : PChar; cdecl; external BePascalLibName name 'BMenuItem_Label';
function BMenuItem_IsEnabled(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenuItem_IsEnabled';
function BMenuItem_IsMarked(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenuItem_IsMarked';
function BMenuItem_Trigger(AObject : TCPlusObject) : Char; cdecl; external BePascalLibName name 'BMenuItem_Trigger';
function BMenuItem_Shortcut(AObject : TCPlusObject; modifiers : Cardinal) : Char; cdecl; external BePascalLibName name 'BMenuItem_Shortcut';
function BMenuItem_Submenu(AObject : TCPlusObject) : TMenu; cdecl; external BePascalLibName name 'BMenuItem_Submenu';
function BMenuItem_Menu(AObject : TCPlusObject) : TMenu; cdecl; external BePascalLibName name 'BMenuItem_Menu';
function BMenuItem_Frame(AObject : TCPlusObject) : TRect; cdecl; external BePascalLibName name 'BMenuItem_Frame';
{procedure BMenuItem_GetContentSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BMenuItem_GetContentSize';
procedure BMenuItem_TruncateLabel(AObject : TCPlusObject; max : double; new_label : PChar); cdecl; external BePascalLibName name 'BMenuItem_TruncateLabel';
procedure BMenuItem_DrawContent(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawContent';
procedure BMenuItem_Draw(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Draw';
procedure BMenuItem_Highlight(AObject : TCPlusObject; aOn : boolean); cdecl; external BePascalLibName name 'BMenuItem_Highlight';
function BMenuItem_IsSelected(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BMenuItem_IsSelected';
function BMenuItem_ContentLocation(AObject : TCPlusObject) : TPoint; cdecl; external BePascalLibName name 'BMenuItem_ContentLocation';
procedure BMenuItem__ReservedMenuItem2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem__ReservedMenuItem2';
procedure BMenuItem__ReservedMenuItem3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem__ReservedMenuItem3';
procedure BMenuItem__ReservedMenuItem4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem__ReservedMenuItem4';
function BMenuItem_Create(AObject : TBeObject; : TMenuItem) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuItem_Create';
function BMenuItem_operator=(AObject : TCPlusObject; : TMenuItem) : TMenuItem; cdecl; external BePascalLibName name 'BMenuItem_operator=';
procedure BMenuItem_InitData(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_InitData';
procedure BMenuItem_InitMenuData(AObject : TCPlusObject; menu : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_InitMenuData';
procedure BMenuItem_Install(AObject : TCPlusObject; window : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Install';
function BMenuItem_Invoke(AObject : TCPlusObject; msg : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BMenuItem_Invoke';
procedure BMenuItem_Uninstall(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_Uninstall';
procedure BMenuItem_SetSuper(AObject : TCPlusObject; super : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_SetSuper';
procedure BMenuItem_Select(AObject : TCPlusObject; on : boolean); cdecl; external BePascalLibName name 'BMenuItem_Select';
procedure BMenuItem_DrawMarkSymbol(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawMarkSymbol';
procedure BMenuItem_DrawShortcutSymbol(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawShortcutSymbol';
procedure BMenuItem_DrawSubmenuSymbol(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_DrawSubmenuSymbol';
procedure BMenuItem_DrawControlChar(AObject : TCPlusObject; control : PChar); cdecl; external BePascalLibName name 'BMenuItem_DrawControlChar';
procedure BMenuItem_SetSysTrigger(AObject : TCPlusObject; ch : Char); cdecl; external BePascalLibName name 'BMenuItem_SetSysTrigger';
procedure BMenuItem_char *fLabel(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char *fLabel';
procedure BMenuItem_BMenu *fSubmenu(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BMenu *fSubmenu';
procedure BMenuItem_BWindow *fWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BWindow *fWindow';
procedure BMenuItem_BMenu *fSuper(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BMenu *fSuper';
procedure BMenuItem_BRect fBounds(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_BRect fBounds';
procedure BMenuItem_uint32 fModifiers(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_uint32 fModifiers';
procedure BMenuItem_float fCachedWidth(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_float fCachedWidth';
procedure BMenuItem_int16 fTriggerIndex(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_int16 fTriggerIndex';
procedure BMenuItem_char fUserTrigger(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char fUserTrigger';
procedure BMenuItem_char fSysTrigger(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char fSysTrigger';
procedure BMenuItem_char fShortcutChar(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_char fShortcutChar';
procedure BMenuItem_bool fMark(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_bool fMark';
procedure BMenuItem_bool fEnabled(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_bool fEnabled';
procedure BMenuItem_bool fSelected(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_bool fSelected';
procedure BMenuItem_uint32 _reserved[4](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuItem_uint32 _reserved[4]';
}
function BSeparatorItem_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BSeparatorItem_Create';
function BSeparatorItem_Create(AObject : TBeObject; data : TCPlusObject) : TCPlusObject; cdecl; external BePascalLibName name 'BSeparatorItem_Create_1';
procedure BSeparatorItem_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem_Free';
function BSeparatorItem_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BSeparatorItem_Archive';
function BSeparatorItem_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BSeparatorItem_Instantiate';
procedure BSeparatorItem_SetEnabled(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BSeparatorItem_SetEnabled';
procedure BSeparatorItem_GetContentSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BSeparatorItem_GetContentSize';
//procedure BSeparatorItem_Draw(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem_Draw';
{procedure BSeparatorItem__ReservedSeparatorItem1(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem__ReservedSeparatorItem1';
procedure BSeparatorItem__ReservedSeparatorItem2(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem__ReservedSeparatorItem2';
function BSeparatorItem_operator=(AObject : TCPlusObject; : TSeparatorItem) : TSeparatorItem; cdecl; external BePascalLibName name 'BSeparatorItem_operator=';
procedure BSeparatorItem_uint32 _reserved[1](AObject : TCPlusObject); cdecl; external BePascalLibName name 'BSeparatorItem_uint32 _reserved[1]';
}
implementation
{procedure PMenu_Info.float font_size;
@@ -732,25 +734,39 @@ begin
menu_info_bool triggers_always_shown(CPlusObject);
end;
}
constructor TMenu.Create;
{constructor TMenu.Create;
begin
CPlusObject := BMenu_Create(Self);
CPlusObject := BMenu_Create_0(Self);
end;
}
constructor TMenu.Create(title : PChar; width : double; height : double);
begin
CPlusObject := BMenu_Create(Self, title, width, height);
end;
constructor TMenu.Create(title : PChar; layout : TMenu_Layout);
begin
// CPlusObject := BMenu_Create(Self, title, 0);
case layout of
B_ITEMS_IN_ROW : CPlusObject := BMenu_Create(Self, title, 0);
B_ITEMS_IN_COLUMN : CPlusObject := BMenu_Create(Self, title, 1);
B_ITEMS_IN_MATRIX : CPlusObject := BMenu_Create(Self, title, 2);
end;
end;
destructor TMenu.Destroy;
begin
BMenu_Free(CPlusObject);
end;
constructor TMenu.Create(data : TMessage);
{constructor TMenu.Create(data : TMessage);
begin
CPlusObject := BMenu_Create(Self, data.CPlusObject);
end;
}
function TMenu.Instantiate(data : TMessage) : TArchivable;
begin
@@ -772,43 +788,89 @@ begin
// BMenu_DetachedFromWindow(CPlusObject);
end;
function TMenu.AddItem(item : TMenuItem) : boolean;
begin
WriteLn('function TMenu.AddItem(item : TMenuItem) : boolean;');
Result := BMenu_AddItem(CPlusObject, item.CPlusObject);
Result := BMenu_AddItem_1(CPlusObject, item.CPlusObject);
end;
function TMenu.AddItem(item : TMenuItem; index : integer) : boolean;
begin
WriteLn('function TMenu.AddItem(item : TMenuItem; index : integer) : boolean;');
Result := BMenu_AddItem(CPlusObject, item.CPlusObject, index);
Result := BMenu_AddItem_2(CPlusObject, item.CPlusObject, index);
end;
function TMenu.AddItem(item : TMenuItem; frame : TRect) : boolean;
begin
WriteLn('ici');
WriteLn('function TMenu.AddItem(item : TMenuItem; frame : TRect) : boolean;');
Result := BMenu_AddItem(CPlusObject, item.CPlusObject, frame.CPlusObject);
frame.PrintToStream;
Writeln('toto');
Result := BMenu_AddItem_3(CPlusObject, item.CPlusObject, frame.CPlusObject);
end;
function TMenu.AddItem(menu : TMenu) : boolean;
begin
WriteLn('function TMenu.AddItem(menu : TMenu) : boolean;');
Result := BMenu_AddItem_2(CPlusObject, menu.CPlusObject);
WriteLn('Bonjour');
Result := BMenu_AddItem_4(CPlusObject, menu.CPlusObject);
end;
function TMenu.AddItem(menu : TMenu; index : integer) : boolean;
begin
WriteLn('function TMenu.AddItem(menu : TMenu; index : integer) : boolean;');
Result := BMenu_AddItem_2(CPlusObject, menu.CPlusObject, index);
Result := BMenu_AddItem_5(CPlusObject, menu.CPlusObject, index);
end;
function TMenu.AddItem(menu : TMenu; frame : TRect) : boolean;
begin
WriteLn('function TMenu.AddItem(menu : TMenu; frame : TRect) : boolean;');
Result := BMenu_AddItem_2(CPlusObject, menu.CPlusObject, frame.CPlusObject);
Result := BMenu_AddItem_6(CPlusObject, menu.CPlusObject, frame.CPlusObject);
end;
{function TMenu.AddItem(item : TMenuItem) : boolean;
begin
WriteLn('function TMenu.AddItem(item : TMenuItem) : boolean;');
Result := BMenu_AddItem_1(CPlusObject, item.CPlusObject);
end;
function TMenu.AddItem(item : TMenuItem; index : integer) : boolean;
begin
WriteLn('function TMenu.AddItem(item : TMenuItem; index : integer) : boolean;');
Result := BMenu_AddItem_2(CPlusObject, item.CPlusObject, index);
end;
function TMenu.AddItem(item : TMenuItem; frame : TRect) : boolean;
begin
WriteLn('ici');
WriteLn('function TMenu.AddItem(item : TMenuItem; frame : TRect) : boolean;');
frame.PrintToStream;
Writeln('toto');
Result := BMenu_AddItem_3(CPlusObject, item.CPlusObject, frame.CPlusObject);
end;
function TMenu.AddItem(menu : TMenu) : boolean;
begin
WriteLn('function TMenu.AddItem(menu : TMenu) : boolean;');
WriteLn('Bonjour');
Result := BMenu_AddItem_4(CPlusObject, menu.CPlusObject);
end;
function TMenu.AddItem(menu : TMenu; index : integer) : boolean;
begin
WriteLn('function TMenu.AddItem(menu : TMenu; index : integer) : boolean;');
Result := BMenu_AddItem_5(CPlusObject, menu.CPlusObject, index);
end;
function TMenu.AddItem(menu : TMenu; frame : TRect) : boolean;
begin
WriteLn('function TMenu.AddItem(menu : TMenu; frame : TRect) : boolean;');
Result := BMenu_AddItem_6(CPlusObject, menu.CPlusObject, frame.CPlusObject);
end;
}
function TMenu.AddList(list : TList; index : integer) : boolean;
begin
Result := BMenu_AddList(CPlusObject, list.CPlusObject, index);
@@ -1520,7 +1582,7 @@ end;
constructor TMenuItem.Create;
begin
CPlusObject := BMenuItem_Create(Self);
// CPlusObject := BMenuItem_Create(Self);
end;
constructor TMenuItem.Create(aMenu : TMenu; message : TMessage);

View File

@@ -77,8 +77,8 @@ type
}
end;
function BMenuBar_Create(AObject : TBeObject; frame : TCPlusObject; viewName : PChar; resizingMode : Cardinal; layout : TMenu_Layout; resizeToFit : boolean) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuBar_Create';
function BMenuBar_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuBar_Create';
function BMenuBar_Create(AObject : TBeObject; frame : TCPlusObject; viewName : PChar; resizingMode : Cardinal; layout : Integer; resizeToFit : boolean) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuBar_Create';
//function BMenuBar_Create(AObject : TBeObject) : TCPlusObject; cdecl; external BePascalLibName name 'BMenuBar_Create';
procedure BMenuBar_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BMenuBar_Free';
function BMenuBar_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BMenuBar_Instantiate';
function BMenuBar_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BMenuBar_Archive';
@@ -127,13 +127,13 @@ implementation
constructor TMenuBar.Create(frame : TRect; viewName : PChar; resizingMode : Cardinal; layout : TMenu_Layout; resizeToFit : boolean);
begin
CPlusObject := BMenuBar_Create(Self, frame.CPlusObject, viewName, resizingMode, layout, resizeToFit);
CPlusObject := BMenuBar_Create(Self, frame.CPlusObject, viewName, resizingMode, 0, resizeToFit);
end;
constructor TMenuBar.Create;
begin
CreatePas;
CPlusObject := BMenuBar_Create(Self);
// CPlusObject := BMenuBar_Create_1(Self);
end;
destructor TMenuBar.Destroy;

View File

@@ -30,6 +30,12 @@ class BPMenuItem : public BMenuItem, virtual public BPasObject
BPMenuItem(TPasObject PasObject, BMenu *submenu, BMessage *message = NULL);
BPMenuItem(TPasObject PasObejct, BMessage *data);
virtual void Draw(void);
virtual void DrawContent(void);
virtual void GetContentSize(float *width, float *height);
virtual void TruncateLabel(float max, char *new_label);
virtual void Highlight(bool on);
bool IsSelected() const;
BPoint ContentLocation() const;
private:
};
@@ -39,6 +45,7 @@ class BPSeparatorItem : public BSeparatorItem, virtual public BPMenuItem
BPSeparatorItem(TPasObject PasObject);
BPSeparatorItem(TPasObject PasObject, BMessage *data);
virtual void Draw(void);
virtual void DrawContent(void);
};
#endif /* _MENUITEM_H_ */