ListView, OutlineListView, and Alert support by baldur

This commit is contained in:
ocoursiere
2003-03-30 15:01:44 +00:00
parent a826637324
commit 57dab374cd
9 changed files with 4479 additions and 0 deletions

View File

@@ -0,0 +1,534 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2003 Olivier Coursiere
Eric Jourde
Oscar Lesta
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _ALERT_CPP_
#define _ALERT_CPP_
#include <Alert.h>
#include "window.h"
#include "looper.h"
#include <beobj.h>
/*----------------------------------------------------------------*/
/*----- BAlert class ---------------------------------------------*/
class BPAlert : public BAlert, public virtual BPWindow // Is this OK? or should be public virtual?
{
public:
BPAlert(TPasObject PasObject,
const char *title,
const char *text,
const char *button1,
const char *button2 = NULL,
const char *button3 = NULL,
button_width width = B_WIDTH_AS_USUAL,
alert_type type = B_INFO_ALERT);
BPAlert(TPasObject PasObject,
const char *title,
const char *text,
const char *button1,
const char *button2,
const char *button3,
button_width width,
button_spacing spacing,
alert_type type = B_INFO_ALERT);
BPAlert(TPasObject PasObject, BMessage *data);
//virtual ~BAlert();
/* Archiving */
static BArchivable *Instantiate(BMessage *data);
//virtual status_t Archive(BMessage *data, bool deep = true) const;
/* BAlert guts */
void SetShortcut(int32 button_index, char key);
char Shortcut(int32 button_index) const;
int32 Go();
status_t Go(BInvoker *invoker);
virtual void MessageReceived(BMessage *an_event);
virtual void FrameResized(float new_width, float new_height);
BButton *ButtonAt(int32 index) const;
BTextView *TextView() const;
/*
virtual BHandler *ResolveSpecifier(BMessage *msg,
int32 index,
BMessage *specifier,
int32 form,
const char *property);
virtual status_t GetSupportedSuites(BMessage *data);
*/
virtual void DispatchMessage(BMessage *msg, BHandler *handler);
virtual void Quit();
virtual bool QuitRequested();
static BPoint AlertPosition(float width, float height);
/*----- Private or reserved -----------------------------------------*/
//virtual status_t Perform(perform_code d, void *arg);
private:
/*
friend class _BAlertFilter_;
virtual void _ReservedAlert1();
virtual void _ReservedAlert2();
virtual void _ReservedAlert3();
void InitObject(const char *text,
const char *button1,
const char *button2 = NULL,
const char *button3 = NULL,
button_width width = B_WIDTH_AS_USUAL,
button_spacing spacing = B_EVEN_SPACING,
alert_type type = B_INFO_ALERT);
BBitmap *InitIcon();
sem_id fAlertSem;
int32 fAlertVal;
BButton *fButtons[3];
BTextView *fTextView;
char fKeys[3];
alert_type fMsgType;
button_width fButtonWidth;
BInvoker *fInvoker;
uint32 _reserved[4];
*/
};
/*-------------------------------------------------------------*/
/*-------------------------------------------------------------*/
BPAlert::BPAlert(TPasObject PasObject,
const char *title,
const char *text,
const char *button1,
const char *button2 = NULL,
const char *button3 = NULL,
button_width width = B_WIDTH_AS_USUAL,
alert_type type = B_INFO_ALERT)
: BAlert(title, text, button1, button2, button3, width, type),
BPWindow(PasObject, BRect(), title, B_UNTYPED_WINDOW, 0, 0),
// oco or Baldur :
// why this doesn't work? compiler says:
// BPWindow doesn't have a BPLooper member. The same with BPArchivable.
// BPLooper(PasObject),
BPHandler(PasObject, title),
// BPArchivable(PasObject),
BPasObject(PasObject)
{
}
BPAlert::BPAlert(TPasObject PasObject,
const char *title,
const char *text,
const char *button1,
const char *button2,
const char *button3,
button_width width,
button_spacing spacing,
alert_type type = B_INFO_ALERT)
: BAlert(title, text, button1, button2, button3, width, spacing, type),
BPWindow(PasObject, BRect(), title, B_UNTYPED_WINDOW, 0, 0),
// BPLooper(PasObject),
BPHandler(PasObject, title),
// BPArchivable(PasObject),
BPasObject(PasObject)
{
}
BPAlert::BPAlert(TPasObject PasObject, BMessage *data)
: BAlert(data),
// UGLY HACK!!! FIX ME!!! (should be "BPWindow(PasObject, data)" )
BPWindow(PasObject, BRect(), "Ugly_Hack!", B_UNTYPED_WINDOW, 0, 0),
// BPLooper(PasObject),
BPHandler(PasObject),
// BPArchivable(PasObject),
BPasObject(PasObject)
{
}
void
BPAlert::SetShortcut(int32 button_index, char key)
{
BAlert::SetShortcut(button_index, key);
}
char
BPAlert::Shortcut(int32 button_index) const
{
return BAlert::Shortcut(button_index);
}
int32
BPAlert::Go(void)
{
return BAlert::Go();
}
status_t
BPAlert::Go(BInvoker *invoker)
{
return BAlert::Go(invoker);
}
void
BPAlert::MessageReceived(BMessage *an_event)
{
BAlert::MessageReceived(an_event);
}
void
BPAlert::FrameResized(float new_width, float new_height)
{
BAlert::FrameResized(new_width, new_height);
}
void
BPAlert::DispatchMessage(BMessage *msg, BHandler *handler)
{
BAlert::DispatchMessage(msg, handler);
}
void
BPAlert::Quit(void)
{
BAlert::Quit();
}
bool
BPAlert::QuitRequested(void)
{
BAlert::QuitRequested();
}
/*-------------------------------------------------------------*/
#if defined(__cplusplus)
extern "C" {
#endif
/*----------------------------------------------------------------*/
/*
* Method: BAlert::BAlert()
* Descr:
*/
TCPlusObject BAlert_Create(TPasObject PasObject, const char *title, const char *text, const char *button1, const char *button2, const char *button3, button_width width, alert_type type)
{
return new BPAlert(PasObject, title, text, button1, button2, button3, width, type);
}
/*
* Method: BAlert::BAlert()
* Descr:
*/
TCPlusObject BAlert_Create_1
(TPasObject PasObject, const char *title, const char *text, const char *button1, const char *button2, const char *button3, button_width width, button_spacing spacing, alert_type type)
{
return new BPAlert(PasObject, title, text, button1, button2, button3, width, spacing, type);
}
/*
* Method: BAlert::BAlert()
* Descr:
*/
TCPlusObject BAlert_Create_2(TPasObject PasObject, BMessage *data)
{
return new BPAlert(PasObject, data);
}
/*
* Method: BAlert::~BAlert()
* Descr:
*/
TCPlusObject BAlert_Free(BAlert *Alert)
{
delete Alert;
}
/*
* Method: BAlert::Instantiate()
* Descr:
*/
BArchivable *
BAlert_Instantiate(BAlert *Alert, BMessage *data)
{
return Alert->Instantiate(data);
}
/*
* Method: BAlert::Archive()
* Descr:
*/
status_t
BAlert_Archive(BAlert *Alert, BMessage *data, bool deep)
{
return Alert->Archive(data, deep);
}
/*
* Method: BAlert::SetShortcut()
* Descr:
*/
void
BAlert_SetShortcut(BAlert *Alert, int32 button_index, char key)
{
Alert->SetShortcut(button_index, key);
}
/*
* Method: BAlert::Shortcut()
* Descr:
*/
char
BAlert_Shortcut(BAlert *Alert, int32 button_index)
{
return Alert->Shortcut(button_index);
}
/*
* Method: BAlert::Go()
* Descr:
*/
int32
BAlert_Go(BAlert *Alert)
{
return Alert->Go();
}
/*
* Method: BAlert::Go()
* Descr:
*/
status_t
BAlert_Go_1
(BAlert *Alert, BInvoker *invoker)
{
return Alert->Go(invoker);
}
/*
* Method: BAlert::MessageReceived()
* Descr:
*/
void
BAlert_MessageReceived(BAlert *Alert, BMessage *an_event)
{
Alert->MessageReceived(an_event);
}
/*
* Method: BAlert::FrameResized()
* Descr:
*/
void
BAlert_FrameResized(BAlert *Alert, float new_width, float new_height)
{
Alert->FrameResized(new_width, new_height);
}
/*
* Method: BAlert::ButtonAt()
* Descr:
*/
BButton *
BAlert_ButtonAt(BAlert *Alert, int32 index)
{
return Alert->ButtonAt(index);
}
/*
* Method: BAlert::TextView()
* Descr:
*/
BTextView *
BAlert_TextView(BAlert *Alert)
{
return Alert->TextView();
}
/*
* Method: BAlert::ResolveSpecifier()
* Descr:
*/
BHandler *
BAlert_ResolveSpecifier(BAlert *Alert, BMessage *msg, int32 index, BMessage *specifier, int32 form, const char *property)
{
return Alert->ResolveSpecifier(msg, index, specifier, form, property);
}
/*
* Method: BAlert::GetSupportedSuites()
* Descr:
*/
status_t
BAlert_GetSupportedSuites(BAlert *Alert, BMessage *data)
{
return Alert->GetSupportedSuites(data);
}
/*
* Method: BAlert::DispatchMessage()
* Descr:
*/
void
BAlert_DispatchMessage(BAlert *Alert, BMessage *msg, BHandler *handler)
{
Alert->DispatchMessage(msg, handler);
}
/*
* Method: BAlert::Quit()
* Descr:
*/
void
BAlert_Quit(BAlert *Alert)
{
Alert->Quit();
}
/*
* Method: BAlert::QuitRequested()
* Descr:
*/
bool
BAlert_QuitRequested(BAlert *Alert)
{
return Alert->QuitRequested();
}
/*
* Method: BAlert::AlertPosition()
* Descr:
*/
BPoint
BAlert_AlertPosition(BAlert *Alert, float width, float height)
{
return Alert->AlertPosition(width, height);
}
/*
* Method: BAlert::Perform()
* Descr:
*/
/*
status_t
BAlert_Perform(BAlert *Alert, perform_code d, void *arg)
{
return Alert->Perform(d, arg);
}
*/
/*
* Method: BAlert::_ReservedAlert1()
* Descr:
*/
/*
void
BAlert__ReservedAlert1(BAlert *Alert)
{
Alert->_ReservedAlert1();
}
*/
/*
* Method: BAlert::_ReservedAlert2()
* Descr:
*/
/*
void
BAlert__ReservedAlert2(BAlert *Alert)
{
Alert->_ReservedAlert2();
}
*/
/*
* Method: BAlert::_ReservedAlert3()
* Descr:
*/
/*
void
BAlert__ReservedAlert3(BAlert *Alert)
{
Alert->_ReservedAlert3();
}
*/
/*
* Method: BAlert::InitObject()
* Descr:
*/
/*
void
BAlert_InitObject(BAlert *Alert, const char *text, const char *button1, const char *button2, const char *button3, button_width width, button_spacing spacing, alert_type type)
{
Alert->InitObject(text, button1, button2, button3, width, spacing, type);
}
*/
/*
* Method: BAlert::InitIcon()
* Descr:
*/
/*
BBitmap *
BAlert_InitIcon(BAlert *Alert)
{
return Alert->InitIcon();
}
*/
/*----------------------------------------------------------------*/
#if defined(__cplusplus)
}
#endif
/*----------------------------------------------------------------*/
#endif /* _ALERT_CPP_ */

