/*************************************************************************** * copyright : (C) 2003-2007 by Pascal Brachet * * http://www.xm1math.net/texmaker/ * * * * 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; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef TEXMAKER_H #define TEXMAKER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "latexeditorview.h" #include "symbollistwidget.h" #include "metapostlistwidget.h" #include "pstrickslistwidget.h" #include "logeditor.h" #include "gotolinedialog.h" #include "replacedialog.h" #include "finddialog.h" typedef QMap FilesMap; typedef QMap KeysMap; typedef QString Userlist[10]; typedef QString UserCd[5]; typedef int SymbolList[412]; class Texmaker : public QMainWindow { Q_OBJECT public: Texmaker(QWidget *parent = 0, Qt::WFlags flags = 0); QString getName(); QFont EditorFont; QByteArray windowstate; public slots: void load( const QString &f ); void setLine( const QString &line ); void ToggleMode(); private: void setupMenus(); void setupToolBars(); void createStatusBar(); bool FileAlreadyOpen(QString f); void closeEvent(QCloseEvent *e); FilesMap filenames; KeysMap shortcuts, actionstext; //gui QDockWidget *OutputView, *StructureView; QTabWidget *EditorView; LogEditor* OutputTextEdit; QToolBox *StructureToolbox; MetapostListWidget *MpListWidget; PstricksListWidget *PsListWidget; SymbolListWidget *RelationListWidget, *ArrowListWidget, *MiscellaneousListWidget, *DelimitersListWidget, *GreekListWidget, *MostUsedListWidget; QTreeWidget *StructureTreeWidget; //menu-toolbar QMenu *fileMenu, *recentMenu, *editMenu, *toolMenu; QMenu *latex1Menu, *latex11Menu, *latex12Menu, *latex13Menu, *latex14Menu, *latex15Menu, *latex16Menu, *latex17Menu ; QMenu *math1Menu, *math11Menu, *math12Menu, *math13Menu, *math14Menu; QMenu *wizardMenu; QMenu *bibMenu; QMenu *user1Menu, *user11Menu, *user12Menu; QMenu *viewMenu; QMenu *optionsMenu; QMenu *helpMenu; QToolBar *fileToolBar, *editToolBar, *runToolBar, *formatToolBar, *mathToolBar; QAction *recentFileActs[5], *ToggleAct; QLabel *stat1, *stat2; QPushButton *pb1, *pb2, *pb3; QString MasterName; bool logpresent; QStringList recentFilesList; //settings int split1_right, split1_left, split2_top, split2_bottom, quickmode; bool singlemode, wordwrap, parenmatch, showline, showoutputview, showstructview, ams_packages, makeidx_package; QString document_class, typeface_size, paper_size, document_encoding, author; QString latex_command, viewdvi_command, dvips_command, dvipdf_command, metapost_command; QString viewps_command, ps2pdf_command, makeindex_command, bibtex_command, pdflatex_command, viewpdf_command, userquick_command, ghostscript_command; QString aspell_command, aspell_lang, aspell_encoding; QString lastDocument, input_encoding; QString struct_level1, struct_level2, struct_level3, struct_level4, struct_level5; QStringList userClassList, userPaperList, userEncodingList, userOptionsList; QStringList structlist, labelitem, structitem; Userlist UserMenuName, UserMenuTag; UserCd UserToolName, UserToolCommand; //dialogs QPointer findDialog; QPointer replaceDialog; QPointer gotoLineDialog; //QPointer help_widget; //tools QProcess *proc; bool FINPROCESS, ERRPROCESS; //latex errors int summaryLines; int errorIndex; int errorFlag; enum {flagStart = 0, flagError, flagBadBox, flagLineNumber, flagWarning}; QList errorLogLineList; QList errorLineList; QList latexErrorLogLineList; QList latexErrorLineList; QStringList errorMessageList; int outputLine; int currentOutputLine; int currentSourceLine; QString currentErrorMessage; //X11 #if defined( Q_WS_X11 ) QString x11style; QString x11fontfamily; int x11fontsize; #endif SymbolList symbolScore; usercodelist symbolMostused; QColor colorMath, colorCommand, colorKeyword; private slots: LatexEditorView *currentEditorView() const; void fileNew(); void fileOpen(); void fileSave(); void fileSaveAll(); void fileSaveAs(); void fileClose(); void fileCloseAll(); void fileExit(); void fileOpenRecent(); void AddRecentFile(const QString &f); void UpdateRecentFile(); void editUndo(); void editRedo(); void editCut(); void editCopy(); void editPaste(); void editSelectAll(); void editFind(); void editFindNext(); void editReplace(); void editGotoLine(); void editComment(); void editUncomment(); void editIndent(); void editSpell(); void ReadSettings(); void SaveSettings(); void NewDocumentStatus(bool m); void UpdateCaption(); void UpdateStructure(); void ShowStructure(); void ClickedOnStructure(QTreeWidgetItem *item,int); void InsertTag(QString Entity, int dx, int dy); void InsertSymbol(QTableWidgetItem *item); void InsertMetaPost(QListWidgetItem *item); void InsertPstricks(QListWidgetItem *item); void InsertFromAction(); void InsertWithSelectionFromAction(); void InsertWithSelectionFromString(const QString& text); void InsertFromString(const QString& text); void InsertBib(); void InsertStruct(); void InsertStructFromString(const QString& text); void InsertImage(); void InsertInclude(); void InsertInput(); void InsertBib1(); void InsertBib2(); void InsertBib3(); void InsertBib4(); void InsertBib5(); void InsertBib6(); void InsertBib7(); void InsertBib8(); void InsertBib9(); void InsertBib10(); void InsertBib11(); void InsertBib12(); void InsertBib13(); void CleanBib(); void InsertUserTag1(); void InsertUserTag2(); void InsertUserTag3(); void InsertUserTag4(); void InsertUserTag5(); void InsertUserTag6(); void InsertUserTag7(); void InsertUserTag8(); void InsertUserTag9(); void InsertUserTag10(); void EditUserMenu(); void SectionCommand(const QString& text); void OtherCommand(const QString& text); void InsertRef(); void InsertPageRef(); void SizeCommand(const QString& text); void LeftDelimiter(const QString& text); void RightDelimiter(const QString& text); void QuickTabular(); void QuickArray(); void QuickTabbing(); void QuickLetter(); void QuickDocument(); void RunCommand(QString comd,bool waitendprocess); void readFromStderr(); //void readFromStdoutput(); void SlotEndProcess(int err); void QuickBuild(); void Latex(); void ViewDvi(); void DviToPS(); void ViewPS(); void PDFLatex(); void ViewPDF(); void CleanAll(); void MakeBib(); void MakeIndex(); void PStoPDF(); void DVItoPDF(); void MetaPost(); void UserTool1(); void UserTool2(); void UserTool3(); void UserTool4(); void UserTool5(); void EditUserTool(); void WebPublish(); void ViewLog(); void ClickedOnOutput(int l); void LatexError(); void NextError(); void PreviousError(); ///// bool NoLatexErrors(); bool ParseLatexError(QString line); void ParseLogLine(QString line); void QuickParseLogLine(QString line); bool ParseBadBox(QString line); bool ParseBadBoxLineNumber(QString line, int len); bool ParseWarning(QString line); bool ParseWarningLineNumber(QString line, int len); void LatexHelp(); void UserManualHelp(); void HelpAbout(); void GeneralOptions(); void gotoNextDocument(); void gotoPrevDocument(); //void ToggleMode(); void SetInterfaceFont(); void gotoBookmark1(); void gotoBookmark2(); void gotoBookmark3(); void SetMostUsedSymbols(); void ModifyShortcuts(); protected: void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); }; #endif