/* * MathPlanner 3.0 - Mathematical design tool. * Copyright(C) 2002 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_FUNCTION_FRAME_H #define _MATHPLANNER_FUNCTION_FRAME_H #include #include #include "MathHeaders.h" #include "Frame.h" #include "RealComplexDisplay.h" #include "Layout.h" #include "Extern.h" class NMenory; class string_object; class function_defination_object; class DataStorage; class Paper; class ApplicationControl; class m_function_object : public MathFrame { private: class display real_display,imaginary_display,vector_display; bool modify,build,move,real_dp,complex_dp,vector_dp; bool show_value,rational; math_node value; int digits,digit_mode,answer_mode,mode; class NMemory *strings_mem; class string_object **strings; class string_object *mouse_selection_string; int max_list; class string_object *Focused_string; string_layout MatrixLo; text_layout AssignChar; complex_layout AngleLo; public: class string_object *string; class function_defination_object *fdo; m_function_object(QPoint p,class ApplicationControl *,class Paper *); m_function_object(DataStorage *,class ApplicationControl *,class Paper *); ~m_function_object(); DataStorage *BuildStorage(); bool IsMainString(class string_object *); void UnFocusAll(); void FocusString(class string_object *); void SetModify(); class string_object *GetFocus(); class m_base_object *ObjectFocus(); void SendCall(int); void CalculateBounds(); math_node Calculate(); void Build(); void Draw(class QPainter *); void DrawRQ(); void MoveTo(QPoint); void MousePressed(QPoint p); void ShowValue(); void MessageReceived(DataStorage *msg,int rec); void PostMessage(DataStorage *msg,int dest=TO_FRAME); virtual void KeyReceived(key_code); void AutoDelete(); // STRINGD int AddString(string_object *obj); void DeleteString(string_object *obj); void RemoveString(string_object *obj); private: void Selected(); void Reset(); void AllocateSpace(int); }; #endif