# The Interface Kit: BStringItem

Derived from: public BListItem

Declared in: be/interface/ListItem.h

Library: libbe.so

## Overview

A BStringItem is a container for text that you want to display as an item in a BListView. To use a BStringItem, you construct it, set its text (either in the constructor or through `SetText()`) and then add it to a BListView object.

## Constructor and Destructor

### BStringItem()

          BStringItem(const char *text, uint32 level = 0, bool expanded = true)
          BStringItem(BMessage *archive)

Initializes the BStringItem by making a copy of the text string passed as an argument. This is the string the item will display. The level and expanded arguments are passed unchanged to the BListItem constructor; see that function for an explanation.

### ~BStringItem()

          virtual ~BStringItem()

Frees the text the item displays.

## Static Functions

### Instantiate()

          static BStringItem *Instantiate(BMessage *archive)

Returns a new BStringItem object, allocated by `new` and created with the version of the constructor that takes a BMessage archive. However, if the archive message doesn't contain archived data for a BStringItem, `Instantiate()` returns `NULL`.

See also: `BArchivable::Instantiate()`, `instantiate_object()`, `Archive()`

## Member Functions

### DrawItem()

          virtual void DrawItem(BView *owner, BRect frame, bool complete = false)

Draws the text string, dimming it if the item is disabled and highlighting it if the item is selected.

See also: `BListItem::DrawItem()`

### SetText(), Text()

          virtual void SetText(const char *text)

          const char *Text(void) const

These functions set and return the text that the BStringItem draws. `SetText()` copies the string it's passed. `Text()` returns a pointer to the string owned by the BStringItem.

### Update()

          virtual void Update(BView *owner, const BFont *font)

Overrides the BListItem version of `Update()` to recalculate the width and height of the BStringItem and the placement of the text. The width of the item is based on the width of the owner BView. The height and text placement are based on the owner's font. The item must be tall enough to display the string in the current font.

See also: `BListItem::Update()`

## Archived Fields

The `Archive()` function adds the following field to its BMessage argument:

Field | Type code | Meaning
"_label" | `B_STRING_TYPE` | String text (present only if it is not `NULL`).

The Be Book, in lovely HTML, for BeOS Release 3.

Copyright © 1998 Be, Inc. All rights reserved.

Last modified March 26, 1998.