52a3801208
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
104 lines
2.8 KiB
C++
104 lines
2.8 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// File: ListItem.h
|
|
//
|
|
// Description: BListView represents a one-dimensional list view.
|
|
//
|
|
// Copyright 2001, Ulrich Wimboeck
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _LIST_ITEM_H
|
|
#define _LIST_ITEM_H
|
|
|
|
#include <BeBuild.h>
|
|
#include <Archivable.h>
|
|
#include <Rect.h>
|
|
|
|
class BFont ;
|
|
class BMessage ;
|
|
class BOutlineListView ;
|
|
class BView ;
|
|
|
|
#ifdef USE_OPENBEOS_NAMESPACE
|
|
namespace OpenBeOS
|
|
{
|
|
#endif
|
|
|
|
/*----------------------------------------------------------------*/
|
|
/*----- BListItem class ------------------------------------------*/
|
|
|
|
/**
|
|
* A BListItem represents a single item in a BListView (or
|
|
* BOutlineListView). The BListItem object provides drawing
|
|
* instructions that can draw the item (through DrawItem()), and
|
|
* keeps track of the item's state. To use a BListItem, you must
|
|
* add it to a BListView through BListView::AddItem()
|
|
* (BOutlineListView provides additional item-adding functions).
|
|
* The BListView object provides the drawing context for the
|
|
* BListItem's DrawItem() function.
|
|
*
|
|
* BListItem is abstract; each subclass must implement DrawItem().
|
|
* BStringItem—the only BListItem subclass provided by
|
|
* Be—implements the function to draw the item as a line of text.
|
|
*/
|
|
|
|
class BListItem : public BArchivable
|
|
{
|
|
public:
|
|
BListItem(uint32 outlineLevel = 0, bool expanded = true) ;
|
|
BListItem(BMessage* data) ;
|
|
virtual ~BListItem() ;
|
|
|
|
virtual status_t Archive(BMessage* data, bool deep = true) const ;
|
|
|
|
float Height() const ;
|
|
float Width() const ;
|
|
bool IsSelected() const ;
|
|
void Select() ;
|
|
void Deselect() ;
|
|
|
|
virtual void SetEnabled(bool on) ;
|
|
bool IsEnabled() const ;
|
|
|
|
void SetHeight(float height) ;
|
|
void SetWidth(float width) ;
|
|
virtual void DrawItem(BView* owner, BRect bounds, bool complete = false) = 0 ;
|
|
virtual void Update(BView* owner, const BFont* font) ;
|
|
|
|
virtual status_t Perform(perform_code d, void* arg) ;
|
|
|
|
bool IsExpanded() const ;
|
|
void SetExpanded(bool expanded) ;
|
|
uint32 OutlineLevel() const ;
|
|
|
|
/*----- Private or reserved -----------------------------------------*/
|
|
private:
|
|
friend class BOutlineListView ;
|
|
|
|
BListItem(const BListItem&) ;
|
|
|
|
BListItem& operator=(const BListItem&) ;
|
|
|
|
float fWidth ;
|
|
float fHeight ;
|
|
uint32 fLevel ;
|
|
bool fSelected ;
|
|
bool fEnabled ;
|
|
|
|
bool fExpanded ;
|
|
bool fHasSubItems ;
|
|
bool fVisible ;
|
|
} ;
|
|
|
|
// in the interface kit the BStringItem class is declared within ListItem.h
|
|
#ifndef USE_OPENBEOS_NAMESPACE
|
|
#include "StringItem.h"
|
|
#endif
|
|
|
|
#ifdef USE_OPENBEOS_NAMESPACE
|
|
}
|
|
#endif
|
|
|
|
#endif /* _LIST_ITEM_H */
|