/* * 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_LAYOUT_H #define _MATHPLANNER_LAYOUT_H #include "BaseStructures.h" #include #include #include #include class ApplicationControl; class complex_layout { QPoint pos; layout_rect inner; int margin,spacing,in,xpos,width; class ApplicationControl *AppControl; public: complex_layout(); void Init(class ApplicationControl *appc); void SetSize(layout_rect); layout_rect GetOuterRect(); layout_rect GetRect(); QPoint GetPosition(); void SetPosition(QPoint); void Draw(QPainter *); }; class root_layout { QPoint pos; layout_rect inner[2]; int margin,spacing,in,xpos,width; class ApplicationControl *AppControl; public: root_layout(); void Init(class ApplicationControl *appc); void SetSize(int,layout_rect); layout_rect GetOuterRect(); layout_rect GetRect(int); QPoint GetPosition(int); void SetPosition(QPoint); void Draw(QPainter *); }; class sigma_layout { QPoint pos; layout_rect inner[3]; int id,margin,spacing,in; layout_rect para; int base; class ApplicationControl *AppControl; public: sigma_layout(); void Init(class ApplicationControl *appc); void SetSize(int,layout_rect); layout_rect GetOuterRect(int type,int centerline); layout_rect GetRect(int); QPoint GetPosition(int); void SetPosition(QPoint); void Draw(QPainter *); }; class exp_layout { QPoint pos; layout_rect inner[2]; int margin,spacing,alt; public: exp_layout(); void Init(class ApplicationControl *appc); void SetSize(int id,layout_rect); layout_rect GetOuterRect(); layout_rect GetRect(int id); QPoint GetPosition(int id); void SetPosition(QPoint); }; class dive_layout { QPoint pos; layout_rect inner[2]; int margin,spacing,alt,width,wid,adjust; class ApplicationControl *AppControl; public: dive_layout(); void Init(class ApplicationControl *appc); void SetSize(int id,layout_rect); layout_rect GetOuterRect(int center_line_adjustment); layout_rect GetRect(int id); QPoint GetPosition(int id); void SetPosition(QPoint); void Draw(QPainter *); }; class par_layout { QPoint pos; layout_rect inner,para,parb; int margin,spacing,alt,size,side; QFont font; int id; class ApplicationControl *AppControl; public: par_layout(); void Init(class ApplicationControl *appc); void SetSize(layout_rect,int id); layout_rect GetOuterRect(int centerline,int mode); layout_rect GetRect(); QPoint GetPosition(); void SetPosition(QPoint); void Draw(QPainter *); }; class string_layout { QPoint pos; layout_rect inner[64]; int margin,spacing; public: string_layout(); void Init(class ApplicationControl *appc); void SetSize(int id,layout_rect); layout_rect GetOuterRect(int count); layout_rect GetRect(int id); QPoint GetPosition(int id); void SetPosition(QPoint); }; class matrix_layout { QPoint pos; layout_rect inner[64]; int margin,spacing,point_width,rows,cols; int row_asc[64],row_des[64],col_wid[64]; public: matrix_layout(); void Init(class ApplicationControl *appc); void SetSize(int id,layout_rect); layout_rect GetOuterRect(int x,int y,int pw); layout_rect GetRect(int id); QPoint GetPosition(int id); void SetPosition(QPoint); void Draw(QPainter *); }; class linepar_layout { QPoint pos,pa,pb; layout_rect inner,orect; int margin,spacing; int mode,he; class ApplicationControl *AppControl; public: linepar_layout(); void Init(class ApplicationControl *appc); void SetSize(layout_rect); layout_rect GetOuterRect(int centerline,int mode); layout_rect GetRect(); QPoint GetPosition(); void SetPosition(QPoint); void Draw(QPainter *); }; class text_layout { QPoint pos; QString text; layout_rect inner; int margin,spacing,xpos,ypos; public: text_layout(); void Init(class ApplicationControl *appc); layout_rect GetOuterRect(QFont ,QString ,bool bound=false); void Draw(QPainter *); void SetPosition(QPoint); }; #endif