Removed StringItem.cpp as its implementation is in ListItem.cpp
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10528 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,148 +0,0 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// File: StringItem.cpp
|
|
||||||
//
|
|
||||||
// Description: BListView represents a one-dimensional list view.
|
|
||||||
//
|
|
||||||
// Copyright 2001, Ulrich Wimboeck
|
|
||||||
//
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#include "StringItem.h"
|
|
||||||
#include <Font.h>
|
|
||||||
#include <Message.h>
|
|
||||||
#include <View.h>
|
|
||||||
|
|
||||||
#ifdef USE_OPENBEOS_NAMESPACE
|
|
||||||
using namespace OpenBeOS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------*/
|
|
||||||
/*----- BStringItem class ----------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
BStringItem::BStringItem(const char* text, uint32 outlineLevel /* = 0 */,
|
|
||||||
bool expanded /* = true */)
|
|
||||||
: BListItem(outlineLevel, expanded), fBaselineOffset(0),
|
|
||||||
fText(new char[strlen(text) + 1])
|
|
||||||
{
|
|
||||||
// copy the text !!!!!
|
|
||||||
strcpy(fText, text) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
BStringItem::~BStringItem()
|
|
||||||
{
|
|
||||||
if (fText != NULL) {
|
|
||||||
delete fText ;
|
|
||||||
fText = NULL ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BStringItem::BStringItem(BMessage* data)
|
|
||||||
: BListItem(data) //First call the contructor of the base class
|
|
||||||
{
|
|
||||||
char* text ;
|
|
||||||
if (data->FindString("_label", const_cast<const char**>(&text)) == B_OK)
|
|
||||||
{
|
|
||||||
fText = new char[strlen(text) + 1] ;
|
|
||||||
strcpy(fText, text) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
BArchivable*
|
|
||||||
BStringItem::Instantiate(BMessage* data)
|
|
||||||
{
|
|
||||||
if (validate_instantiation(data, "BStringItem"))
|
|
||||||
return new MyStringItem(data) ;
|
|
||||||
|
|
||||||
return NULL ;
|
|
||||||
}
|
|
||||||
|
|
||||||
status_t
|
|
||||||
BStringItem::Archive(BMessage* data, bool deep /* = true */) const
|
|
||||||
{
|
|
||||||
status_t tReturn (BListItem::Archive(data, deep)) ;
|
|
||||||
|
|
||||||
if (tReturn != B_OK)
|
|
||||||
return tReturn ;
|
|
||||||
|
|
||||||
if (data->AddString("class", "BStringItem") != B_OK)
|
|
||||||
return tReturn ;
|
|
||||||
|
|
||||||
return tReturn = data->AddString("_label", fText) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The colors need to be set correct
|
|
||||||
void
|
|
||||||
BStringItem::DrawItem(BView* owner, BRect frame, bool complete /* = false */)
|
|
||||||
{
|
|
||||||
if (IsSelected() || complete)
|
|
||||||
{
|
|
||||||
if (IsSelected())
|
|
||||||
{
|
|
||||||
owner->SetHighColor(
|
|
||||||
tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_HIGHLIGHT_BACKGROUND_TINT)) ;
|
|
||||||
owner->SetLowColor(owner->HighColor()) ;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
owner->SetHighColor(owner->ViewColor()) ;
|
|
||||||
owner->SetLowColor(owner->ViewColor()) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
owner->FillRect(frame) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
BFont font ;
|
|
||||||
owner->GetFont(&font) ;
|
|
||||||
|
|
||||||
// Get the height of the font to place the pen to
|
|
||||||
// the right position
|
|
||||||
font_height height ;
|
|
||||||
font.GetHeight(&height) ;
|
|
||||||
|
|
||||||
owner->MovePenTo(frame.left + 4, frame.bottom - height.descent) ;
|
|
||||||
owner->SetHighColor(IsEnabled() ? ui_color(B_MENU_ITEM_TEXT_COLOR)
|
|
||||||
: tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_DISABLED_LABEL_TINT)) ;
|
|
||||||
|
|
||||||
owner->DrawString(fText) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
BStringItem::SetText(const char* text)
|
|
||||||
{
|
|
||||||
if (fText != NULL)
|
|
||||||
delete fText ;
|
|
||||||
|
|
||||||
if (text != NULL)
|
|
||||||
{
|
|
||||||
fText = new char[strlen(text) + 1] ;
|
|
||||||
strcpy(fText, text) ; // copy text
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fText = NULL ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
inline const char*
|
|
||||||
BStringItem::Text() const
|
|
||||||
{
|
|
||||||
return fText ;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
BStringItem::Update(BView* owner, const BFont* font)
|
|
||||||
{
|
|
||||||
BListItem::Update(owner, font) ;
|
|
||||||
|
|
||||||
// Set the width to the width of the string
|
|
||||||
SetWidth(font->StringWidth(fText)) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
status_t
|
|
||||||
BStringItem::Perform(perform_code d, void* arg)
|
|
||||||
{
|
|
||||||
status_t retval = B_OK ;
|
|
||||||
return retval ;
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user