ginebra2/ChromeItem.cpp
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
hgs
parents:
diff changeset
     1
hgs
parents:
diff changeset
     2
/*
hgs
parents:
diff changeset
     3
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     4
* All rights reserved.
hgs
parents:
diff changeset
     5
*
hgs
parents:
diff changeset
     6
* This program is free software: you can redistribute it and/or modify
hgs
parents:
diff changeset
     7
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents:
diff changeset
     8
* the Free Software Foundation, version 2.1 of the License.
hgs
parents:
diff changeset
     9
*
hgs
parents:
diff changeset
    10
* This program is distributed in the hope that it will be useful,
hgs
parents:
diff changeset
    11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents:
diff changeset
    12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents:
diff changeset
    13
* GNU Lesser General Public License for more details.
hgs
parents:
diff changeset
    14
*
hgs
parents:
diff changeset
    15
* You should have received a copy of the GNU Lesser General Public License
hgs
parents:
diff changeset
    16
* along with this program.  If not,
hgs
parents:
diff changeset
    17
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
hgs
parents:
diff changeset
    18
*
hgs
parents:
diff changeset
    19
* Description:
hgs
parents:
diff changeset
    20
* This is the base class for all chrome items and extends QGraphicsWidget.
hgs
parents:
diff changeset
    21
*
hgs
parents:
diff changeset
    22
*/
hgs
parents:
diff changeset
    23
#include "ChromeItem.h"
hgs
parents:
diff changeset
    24
#include "ChromeEffect.h"
hgs
parents:
diff changeset
    25
#include <QtGui>
16
hgs
parents: 3
diff changeset
    26
#include "qstmgestureevent.h"
hgs
parents: 3
diff changeset
    27
3
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
namespace GVA {
16
hgs
parents: 3
diff changeset
    30
using namespace qstmGesture;
3
hgs
parents:
diff changeset
    31
16
hgs
parents: 3
diff changeset
    32
  ChromeItem::ChromeItem(ChromeSnippet * snippet, QGraphicsItem* parent)
hgs
parents: 3
diff changeset
    33
    : QGraphicsWidget(parent),
3
hgs
parents:
diff changeset
    34
  m_snippet(snippet)
16
hgs
parents: 3
diff changeset
    35
  {
hgs
parents: 3
diff changeset
    36
    grabGesture(QStm_Gesture::assignedType());
hgs
parents: 3
diff changeset
    37
    setObjectName("ChromeItem");
hgs
parents: 3
diff changeset
    38
    installEventFilter(this);
hgs
parents: 3
diff changeset
    39
  }
3
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
ChromeItem::~ChromeItem() {
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
}
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
void ChromeItem::setSnippet(ChromeSnippet * s) {
hgs
parents:
diff changeset
    46
    m_snippet = s;
hgs
parents:
diff changeset
    47
}
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
void ChromeItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
hgs
parents:
diff changeset
    50
{
hgs
parents:
diff changeset
    51
    QGraphicsWidget::paint(painter, option, widget);
hgs
parents:
diff changeset
    52
    if(m_snippet && !m_snippet->enabled()) {
hgs
parents:
diff changeset
    53
        painter->save();
hgs
parents:
diff changeset
    54
        painter->setOpacity(ChromeEffect::disabledOpacity);
hgs
parents:
diff changeset
    55
        painter->fillRect(option->exposedRect, ChromeEffect::disabledColor);
hgs
parents:
diff changeset
    56
        painter->restore();
hgs
parents:
diff changeset
    57
    }
hgs
parents:
diff changeset
    58
}
16
hgs
parents: 3
diff changeset
    59
  
hgs
parents: 3
diff changeset
    60
  
hgs
parents: 3
diff changeset
    61
bool ChromeItem::handleGesture(QEvent* event)
hgs
parents: 3
diff changeset
    62
{
hgs
parents: 3
diff changeset
    63
    //return QStm_GestureEventFilter::instance()->event(event);
hgs
parents: 3
diff changeset
    64
	return false;
hgs
parents: 3
diff changeset
    65
}
3
hgs
parents:
diff changeset
    66
16
hgs
parents: 3
diff changeset
    67
bool ChromeItem::eventFilter(QObject* receiver, QEvent* event)
hgs
parents: 3
diff changeset
    68
{
hgs
parents: 3
diff changeset
    69
    //if (receiver == this) {
hgs
parents: 3
diff changeset
    70
    //    return QStm_GestureEventFilter::instance()->eventFilter(receiver, event);
hgs
parents: 3
diff changeset
    71
    //}
hgs
parents: 3
diff changeset
    72
    return false;
hgs
parents: 3
diff changeset
    73
}
hgs
parents: 3
diff changeset
    74
hgs
parents: 3
diff changeset
    75
  bool ChromeItem::event(QEvent* event)
hgs
parents: 3
diff changeset
    76
  {
hgs
parents: 3
diff changeset
    77
      bool ret = false;
hgs
parents: 3
diff changeset
    78
      if (event->type() == QEvent::Gesture) {
hgs
parents: 3
diff changeset
    79
          ret = handleGesture(event);
hgs
parents: 3
diff changeset
    80
      }
hgs
parents: 3
diff changeset
    81
      if (!ret) {
hgs
parents: 3
diff changeset
    82
          ret = QGraphicsWidget::event(event);
hgs
parents: 3
diff changeset
    83
      }
hgs
parents: 3
diff changeset
    84
      return ret;
hgs
parents: 3
diff changeset
    85
  }
hgs
parents: 3
diff changeset
    86
  
3
hgs
parents:
diff changeset
    87
} // end of namespace GVA