/* * Copyright 2006 Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: * Stephan Aßmus, superstippi@gmx.de */ #ifndef EXPRESSION_TEXT_VIEW_H #define EXPRESSION_TEXT_VIEW_H #include #include #include "InputTextView.h" class CalcView; class ExpressionTextView : public InputTextView { public: ExpressionTextView(BRect frame, CalcView* calcView); virtual ~ExpressionTextView(); // BView virtual void MakeFocus(bool focused = true); virtual void KeyDown(const char* bytes, int32 numBytes); virtual void MouseDown(BPoint where); // TextView virtual void GetDragParameters(BMessage* dragMessage, BBitmap** bitmap, BPoint* point, BHandler** handler); virtual void SetTextRect(BRect rect); // InputTextView virtual void RevertChanges(); virtual void ApplyChanges(); // ExpressionTextView void AddKeypadLabel(const char* label); void SetExpression(const char* expression); void SetValue(BString value, BString decimalSeparator = "."); void BackSpace(); void Clear(); void AddExpressionToHistory(const char* expression); void PreviousExpression(); void NextExpression(); void LoadSettings(const BMessage* archive); status_t SaveSettings(BMessage* archive) const; private: CalcView* fCalcView; BString fKeypadLabels; BList fPreviousExpressions; int32 fHistoryPos; BString fCurrentExpression; BString fCurrentValue; bool fChangesApplied; }; #endif // EXPRESSION_TEXT_VIEW_H