View File

@@ -0,0 +1,503 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _LISTITEM_CPP_
#define _LISTITEM_CPP_
/***********************************************************************
* AUTHOR: nobody <baron>
* FILE: StringView.cpp
* DATE: Mon Jan 13 21:52:29 2003
* DESCR:
***********************************************************************/
#include "ListItem.h"
#include <beobj.h>
typedef void (*BListItem_DrawItem_hook) (TPasObject PasObject, TCPlusObject owner, TCPlusObject frame, bool complete );
typedef void (*BListString_DrawItem_hook) (TPasObject PasObject, TCPlusObject owner, TCPlusObject frame, bool complete );
typedef void (*BListItem_Update_hook) (TPasObject PasObject, TCPlusObject owner, TCPlusObject font);
typedef void (*BListString_Update_hook) (TPasObject PasObject, TCPlusObject owner, TCPlusObject font);
#if defined(__cplusplus)
extern "C" {
#endif
BListItem_DrawItem_hook ListItem_DrawItem_hook;
BListString_DrawItem_hook ListString_DrawItem_hook;
BListItem_Update_hook ListItem_Update_hook;
BListString_Update_hook ListString_Update_hook;
#if defined(__cplusplus)
}
#endif
////////////////////////////////////////
// BPListItem
////////////////////////////////////////
class BPListItem : public BListItem, virtual public BPasObject
{
public:
BPListItem(TPasObject PasObject,BMessage *data);
BPListItem(TPasObject PasObject,uint32 outlineLevel = 0, bool expanded = true);
virtual void DrawItem(BView *owner, BRect frame, bool complete = false);
virtual void Update(BView *owner, const BFont *font);
private:
};
BPListItem::BPListItem(TPasObject PasObject,BMessage *data)
:BListItem(data),
BPasObject(PasObject)
{
}
BPListItem::BPListItem(TPasObject PasObject, uint32 outlineLevel = 0, bool expanded = true)
:BListItem(outlineLevel,expanded),
BPasObject(PasObject)
{
}
void BPListItem::Update(BView *owner, const BFont *font)
{
ListItem_Update_hook(GetPasObject(), &owner, &font);
}
void BPListItem::DrawItem(BView *owner, BRect frame, bool complete = false)
{
//BListItem::DrawItem(owner, frame, complete);
ListItem_DrawItem_hook(GetPasObject(), &owner, &frame, complete);
}
////////////////////////////////////////
// BPStringItem
////////////////////////////////////////
class BPStringItem : public BStringItem , virtual public BPasObject
{
public:
BPStringItem(TPasObject PasObject,const char *text,uint32 outlineLevel = 0, bool expanded = true);
BPStringItem(TPasObject PasObject,BMessage *data);
virtual void DrawItem(BView *owner, BRect frame, bool complete = false);
virtual void Update(BView *owner, const BFont *font);
private:
};
BPStringItem::BPStringItem(TPasObject PasObject,const char *text,uint32 outlineLevel = 0, bool expanded = true)
:BStringItem(text,outlineLevel,expanded),
//BPListItem(PasObject,outlineLevel,expanded),
BPasObject(PasObject)
{
}
BPStringItem::BPStringItem(TPasObject PasObject,BMessage *data)
:BStringItem(data),
//BPListItem(PasObject),
BPasObject(PasObject)
{
}
void BPStringItem::DrawItem(BView *owner, BRect frame, bool complete = false)
{
BStringItem::DrawItem(owner, frame, complete);
ListString_DrawItem_hook(GetPasObject(), &owner, &frame, complete);
}
void BPStringItem::Update(BView *owner, const BFont *font)
{
BStringItem::Update(owner, font);
ListString_Update_hook(GetPasObject(), &owner, &font);
}
#if defined(__cplusplus)
extern "C" {
#endif
/***********************************************************************
* AUTHOR: nobody <baron>
* FILE: ListItem.cpp
* DATE: Mon Feb 3 20:25:49 2003
* DESCR:
***********************************************************************/
TCPlusObject BListItem_Create(TPasObject PasObject, uint32 outlineLevel, bool expanded)
{
return new BPListItem(PasObject, outlineLevel, expanded);
}
/***********************************************************************
* Method: BListItem::BListItem
* Params: BMessage *data
* Effects:
***********************************************************************/
TCPlusObject BListItem_Create_1(TPasObject PasObject, BMessage *data)
{
return new BPListItem(PasObject, data);
}
/***********************************************************************
* Method: BListItem::~BListItem
* Params:
* Effects:
***********************************************************************/
void BListItem_Free(BListItem *ListItem)
{
delete ListItem;
}
/***********************************************************************
* Method: BListItem::Archive
* Params: BMessage *data, bool deep
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BListItem_Archive(BListItem *ListItem, BMessage *data, bool deep)
{
return ListItem->Archive(data, deep);
}
/***********************************************************************
* Method: BListItem::Height
* Params:
* Returns: float
* Effects:
***********************************************************************/
float
BListItem_Height(BListItem *ListItem)
{
return ListItem->Height();
}
/***********************************************************************
* Method: BListItem::Width
* Params:
* Returns: float
* Effects:
***********************************************************************/
float
BListItem_Width(BListItem *ListItem)
{
return ListItem->Width();
}
/***********************************************************************
* Method: BListItem::IsSelected
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BListItem_IsSelected(BListItem *ListItem)
{
return ListItem->IsSelected();
}
/***********************************************************************
* Method: BListItem::Select
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_Select(BListItem *ListItem)
{
ListItem->Select();
}
/***********************************************************************
* Method: BListItem::Deselect
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_Deselect(BListItem *ListItem)
{
ListItem->Deselect();
}
/***********************************************************************
* Method: BListItem::SetEnabled
* Params: bool on
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_SetEnabled(BListItem *ListItem, bool on)
{
ListItem->SetEnabled(on);
}
/***********************************************************************
* Method: BListItem::IsEnabled
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BListItem_IsEnabled(BListItem *ListItem)
{
return ListItem->IsEnabled();
}
/***********************************************************************
* Method: BListItem::SetHeight
* Params: float height
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_SetHeight(BListItem *ListItem, float height)
{
ListItem->SetHeight(height);
}
/***********************************************************************
* Method: BListItem::SetWidth
* Params: float width
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_SetWidth(BListItem *ListItem, float width)
{
ListItem->SetWidth(width);
}
/***********************************************************************
* Method: BListItem::Update
* Params: BView *owner, const BFont *font
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_Update(BListItem *ListItem, BView *owner, const BFont *font)
{
ListItem->Update(owner, font);
}
/***********************************************************************
* Method: BListItem::Perform
* Params: perform_code d, void *arg
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BListItem_Perform(BListItem *ListItem, perform_code d, void *arg)
{
return ListItem->Perform(d, arg);
}
/***********************************************************************
* Method: BListItem::IsExpanded
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BListItem_IsExpanded(BListItem *ListItem)
{
return ListItem->IsExpanded();
}
/***********************************************************************
* Method: BListItem::SetExpanded
* Params: bool expanded
* Returns: void
* Effects:
***********************************************************************/
void
BListItem_SetExpanded(BListItem *ListItem, bool expanded)
{
ListItem->SetExpanded(expanded);
}
/***********************************************************************
* Method: BListItem::OutlineLevel
* Params:
* Returns: uint32
* Effects:
***********************************************************************/
uint32
BListItem_OutlineLevel(BListItem *ListItem)
{
return ListItem->OutlineLevel();
}
void BListItem_DrawItem(BListItem *ListItem, BView *owner, BRect frame, bool complete)
{
ListItem->DrawItem(owner, frame, complete);
}
TCPlusObject BStringItem_Create(TPasObject PasObject, const char *text, uint32 outlineLevel, bool expanded)
{
return new BPStringItem(PasObject, text, outlineLevel, expanded);
}
/***********************************************************************
* Method: BStringItem::~BStringItem
* Params:
* Effects:
***********************************************************************/
void BStringItem_Free(BStringItem *StringItem)
{
return StringItem->~BStringItem();
}
/***********************************************************************
* Method: BStringItem::BStringItem
* Params: BMessage *data
* Effects:
***********************************************************************/
TCPlusObject BStringItem_Create_1(TPasObject PasObject, BMessage *data)
{
return new BPStringItem(PasObject, data);
}
/***********************************************************************
* Method: BStringItem::Instantiate
* Params: BMessage *data
* Returns: BArchivable *
* Effects:
***********************************************************************/
BArchivable *
BStringItem_Instantiate(BStringItem *StringItem, BMessage *data)
{
return StringItem->Instantiate(data);
}
/***********************************************************************
* Method: BStringItem::Archive
* Params: BMessage *data, bool deep
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BStringItem_Archive(BStringItem *StringItem, BMessage *data, bool deep)
{
return StringItem->Archive(data, deep);
}
/***********************************************************************
* Method: BStringItem::DrawItem
* Params: BView *owner, BRect frame, bool complete
* Returns: void
* Effects:
***********************************************************************/
void
BStringItem_DrawItem(BStringItem *StringItem, BView *owner, BRect frame, bool complete)
{
StringItem->DrawItem(owner, frame, complete);
}
/***********************************************************************
* Method: BStringItem::SetText
* Params: const char *text
* Returns: void
* Effects:
***********************************************************************/
void
BStringItem_SetText(BStringItem *StringItem, const char *text)
{
StringItem->SetText(text);
}
/***********************************************************************
* Method: BStringItem::Text
* Params:
* Returns: const char *
* Effects:
***********************************************************************/
const char *
BStringItem_Text(BStringItem *StringItem)
{
return StringItem->Text();
}
/***********************************************************************
* Method: BStringItem::Update
* Params: BView *owner, const BFont *font
* Returns: void
* Effects:
***********************************************************************/
void
BStringItem_Update(BStringItem *StringItem, BView *owner, const BFont *font)
{
StringItem->Update(owner, font);
}
/***********************************************************************
* Method: BStringItem::Perform
* Params: perform_code d, void *arg
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BStringItem_Perform(BStringItem *StringItem, perform_code d, void *arg)
{
return StringItem->Perform(d, arg);
}
#if defined(__cplusplus)
}
#endif
#endif /* _LISTITEM_CPP_ */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,755 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _OUTLINELISTVIEW_CPP_
#define _OUTLINELISTVIEW_CPP_
#include "OutlineListView.h"
#include "view.h"
#include <beobj.h>
#include "listview.h"
#if defined(__cplusplus)
extern "C" {
#endif
#if defined(__cplusplus)
}
#endif
class BPOutlineListView : public BOutlineListView, virtual public BPListView
{
public:
BPOutlineListView(TPasObject PasObject,BRect frame,
const char * name,
list_view_type type = B_SINGLE_SELECTION_LIST,
uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS
| B_NAVIGABLE);
BPOutlineListView(TPasObject PasObject,BMessage *data);
static BArchivable *Instantiate(BMessage *data);
//virtual status_t Archive(BMessage *data, bool deep = true) const;
virtual void MouseDown(BPoint where);
virtual void KeyDown(const char *bytes, int32 numBytes);
//virtual void FrameMoved(BPoint new_position);
virtual void FrameResized(float new_width, float new_height);
virtual void MouseUp(BPoint where);
//virtual void ResizeToPreferred();
//virtual void GetPreferredSize(float *width, float *height);
//virtual void MakeFocus(bool state = true);
virtual void AllAttached();
virtual void AllDetached();
virtual void DetachedFromWindow();
//virtual bool DoMiscellaneous(MiscCode code, MiscData * data);
virtual void MessageReceived(BMessage *);
};
BPOutlineListView::BPOutlineListView(TPasObject PasObject,BMessage *data)
:BOutlineListView(data),
BPListView(PasObject, data),
BPView(PasObject, data),
BPHandler(PasObject, data),
BPasObject(PasObject)
{
}
BPOutlineListView::BPOutlineListView(TPasObject PasObject,BRect frame,
const char * name,
list_view_type type = B_SINGLE_SELECTION_LIST,
uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS
| B_NAVIGABLE)
:BOutlineListView(frame,name,type,resizeMask,flags),
BPListView(PasObject, frame,name,type,resizeMask,flags),
BPView(PasObject, frame,name,resizeMask,flags),
BPHandler(PasObject, name),
BPasObject(PasObject)
{
}
void BPOutlineListView::MessageReceived(BMessage *message)
{
MessageReceived_hookCall(message);
BOutlineListView::MessageReceived(message);
}
void BPOutlineListView::AllAttached(void)
{
//AllAttached_hookCall();
BOutlineListView::AllAttached();
}
void BPOutlineListView::AllDetached(void)
{
//AllDetached_hookCall();
BOutlineListView::AllDetached();
}
void BPOutlineListView::KeyDown(const char *bytes, int32 numBytes)
{
BOutlineListView::KeyDown(bytes, numBytes);
}
void BPOutlineListView::FrameResized(float width, float height)
{
FrameResized_hookCall(width, height);
BOutlineListView::FrameResized(width, height);
}
void BPOutlineListView::DetachedFromWindow(void)
{
BOutlineListView::DetachedFromWindow();
}
void BPOutlineListView::MouseDown(BPoint point)
{
BOutlineListView::MouseDown(point);
}
void BPOutlineListView::MouseUp(BPoint point)
{
BOutlineListView::MouseUp(point);
}
#if defined(__cplusplus)
extern "C" {
#endif
/***********************************************************************
* AUTHOR: nobody <baron>
* FILE: OutlineListView.cpp
* DATE: Tue Mar 4 20:12:11 2003
* DESCR:
***********************************************************************/
/***********************************************************************
* Method: BOutlineListView::BOutlineListView
* Params: BMessage *data
* Effects:
***********************************************************************/
TCPlusObject BOutlineListView_Create(TPasObject PasObject,BRect frame,
const char * name,
list_view_type type = B_SINGLE_SELECTION_LIST,
uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS
| B_NAVIGABLE)
{
return new BPOutlineListView(PasObject, frame,name,type,resizeMask,flags);
}
TCPlusObject BOutlineListView_Create_1(TPasObject PasObject, BMessage *data)
{
return new BPOutlineListView(PasObject, data);
}
/***********************************************************************
* Method: BOutlineListView::~BOutlineListView
* Params:
* Effects:
***********************************************************************/
void BOutlineListView_Free(BOutlineListView *OutlineListView)
{
delete OutlineListView;
}
/***********************************************************************
* Method: BOutlineListView::Instantiate
* Params: BMessage *data
* Returns: BArchivable *
* Effects:
***********************************************************************/
BArchivable *
BOutlineListView_Instantiate(BOutlineListView *OutlineListView, BMessage *data)
{
return OutlineListView->Instantiate(data);
}
/***********************************************************************
* Method: BOutlineListView::Archive
* Params: BMessage *data, bool deep
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BOutlineListView_Archive(BOutlineListView *OutlineListView, BMessage *data, bool deep)
{
return OutlineListView->Archive(data, deep);
}
/***********************************************************************
* Method: BOutlineListView::MouseDown
* Params: BPoint where
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_MouseDown(BOutlineListView *OutlineListView, BPoint where)
{
OutlineListView->MouseDown(where);
}
/***********************************************************************
* Method: BOutlineListView::KeyDown
* Params: const char *bytes, int32 numBytes
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_KeyDown(BOutlineListView *OutlineListView, const char *bytes, int32 numBytes)
{
OutlineListView->KeyDown(bytes, numBytes);
}
/***********************************************************************
* Method: BOutlineListView::FrameMoved
* Params: BPoint new_position
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_FrameMoved(BOutlineListView *OutlineListView, BPoint new_position)
{
OutlineListView->FrameMoved(new_position);
}
/***********************************************************************
* Method: BOutlineListView::FrameResized
* Params: float new_width, float new_height
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_FrameResized(BOutlineListView *OutlineListView, float new_width, float new_height)
{
OutlineListView->FrameResized(new_width, new_height);
}
/***********************************************************************
* Method: BOutlineListView::MouseUp
* Params: BPoint where
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_MouseUp(BOutlineListView *OutlineListView, BPoint where)
{
OutlineListView->MouseUp(where);
}
/***********************************************************************
* Method: BOutlineListView::AddUnder
* Params: BListItem *item, BListItem *underItem
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_AddUnder(BOutlineListView *OutlineListView, BListItem *item, BListItem *underItem)
{
return OutlineListView->AddUnder(item, underItem);
}
/***********************************************************************
* Method: BOutlineListView::AddItem
* Params: BListItem *item
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_AddItem(BOutlineListView *OutlineListView, BListItem *item)
{
return OutlineListView->AddItem(item);
}
/***********************************************************************
* Method: BOutlineListView::AddItem
* Params: BListItem *item, int32 fullListIndex
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_AddItem_1
(BOutlineListView *OutlineListView, BListItem *item, int32 fullListIndex)
{
return OutlineListView->AddItem(item, fullListIndex);
}
/***********************************************************************
* Method: BOutlineListView::AddList
* Params: BList *newItems
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_AddList(BOutlineListView *OutlineListView, BList *newItems)
{
return OutlineListView->AddList(newItems);
}
/***********************************************************************
* Method: BOutlineListView::AddList
* Params: BList *newItems, int32 fullListIndex
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_AddList_1
(BOutlineListView *OutlineListView, BList *newItems, int32 fullListIndex)
{
return OutlineListView->AddList(newItems, fullListIndex);
}
/***********************************************************************
* Method: BOutlineListView::RemoveItem
* Params: BListItem *item
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_RemoveItem(BOutlineListView *OutlineListView, BListItem *item)
{
return OutlineListView->RemoveItem(item);
}
/***********************************************************************
* Method: BOutlineListView::RemoveItem
* Params: int32 fullListIndex
* Returns: BListItem *
* Effects:
***********************************************************************/
BListItem *
BOutlineListView_RemoveItem_1
(BOutlineListView *OutlineListView, int32 fullListIndex)
{
return OutlineListView->RemoveItem(fullListIndex);
}
/***********************************************************************
* Method: BOutlineListView::RemoveItems
* Params: int32 fullListIndex, int32 count
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_RemoveItems
(BOutlineListView *OutlineListView, int32 fullListIndex, int32 count)
{
return OutlineListView->RemoveItems(fullListIndex, count);
}
/***********************************************************************
* Method: BOutlineListView::FullListItemAt
* Params: int32 fullListIndex
* Returns: BListItem *
* Effects:
***********************************************************************/
BListItem *
BOutlineListView_FullListItemAt(BOutlineListView *OutlineListView, int32 fullListIndex)
{
return OutlineListView->FullListItemAt(fullListIndex);
}
/***********************************************************************
* Method: BOutlineListView::FullListIndexOf
* Params: BPoint point
* Returns: int32
* Effects:
***********************************************************************/
int32
BOutlineListView_FullListIndexOf(BOutlineListView *OutlineListView, BPoint point)
{
return OutlineListView->FullListIndexOf(point);
}
/***********************************************************************
* Method: BOutlineListView::FullListIndexOf
* Params: BListItem *item
* Returns: int32
* Effects:
***********************************************************************/
int32
BOutlineListView_FullListIndexOf_1
(BOutlineListView *OutlineListView, BListItem *item)
{
return OutlineListView->FullListIndexOf(item);
}
/***********************************************************************
* Method: BOutlineListView::FullListFirstItem
* Params:
* Returns: BListItem *
* Effects:
***********************************************************************/
BListItem *
BOutlineListView_FullListFirstItem(BOutlineListView *OutlineListView)
{
return OutlineListView->FullListFirstItem();
}
/***********************************************************************
* Method: BOutlineListView::FullListLastItem
* Params:
* Returns: BListItem *
* Effects:
***********************************************************************/
BListItem *
BOutlineListView_FullListLastItem(BOutlineListView *OutlineListView)
{
return OutlineListView->FullListLastItem();
}
/***********************************************************************
* Method: BOutlineListView::FullListHasItem
* Params: BListItem *item
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_FullListHasItem(BOutlineListView *OutlineListView, BListItem *item)
{
return OutlineListView->FullListHasItem(item);
}
/***********************************************************************
* Method: BOutlineListView::FullListCountItems
* Params:
* Returns: int32
* Effects:
***********************************************************************/
int32
BOutlineListView_FullListCountItems(BOutlineListView *OutlineListView)
{
return OutlineListView->FullListCountItems();
}
/***********************************************************************
* Method: BOutlineListView::FullListCurrentSelection
* Params: int32 index
* Returns: int32
* Effects:
***********************************************************************/
int32
BOutlineListView_FullListCurrentSelection(BOutlineListView *OutlineListView, int32 index)
{
return OutlineListView->FullListCurrentSelection(index);
}
/***********************************************************************
* Method: BOutlineListView::MakeEmpty
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_MakeEmpty(BOutlineListView *OutlineListView)
{
OutlineListView->MakeEmpty();
}
/***********************************************************************
* Method: BOutlineListView::FullListIsEmpty
* Params:
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_FullListIsEmpty(BOutlineListView *OutlineListView)
{
return OutlineListView->FullListIsEmpty();
}
/***********************************************************************
* Method: BOutlineListView::Superitem
* Params: const BListItem *item
* Returns: BListItem *
* Effects:
***********************************************************************/
BListItem *
BOutlineListView_Superitem(BOutlineListView *OutlineListView, const BListItem *item)
{
return OutlineListView->Superitem(item);
}
/***********************************************************************
* Method: BOutlineListView::Expand
* Params: BListItem *item
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_Expand(BOutlineListView *OutlineListView, BListItem *item)
{
OutlineListView->Expand(item);
}
/***********************************************************************
* Method: BOutlineListView::Collapse
* Params: BListItem *item
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_Collapse(BOutlineListView *OutlineListView, BListItem *item)
{
OutlineListView->Collapse(item);
}
/***********************************************************************
* Method: BOutlineListView::IsExpanded
* Params: int32 fullListIndex
* Returns: bool
* Effects:
***********************************************************************/
bool
BOutlineListView_IsExpanded(BOutlineListView *OutlineListView, int32 fullListIndex)
{
return OutlineListView->IsExpanded(fullListIndex);
}
/***********************************************************************
* Method: BOutlineListView::ResolveSpecifier
* Params: BMessage *msg, int32 index, BMessage *specifier, int32 form, const char *property
* Returns: BHandler *
* Effects:
***********************************************************************/
BHandler *
BOutlineListView_ResolveSpecifier(BOutlineListView *OutlineListView, BMessage *msg, int32 index, BMessage *specifier, int32 form, const char *property)
{
return OutlineListView->ResolveSpecifier(msg, index, specifier, form, property);
}
/***********************************************************************
* Method: BOutlineListView::GetSupportedSuites
* Params: BMessage *data
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BOutlineListView_GetSupportedSuites(BOutlineListView *OutlineListView, BMessage *data)
{
return OutlineListView->GetSupportedSuites(data);
}
/***********************************************************************
* Method: BOutlineListView::Perform
* Params: perform_code d, void *arg
* Returns: status_t
* Effects:
***********************************************************************/
status_t
BOutlineListView_Perform(BOutlineListView *OutlineListView, perform_code d, void *arg)
{
return OutlineListView->Perform(d, arg);
}
/***********************************************************************
* Method: BOutlineListView::ResizeToPreferred
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_ResizeToPreferred(BOutlineListView *OutlineListView)
{
OutlineListView->ResizeToPreferred();
}
/***********************************************************************
* Method: BOutlineListView::GetPreferredSize
* Params: float *width, float *height
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_GetPreferredSize(BOutlineListView *OutlineListView, float *width, float *height)
{
OutlineListView->GetPreferredSize(width, height);
}
/***********************************************************************
* Method: BOutlineListView::MakeFocus
* Params: bool state
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_MakeFocus(BOutlineListView *OutlineListView, bool state)
{
OutlineListView->MakeFocus(state);
}
/***********************************************************************
* Method: BOutlineListView::AllAttached
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_AllAttached(BOutlineListView *OutlineListView)
{
OutlineListView->AllAttached();
}
/***********************************************************************
* Method: BOutlineListView::AllDetached
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_AllDetached(BOutlineListView *OutlineListView)
{
OutlineListView->AllDetached();
}
/***********************************************************************
* Method: BOutlineListView::DetachedFromWindow
* Params:
* Returns: void
* Effects:
***********************************************************************/
void
BOutlineListView_DetachedFromWindow(BOutlineListView *OutlineListView)
{
OutlineListView->DetachedFromWindow();
}
/***********************************************************************
* Method: BOutlineListView::CountItemsUnder
* Params: BListItem *under, bool oneLevelOnly
* Returns: int32
* Effects:
***********************************************************************/
int32
BOutlineListView_CountItemsUnder(BOutlineListView *OutlineListView, BListItem *under, bool oneLevelOnly)
{
return OutlineListView->CountItemsUnder(under, oneLevelOnly);
}
/***********************************************************************
* Method: BOutlineListView::ItemUnderAt
* Params: BListItem *underItem, bool oneLevelOnly, int32 index
* Returns: BListItem *
* Effects:
***********************************************************************/
BListItem *
BOutlineListView_ItemUnderAt(BOutlineListView *OutlineListView, BListItem *underItem, bool oneLevelOnly, int32 index)
{
return OutlineListView->ItemUnderAt(underItem, oneLevelOnly, index);
}
/***********************************************************************
* Method: BOutlineListView::DoMiscellaneous
* Params: MiscCode code, MiscData *data
* Returns: bool
* Effects:
***********************************************************************/
/*bool
BOutlineListView_DoMiscellaneous(BOutlineListView *OutlineListView, MiscCode code, MiscData *data)
{
return OutlineListView->DoMiscellaneous(code, data);
}
*/
/***********************************************************************
* Method: BOutlineListView::MessageReceived
* Params: BMessage *
* Returns: void
* Effects:
***********************************************************************/
/*void
BOutlineListView_MessageReceived(BOutlineListView *OutlineListView, BMessage *)
{
OutlineListView->MessageReceived();
}*/
#if defined(__cplusplus)
}
#endif
#endif /* _OUTLINELISTVIEW_CPP_ */

View File

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

View File

@@ -0,0 +1,352 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit listitem;
interface
uses
beobj, interfacedefs,view,Message, Archivable, SupportDefs, Rect, Handler,font;
type
TListItem = class(TBeObject)
private
public
constructor Create(aoutlineLevel : longint; expanded : boolean );virtual;
constructor Create(data : TMessage);
destructor Destroy;override;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
function Height : double;
function Width : double;
function IsSelected : boolean;
procedure Select;
procedure Deselect;
procedure SetEnabled(aon : boolean);
function IsEnabled : boolean;
procedure SetHeight(aheight : double);
procedure SetWidth(awidth : double);
procedure DrawItem(owner : TView; bounds : TRect; complete : boolean);
procedure Update(owner : TView; font : TFont);
// function Perform(d : TPerform_code; var arg : Pointer) : TStatus_t;
function IsExpanded : boolean;
procedure SetExpanded(expanded : boolean);
function OutlineLevel : Cardinal;
function HasSubitems : boolean;
end;
type
TStringItem = class(TListItem)
private
public
constructor Create( atext: pchar;aoutlineLevel : longint; expanded : boolean);virtual;
destructor Destroy;override;
constructor Create(data : TMessage);
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure DrawItem(owner : TView; frame : TRect; complete : boolean);
procedure SetText( atext : PChar);
function Text : PChar;
procedure Update(owner : TView; font : TFont);
// function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
end;
function BListItem_Create(AObject : TBeObject;outlineLevel : longint; expanded : boolean): TCPlusObject; cdecl; external BePascalLibName name 'BListItem_Create';
function BListItem_Create(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BListItem_Create_1';
procedure BListItem_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListItem_Free';
function BListItem_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BListItem_Archive';
function BListItem_Height(AObject : TCPlusObject) : double; cdecl; external BePascalLibName name 'BListItem_Height';
function BListItem_Width(AObject : TCPlusObject) : double; cdecl; external BePascalLibName name 'BListItem_Width';
function BListItem_IsSelected(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListItem_IsSelected';
procedure BListItem_Select(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListItem_Select';
procedure BListItem_Deselect(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListItem_Deselect';
procedure BListItem_SetEnabled(AObject : TCPlusObject; aon : boolean); cdecl; external BePascalLibName name 'BListItem_SetEnabled';
function BListItem_IsEnabled(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListItem_IsEnabled';
procedure BListItem_SetHeight(AObject : TCPlusObject; aheight : double); cdecl; external BePascalLibName name 'BListItem_SetHeight';
procedure BListItem_SetWidth(AObject : TCPlusObject; awidth : double); cdecl; external BePascalLibName name 'BListItem_SetWidth';
procedure BListItem_Update(AObject : TCPlusObject; owner : TCPlusObject; font : TCPlusObject); cdecl; external BePascalLibName name 'BListItem_Update';
function BListItem_Perform(AObject : TCPlusObject; d : TCPlusObject; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BListItem_Perform';
function BListItem_IsExpanded(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListItem_IsExpanded';
procedure BListItem_SetExpanded(AObject : TCPlusObject; expanded : boolean); cdecl; external BePascalLibName name 'BListItem_SetExpanded';
function BListItem_OutlineLevel(AObject : TCPlusObject) : Cardinal; cdecl; external BePascalLibName name 'BListItem_OutlineLevel';
//function BListItem_HasSubitems(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListItem_HasSubitems';
procedure BListItem_DrawItem(AObject : TCPlusObject; owner : TCPlusObject; bounds : TCPlusObject; complete : boolean); cdecl; external BePascalLibName name 'BListItem_DrawItem';
function BStringItem_Create(AObject : TBeObject ;text: pchar;lineLevel : longint; expanded : boolean): TCPlusObject; cdecl; external BePascalLibName name 'BStringItem_Create';
procedure BStringItem_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BStringItem_Free';
function BStringItem_Create(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BStringItem_Create';
function BStringItem_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BStringItem_Instantiate';
function BStringItem_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BStringItem_Archive';
procedure BStringItem_DrawItem(AObject : TCPlusObject; owner : TCPlusObject; frame : TCPlusObject; complete : boolean); cdecl; external BePascalLibName name 'BStringItem_DrawItem';
procedure BStringItem_SetText(AObject : TCPlusObject; text : PChar); cdecl; external BePascalLibName name 'BStringItem_SetText';
function BStringItem_Text(AObject : TCPlusObject) : PChar; cdecl; external BePascalLibName name 'BStringItem_Text';
procedure BStringItem_Update(AObject : TCPlusObject; owner : TCPlusObject; font : TCPlusObject); cdecl; external BePascalLibName name 'BStringItem_Update';
function BStringItem_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BStringItem_Perform';
implementation
var
ListItem_DrawItem_hook : Pointer; cvar; external;
ListString_DrawItem_hook : Pointer; cvar; external;
ListItem_Update_hook : Pointer; cvar; external;
ListString_Update_hook : Pointer; cvar; external;
constructor TListItem.Create(aoutlineLevel : longint; expanded : boolean );
begin
CreatePas;
CPlusObject := BListItem_Create(Self,aoutlineLevel , expanded );
end;
constructor TListItem.Create(data : TMessage);
begin
CreatePas;
CPlusObject := BListItem_Create(Self, data.CPlusObject);
end;
destructor TListItem.Destroy;
begin
BListItem_Free(CPlusObject);
inherited;
end;
function TListItem.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BListItem_Archive(CPlusObject, data.CPlusObject, deep);
end;
function TListItem.Height : double;
begin
Result := BListItem_Height(CPlusObject);
end;
function TListItem.Width : double;
begin
Result := BListItem_Width(CPlusObject);
end;
function TListItem.IsSelected : boolean;
begin
Result := BListItem_IsSelected(CPlusObject);
end;
procedure TListItem.Select;
begin
BListItem_Select(CPlusObject);
end;
procedure TListItem.Deselect;
begin
BListItem_Deselect(CPlusObject);
end;
procedure TListItem.SetEnabled(aon : boolean);
begin
BListItem_SetEnabled(CPlusObject, aon);
end;
function TListItem.IsEnabled : boolean;
begin
Result := BListItem_IsEnabled(CPlusObject);
end;
procedure TListItem.SetHeight(aheight : double);
begin
BListItem_SetHeight(CPlusObject, aheight);
end;
procedure TListItem.SetWidth(awidth : double);
begin
BListItem_SetWidth(CPlusObject, awidth);
end;
procedure TListItem.DrawItem(owner : TView; bounds : TRect; complete : boolean);
begin
//BListItem_DrawItem(CPlusObject, owner.CPlusObject, bounds.CPlusObject, complete);
end;
procedure TListItem.Update(owner : TView; font : TFont);
begin
// BListItem_Update(CPlusObject, owner.CPlusObject, font);
end;
{function TListItem.Perform(d : TPerform_code; var arg : Pointer) : TStatus_t;
begin
Result := BListItem_Perform(CPlusObject, d, arg);
end;
}
function TListItem.IsExpanded : boolean;
begin
Result := BListItem_IsExpanded(CPlusObject);
end;
procedure TListItem.SetExpanded(expanded : boolean);
begin
BListItem_SetExpanded(CPlusObject, expanded);
end;
function TListItem.OutlineLevel : Cardinal;
begin
Result := BListItem_OutlineLevel(CPlusObject);
end;
function TListItem.HasSubitems : boolean;
begin
// Result := BListItem_HasSubitems(CPlusObject);
end;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// TStringItem
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
constructor TStringItem.Create( atext: pchar;aoutlineLevel : longint; expanded : boolean);
begin
CreatePas;
CPlusObject := BStringItem_Create(Self,atext,aoutlineLevel,expanded);
end;
destructor TStringItem.Destroy;
begin
BStringItem_Free(CPlusObject);
inherited;
end;
constructor TStringItem.Create(data : TMessage);
begin
CreatePas;
CPlusObject := BStringItem_Create(Self, data.CPlusObject);
end;
function TStringItem.Instantiate(data : TMessage) : TArchivable;
begin
Result := BStringItem_Instantiate(CPlusObject, data.CPlusObject);
end;
function TStringItem.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
//Result := BStringItem_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TStringItem.DrawItem(owner : TView; frame : TRect; complete : boolean);
begin
//BStringItem_DrawItem(CPlusObject, owner.CPlusObject, frame.CPlusObject, complete);
end;
procedure TStringItem.SetText( atext : PChar);
begin
BStringItem_SetText(CPlusObject, atext);
end;
function TStringItem.Text : PChar;
begin
Result := BStringItem_Text(CPlusObject);
end;
procedure TStringItem.Update(owner : TView; font : TFont);
begin
//BStringItem_Update(CPlusObject, owner.CPlusObject, font);
end;
{function TStringItem.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BStringItem_Perform(CPlusObject, d, arg);
end;
}
procedure ListItem_DrawItem_hook_func(Liste : TListItem;owner : TCPlusObject; bounds : TCPlusObject; complete : boolean); cdecl;
var Rect : TRect;
ow : TView;
begin
Rect:=TRect.Wrap(bounds);
ow:=TView.Wrap(owner);
try
if Liste <> nil then
begin
Liste.DrawItem(ow ,Rect, complete );
end;
finally
Rect.UnWrap;
ow.UnWrap;
end;
end;
procedure ListString_DrawItem_hook_func(Liste : TStringItem;owner : TCPlusObject; bounds : TCPlusObject; complete : boolean); cdecl;
var Rect : TRect;
ow : TView;
begin
Rect:=TRect.Wrap(bounds);
ow:=TView.Wrap(owner);
try
if Liste <> nil then
begin
Liste.DrawItem(ow ,Rect, complete );
end;
finally
Rect.UnWrap;
ow.UnWrap;
end;
end;
procedure ListItem_Update_hook_func(Liste : TListItem;owner : TCPlusObject; font : TCPlusObject); cdecl;
var afont: TFont;
ow : TView;
begin
afont:=TFont.Wrap(font);
ow:=TView.Wrap(owner);
try
if Liste <> nil then
begin
Liste.Update(ow ,afont );
end;
finally
afont.UnWrap;
ow.UnWrap;
end;
end;
procedure ListString_Update_hook_func(Liste : TStringItem;owner : TCPlusObject; font : TCPlusObject); cdecl;
var afont: TFont;
ow : TView;
begin
afont:=TFont.Wrap(font);
ow:=TView.Wrap(owner);
try
if Liste <> nil then
begin
Liste.Update(ow ,afont );
end;
finally
afont.UnWrap;
ow.UnWrap;
end;
end;
initialization
ListItem_DrawItem_hook := @ListItem_DrawItem_hook_func;
ListString_DrawItem_hook := @ListString_DrawItem_hook_func;
ListItem_Update_hook := @ListItem_Update_hook_func;
ListString_Update_hook := @ListString_Update_hook_func;
end.

View File

@@ -0,0 +1,79 @@
/* BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _LISTVIEW_H_
#define _LISTVIEW_H_
#include <ListView.h>
#include <view.h>
#include <beobj.h>
#include <OS.h>
#include <handler.h>
#include <beobj.h>
class BPListView : public BListView, virtual public BPView
{
public:
BPListView(TPasObject PasObject,BRect frame,
const char *name,
list_view_type type = B_SINGLE_SELECTION_LIST,
uint32 resizeMask = B_FOLLOW_LEFT |
B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS |
B_NAVIGABLE);
BPListView(TPasObject PasObject,BMessage *data);
static BArchivable *Instantiate(BMessage *data);
//virtual status_t Archive(BMessage *data, bool deep = true) const;
virtual void Draw(BRect updateRect);
virtual void MessageReceived(BMessage *msg);
virtual void MouseDown(BPoint where);
virtual void KeyDown(const char *bytes, int32 numBytes);
//virtual void MakeFocus(bool state = true);
virtual void FrameResized(float newWidth, float newHeight);
virtual void AttachedToWindow();
//virtual void FrameMoved(BPoint new_position);
/*virtual BHandler *ResolveSpecifier(BMessage *msg,
int32 index,
BMessage *specifier,
int32 form,
const char *property);*/
//virtual status_t Perform(perform_code d, void *arg);
virtual void WindowActivated(bool state);
virtual void MouseUp(BPoint pt);
virtual void MouseMoved(BPoint pt, uint32 code, const BMessage *msg);
virtual void DetachedFromWindow();
//virtual void ResizeToPreferred();
//virtual void GetPreferredSize(float *width, float *height);
virtual void AllAttached();
virtual void AllDetached();
bool InitiateDrag(BPoint pt, int32 itemIndex,
bool initialySelected);
void SelectionChanged();
protected:
};
#endif /* _LISTVIEW_H_ */

View File

@@ -0,0 +1,548 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit listview;
interface
uses
beobj, view, message, archivable, SupportDefs, rect, list,
handler, messenger,interfacedefs,font,graphicdefs,scrollview,listitem;
type
Tlist_view_type =(
B_SINGLE_SELECTION_LIST,
B_MULTIPLE_SELECTION_LIST
);
type
TListView = class(TView)
private
public
constructor Create(frame : TRect; name : pchar; atype : Tlist_view_type; resizeMask: longint; flags : longint); virtual;
constructor Create(data : TMessage);
destructor Destroy;override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure Draw(updateRect : TRect);override;
procedure MessageReceived(msg : TMessage);override;
procedure MouseDown(where : TPoint);override;
procedure KeyDown(bytes : PChar; numBytes : integer);override;
procedure MakeFocus(state : boolean);
procedure FrameResized(newWidth : double; newHeight : double);override;
procedure TargetedByScrollView(scroller : TScrollView);
procedure ScrollTo(x : double; y : double);
procedure ScrollTo(where : TPoint);
function AddItem(item : TListItem) : boolean;
function AddItem(item : TListItem; atIndex : integer) : boolean;
function AddList(newItems : TList) : boolean;
function AddList(newItems : TList; atIndex : integer) : boolean;
function RemoveItem(item : TListItem) : boolean;
function RemoveItem(index : integer) : TListItem;
function RemoveItems(index : integer; count : integer) : boolean;
procedure SetSelectionMessage(message : TMessage);
procedure SetInvocationMessage(message : TMessage);
function SelectionMessage : TMessage;
function SelectionCommand : Cardinal;
function InvocationMessage : TMessage;
function InvocationCommand : Cardinal;
procedure SetListType(atype : TList_view_type);
function ListType : TList_view_type;
function ItemAt(index : integer) : TListItem;
function IndexOf(point : TPoint) : integer;
function IndexOf(item : TListItem) : integer;
function FirstItem : TListItem;
function LastItem : TListItem;
function HasItem(item : TListItem) : boolean;
function CountItems : integer;
procedure MakeEmpty;
function IsEmpty : boolean;
function Items : TListView;
procedure InvalidateItem(index : integer);
procedure ScrollToSelection;
procedure Select(index : integer; extend : boolean);
procedure Select(from : integer; ato : integer; extend : boolean);
function IsItemSelected(index : integer) : boolean;
function CurrentSelection(index : integer) : integer;
function Invoke(msg : TMessage) : TStatus_t;
procedure DeselectAll;
procedure DeselectExcept(except_from : integer; except_to : integer);
procedure Deselect(index : integer);
procedure SelectionChanged; virtual;
function SwapItems(a : integer; b : integer) : boolean;
function MoveItem(from : integer; ato : integer) : boolean;
function ReplaceItem(index : integer; item : TListItem) : boolean;
procedure AttachedToWindow;override;
procedure FrameMoved(new_position : TPoint);override;
function ItemFrame(index : integer) : TRect;
function ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
function GetSupportedSuites(data : TMessage) : TStatus_t;
function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
procedure WindowActivated(state : boolean);override;
procedure MouseUp(pt : TPoint);override;
procedure MouseMoved(pt : TPoint; code : Cardinal; msg : TMessage);override;
procedure DetachedFromWindow;override;
function InitiateDrag(pt : TPoint; itemIndex : integer; initialySelected : boolean) : boolean;
procedure ResizeToPreferred;override;
procedure GetPreferredSize(width : double; height : double);
procedure AllAttached;override;
procedure AllDetached;override;
// procedure enum MiscCode { B_NO_OP, B_REPLACE_OP, B_MOVE_OP, B_SWAP_OP };
end;
function BListView_Create(AObject : TBeObject;frame : TCPlusObject; name : pchar; atype : Tlist_view_type; resizeMask: longint; flags : longint): TCPlusObject; cdecl; external BePascalLibName name 'BListView_Create';
function BListView_Create(AObject : TBeObject;data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BListView_Create_1';
procedure BListView_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_Free';
function BListView_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BListView_Instantiate';
function BListView_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BListView_Archive';
procedure BListView_Draw(AObject : TCPlusObject; updateRect : TCPlusObject); cdecl; external BePascalLibName name 'BListView_Draw';
procedure BListView_MessageReceived(AObject : TCPlusObject; msg : TCPlusObject); cdecl; external BePascalLibName name 'BListView_MessageReceived';
procedure BListView_MouseDown(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BListView_MouseDown';
procedure BListView_KeyDown(AObject : TCPlusObject; bytes : PChar; numBytes : integer); cdecl; external BePascalLibName name 'BListView_KeyDown';
procedure BListView_MakeFocus(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BListView_MakeFocus';
procedure BListView_FrameResized(AObject : TCPlusObject; newWidth : double; newHeight : double); cdecl; external BePascalLibName name 'BListView_FrameResized';
procedure BListView_TargetedByScrollView(AObject : TCPlusObject; scroller : TCPlusObject); cdecl; external BePascalLibName name 'BListView_TargetedByScrollView';
procedure BListView_ScrollTo(AObject : TCPlusObject; x : double; y : double); cdecl; external BePascalLibName name 'BListView_ScrollTo';
procedure BListView_ScrollTo(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BListView_ScrollTo';
function BListView_AddItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListView_AddItem';
function BListView_AddItem(AObject : TCPlusObject; item : TCPlusObject; atIndex : integer) : boolean; cdecl; external BePascalLibName name 'BListView_AddItem';
function BListView_AddList(AObject : TCPlusObject; newItems : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListView_AddList';
function BListView_AddList(AObject : TCPlusObject; newItems : TCPlusObject; atIndex : integer) : boolean; cdecl; external BePascalLibName name 'BListView_AddList';
function BListView_RemoveItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListView_RemoveItem';
function BListView_RemoveItem(AObject : TCPlusObject; index : integer) : TListItem; cdecl; external BePascalLibName name 'BListView_RemoveItem_1';
function BListView_RemoveItems(AObject : TCPlusObject; index : integer; count : integer) : boolean; cdecl; external BePascalLibName name 'BListView_RemoveItems_2';
procedure BListView_SetSelectionMessage(AObject : TCPlusObject; message : TCPlusObject); cdecl; external BePascalLibName name 'BListView_SetSelectionMessage';
procedure BListView_SetInvocationMessage(AObject : TCPlusObject; message : TCPlusObject); cdecl; external BePascalLibName name 'BListView_SetInvocationMessage';
function BListView_SelectionMessage(AObject : TCPlusObject) : TMessage; cdecl; external BePascalLibName name 'BListView_SelectionMessage';
function BListView_SelectionCommand(AObject : TCPlusObject) : Cardinal; cdecl; external BePascalLibName name 'BListView_SelectionCommand';
function BListView_InvocationMessage(AObject : TCPlusObject) : TMessage; cdecl; external BePascalLibName name 'BListView_InvocationMessage';
function BListView_InvocationCommand(AObject : TCPlusObject) : Cardinal; cdecl; external BePascalLibName name 'BListView_InvocationCommand';
procedure BListView_SetListType(AObject : TCPlusObject; atype : TList_view_type); cdecl; external BePascalLibName name 'BListView_SetListType';
function BListView_ListType(AObject : TCPlusObject) : TList_view_type; cdecl; external BePascalLibName name 'BListView_ListType';
function BListView_ItemAt(AObject : TCPlusObject; index : integer) : TListItem; cdecl; external BePascalLibName name 'BListView_ItemAt';
function BListView_IndexOf(AObject : TCPlusObject; point : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BListView_IndexOf';
function BListView_IndexOf_1(AObject : TCPlusObject; item : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BListView_IndexOf';
function BListView_FirstItem(AObject : TCPlusObject) : TListItem; cdecl; external BePascalLibName name 'BListView_FirstItem';
function BListView_LastItem(AObject : TCPlusObject) : TListItem; cdecl; external BePascalLibName name 'BListView_LastItem';
function BListView_HasItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListView_HasItem';
function BListView_CountItems(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BListView_CountItems';
procedure BListView_MakeEmpty(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_MakeEmpty';
function BListView_IsEmpty(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListView_IsEmpty';
function BListView_Items(AObject : TCPlusObject) : TListView; cdecl; external BePascalLibName name 'BListView_Items';
procedure BListView_InvalidateItem(AObject : TCPlusObject; index : integer); cdecl; external BePascalLibName name 'BListView_InvalidateItem';
procedure BListView_ScrollToSelection(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_ScrollToSelection';
procedure BListView_Select(AObject : TCPlusObject; index : integer; extend : boolean); cdecl; external BePascalLibName name 'BListView_Select';
procedure BListView_Select(AObject : TCPlusObject; from : integer; ato : integer; extend : boolean); cdecl; external BePascalLibName name 'BListView_Select';
function BListView_IsItemSelected(AObject : TCPlusObject; index : integer) : boolean; cdecl; external BePascalLibName name 'BListView_IsItemSelected';
function BListView_CurrentSelection(AObject : TCPlusObject; index : integer) : integer; cdecl; external BePascalLibName name 'BListView_CurrentSelection';
function BListView_Invoke(AObject : TCPlusObject; msg : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BListView_Invoke';
procedure BListView_DeselectAll(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_DeselectAll';
procedure BListView_DeselectExcept(AObject : TCPlusObject; except_from : integer; except_to : integer); cdecl; external BePascalLibName name 'BListView_DeselectExcept';
procedure BListView_Deselect(AObject : TCPlusObject; index : integer); cdecl; external BePascalLibName name 'BListView_Deselect';
procedure BListView_SelectionChanged(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_SelectionChanged';
function BListView_SwapItems(AObject : TCPlusObject; a : integer; b : integer) : boolean; cdecl; external BePascalLibName name 'BListView_SwapItems';
function BListView_MoveItem(AObject : TCPlusObject; from : integer; ato : integer) : boolean; cdecl; external BePascalLibName name 'BListView_MoveItem';
function BListView_ReplaceItem(AObject : TCPlusObject; index : integer; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BListView_ReplaceItem';
procedure BListView_AttachedToWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_AttachedToWindow';
procedure BListView_FrameMoved(AObject : TCPlusObject; new_position : TCPlusObject); cdecl; external BePascalLibName name 'BListView_FrameMoved';
function BListView_ItemFrame(AObject : TCPlusObject; index : integer) : TRect; cdecl; external BePascalLibName name 'BListView_ItemFrame';
function BListView_ResolveSpecifier(AObject : TCPlusObject; msg : TCPlusObject; index : integer; specifier : TCPlusObject; form : integer; properti : PChar) : THandler; cdecl; external BePascalLibName name 'BListView_ResolveSpecifier';
function BListView_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BListView_GetSupportedSuites';
function BListView_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BListView_Perform';
procedure BListView_WindowActivated(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BListView_WindowActivated';
procedure BListView_MouseUp(AObject : TCPlusObject; pt : TCPlusObject); cdecl; external BePascalLibName name 'BListView_MouseUp';
procedure BListView_MouseMoved(AObject : TCPlusObject; pt : TCPlusObject; code : Cardinal; msg : TCPlusObject); cdecl; external BePascalLibName name 'BListView_MouseMoved';
procedure BListView_DetachedFromWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_DetachedFromWindow';
function BListView_InitiateDrag(AObject : TCPlusObject; pt : TCPlusObject; itemIndex : integer; initialySelected : boolean) : boolean; cdecl; external BePascalLibName name 'BListView_InitiateDrag';
procedure BListView_ResizeToPreferred(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_ResizeToPreferred';
procedure BListView_GetPreferredSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BListView_GetPreferredSize';
procedure BListView_AllAttached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_AllAttached';
procedure BListView_AllDetached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_AllDetached';
//procedure BListView_enum MiscCode { B_NO_OP, B_REPLACE_OP, B_MOVE_OP, B_SWAP_OP }(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BListView_enum MiscCode { B_NO_OP, B_REPLACE_OP, B_MOVE_OP, B_SWAP_OP }';
//procedure Replace_int32 index(AObject : TCPlusObject); cdecl; external BePascalLibName name 'Replace_int32 index';
//procedure Replace_BListItem *item(AObject : TCPlusObject); cdecl; external BePascalLibName name 'Replace_BListItem *item';
//procedure Move_int32 from(AObject : TCPlusObject); cdecl; external BePascalLibName name 'Move_int32 from';
//procedure Move_int32 to(AObject : TCPlusObject); cdecl; external BePascalLibName name 'Move_int32 to';
//procedure Swap_int32 a(AObject : TCPlusObject); cdecl; external BePascalLibName name 'Swap_int32 a';
//procedure Swap_int32 b(AObject : TCPlusObject); cdecl; external BePascalLibName name 'Swap_int32 b';
implementation
var
ListItem_SelectionChanged_hook: Pointer; cvar; external;
ListString_InitiateDrag_hook: Pointer; cvar; external;
constructor TListView.Create(frame : TRect; name : pchar; atype : Tlist_view_type; resizeMask: longint; flags : longint);
begin
CreatePas;
CPlusObject := BListView_Create(Self,frame.CPlusObject,name,atype,resizeMask,flags);
end;
constructor TListView.Create(data : TMessage);
begin
CreatePas;
CPlusObject := BListView_Create(Self,data.CPlusObject);
end;
destructor TListView.Destroy;
begin
BListView_Free(CPlusObject);
inherited;
end;
function TListView.Instantiate(data : TMessage) : TArchivable;
begin
Result := BListView_Instantiate(CPlusObject, data.CPlusObject);
end;
function TListView.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BListView_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TListView.Draw(updateRect : TRect);
begin
//BListView_Draw(CPlusObject, updateRect.CPlusObject);
end;
procedure TListView.MessageReceived(msg : TMessage);
begin
//BListView_MessageReceived(CPlusObject, msg.CPlusObject);
end;
procedure TListView.MouseDown(where : TPoint);
begin
//BListView_MouseDown(CPlusObject, where.CPlusObject);
end;
procedure TListView.KeyDown(bytes : PChar; numBytes : integer);
begin
//BListView_KeyDown(CPlusObject, bytes, numBytes);
end;
procedure TListView.MakeFocus(state : boolean);
begin
//BListView_MakeFocus(CPlusObject, state);
end;
procedure TListView.FrameResized(newWidth : double; newHeight : double);
begin
//BListView_FrameResized(CPlusObject, newWidth, newHeight);
end;
procedure TListView.TargetedByScrollView(scroller : TScrollView);
begin
BListView_TargetedByScrollView(CPlusObject, scroller.CPlusObject);
end;
procedure TListView.ScrollTo(x : double; y : double);
begin
BListView_ScrollTo(CPlusObject, x, y);
end;
procedure TListView.ScrollTo(where : TPoint);
begin
BListView_ScrollTo(CPlusObject, where.CPlusObject);
end;
function TListView.AddItem(item : TListItem) : boolean;
begin
Result := BListView_AddItem(CPlusObject, item.CPlusObject);
end;
function TListView.AddItem(item : TListItem; atIndex : integer) : boolean;
begin
Result := BListView_AddItem(CPlusObject, item.CPlusObject, atIndex);
end;
function TListView.AddList(newItems : TList) : boolean;
begin
Result := BListView_AddList(CPlusObject, newItems.CPlusObject);
end;
function TListView.AddList(newItems : TList; atIndex : integer) : boolean;
begin
Result := BListView_AddList(CPlusObject, newItems.CPlusObject, atIndex);
end;
function TListView.RemoveItem(item : TListItem) : boolean;
begin
Result := BListView_RemoveItem(CPlusObject, item.CPlusObject);
end;
function TListView.RemoveItem(index : integer) : TListItem;
begin
Result := BListView_RemoveItem(CPlusObject, index);
end;
function TListView.RemoveItems(index : integer; count : integer) : boolean;
begin
Result := BListView_RemoveItems(CPlusObject, index, count);
end;
procedure TListView.SetSelectionMessage(message : TMessage);
begin
BListView_SetSelectionMessage(CPlusObject, message.CPlusObject);
end;
procedure TListView.SetInvocationMessage(message : TMessage);
begin
BListView_SetInvocationMessage(CPlusObject, message.CPlusObject);
end;
function TListView.SelectionMessage : TMessage;
begin
Result := BListView_SelectionMessage(CPlusObject);
end;
function TListView.SelectionCommand : Cardinal;
begin
Result := BListView_SelectionCommand(CPlusObject);
end;
function TListView.InvocationMessage : TMessage;
begin
Result := BListView_InvocationMessage(CPlusObject);
end;
function TListView.InvocationCommand : Cardinal;
begin
Result := BListView_InvocationCommand(CPlusObject);
end;
procedure TListView.SetListType(atype : TList_view_type);
begin
BListView_SetListType(CPlusObject, atype);
end;
function TListView.ListType : TList_view_type;
begin
Result := BListView_ListType(CPlusObject);
end;
function TListView.ItemAt(index : integer) : TListItem;
begin
Result := BListView_ItemAt(CPlusObject, index);
end;
function TListView.IndexOf(point : TPoint) : integer;
begin
Result := BListView_IndexOf(CPlusObject, point.CPlusObject);
end;
function TListView.IndexOf(item : TListItem) : integer;
begin
Result := BListView_IndexOf(CPlusObject, item.CPlusObject);
end;
function TListView.FirstItem : TListItem;
begin
Result := BListView_FirstItem(CPlusObject);
end;
function TListView.LastItem : TListItem;
begin
Result := BListView_LastItem(CPlusObject);
end;
function TListView.HasItem(item : TListItem) : boolean;
begin
Result := BListView_HasItem(CPlusObject, item.CPlusObject);
end;
function TListView.CountItems : integer;
begin
Result := BListView_CountItems(CPlusObject);
end;
procedure TListView.MakeEmpty;
begin
BListView_MakeEmpty(CPlusObject);
end;
function TListView.IsEmpty : boolean;
begin
Result := BListView_IsEmpty(CPlusObject);
end;
function TListView.Items : TListView;
begin
Result := BListView_Items(CPlusObject);
end;
procedure TListView.InvalidateItem(index : integer);
begin
BListView_InvalidateItem(CPlusObject, index);
end;
procedure TListView.ScrollToSelection;
begin
BListView_ScrollToSelection(CPlusObject);
end;
procedure TListView.Select(index : integer; extend : boolean);
begin
BListView_Select(CPlusObject, index, extend);
end;
procedure TListView.Select(from : integer; ato : integer; extend : boolean);
begin
BListView_Select(CPlusObject, from, ato, extend);
end;
function TListView.IsItemSelected(index : integer) : boolean;
begin
Result := BListView_IsItemSelected(CPlusObject, index);
end;
function TListView.CurrentSelection(index : integer) : integer;
begin
Result := BListView_CurrentSelection(CPlusObject, index);
end;
function TListView.Invoke(msg : TMessage) : TStatus_t;
begin
Result := BListView_Invoke(CPlusObject, msg.CPlusObject);
end;
procedure TListView.DeselectAll;
begin
BListView_DeselectAll(CPlusObject);
end;
procedure TListView.DeselectExcept(except_from : integer; except_to : integer);
begin
BListView_DeselectExcept(CPlusObject, except_from, except_to);
end;
procedure TListView.Deselect(index : integer);
begin
BListView_Deselect(CPlusObject, index);
end;
procedure TListView.SelectionChanged;
begin
//BListView_SelectionChanged(CPlusObject);
end;
function TListView.SwapItems(a : integer; b : integer) : boolean;
begin
Result := BListView_SwapItems(CPlusObject, a, b);
end;
function TListView.MoveItem(from : integer; ato : integer) : boolean;
begin
Result := BListView_MoveItem(CPlusObject, from, ato);
end;
function TListView.ReplaceItem(index : integer; item : TListItem) : boolean;
begin
Result := BListView_ReplaceItem(CPlusObject, index, item.CPlusObject);
end;
procedure TListView.AttachedToWindow;
begin
//BListView_AttachedToWindow(CPlusObject);
end;
procedure TListView.FrameMoved(new_position : TPoint);
begin
//BListView_FrameMoved(CPlusObject, new_position.CPlusObject);
end;
function TListView.ItemFrame(index : integer) : TRect;
begin
Result := BListView_ItemFrame(CPlusObject, index);
end;
function TListView.ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
begin
Result := BListView_ResolveSpecifier(CPlusObject, msg.CPlusObject, index, specifier.CPlusObject, form, properti);
end;
function TListView.GetSupportedSuites(data : TMessage) : TStatus_t;
begin
Result := BListView_GetSupportedSuites(CPlusObject, data.CPlusObject);
end;
function TListView.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BListView_Perform(CPlusObject, d, arg);
end;
procedure TListView.WindowActivated(state : boolean);
begin
//BListView_WindowActivated(CPlusObject, state);
end;
procedure TListView.MouseUp(pt : TPoint);
begin
//BListView_MouseUp(CPlusObject, pt.CPlusObject);
end;
procedure TListView.MouseMoved(pt : TPoint; code : Cardinal; msg : TMessage);
begin
//BListView_MouseMoved(CPlusObject, pt.CPlusObject, code, msg);
end;
procedure TListView.DetachedFromWindow;
begin
//BListView_DetachedFromWindow(CPlusObject);
end;
function TListView.InitiateDrag(pt : TPoint; itemIndex : integer; initialySelected : boolean) : boolean;
begin
Result := BListView_InitiateDrag(CPlusObject, pt.CPlusObject, itemIndex, initialySelected);
end;
procedure TListView.ResizeToPreferred;
begin
//BListView_ResizeToPreferred(CPlusObject);
end;
procedure TListView.GetPreferredSize(width : double; height : double);
begin
// BListView_GetPreferredSize(CPlusObject, width, height);
end;
procedure TListView.AllAttached;
begin
//BListView_AllAttached(CPlusObject);
end;
procedure TListView.AllDetached;
begin
//BListView_AllDetached(CPlusObject);
end;
procedure ListItem_SelectionChanged_hook_func(Liste : TListView); cdecl;
begin
try
if Liste <> nil then
begin
Liste.SelectionChanged;
end;
finally
end;
end;
initialization
ListItem_SelectionChanged_hook:=@ListItem_SelectionChanged_hook_func;
end.

View File

@@ -0,0 +1,357 @@
{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit outlinelistview;
interface
uses
beobj, view, message, archivable, SupportDefs, rect, list,
handler, messenger,interfacedefs,font,graphicdefs,scrollview,listitem,listview;
type
TOutlineListView = class(TListView)
private
public
constructor Create(frame : TRect; name : pchar; atype : Tlist_view_type; resizeMask: longint; flags : longint); override;
constructor Create(data : TMessage);
destructor Destroy;override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure MouseDown(where : TPoint);override;
procedure KeyDown(bytes : PChar; numBytes : integer);override;
procedure FrameMoved(new_position : TPoint);override;
procedure FrameResized(new_width : double; new_height : double);override;
procedure MouseUp(where : TPoint);override;
function AddUnder(item : TListItem; underItem : TListItem) : boolean;
function AddItem(item : TListItem) : boolean;
function AddItem(item : TListItem; fullListIndex : integer) : boolean;
function AddList(newItems : TList) : boolean;
function AddList(newItems : TList; fullListIndex : integer) : boolean;
function RemoveItem(item : TListItem) : boolean;
function RemoveItem(fullListIndex : integer) : TListItem;
function RemoveItems(fullListIndex : integer; count : integer) : boolean;
function FullListItemAt(fullListIndex : integer) : TListItem;
function FullListIndexOf(point : TPoint) : integer;
function FullListIndexOf(item : TListItem) : integer;
function FullListFirstItem : TListItem;
function FullListLastItem : TListItem;
function FullListHasItem(item : TListItem) : boolean;
function FullListCountItems : integer;
function FullListCurrentSelection(index : integer) : integer;
procedure MakeEmpty;
function FullListIsEmpty : boolean;
function Superitem(item : TListItem) : TListItem;
procedure Expand(item : TListItem);
procedure Collapse(item : TListItem);
function IsExpanded(fullListIndex : integer) : boolean;
function ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
function GetSupportedSuites(data : TMessage) : TStatus_t;
function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
procedure ResizeToPreferred;override;
procedure GetPreferredSize(width : double; height : double);
procedure MakeFocus(state : boolean);
procedure AllAttached;override;
procedure AllDetached;override;
procedure DetachedFromWindow;override;
function CountItemsUnder(under : TListItem; oneLevelOnly : boolean) : integer;
function ItemUnderAt(underItem : TListItem; oneLevelOnly : boolean; index : integer) : TListItem;
// function DoMiscellaneous(code : ; data : ) : boolean;
// procedure MessageReceived( : TMessage);
end;
function BOutlineListView_Create(AObject : TBeObject; frame : TCPlusObject; name : pchar; atype : Tlist_view_type; resizeMask: longint; flags : longint):TCPlusObject; cdecl; external BePascalLibName name 'BOutlineListView_Create';
function BOutlineListView_Create_1(AObject : TBeObject;data : TCPlusObject):TCPlusObject; cdecl; external BePascalLibName name 'BOutlineListView_Create_1';
procedure BOutlineListView_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_Free';
function BOutlineListView_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BOutlineListView_Instantiate';
function BOutlineListView_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BOutlineListView_Archive';
procedure BOutlineListView_MouseDown(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_MouseDown';
procedure BOutlineListView_KeyDown(AObject : TCPlusObject; bytes : PChar; numBytes : integer); cdecl; external BePascalLibName name 'BOutlineListView_KeyDown';
procedure BOutlineListView_FrameMoved(AObject : TCPlusObject; new_position : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_FrameMoved';
procedure BOutlineListView_FrameResized(AObject : TCPlusObject; new_width : double; new_height : double); cdecl; external BePascalLibName name 'BOutlineListView_FrameResized';
procedure BOutlineListView_MouseUp(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_MouseUp';
function BOutlineListView_AddUnder(AObject : TCPlusObject; item : TCPlusObject; underItem : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_AddUnder';
function BOutlineListView_AddItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_AddItem';
function BOutlineListView_AddItem(AObject : TCPlusObject; item : TCPlusObject; fullListIndex : integer) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_AddItem';
function BOutlineListView_AddList(AObject : TCPlusObject; newItems : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_AddList';
function BOutlineListView_AddList(AObject : TCPlusObject; newItems : TCPlusObject; fullListIndex : integer) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_AddList';
function BOutlineListView_RemoveItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_RemoveItem';
function BOutlineListView_RemoveItem_1(AObject : TCPlusObject; fullListIndex : integer) : TCPlusObject; cdecl; external BePascalLibName name 'BOutlineListView_RemoveItem_1';
function BOutlineListView_RemoveItems(AObject : TCPlusObject; fullListIndex : integer; count : integer) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_RemoveItems';
function BOutlineListView_FullListItemAt(AObject : TCPlusObject; fullListIndex : integer) : TListItem; cdecl; external BePascalLibName name 'BOutlineListView_FullListItemAt';
function BOutlineListView_FullListIndexOf(AObject : TCPlusObject; point : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BOutlineListView_FullListIndexOf';
function BOutlineListView_FullListIndexOf_1(AObject : TCPlusObject; item : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BOutlineListView_FullListIndexOf_1';
function BOutlineListView_FullListFirstItem(AObject : TCPlusObject) : TListItem; cdecl; external BePascalLibName name 'BOutlineListView_FullListFirstItem';
function BOutlineListView_FullListLastItem(AObject : TCPlusObject) : TListItem; cdecl; external BePascalLibName name 'BOutlineListView_FullListLastItem';
function BOutlineListView_FullListHasItem(AObject : TCPlusObject; item : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_FullListHasItem';
function BOutlineListView_FullListCountItems(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BOutlineListView_FullListCountItems';
function BOutlineListView_FullListCurrentSelection(AObject : TCPlusObject; index : integer) : integer; cdecl; external BePascalLibName name 'BOutlineListView_FullListCurrentSelection';
procedure BOutlineListView_MakeEmpty(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_MakeEmpty';
function BOutlineListView_FullListIsEmpty(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_FullListIsEmpty';
function BOutlineListView_Superitem(AObject : TCPlusObject; item : TCPlusObject) : TListItem; cdecl; external BePascalLibName name 'BOutlineListView_Superitem';
procedure BOutlineListView_Expand(AObject : TCPlusObject; item : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_Expand';
procedure BOutlineListView_Collapse(AObject : TCPlusObject; item : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_Collapse';
function BOutlineListView_IsExpanded(AObject : TCPlusObject; fullListIndex : integer) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_IsExpanded';
function BOutlineListView_ResolveSpecifier(AObject : TCPlusObject; msg : TCPlusObject; index : integer; specifier : TCPlusObject; form : integer; properti : PChar) : THandler; cdecl; external BePascalLibName name 'BOutlineListView_ResolveSpecifier';
function BOutlineListView_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BOutlineListView_GetSupportedSuites';
function BOutlineListView_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BOutlineListView_Perform';
procedure BOutlineListView_ResizeToPreferred(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_ResizeToPreferred';
procedure BOutlineListView_GetPreferredSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BOutlineListView_GetPreferredSize';
procedure BOutlineListView_MakeFocus(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BOutlineListView_MakeFocus';
procedure BOutlineListView_AllAttached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_AllAttached';
procedure BOutlineListView_AllDetached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_AllDetached';
procedure BOutlineListView_DetachedFromWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_DetachedFromWindow';
function BOutlineListView_CountItemsUnder(AObject : TCPlusObject; under : TCPlusObject; oneLevelOnly : boolean) : integer; cdecl; external BePascalLibName name 'BOutlineListView_CountItemsUnder';
function BOutlineListView_ItemUnderAt(AObject : TCPlusObject; underItem : TCPlusObject; oneLevelOnly : boolean; index : integer) : TListItem; cdecl; external BePascalLibName name 'BOutlineListView_ItemUnderAt';
//function BOutlineListView_DoMiscellaneous(AObject : TCPlusObject; code : ; data : ) : boolean; cdecl; external BePascalLibName name 'BOutlineListView_DoMiscellaneous';
//procedure BOutlineListView_MessageReceived(AObject : TCPlusObject; : TCPlusObject); cdecl; external BePascalLibName name 'BOutlineListView_MessageReceived';
implementation
constructor TOutlineListView.Create(frame : TRect; name : pchar; atype : Tlist_view_type; resizeMask: longint; flags : longint);
begin
CreatePas;
CPlusObject := BOutlineListView_Create(Self,frame.CPlusObject,name,atype,resizeMask,flags);
end;
constructor TOutlineListView.Create(data : TMessage);
begin
CreatePas;
CPlusObject := BOutlineListView_Create_1(Self,data.CPlusObject);
end;
destructor TOutlineListView.Destroy;
begin
BOutlineListView_Free(CPlusObject);
inherited;
end;
function TOutlineListView.Instantiate(data : TMessage) : TArchivable;
begin
Result := BOutlineListView_Instantiate(CPlusObject, data.CPlusObject);
end;
function TOutlineListView.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BOutlineListView_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TOutlineListView.MouseDown(where : TPoint);
begin
// BOutlineListView_MouseDown(CPlusObject, where.CPlusObject);
end;
procedure TOutlineListView.KeyDown(bytes : PChar; numBytes : integer);
begin
// BOutlineListView_KeyDown(CPlusObject, bytes, numBytes);
end;
procedure TOutlineListView.FrameMoved(new_position : TPoint);
begin
// BOutlineListView_FrameMoved(CPlusObject, new_position.CPlusObject);
end;
procedure TOutlineListView.FrameResized(new_width : double; new_height : double);
begin
// BOutlineListView_FrameResized(CPlusObject, new_width, new_height);
end;
procedure TOutlineListView.MouseUp(where : TPoint);
begin
// BOutlineListView_MouseUp(CPlusObject, where.CPlusObject);
end;
function TOutlineListView.AddUnder(item : TListItem; underItem : TListItem) : boolean;
begin
Result := BOutlineListView_AddUnder(CPlusObject, item.CPlusObject, underItem.CPlusObject);
end;
function TOutlineListView.AddItem(item : TListItem) : boolean;
begin
Result := BOutlineListView_AddItem(CPlusObject, item.CPlusObject);
end;
function TOutlineListView.AddItem(item : TListItem; fullListIndex : integer) : boolean;
begin
Result := BOutlineListView_AddItem(CPlusObject, item.CPlusObject, fullListIndex);
end;
function TOutlineListView.AddList(newItems : TList) : boolean;
begin
Result := BOutlineListView_AddList(CPlusObject, newItems.CPlusObject);
end;
function TOutlineListView.AddList(newItems : TList; fullListIndex : integer) : boolean;
begin
Result := BOutlineListView_AddList(CPlusObject, newItems.CPlusObject, fullListIndex);
end;
function TOutlineListView.RemoveItem(item : TListItem) : boolean;
begin
Result := BOutlineListView_RemoveItem(CPlusObject, item.CPlusObject);
end;
function TOutlineListView.RemoveItem(fullListIndex : integer) : TListItem;
begin
// Result := BOutlineListView_RemoveItem_1(CPlusObject, fullListIndex);
end;
function TOutlineListView.RemoveItems(fullListIndex : integer; count : integer) : boolean;
begin
Result := BOutlineListView_RemoveItems(CPlusObject, fullListIndex, count);
end;
function TOutlineListView.FullListItemAt(fullListIndex : integer) : TListItem;
begin
Result := BOutlineListView_FullListItemAt(CPlusObject, fullListIndex);
end;
function TOutlineListView.FullListIndexOf(point : TPoint) : integer;
begin
Result := BOutlineListView_FullListIndexOf(CPlusObject, point.CPlusObject);
end;
function TOutlineListView.FullListIndexOf(item : TListItem) : integer;
begin
Result := BOutlineListView_FullListIndexOf(CPlusObject, item.CPlusObject);
end;
function TOutlineListView.FullListFirstItem : TListItem;
begin
Result := BOutlineListView_FullListFirstItem(CPlusObject);
end;
function TOutlineListView.FullListLastItem : TListItem;
begin
Result := BOutlineListView_FullListLastItem(CPlusObject);
end;
function TOutlineListView.FullListHasItem(item : TListItem) : boolean;
begin
Result := BOutlineListView_FullListHasItem(CPlusObject, item.CPlusObject);
end;
function TOutlineListView.FullListCountItems : integer;
begin
Result := BOutlineListView_FullListCountItems(CPlusObject);
end;
function TOutlineListView.FullListCurrentSelection(index : integer) : integer;
begin
Result := BOutlineListView_FullListCurrentSelection(CPlusObject, index);
end;
procedure TOutlineListView.MakeEmpty;
begin
BOutlineListView_MakeEmpty(CPlusObject);
end;
function TOutlineListView.FullListIsEmpty : boolean;
begin
Result := BOutlineListView_FullListIsEmpty(CPlusObject);
end;
function TOutlineListView.Superitem(item : TListItem) : TListItem;
begin
Result := BOutlineListView_Superitem(CPlusObject, item);
end;
procedure TOutlineListView.Expand(item : TListItem);
begin
BOutlineListView_Expand(CPlusObject, item.CPlusObject);
end;
procedure TOutlineListView.Collapse(item : TListItem);
begin
BOutlineListView_Collapse(CPlusObject, item.CPlusObject);
end;
function TOutlineListView.IsExpanded(fullListIndex : integer) : boolean;
begin
Result := BOutlineListView_IsExpanded(CPlusObject, fullListIndex);
end;
function TOutlineListView.ResolveSpecifier(msg : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
begin
Result := BOutlineListView_ResolveSpecifier(CPlusObject, msg.CPlusObject, index, specifier.CPlusObject, form, properti);
end;
function TOutlineListView.GetSupportedSuites(data : TMessage) : TStatus_t;
begin
Result := BOutlineListView_GetSupportedSuites(CPlusObject, data.CPlusObject);
end;
function TOutlineListView.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BOutlineListView_Perform(CPlusObject, d, arg);
end;
procedure TOutlineListView.ResizeToPreferred;
begin
BOutlineListView_ResizeToPreferred(CPlusObject);
end;
procedure TOutlineListView.GetPreferredSize(width : double; height : double);
begin
BOutlineListView_GetPreferredSize(CPlusObject, width, height);
end;
procedure TOutlineListView.MakeFocus(state : boolean);
begin
BOutlineListView_MakeFocus(CPlusObject, state);
end;
procedure TOutlineListView.AllAttached;
begin
BOutlineListView_AllAttached(CPlusObject);
end;
procedure TOutlineListView.AllDetached;
begin
BOutlineListView_AllDetached(CPlusObject);
end;
procedure TOutlineListView.DetachedFromWindow;
begin
BOutlineListView_DetachedFromWindow(CPlusObject);
end;
function TOutlineListView.CountItemsUnder(under : TListItem; oneLevelOnly : boolean) : integer;
begin
Result := BOutlineListView_CountItemsUnder(CPlusObject, under.CPlusObject, oneLevelOnly);
end;
function TOutlineListView.ItemUnderAt(underItem : TListItem; oneLevelOnly : boolean; index : integer) : TListItem;
begin
Result := BOutlineListView_ItemUnderAt(CPlusObject, underItem.CPlusObject, oneLevelOnly, index);
end;
{function TOutlineListView.DoMiscellaneous(code : ; data : ) : boolean;
begin
Result := BOutlineListView_DoMiscellaneous(CPlusObject, code, data);
end;
procedure TOutlineListView.MessageReceived( : TMessage);
begin
BOutlineListView_MessageReceived(CPlusObject, .CPlusObject);
end;
}
end.