summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/extension/MenuTitle.cpp
Side-by-side diff
Diffstat (limited to 'noncore/applets/keyhelper/keyhelperapplet/extension/MenuTitle.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/keyhelper/keyhelperapplet/extension/MenuTitle.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/noncore/applets/keyhelper/keyhelperapplet/extension/MenuTitle.cpp b/noncore/applets/keyhelper/keyhelperapplet/extension/MenuTitle.cpp
new file mode 100644
index 0000000..d8fd2a3
--- a/dev/null
+++ b/noncore/applets/keyhelper/keyhelperapplet/extension/MenuTitle.cpp
@@ -0,0 +1,67 @@
+#include "MenuTitle.h"
+
+MenuTitle::MenuTitle(const QString& s, const QFont& f, const QString& k)
+{
+ font = f;
+ kind = k;
+
+ ConfigEx& cfg = ConfigEx::getInstance("keyhelper");
+
+ const QString curGroup = cfg.getGroup();
+ cfg.setGroup("Style");
+
+ caption = cfg.readEntry("Caption_" + k, s);
+ cfg.setGroup(curGroup);
+}
+
+bool MenuTitle::fullSpan() const
+{
+ return(true);
+}
+
+bool MenuTitle::isSeparator() const
+{
+ return(true);
+}
+
+void MenuTitle::paint(QPainter* p, const QColorGroup& cg, bool /*act*/,
+ bool /*enabled*/, int x, int y, int w, int h)
+{
+ ConfigEx& cfg = ConfigEx::getInstance("keyhelper");
+ const QString& curGroup = cfg.getGroup();
+
+ cfg.setGroup("Style");
+
+ QString name;
+ QColor color;
+
+ p->setFont(font);
+
+ /* set fontcolor */
+ name = cfg.readEntry("FontColor_" + kind, QString::null);
+ if(name != QString::null){
+ color.setNamedColor(name);
+ if(color.isValid()){
+ p->setPen(color);
+ }
+ }
+
+ /* set bgcolor */
+ name = cfg.readEntry("BgColor_" + kind, QString::null);
+ if(name != QString::null){
+ color.setNamedColor(name);
+ if(color.isValid() == false){
+ color = cg.mid();
+ }
+ } else {
+ color = cg.mid();
+ }
+ p->fillRect(x, y, w, h, QBrush(color));
+ p->drawText(x, y, w, h, AlignCenter, caption);
+ cfg.setGroup(curGroup);
+}
+
+QSize MenuTitle::sizeHint()
+{
+ return(QFontMetrics(font).size(AlignCenter, caption));
+}