Maliit Plugins  0.92.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
renderer.h
Go to the documentation of this file.
1 /*
2  * This file is part of Maliit Plugins
3  *
4  * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
5  *
6  * Contact: Mohammad Anwari <Mohammad.Anwari@nokia.com>
7  *
8  * Redistribution and use in source and binary forms, with or without modification,
9  * are permitted provided that the following conditions are met:
10  *
11  * Redistributions of source code must retain the above copyright notice, this list
12  * of conditions and the following disclaimer.
13  * Redistributions in binary form must reproduce the above copyright notice, this list
14  * of conditions and the following disclaimer in the documentation and/or other materials
15  * provided with the distribution.
16  * Neither the name of Nokia Corporation nor the names of its contributors may be
17  * used to endorse or promote products derived from this software without specific
18  * prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
21  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
22  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  *
30  */
31 
32 #ifndef MALIIT_KEYBOARD_RENDERER_H
33 #define MALIIT_KEYBOARD_RENDERER_H
34 
36 #include "models/layout.h"
37 #include "logic/style.h"
38 
39 #include <QtGui>
40 
41 #if (QT_VERSION >= 0x050000)
42 #include <QtWidgets>
43 #endif
44 
45 // FIXME: Remove maliit-plugins dependency from renderer, because otherwise
46 // maliit-keyboard-viewer can't be used w/o the Maliit framework.
47 #include <maliit/plugins/abstractsurfacefactory.h>
48 #include <maliit/plugins/abstractwidgetssurface.h>
49 
50 namespace MaliitKeyboard {
51 
52 class RendererPrivate;
53 
54 class Renderer
55  : public QObject
56 {
57  Q_OBJECT
58  Q_DISABLE_COPY(Renderer)
59  Q_DECLARE_PRIVATE(Renderer)
60 
61 public:
62  explicit Renderer(QObject *parent = 0);
63  virtual ~Renderer();
64 
68  void setSurfaceFactory(Maliit::Plugins::AbstractSurfaceFactory *factory);
69 
70  const QSharedPointer<Maliit::Plugins::AbstractGraphicsViewSurface> surface() const;
71  const QSharedPointer<Maliit::Plugins::AbstractGraphicsViewSurface> extendedSurface() const;
72 
73  void addLayout(const SharedLayout &layout);
74  void clearLayouts();
75  void setStyle(const SharedStyle &style);
76 
77  Q_SLOT void show();
78  Q_SLOT void hide();
79 
80  Q_SLOT void onLayoutChanged(const SharedLayout &layout);
81  Q_SLOT void onKeysChanged(const SharedLayout &layout);
82  Q_SLOT void onWordCandidatesChanged(const SharedLayout &layout);
83 
84 
85 private:
86  Q_SLOT void applyProfile();
87 
88  const QScopedPointer<RendererPrivate> d_ptr;
89 };
90 
91 } // namespace MaliitKeyboard
92 
93 #endif // MALIIT_KEYBOARD_RENDERER_H