LunaSysMgr
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
icongeometrysettings.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 ICONGEOMETRYSETTINGS_H_
23 #define ICONGEOMETRYSETTINGS_H_
24 
25 #include "Common.h"
26 
27 #include <glib.h>
28 #include <QtGlobal>
29 #include <QSize>
30 #include <QSizeF>
31 #include <QColor>
32 #include <QPoint>
33 
35 {
36 public:
37 
40 
41  QSize decoratorEdgeOffsetPx; // 0 is outward edge of decorator flush with outward edge of icon frame/main icon
42  quint32 labelVerticalSpacingPx; // distance from bottom of frame/main icon to label boundary start (top edge)
43 
46  QSizeF labelBoxProportionToGeom; // [0.1,1.0] bounded... 0.5,0.5 means label bound box will be 50% width, 50% height
47  // of the icon picture area bounds
48  bool useAbsoluteFrameGeom; //the "frame" is the box icon surrounding the main icon, for
49  // designating reorder mode, and on whose edges decorators are located
52 
56 
60 
64 
65  bool useAbsoluteRemoveDeleteDecoratorOffsetFromGeomOrigin; //if true, then removeDeleteDecoratorOffsetFromGeomOriginPx is used.
66  //if false, it's icon frame geom.topLeft
68 
72 
73  bool useAbsoluteInstallStatusDecoratorOffsetFromGeomOrigin; //if true, then installStatusDecoratorOffsetFromGeomOriginPx is used.
74  //if false, it's icon frame geom.topRight
76 
77  quint32 labelFontSizePx;
80 
81  bool useAlignmentGeom; // "alignment" geoms are a virtual total geom, for when you want the outside
82  // world to see a different icon overall cell size (i.e. the whole icon; the total geom usually)
83  // then what the icon logic is using to lay out its internal components.
84  // this allows effects like overlapping and interleaving at the page level but doesn't
85  // disturb the icon internals. Alignment geoms are always absolute specs. It doesn't make
86  // much sense to make the proportional since what they are used for requires precise control on sizes
88 
89 public:
91 
92  if (G_UNLIKELY(s_instance == 0))
94 
95  return s_instance;
96  }
97 
98 private:
99 
100  static IconGeometrySettings* s_instance;
101 
102 private:
103 
106 
107  void readSettings(const char* filePath);
108  void verify();
109 };
110 
111 
112 #endif /* ICONGEOMETRYSETTINGS_H_ */