]> Shamusworld >> Repos - architektonas/blob - src/mainapp/commands.h
ea709d89af8e0f16c6752601d33519a11500c346
[architektonas] / src / mainapp / commands.h
1 /****************************************************************************
2 ** $Id: rs_commands.h 1307 2004-04-04 22:48:13Z andrew $
3 **
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
5 **
6 ** This file is part of the qcadlib Library project.
7 **
8 ** This file may be distributed and/or modified under the terms of the
9 ** GNU General Public License version 2 as published by the Free Software
10 ** Foundation and appearing in the file LICENSE.GPL included in the
11 ** packaging of this file.
12 **
13 ** Licensees holding valid qcadlib Professional Edition licenses may use
14 ** this file in accordance with the qcadlib Commercial License
15 ** Agreement provided with the Software.
16 **
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 **
20 ** See http://www.ribbonsoft.com for further details.
21 **
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
23 ** not clear to you.
24 **
25 **********************************************************************/
26
27 #ifndef RS_COMMANDS_H
28 #define RS_COMMANDS_H
29
30 #include <QtCore>
31 #include "rs.h"
32
33 #define RS_COMMANDS Commands::instance()
34
35 /**
36  * Class which holds all commands for the command line. This
37  * is separated in this module to alow the use of different
38  * languages for the gui and the command interface.
39  * Implemented as singleton.
40  *
41  * @author Andrew Mustun
42  */
43 class Commands: public QObject
44 {
45         public:
46                 QStringList complete(const QString & cmd);
47                 RS2::ActionType cmdToAction(const QString & cmd);
48                 RS2::ActionType keycodeToAction(const QString & code);
49
50                 // Class methods
51                 static Commands * instance();
52                 static QString command(const QString & cmd);
53                 static bool checkCommand(const QString & cmd, const QString & str,
54                         RS2::ActionType action = RS2::ActionNone);
55                 static QString msgAvailableCommands();
56
57         protected:
58                 // Class variable
59                 static Commands * uniqueInstance;
60
61         private:
62                 Commands();
63                 ~Commands();
64 //              Q3Dict<RS2::ActionType> mainCommands;
65 //              Q3Dict<RS2::ActionType> shortCommands;
66                 QMultiHash<QString, RS2::ActionType *> mainCommands;
67                 QMultiHash<QString, RS2::ActionType *> shortCommands;
68 };
69
70 #endif