123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /*************************************************************************
- * Copyright (c) 2011 AT&T Intellectual Property
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors: Details at https://graphviz.org
- *************************************************************************/
- /*
- Core structures of mdi windowing code is either inspired or directly copied from
- Nokia Corporation's QT Toolkit examples. These examples are published under the
- terms of the BSD
- */
- #pragma once
- #include "ui_settings.h"
- #include <QMainWindow>
- #include <QTextStream>
- #include <vector>
- extern QTextStream errout;
- class MdiChild;
- class CFrmSettings;
- QT_BEGIN_NAMESPACE
- class QAction;
- class QMenu;
- class QMdiArea;
- class QMdiSubWindow;
- QT_END_NAMESPACE
- class CMainWindow : public QMainWindow {
- Q_OBJECT
- public:
- CMainWindow(const QStringList &files);
- QMdiArea *mdiArea;
- void addFile(const QString &fileName);
- private slots:
- void slotSettings();
- void slotRun(MdiChild *m = nullptr);
- void slotNew();
- void slotOpen();
- void slotSave();
- void slotSaveAs();
- void slotCut();
- void slotCopy();
- void slotPaste();
- void slotAbout();
- void slotRefreshMenus();
- void slotNewLog();
- void slotSaveLog();
- MdiChild *createMdiChild();
- void activateChild(QWidget *window);
- protected:
- void closeEvent(QCloseEvent *event);
- private:
- void setChild();
- void createConsole();
- void actions();
- void menus();
- void updateMenus();
- void updateWindowMenu();
- void updateFileMenu();
- void toolBars();
- void readSettings();
- void writeSettings();
- MdiChild *activeMdiChild();
- MdiChild *prevChild;
- QMdiSubWindow *findMdiChild(const QString &fileName);
- int dfltRenderIdx, dfltLayoutIdx;
- QToolBar *tbFile;
- QToolBar *tbEdit;
- QToolBar *tbGraph;
- QAction *newAct;
- QAction *openAct;
- QAction *saveAct;
- QAction *saveAsAct;
- QAction *exitAct;
- QAction *cutAct;
- QAction *copyAct;
- QAction *pasteAct;
- QAction *closeAct;
- QAction *closeAllAct;
- QAction *tileAct;
- QAction *cascadeAct;
- QAction *nextAct;
- QAction *previousAct;
- QAction *separatorAct;
- QAction *aboutAct;
- QAction *settingsAct;
- QAction *layoutAct;
- CFrmSettings *frmSettings;
- // menus
- QMenu *mFile;
- QMenu *mEdit;
- QMenu *mGraph;
- QMenu *mWindow;
- QMenu *mHelp;
- };
|