1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#ifndef __COMMAND_HELP_PDF_H__
#define __COMMAND_HELP_PDF_H__
/*LICENSE_START*/
/*
* Copyright 1995-2002 Washington University School of Medicine
*
* http://brainmap.wustl.edu
*
* This file is part of CARET.
*
* CARET 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; either version 2 of the License, or
* (at your option) any later version.
*
* CARET is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CARET; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/*LICENSE_END*/
#include <vector>
#include <QStringList>
#include "CommandBase.h"
class QFont;
class QPainter;
class QPrinter;
/// class for printing help as PDF
/// taken from C++ GUI Programming with QT by Blanchette and Summerfield
class CommandHelpPDF : public CommandBase {
public:
// constructor
CommandHelpPDF();
// destructor
~CommandHelpPDF();
// get full help information
QString getHelpInformation() const;
// get the script builder parameters
virtual void getScriptBuilderParameters(ScriptBuilderParameters& paramsOut) const;
/// command requires GUI flag sent to QApplication to be true
virtual bool getHasGUI() const { return true; }
protected:
// info about command
class CommandInfo {
public:
// the commands help pages
QList<QStringList> helpPages;
// the page number
int pageNumber;
// the command
CommandBase* command;
};
// execute the command
void executeCommand() throw (BrainModelAlgorithmException,
CommandException,
FileException,
ProgramParametersException,
StatisticException);
// convert lines of text to pages
void createPages(QPainter& painter,
QFont& font,
const QStringList& textLines,
QList<QStringList>& pagesOut) const;
// create the command table of contents page
void createTableOfContentsPages(QPainter& painter,
QFont& font,
QList<QStringList>& pagesOut);
// create the title page
void createTitlePage(QPainter& painter,
QFont& font,
QList<QStringList>& pagesOut) const;
// create the info page
void createInfoPage(QPainter& painter,
QFont& font,
QList<QStringList>& pagesOut) const;
// print pages of text
void printPages(QPrinter& printer,
QPainter& painter,
QFont& font,
const QList<QStringList>& pages,
int& pageNumberInOut,
const bool alignCenterFlag = false) const;
// get height of text
int getTextHeight(QPainter& painter,
const QString& text) const;
// get width of text
int getTextWidth(QPainter& painter,
const QString& text) const;
/// the command info
std::vector<CommandInfo> commandInfo;
/// large gap for pages
int largeGapSize;
/// small gap for pages
int smallGapSize;
/// width of page
int pageWidth;
/// height of page
int pageHeight;
};
#endif // __COMMAND_HELP_PDF_H__
|