calendarui/views/src/calengriditem.cpp
changeset 18 c198609911f9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/views/src/calengriditem.cpp	Fri Apr 16 14:57:40 2010 +0300
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors: 
+ *
+ * Description: Definition file for class CalenGridItem.
+ *
+ */
+
+// System includes
+#include <QString>
+#include <QGraphicsWidget>
+#include <hbstyle.h>
+#include <hbwidget.h>
+#include <hbtextitem.h>
+#include <hbframeitem.h>
+#include <hbframedrawer.h>
+#include <hbiconitem.h>
+#include <hbcolorscheme.h>
+
+// User includes
+#include "calengriditem.h"
+
+#define PLUGINPATH "calengriditemstyleplugin.dll"
+
+/*!
+ \class CalenGridItem
+
+ Custom Calendar Grid Item class
+ */
+
+/*!
+ Default constructor.
+ */
+CalenGridItem::CalenGridItem(QGraphicsWidget *parent):
+	HbWidget(parent),
+	mEventIndicatorItem(NULL),
+	mMonthDayInfoItem(NULL),
+	mFocusIndicatorItem(NULL),
+	mTodayIndicatorItem(NULL)
+{
+	qDebug("CalenGridItem::CalenGridItem");
+
+	// Here we register the plugin.
+	setPluginBaseId(style()->registerPlugin(pluginPath()));
+
+	// Now create each of the primitives.
+	init();
+	
+}
+
+/*!
+ Destructor.
+ */
+CalenGridItem::~CalenGridItem()
+{
+	//	Here we un-register the plugin .
+	style()->unregisterPlugin(pluginPath());
+}
+
+/*!
+ To update the month day info
+ */
+void CalenGridItem::updateMonthDayInfo(QString monthDayText)
+{
+	mMonthDayInfoItem->setText(monthDayText);
+	mMonthDayInfoItem->setElideMode(Qt::ElideNone);
+}
+
+/*!
+ To update the month day info color
+ */
+void CalenGridItem::updateMonthDayInfoColor(QColor monthTextColor)
+{
+	mMonthDayInfoItem->setTextColor(monthTextColor);	
+}
+
+/*!
+ To update the event indicator icon
+ */
+void CalenGridItem::updateEventIndicator(QString eventIconPath)
+{
+	mEventIndicatorItem->setIconName(eventIconPath);
+}
+
+/*!
+ To update the focus indicator icon
+ */
+void CalenGridItem::updateFocusIndicator(QString focusIconPath)
+{
+	mFocusIndicatorItem->frameDrawer().setFrameGraphicsName(focusIconPath);
+}
+
+/*!
+ If underlineEnabled is true then will draw underline else not
+ */
+void CalenGridItem::drawUnderline(bool underlineEnabled)
+{
+	if (underlineEnabled) {
+		if (!mTodayIndicatorItem) {
+			mTodayIndicatorItem = new HbIconItem(this);
+			HbStyle::setItemName(mTodayIndicatorItem,
+			                     QLatin1String("todayIndicatorItem"));
+			// Get the color from the theme
+			QColor todayColor = HbColorScheme::color("qtc_cal_month_current_day");
+			if (todayColor.isValid()) {
+			    mTodayIndicatorItem->setColor(todayColor);
+			}
+		}
+	} else {
+		if (mTodayIndicatorItem) {
+			delete mTodayIndicatorItem;
+			mTodayIndicatorItem = NULL;
+		}
+	}
+}
+
+/*!
+ Returns the style plugin path
+ */
+QString CalenGridItem::pluginPath()
+{
+	QString pluginPath;
+	pluginPath.append(PLUGINPATH);
+	return pluginPath;
+}
+
+/*!
+ Create primitives 
+ */
+void CalenGridItem::init()
+{
+
+	mEventIndicatorItem = new HbIconItem(this);
+	HbStyle::setItemName(mEventIndicatorItem, QLatin1String("eventIconItem"));
+
+	mMonthDayInfoItem = new HbTextItem(this);
+	HbStyle::setItemName(mMonthDayInfoItem,
+	                     QLatin1String("monthDayInfoTextItem"));
+
+	mFocusIndicatorItem = new HbFrameItem(this);
+	mFocusIndicatorItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
+	mFocusIndicatorItem->setZValue(-1);
+	HbStyle::setItemName(mFocusIndicatorItem, QLatin1String("focusIconItem"));
+	
+}
+
+// End of file  --Don't remove this.