Blame addon/doxywizard/wizard.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef WIZARD_H
Packit 1c1d7e
#define WIZARD_H
Packit 1c1d7e
Packit 1c1d7e
#include <QSplitter>
Packit 1c1d7e
#include <QHash>
Packit 1c1d7e
#include <QDialog>
Packit 1c1d7e
Packit 1c1d7e
class Input;
Packit 1c1d7e
class QTreeWidget;
Packit 1c1d7e
class QTreeWidgetItem;
Packit 1c1d7e
class QStackedWidget;
Packit 1c1d7e
class QCheckBox;
Packit 1c1d7e
class QLineEdit;
Packit 1c1d7e
class QPushButton;
Packit 1c1d7e
class QRadioButton;
Packit 1c1d7e
class QGroupBox;
Packit 1c1d7e
class QButtonGroup;
Packit 1c1d7e
class Wizard;
Packit 1c1d7e
class QImage;
Packit 1c1d7e
class QLabel;
Packit 1c1d7e
Packit 1c1d7e
enum OptLang     { Lang_Cpp, Lang_C, Lang_Java, Lang_CS };
Packit 1c1d7e
enum HtmlStyle   { HS_Plain, HS_TreeView, HS_CHM };
Packit 1c1d7e
enum TexStyle    { TS_PDFHyper, TS_PDF, TS_PS };
Packit 1c1d7e
enum DiagramMode { DM_None, DM_Builtin, DM_Dot };
Packit 1c1d7e
Packit 1c1d7e
class TuneColorDialog : public QDialog
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
Packit 1c1d7e
  public:
Packit 1c1d7e
    TuneColorDialog(int hue,int sat,int gamma,QWidget *parent=0);
Packit 1c1d7e
    int getHue() const;
Packit 1c1d7e
    int getSaturation() const;
Packit 1c1d7e
    int getGamma() const;
Packit 1c1d7e
Packit 1c1d7e
  private slots:
Packit 1c1d7e
    void updateImage(int hue,int sat,int val);
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    QImage *m_image;
Packit 1c1d7e
    QLabel *m_imageLab;
Packit 1c1d7e
    int m_hue;
Packit 1c1d7e
    int m_sat;
Packit 1c1d7e
    int m_gam;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
class ColorPicker : public QWidget
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
public:
Packit 1c1d7e
    enum Mode { Hue, Saturation, Gamma };
Packit 1c1d7e
    ColorPicker(Mode m);
Packit 1c1d7e
    ~ColorPicker();
Packit 1c1d7e
Packit 1c1d7e
public slots:
Packit 1c1d7e
    void setCol(int h, int s, int g);
Packit 1c1d7e
    //void setCol(int h, int s);
Packit 1c1d7e
Packit 1c1d7e
signals:
Packit 1c1d7e
    void newHsv(int h, int s, int g);
Packit 1c1d7e
Packit 1c1d7e
protected:
Packit 1c1d7e
    void paintEvent(QPaintEvent*);
Packit 1c1d7e
    void mouseMoveEvent(QMouseEvent *);
Packit 1c1d7e
    void mousePressEvent(QMouseEvent *);
Packit 1c1d7e
Packit 1c1d7e
private:
Packit 1c1d7e
    enum { foff = 3, coff = 4 }; //frame and contents offset
Packit 1c1d7e
    int y2hue(int y);
Packit 1c1d7e
    int y2sat(int y);
Packit 1c1d7e
    int y2gam(int y);
Packit 1c1d7e
    int hue2y(int hue);
Packit 1c1d7e
    int sat2y(int sat);
Packit 1c1d7e
    int gam2y(int gamma);
Packit 1c1d7e
    void setHue(int v);
Packit 1c1d7e
    void setSat(int v);
Packit 1c1d7e
    void setGam(int v);
Packit 1c1d7e
Packit 1c1d7e
    QPixmap *m_pix;
Packit 1c1d7e
    Mode m_mode;
Packit 1c1d7e
    int m_gam;
Packit 1c1d7e
    int m_hue;
Packit 1c1d7e
    int m_sat;
Packit 1c1d7e
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
class Step1 : public QWidget
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
Packit 1c1d7e
  public:
Packit 1c1d7e
    Step1(Wizard *parent,const QHash<QString,Input*> &modelData);
Packit 1c1d7e
    void init();
Packit 1c1d7e
Packit 1c1d7e
  private slots:
Packit 1c1d7e
    void selectSourceDir(); 
Packit 1c1d7e
    void selectDestinationDir(); 
Packit 1c1d7e
    void selectProjectIcon();
Packit 1c1d7e
    void setProjectName(const QString &name);
Packit 1c1d7e
    void setProjectBrief(const QString &desc);
Packit 1c1d7e
    void setProjectNumber(const QString &num);
