/* * MathPlanner 3.0.7 - 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_FRAMEOBJECTS_H #define _MATHPLANNER_FRAMEOBJECTS_H #include #include #include #include #include #include #include #include #include #include "Frame.h" class DataStorage; class ApplicationControl; class Paper; class QTextEdit; class TextControl; class MathFrame; class QFocusEvent; class PaperText; class QSimpleRichText; class m_function_object; /* class PaperFunction : public MathFrame { Q_OBJECT public: PaperFunction(DataStorage *msg,ApplicationControl *a,Paper *p); PaperFunction(QPoint pos,ApplicationControl *a,Paper *p); ~PaperFunction(); void Reset(); void UpDate(); void Activate(); void DeActivate(); void Selected(); void Execute(); void Draw(QPainter *); void MousePressed(QPoint p); void CalculateBounds(); void SetBounds(QRect,int); void MessageReceived(DataStorage *,int); void PostMessage(DataStorage *,int); void KeyReceived(struct key_code); void MoveTo(QPoint); void ShowValue(); bool IsEmpty(); DataStorage *BuildStorage(); QString Result; private: m_function_object *function; bool show_value; int digits,digit_mode,answer_mode; }; */ class PaperImage : public MathFrame { Q_OBJECT public: PaperImage(DataStorage *msg,ApplicationControl *a,Paper *p); PaperImage(QImage b,ApplicationControl *a,Paper *p); ~PaperImage(); void Activate(); void Draw(QPainter *); void MousePressed(QPoint p); void CalculateBounds(); void SetBounds(QRect); DataStorage *BuildStorage(); const QImage Pixmap(); QImage pixmap; /* This is used in resizing */ QImage *pixmap_orig; private slots: void Reload(); }; class PaperQPicture : public MathFrame { public: PaperQPicture(DataStorage *msg,ApplicationControl *a,Paper *p); PaperQPicture(QPicture *b,ApplicationControl *a,Paper *p); ~PaperQPicture(); void Draw(QPainter *); void MousePressed(QPoint p); void CalculateBounds(); void SetBounds(QRect); DataStorage *BuildStorage(); QPicture *Picture(); QPicture *pixmap; }; class Editor : public QTextEdit { public: Editor(QWidget *parent,ApplicationControl *,PaperText *); private: void focusInEvent( QFocusEvent *event ); void focusOutEvent( QFocusEvent *event ); void mousePressEvent( QMouseEvent *event ); PaperText *frame; ApplicationControl *AppControl; }; class PaperText : public MathFrame { Q_OBJECT public: PaperText(DataStorage *msg,ApplicationControl *a,Paper *p); PaperText(QString b,ApplicationControl *a,Paper *p); ~PaperText(); void Draw(QPainter *); void MousePressed(QPoint p); void CalculateBounds(); void SetBounds(QRect); void Activate(); void DeActivate(); DataStorage *BuildStorage(); const QString Text(); class Editor *Edit(); void MessageReceived(DataStorage *,int); public slots: void editCut(); void editCopy(); void editPaste(); void textBold(); void textUnderline(); void textItalic(); void textFamily( const QString &f ); void textSize( const QString &p ); void textStyle( int s ); void textColor(); void textAlign( QAction *a ); private: TextControl *CB; Editor *edit; QSimpleRichText *rich; QRect view; QString text; }; class TextControl : public QObject { Q_OBJECT public: TextControl(ApplicationControl *); ~TextControl(); void CreateConnections(PaperText *); void Show(); void Hide(); private: void CreateToolBar(); public slots: void fontChanged( const QFont &f ); void colorChanged( const QColor &c ); void alignmentChanged( int a ); public: QAction *actionTextBold,*actionTextUnderline,*actionTextItalic,*actionTextColor, *actionAlignLeft,*actionAlignCenter,*actionAlignRight,*actionAlignJustify; QComboBox *comboStyle,*comboFont,*comboSize; private: QActionGroup *grp; ApplicationControl *AppControl; QToolBar *tb; }; #endif