LunaSysMgr
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
pixbutton2state.h
Go to the documentation of this file.
1 /* @@@LICENSE
2 *
3 * Copyright (c) 2011-2012 Hewlett-Packard Development Company, L.P.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 * LICENSE@@@ */
18 
19 
20 
21 
22 #ifndef PIXBUTTON2STATE_H_
23 #define PIXBUTTON2STATE_H_
24 
25 #include "pixbutton.h"
26 #include <QPointer>
27 #include <QStateMachine>
28 #include <QState>
29 
30 class PixButton2State : public PixButton
31 {
32  Q_OBJECT
34 
35 public:
36  PixButton2State(const QString& label,PixmapObject * p_pixStateNormal,PixmapObject * p_pixStateActive);
37  virtual ~PixButton2State();
38  virtual void commonCtor();
39 
40  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option=0,QWidget *widget=0);
41  virtual void paintOffscreen(QPainter * painter);
42  //TODO: need other paintOffscreen flavors, e.g. PixmapHugeObject
43 
44  virtual bool valid();
45 
46  virtual bool stateActive() const;
47  virtual void setStateActive(bool v);
48 
49 Q_SIGNALS:
50 
52  void signalFSMActivate();
53  void signalFSMDeactivate();
54 
55 protected:
56 
57  //overriding these to suppress them from generating signals
58  virtual bool tapAndHoldGesture(QTapAndHoldGesture *tapHoldEvent);
59  virtual bool tapGesture(QTapGesture *tapEvent);
60 
61  virtual void setupFSM();
62 
63 protected:
64 
65  QPointer<PixmapObject> m_qp_pixNormal;
66  QPointer<PixmapObject> m_qp_pixActive;
67  QPointer<PixmapObject> m_qp_currentlyRenderingPmo;
68 
73  bool m_valid;
74 };
75 
76 #endif /* PIXBUTTON2STATE_H_ */