Packit 1c1d7e
    void setSourceDir(const QString &dir;;
Packit 1c1d7e
    void setDestinationDir(const QString &dir;;
Packit 1c1d7e
    void setRecursiveScan(int);
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    QLineEdit *m_projName;
Packit 1c1d7e
    QLineEdit *m_projBrief;
Packit 1c1d7e
    QLineEdit *m_projNumber;
Packit 1c1d7e
    QLineEdit *m_sourceDir;
Packit 1c1d7e
    QLineEdit *m_destDir;
Packit 1c1d7e
    QLabel    *m_projIconLab;
Packit 1c1d7e
    QCheckBox *m_recursive;
Packit 1c1d7e
    QPushButton *m_srcSelectDir;
Packit 1c1d7e
    QPushButton *m_dstSelectDir;
Packit 1c1d7e
    Wizard    *m_wizard;
Packit 1c1d7e
    const QHash<QString,Input *> &m_modelData;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
class Step2 : public QWidget
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
  public:
Packit 1c1d7e
    Step2(Wizard *parent,const QHash<QString,Input*> &modelData);
Packit 1c1d7e
    void init();
Packit 1c1d7e
Packit 1c1d7e
  private slots:
Packit 1c1d7e
    void optimizeFor(int choice);
Packit 1c1d7e
    void extractMode(int choice);
Packit 1c1d7e
    void changeCrossRefState(int choice);
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    QGroupBox    *m_extractMode;
Packit 1c1d7e
    QGroupBox    *m_optimizeLang;
Packit 1c1d7e
    QButtonGroup *m_extractModeGroup;
Packit 1c1d7e
    QButtonGroup *m_optimizeLangGroup;
Packit 1c1d7e
    QCheckBox    *m_crossRef;
Packit 1c1d7e
    Wizard       *m_wizard;
Packit 1c1d7e
    const QHash<QString,Input *> &m_modelData;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
class Step3 : public QWidget
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
Packit 1c1d7e
  public:
Packit 1c1d7e
    Step3(Wizard *parent,const QHash<QString,Input*> &modelData);
Packit 1c1d7e
    void init();
Packit 1c1d7e
Packit 1c1d7e
  private slots:
Packit 1c1d7e
    void setHtmlEnabled(bool);
Packit 1c1d7e
    void setLatexEnabled(bool);
Packit 1c1d7e
    void setManEnabled(int);
Packit 1c1d7e
    void setRtfEnabled(int);
Packit 1c1d7e
    void setXmlEnabled(int);
Packit 1c1d7e
    void setSearchEnabled(int);
Packit 1c1d7e
    void setHtmlOptions(int);
Packit 1c1d7e
    void setLatexOptions(int);
Packit 1c1d7e
    void tuneColorDialog();
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    QGroupBox *m_texOptions;
Packit 1c1d7e
    QButtonGroup *m_texOptionsGroup;
Packit 1c1d7e
    QGroupBox *m_htmlOptions;
Packit 1c1d7e
    QButtonGroup *m_htmlOptionsGroup;
Packit 1c1d7e
    QCheckBox *m_htmlEnabled;
Packit 1c1d7e
    QCheckBox *m_latexEnabled;
Packit 1c1d7e
    QCheckBox *m_manEnabled;
Packit 1c1d7e
    QCheckBox *m_rtfEnabled;
Packit 1c1d7e
    QCheckBox *m_xmlEnabled;
Packit 1c1d7e
    QCheckBox *m_searchEnabled;
Packit 1c1d7e
    QPushButton *m_tuneColor;
Packit 1c1d7e
    Wizard    *m_wizard;
Packit 1c1d7e
    const QHash<QString,Input *> &m_modelData;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
class Step4 : public QWidget
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
Packit 1c1d7e
  public:
Packit 1c1d7e
    Step4(Wizard *parent,const QHash<QString,Input*> &modelData);
Packit 1c1d7e
    void init();
Packit 1c1d7e
Packit 1c1d7e
  private slots:
Packit 1c1d7e
    void diagramModeChanged(int);
Packit 1c1d7e
    void setClassGraphEnabled(int state);
Packit 1c1d7e
    void setCollaborationGraphEnabled(int state);
Packit 1c1d7e
    void setGraphicalHierarchyEnabled(int state);
Packit 1c1d7e
    void setIncludeGraphEnabled(int state);
Packit 1c1d7e
    void setIncludedByGraphEnabled(int state);
Packit 1c1d7e
    void setCallGraphEnabled(int state);
Packit 1c1d7e
    void setCallerGraphEnabled(int state);
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    QGroupBox *m_diagramMode;
Packit 1c1d7e
    QButtonGroup *m_diagramModeGroup;
Packit 1c1d7e
    QGroupBox *m_dotGroup;
Packit 1c1d7e
    QCheckBox *m_dotClass;
Packit 1c1d7e
    QCheckBox *m_dotCollaboration;
Packit 1c1d7e
    QCheckBox *m_dotInclude;
Packit 1c1d7e
    QCheckBox *m_dotIncludedBy;
Packit 1c1d7e
    QCheckBox *m_dotInheritance;
Packit 1c1d7e
    QCheckBox *m_dotCall;
Packit 1c1d7e
    QCheckBox *m_dotCaller;
Packit 1c1d7e
    Wizard    *m_wizard;
Packit 1c1d7e
    const QHash<QString,Input *> &m_modelData;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
class Wizard : public QSplitter
Packit 1c1d7e
{
Packit 1c1d7e
    Q_OBJECT
Packit 1c1d7e
  public:
Packit 1c1d7e
    Wizard(const QHash<QString,Input*> &modelData, QWidget *parent=0);
Packit 1c1d7e
   ~Wizard();
Packit 1c1d7e
Packit 1c1d7e
  public slots:
Packit 1c1d7e
    void refresh();
Packit 1c1d7e
Packit 1c1d7e
  private slots:
Packit 1c1d7e
    void activateTopic(QTreeWidgetItem *item,QTreeWidgetItem *);
Packit 1c1d7e
    void nextTopic();
Packit 1c1d7e
    void prevTopic();
Packit 1c1d7e
Packit 1c1d7e
  signals:
Packit 1c1d7e
    void done();
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    const QHash<QString,Input *> &m_modelData;
Packit 1c1d7e
    QTreeWidget    *m_treeWidget;
Packit 1c1d7e
    QStackedWidget *m_topicStack;
Packit 1c1d7e
    Step1          *m_step1;
Packit 1c1d7e
    Step2          *m_step2;
Packit 1c1d7e
    Step3          *m_step3;
Packit 1c1d7e
    Step4          *m_step4;
Packit 1c1d7e
    QPushButton    *m_next;
Packit 1c1d7e
    QPushButton    *m_prev;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
#endif