/* * Copyright 2006, Haiku. * Distributed under the terms of the MIT License. * * Authors: * Stephan Aßmus */ #include "StringTextView.h" #include #include // constructor StringTextView::StringTextView(BRect frame, const char* name, BRect textRect, uint32 resizingMode, uint32 flags) : InputTextView(frame, name, textRect, resizingMode, flags), fStringCache("") { } // destructor StringTextView::~StringTextView() { } // Invoke status_t StringTextView::Invoke(BMessage* message) { if (!message) message = Message(); if (message) { BMessage copy(*message); copy.AddString("value", Value()); return InputTextView::Invoke(©); } return B_BAD_VALUE; } // RevertChanges void StringTextView::RevertChanges() { SetValue(fStringCache.String()); } // ApplyChanges void StringTextView::ApplyChanges() { if (fStringCache != Text()) { Invoke(); } } // SetValue void StringTextView::SetValue(const char* string) { SetText(string); // update cache Value(); if (IsFocus()) SelectAll(); } // Value const char* StringTextView::Value() const { fStringCache = Text(); return fStringCache.String(); }