source: trunk/examples/activeqt/menus/menus.cpp@ 1168

Last change on this file since 1168 was 846, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 5.5 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the examples of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:BSD$
10** You may use this file under the terms of the BSD license as follows:
11**
12** "Redistribution and use in source and binary forms, with or without
13** modification, are permitted provided that the following conditions are
14** met:
15** * Redistributions of source code must retain the above copyright
16** notice, this list of conditions and the following disclaimer.
17** * Redistributions in binary form must reproduce the above copyright
18** notice, this list of conditions and the following disclaimer in
19** the documentation and/or other materials provided with the
20** distribution.
21** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
22** the names of its contributors may be used to endorse or promote
23** products derived from this software without specific prior written
24** permission.
25**
26** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
37** $QT_END_LICENSE$
38**
39****************************************************************************/
40
41#include "menus.h"
42#include <QAction>
43#include <QAxFactory>
44#include <QMenuBar>
45#include <QMessageBox>
46#include <QTextEdit>
47#include <QPixmap>
48
49#include "fileopen.xpm"
50#include "filesave.xpm"
51
52QMenus::QMenus(QWidget *parent)
53 : QMainWindow(parent, 0) // QMainWindow's default flag is WType_TopLevel
54{
55 QAction *action;
56
57 QMenu *file = new QMenu(this);
58
59 action = new QAction(QPixmap((const char**)fileopen), "&Open", this);
60 action->setShortcut(tr("CTRL+O"));
61 connect(action, SIGNAL(triggered()), this, SLOT(fileOpen()));
62 file->addAction(action);
63
64 action = new QAction(QPixmap((const char**)filesave),"&Save", this);
65 action->setShortcut(tr("CTRL+S"));
66 connect(action, SIGNAL(triggered()), this, SLOT(fileSave()));
67 file->addAction(action);
68
69 QMenu *edit = new QMenu(this);
70
71 action = new QAction("&Normal", this);
72 action->setShortcut(tr("CTRL+N"));
73 action->setToolTip("Normal");
74 action->setStatusTip("Toggles Normal");
75 action->setCheckable(true);
76 connect(action, SIGNAL(triggered()), this, SLOT(editNormal()));
77 edit->addAction(action);
78
79 action = new QAction("&Bold", this);
80 action->setShortcut(tr("CTRL+B"));
81 action->setCheckable(true);
82 connect(action, SIGNAL(triggered()), this, SLOT(editBold()));
83 edit->addAction(action);
84
85 action = new QAction("&Underline", this);
86 action->setShortcut(tr("CTRL+U"));
87 action->setCheckable(true);
88 connect(action, SIGNAL(triggered()), this, SLOT(editUnderline()));
89 edit->addAction(action);
90
91 QMenu *advanced = new QMenu(this);
92 action = new QAction("&Font...", this);
93 connect(action, SIGNAL(triggered()), this, SLOT(editAdvancedFont()));
94 advanced->addAction(action);
95
96 action = new QAction("&Style...", this);
97 connect(action, SIGNAL(triggered()), this, SLOT(editAdvancedStyle()));
98 advanced->addAction(action);
99
100 edit->addMenu(advanced)->setText("&Advanced");
101
102 edit->addSeparator();
103
104 action = new QAction("Una&vailable", this);
105 action->setShortcut(tr("CTRL+V"));
106 action->setCheckable(true);
107 action->setEnabled(false);
108 connect(action, SIGNAL(triggered()), this, SLOT(editUnderline()));
109 edit->addAction(action);
110
111 QMenu *help = new QMenu(this);
112
113 action = new QAction("&About...", this);
114 action->setShortcut(tr("F1"));
115 connect(action, SIGNAL(triggered()), this, SLOT(helpAbout()));
116 help->addAction(action);
117
118 action = new QAction("&About Qt...", this);
119 connect(action, SIGNAL(triggered()), this, SLOT(helpAboutQt()));
120 help->addAction(action);
121
122 if (!QAxFactory::isServer())
123 menuBar()->addMenu(file)->setText("&File");
124 menuBar()->addMenu(edit)->setText("&Edit");
125 menuBar()->addMenu(help)->setText("&Help");
126
127 editor = new QTextEdit(this);
128 setCentralWidget(editor);
129
130 statusBar();
131}
132
133void QMenus::fileOpen()
134{
135 editor->append("File Open selected.");
136}
137
138void QMenus::fileSave()
139{
140 editor->append("File Save selected.");
141}
142
143void QMenus::editNormal()
144{
145 editor->append("Edit Normal selected.");
146}
147
148void QMenus::editBold()
149{
150 editor->append("Edit Bold selected.");
151}
152
153void QMenus::editUnderline()
154{
155 editor->append("Edit Underline selected.");
156}
157
158void QMenus::editAdvancedFont()
159{
160 editor->append("Edit Advanced Font selected.");
161}
162
163void QMenus::editAdvancedStyle()
164{
165 editor->append("Edit Advanced Style selected.");
166}
167
168void QMenus::helpAbout()
169{
170 QMessageBox::about(this, "About QMenus",
171 "This example implements an in-place ActiveX control with menus and status messages.");
172}
173
174void QMenus::helpAboutQt()
175{
176 QMessageBox::aboutQt(this);
177}
Note: See TracBrowser for help on using the repository browser.