diff --git a/headers/os/interface/StringView.h b/headers/os/interface/StringView.h index 444f305e4c..c32a0cef13 100644 --- a/headers/os/interface/StringView.h +++ b/headers/os/interface/StringView.h @@ -1,107 +1,69 @@ -//------------------------------------------------------------------------------ -// Copyright (c) 2001-2002, OpenBeOS -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// File Name: StringView.h -// Author: Frans van Nispen (xlr8@tref.nl) -// Description: BStringView draw a non-editable text string -//------------------------------------------------------------------------------ - +/* + * Copyright 2001-2005, Haiku Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Frans van Nispen (xlr8@tref.nl) + */ #ifndef _STRING_VIEW_H #define _STRING_VIEW_H -// Standard Includes ----------------------------------------------------------- -// System Includes ------------------------------------------------------------- #include #include -// Project Includes ------------------------------------------------------------ -// Local Includes -------------------------------------------------------------- - -// Local Defines --------------------------------------------------------------- - -// Globals --------------------------------------------------------------------- - - -// BStringView class ----------------------------------------------------------- class BStringView : public BView{ -public: - BStringView(BRect bounds, const char* name, const char* text, - uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flags = B_WILL_DRAW); - BStringView(BMessage* data); - virtual ~BStringView(); - static BArchivable *Instantiate(BMessage* data); - virtual status_t Archive(BMessage* data, bool deep = true) const; + public: + BStringView(BRect bounds, const char* name, + const char* text, + uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flags = B_WILL_DRAW); + BStringView(BMessage* data); + virtual ~BStringView(); - void SetText(const char* text); - const char *Text() const; - void SetAlignment(alignment flag); - alignment Alignment() const; + static BArchivable* Instantiate(BMessage* data); + virtual status_t Archive(BMessage* data, bool deep = true) const; - virtual void AttachedToWindow(); - virtual void Draw(BRect bounds); + void SetText(const char* text); + const char* Text() const; + void SetAlignment(alignment flag); + alignment Alignment() const; - virtual void MessageReceived(BMessage* msg); - virtual void MouseDown(BPoint pt); - virtual void MouseUp(BPoint pt); - virtual void MouseMoved(BPoint pt, uint32 code, const BMessage* msg); - virtual void DetachedFromWindow(); - virtual void FrameMoved(BPoint new_position); - virtual void FrameResized(float new_width, float new_height); + virtual void AttachedToWindow(); + virtual void Draw(BRect bounds); - virtual BHandler *ResolveSpecifier( BMessage* msg, int32 index, BMessage* specifier, - int32 form, const char* property); + virtual void MessageReceived(BMessage* message); + virtual void MouseDown(BPoint point); + virtual void MouseUp(BPoint point); + virtual void MouseMoved(BPoint point, uint32 transit, + const BMessage* dragMessage); + virtual void DetachedFromWindow(); + virtual void FrameMoved(BPoint newPosition); + virtual void FrameResized(float newWidth, float newHeight); - virtual void ResizeToPreferred(); - virtual void GetPreferredSize(float* width, float* height); - virtual void MakeFocus(bool state = true); - virtual void AllAttached(); - virtual void AllDetached(); - virtual status_t GetSupportedSuites(BMessage* data); + virtual BHandler* ResolveSpecifier(BMessage* msg, int32 index, + BMessage* specifier, int32 form, + const char* property); + virtual void ResizeToPreferred(); + virtual void GetPreferredSize(float* _width, float* _height); + virtual void MakeFocus(bool state = true); + virtual void AllAttached(); + virtual void AllDetached(); + virtual status_t GetSupportedSuites(BMessage* data); -// Private or reserved --------------------------------------------------------- - virtual status_t Perform(perform_code d, void* arg); + private: + virtual status_t Perform(perform_code d, void* arg); + virtual void _ReservedStringView1(); + virtual void _ReservedStringView2(); + virtual void _ReservedStringView3(); -private: - virtual void _ReservedStringView1(); - virtual void _ReservedStringView2(); - virtual void _ReservedStringView3(); + BStringView &operator=(const BStringView&); - BStringView &operator=(const BStringView&); - - char* fText; - alignment fAlign; - uint32 _reserved[3]; + char* fText; + alignment fAlign; + uint32 _reserved[3]; }; -//------------------------------------------------------------------------------ - -#endif // _STRINGVIEW_H - -/* - * $Log $ - * - * $Id $ - * - */ +#endif // _STRING_VIEW_H diff --git a/src/kits/interface/StringView.cpp b/src/kits/interface/StringView.cpp index 10376b3731..7692230e0d 100644 --- a/src/kits/interface/StringView.cpp +++ b/src/kits/interface/StringView.cpp @@ -1,151 +1,139 @@ -//------------------------------------------------------------------------------ -// Copyright (c) 2001-2002, OpenBeOS -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// File Name: StringView.cpp -// Author: Frans van Nispen (xlr8@tref.nl) -// Description: BStringView draw a non-editable text string -//------------------------------------------------------------------------------ +/* + * Copyright 2001-2005, Haiku Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Frans van Nispen (xlr8@tref.nl) + */ + +/** BStringView draw a non-editable text string */ -// Standard Includes ----------------------------------------------------------- -#include -#include -#include -// System Includes ------------------------------------------------------------- #include #include #include #include -// Project Includes ------------------------------------------------------------ - -// Local Includes -------------------------------------------------------------- - -// Local Defines --------------------------------------------------------------- - -// Globals --------------------------------------------------------------------- +#include +#include +#include -//------------------------------------------------------------------------------ BStringView::BStringView(BRect frame, const char* name, const char* text, - uint32 resizeMask, uint32 flags) - : BView(frame, name, resizeMask, flags) + uint32 resizeMask, uint32 flags) + : BView(frame, name, resizeMask, flags) { fText = text ? strdup(text) : NULL; fAlign = B_ALIGN_LEFT; } -//------------------------------------------------------------------------------ + + BStringView::BStringView(BMessage* data) - : BView(data) + : BView(data) { - const char* text; - - if (data->FindInt32("_align",(int32&)fAlign) != B_OK) { + int32 align; + if (data->FindInt32("_align", &align) == B_OK) + fAlign = (alignment)align; + else fAlign = B_ALIGN_LEFT; - } - if (data->FindString("_text",&text) != B_OK) { + const char* text; + if (data->FindString("_text", &text) != B_OK) text = NULL; - } SetText(text); } -//------------------------------------------------------------------------------ -BArchivable* BStringView::Instantiate(BMessage* data) + + +BArchivable* +BStringView::Instantiate(BMessage* data) { - if (!validate_instantiation(data,"BStringView")) { + if (!validate_instantiation(data, "BStringView")) return NULL; - } return new BStringView(data); } -//------------------------------------------------------------------------------ -status_t BStringView::Archive(BMessage* data, bool deep) const + + +status_t +BStringView::Archive(BMessage* data, bool deep) const { BView::Archive(data, deep); - - if (fText) { - data->AddString("_text",fText); - } + + if (fText) + data->AddString("_text", fText); data->AddInt32("_align", fAlign); return B_OK; } -//------------------------------------------------------------------------------ + + BStringView::~BStringView() { free(fText); } -//------------------------------------------------------------------------------ -void BStringView::SetText(const char* text) + + +void +BStringView::SetText(const char* text) { free(fText); fText = text ? strdup(text) : NULL; Invalidate(); } -//------------------------------------------------------------------------------ -const char* BStringView::Text() const + + +const char* +BStringView::Text() const { return fText; } -//------------------------------------------------------------------------------ -void BStringView::SetAlignment(alignment flag) + + +void +BStringView::SetAlignment(alignment flag) { fAlign = flag; Invalidate(); } -//------------------------------------------------------------------------------ -alignment BStringView::Alignment() const + + +alignment +BStringView::Alignment() const { return fAlign; } -//------------------------------------------------------------------------------ -void BStringView::AttachedToWindow() + + +void +BStringView::AttachedToWindow() { - if (Parent()) { + if (Parent()) SetViewColor(Parent()->ViewColor()); - } } -//------------------------------------------------------------------------------ -void BStringView::Draw(BRect bounds) + + +void +BStringView::Draw(BRect bounds) { if (!fText) return; SetLowColor(ViewColor()); - BFont font; - GetFont(&font); - font_height fh; - font.GetHeight(&fh); - - float y = Bounds().bottom - ceil(fh.descent); + + font_height fontHeight; + GetFontHeight(&fontHeight); + + float y = Bounds().bottom - ceil(fontHeight.descent); float x; switch (fAlign) { case B_ALIGN_RIGHT: - x = Bounds().Width() - font.StringWidth(fText) - 2.0f; + x = Bounds().Width() - StringWidth(fText) - 2.0f; break; case B_ALIGN_CENTER: - x = (Bounds().Width() - font.StringWidth(fText)) / 2.0f; + x = (Bounds().Width() - StringWidth(fText)) / 2.0f; break; default: @@ -153,115 +141,139 @@ void BStringView::Draw(BRect bounds) break; } - DrawString(fText, BPoint(x,y)); + DrawString(fText, BPoint(x, y)); } -//------------------------------------------------------------------------------ -void BStringView::ResizeToPreferred() + + +void +BStringView::ResizeToPreferred() { - float w, h; - GetPreferredSize(&w, &h); - BView::ResizeTo(w, h); + float width, height; + GetPreferredSize(&width, &height); + + BView::ResizeTo(width, height); } -//------------------------------------------------------------------------------ -void BStringView::GetPreferredSize(float* width, float* height) + + +void +BStringView::GetPreferredSize(float* _width, float* _height) { if (!fText) { - BView::GetPreferredSize(width, height); + BView::GetPreferredSize(_width, _height); return; } - BFont font; - GetFont(&font); - font_height fh; - font.GetHeight(&fh); + if (_width) + *_width = 4.0f + ceil(StringWidth(fText)); - *height = ceil(fh.ascent + fh.descent + fh.leading) + 2.0f; - *width = 4.0f + ceil(font.StringWidth(fText)); + if (_height) { + font_height fontHeight; + GetFontHeight(&fontHeight); + *_height = ceil(fontHeight.ascent + fontHeight.descent + fontHeight.leading) + 2.0f; + } } -//------------------------------------------------------------------------------ -void BStringView::MessageReceived(BMessage* msg) + + +void +BStringView::MessageReceived(BMessage* message) { - BView::MessageReceived(msg); + BView::MessageReceived(message); } -//------------------------------------------------------------------------------ -void BStringView::MouseDown(BPoint pt) + + +void +BStringView::MouseDown(BPoint point) { - BView::MouseDown(pt); + BView::MouseDown(point); } -//------------------------------------------------------------------------------ -void BStringView::MouseUp(BPoint pt) + + +void +BStringView::MouseUp(BPoint point) { - BView::MouseUp(pt); + BView::MouseUp(point); } -//------------------------------------------------------------------------------ -void BStringView::MouseMoved(BPoint pt, uint32 code, const BMessage* msg) + + +void +BStringView::MouseMoved(BPoint point, uint32 transit, const BMessage* msg) { - BView::MouseMoved(pt, code, msg); + BView::MouseMoved(point, transit, msg); } -//------------------------------------------------------------------------------ -void BStringView::DetachedFromWindow() + + +void +BStringView::DetachedFromWindow() { BView::DetachedFromWindow(); } -//------------------------------------------------------------------------------ -void BStringView::FrameMoved(BPoint newPosition) + + +void +BStringView::FrameMoved(BPoint newPosition) { BView::FrameMoved(newPosition); } -//------------------------------------------------------------------------------ -void BStringView::FrameResized(float newWidth, float newHeight) + + +void +BStringView::FrameResized(float newWidth, float newHeight) { BView::FrameResized(newWidth, newHeight); } -//------------------------------------------------------------------------------ -BHandler* BStringView::ResolveSpecifier(BMessage* msg, int32 index, - BMessage* specifier, int32 form, - const char* property) + + +BHandler* +BStringView::ResolveSpecifier(BMessage* msg, int32 index, + BMessage* specifier, int32 form, const char* property) { return NULL; } -//------------------------------------------------------------------------------ -void BStringView::MakeFocus(bool state) + + +void +BStringView::MakeFocus(bool state) { BView::MakeFocus(state); } -//------------------------------------------------------------------------------ -void BStringView::AllAttached() + + +void +BStringView::AllAttached() { BView::AllAttached(); } -//------------------------------------------------------------------------------ -void BStringView::AllDetached() + + +void +BStringView::AllDetached() { BView::AllDetached(); } -//------------------------------------------------------------------------------ -status_t BStringView::GetSupportedSuites(BMessage* data) + + +status_t +BStringView::GetSupportedSuites(BMessage* data) { return B_OK; } -//------------------------------------------------------------------------------ -status_t BStringView::Perform(perform_code d, void* arg) + + +status_t +BStringView::Perform(perform_code d, void* arg) { return B_ERROR; } -//------------------------------------------------------------------------------ -void BStringView::_ReservedStringView1() + + +void BStringView::_ReservedStringView1() {} +void BStringView::_ReservedStringView2() {} +void BStringView::_ReservedStringView3() {} + + +BStringView& +BStringView::operator=(const BStringView&) { -} -//------------------------------------------------------------------------------ -void BStringView::_ReservedStringView2() -{ -} -//------------------------------------------------------------------------------ -void BStringView::_ReservedStringView3() -{ -} -//------------------------------------------------------------------------------ -BStringView& BStringView::operator=(const BStringView&) -{ - // Assignment not allowed + // Assignment not allowed (private) return *this; } -//------------------------------------------------------------------------------ -