/* * MathPlanner 3.1 - Mathematical design tool. * Copyright(C) 2000 Jarmo Nikkanen * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation. * * You should have received a copy of the GNU General Public License with this program. * */ #ifndef _MATHPLANNER_BASE_H #define _MATHPLANNER_BASE_H #include "MathHeaders.h" #include "BaseStructures.h" #include "Extern.h" #include #include class ApplicationControl; class m_function_object; class string_object; class m_display_box { public: class m_base_object *parent; QString *string; int max_letters; int cursor; int c_mode; int id; bool focus; bool ro; layout_rect bounds,old_bounds; m_display_box(layout_rect,QString *string,int byt); void KeyReceived(key_code); void Focus(bool); void Draw(QPainter *,bool,bool); void FeedBack(key_code); void SetParent(m_base_object *); void CalculateBounds(); void MoveTo(QPoint); void SetReadOnly(bool); bool isReadOnly(); void SetID(int); }; class m_base_object { public: // MUST BE SAVED int Type; // OT layout_rect bounds; layout_rect old_bounds; int SubObject; int Priority; // NOT SAVED int MainType; // OMT bool Error_flag; bool Neg; class math_node value; class QPen color_pen; class QPen bounds_pen; class QPen error_pen; class QPen focus_pen; class ApplicationControl *AppControl; class m_function_object *function; // pointer to function object struct str_range range; class string_object *string; // String object for this object m_base_object(class ApplicationControl *Aplc,m_function_object *,class string_object *); m_base_object(class DataStorage *); virtual ~m_base_object(); virtual QColor GetColor(int id=0); virtual QFont GetFont(int id=0); virtual void SetFontSize(int id); virtual void SetFocus(); //- virtual bool HasFocus(); //- virtual void UnFocus(); //- virtual class DataStorage *BuildStorage(); virtual void FocusNextObject(); virtual void SendCall(int); void SetRange(str_range); virtual void KeyReceived(key_code); virtual void KeyFeedback(key_code); virtual void KeyOutput(key_code); //- virtual void Reset(); //- virtual void CalculateBounds(); virtual void MoveTo(QPoint); virtual void Draw(class QPainter *); void SetStringObject(class string_object *); virtual void SeekObject(QPoint p); virtual class base_object_message *CreateControlObject(); virtual void MessageReceived(DataStorage *msg,int rec); virtual void PostMessage(DataStorage *msg,int dest=TO_FRAME); virtual bool AutoDeletion(); virtual void InsertString(str_range,string_object *); virtual void Init(); // MATH COMMANDS virtual class math_node Calculate(); virtual class math_node Calculate(math_node mn); virtual void Build(); virtual void SetValue(class math_node); }; class base_object_message : public QObject { Q_OBJECT public: class ApplicationControl *AppControl; base_object_message(class ApplicationControl *); ~base_object_message(); virtual QWidget *MainWidget(); virtual void ReadState(m_base_object *); virtual void PostMessage(DataStorage *msg,int dest=TO_FRAME); }; #endif