LunaSysMgr
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StatusBarTitle.h
Go to the documentation of this file.
1 /* @@@LICENSE
2 *
3 * Copyright (c) 2010-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 STATUSBARTITLE_H
23 #define STATUSBARTITLE_H
24 
25 
26 #include <QGraphicsObject>
27 #include <QTextLayout>
28 #include "StatusBarItem.h"
29 #include "VariantAnimation.h"
30 
31 #include "StatusBar.h"
32 
33 
35 {
36  Q_OBJECT
37 
38 public:
39  StatusBarTitle(int width, int height, bool classicui = false);
41 
42  QRectF boundingRect() const; // This item is Left Aligned (The position of the icon is the position of the LEFT EDGE of the bounding rect)
43  void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget);
44 
45  int width() const { return m_bounds.width(); }
46  int height() const { return m_bounds.height(); }
47 
48  void setTitleString (std::string title, bool showTitleBorder);
49 
50 private:
51 
52  void createTitlePixmap(QPixmap *pix, QRectF &rect);
53  void animValueChanged(const QVariant& value);
54 
55  void animateTitleTransition();
56 
57 private Q_SLOTS:
58  void slotAnimFinished();
59 
60 private:
61 
62  QFont* m_font;
63  QPixmap m_titleBackground;
64  QPixmap m_currentTitle, m_newTitle;
65  QRectF m_curRect, m_newRect;
66 
67  QString m_originalText;
68  QString m_elidedText;
69  bool m_showTitleBorder;
70  QRectF m_titleRect;
71  QRectF m_maxSize;
72  bool m_forceClassicUi;
73 
74  bool m_inTransition;
75  qreal m_newTitleOpacity;
77 
78 };
79 
80 
81 
82 #endif /* STATUSBARTITLE_H */