1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2015 The Qt Company Ltd. 4 ** Contact: http://www.qt.io/licensing/ 5 ** 6 ** This file is part of the examples of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:BSD$ 9 ** You may use this file under the terms of the BSD license as follows: 10 ** 11 ** "Redistribution and use in source and binary forms, with or without 12 ** modification, are permitted provided that the following conditions are 13 ** met: 14 ** * Redistributions of source code must retain the above copyright 15 ** notice, this list of conditions and the following disclaimer. 16 ** * Redistributions in binary form must reproduce the above copyright 17 ** notice, this list of conditions and the following disclaimer in 18 ** the documentation and/or other materials provided with the 19 ** distribution. 20 ** * Neither the name of The Qt Company Ltd nor the names of its 21 ** contributors may be used to endorse or promote products derived 22 ** from this software without specific prior written permission. 23 ** 24 ** 25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 36 ** 37 ** $QT_END_LICENSE$ 38 ** 39 ****************************************************************************/ 40 41 #ifndef MAINWINDOW_H 42 #define MAINWINDOW_H 43 44 #include <QMainWindow> 45 46 QT_BEGIN_NAMESPACE 47 class QAction; 48 class QActionGroup; 49 class QLabel; 50 class QMenu; 51 QT_END_NAMESPACE 52 53 //! [0] 54 class MainWindow : public QMainWindow 55 { 56 Q_OBJECT 57 58 public: 59 MainWindow(); 60 61 protected: 62 void contextMenuEvent(QContextMenuEvent *event); 63 //! [0] 64 65 //! [1] 66 private slots: 67 void newFile(); 68 void open(); 69 void save(); 70 void print(); 71 void undo(); 72 void redo(); 73 void cut(); 74 void copy(); 75 void paste(); 76 void bold(); 77 void italic(); 78 void leftAlign(); 79 void rightAlign(); 80 void justify(); 81 void center(); 82 void setLineSpacing(); 83 void setParagraphSpacing(); 84 void about(); 85 void aboutQt(); 86 //! [1] 87 88 //! [2] 89 private: 90 void createActions(); 91 void createMenus(); 92 //! [2] 93 94 //! [3] 95 QMenu *fileMenu; 96 QMenu *editMenu; 97 QMenu *formatMenu; 98 QMenu *helpMenu; 99 QActionGroup *alignmentGroup; 100 QAction *newAct; 101 QAction *openAct; 102 QAction *saveAct; 103 QAction *printAct; 104 QAction *exitAct; 105 QAction *undoAct; 106 QAction *redoAct; 107 QAction *cutAct; 108 QAction *copyAct; 109 QAction *pasteAct; 110 QAction *boldAct; 111 QAction *italicAct; 112 QAction *leftAlignAct; 113 QAction *rightAlignAct; 114 QAction *justifyAct; 115 QAction *centerAct; 116 QAction *setLineSpacingAct; 117 QAction *setParagraphSpacingAct; 118 QAction *aboutAct; 119 QAction *aboutQtAct; 120 QLabel *infoLabel; 121 }; 122 //! [3] 123 124 #endif 125