--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cbs/cbsui/inc/cbsuitopiclistview.h Tue Aug 31 15:45:17 2010 +0300
@@ -0,0 +1,301 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+#ifndef CBSUITOPICLISTVIEW_H
+#define CBSUITOPICLISTVIEW_H
+
+#include <hbview.h>
+#include <CbsCommon.h>
+#include <CbsCommonTypes.h>
+
+#include "mcbsuitopicmonitorobserver.h"
+
+// CONSTANTS
+const TInt KNumberOfStandardTopics = 17; //TODO what's this
+
+class HbListWidget;
+class HbAction;
+class CCbsUiTopicListMonitor;
+class CbsUiViewManager;
+class MCbs;
+class HbInputDialog;
+class HbListWidgetItem;
+class QPointF;
+
+typedef CArrayFixFlat< TCbsTopicNumber > TCbsUiTopicNumberList;
+
+class CbsUiTopicListView: public HbView,
+ public MCbsUiTopicMonitorObserver
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor
+ */
+ CbsUiTopicListView();
+
+ /**
+ * Destructor
+ */
+ ~CbsUiTopicListView();
+
+ /**
+ * Init.
+ *
+ * @param server MCbs reference from CbsUiMainWindow
+ * @param viewManager CbsUiViewManager reference from CbsUiMainWindow
+ */
+ void init(MCbs &server, CbsUiViewManager &viewManager);
+
+public: // from MCbsUiTopicMonitorObserver
+ /**
+ * Topic list or topic messages are changed.
+ *
+ * @param aEvent reason for event
+ * @param aTopicNumber Topic number, which caused the event
+ */
+ virtual void TopicListChangedL(TCbsTopicListEvent aEvent,
+ TCbsTopicNumber aTopicNumber);
+
+private slots:
+
+ /**
+ * Connect with left toolbar
+ */
+ void toggleReception();
+
+ /**
+ * Connect with popup menu hotmark action
+ */
+ void toggleHotmark();
+
+ /**
+ * Connect with popup menu Subscription action
+ */
+ void toggleSubscription();
+
+ /**
+ * Connect with add topic toolbar
+ */
+ void addTopic();
+
+ /**
+ * Connect with popup menu delete action
+ */
+ void deleteTopic();
+
+ /**
+ * Connect with popup menu edit action
+ */
+ void editTopic();
+
+ /**
+ * Connect with short press
+ *
+ * @param item selection item
+ */
+ void showTopicSelectionView(HbListWidgetItem *item);
+
+ /**
+ * showTopicView
+ *
+ * @param item selection item
+ */
+ void showTopicView(HbListWidgetItem *item);
+
+ /**
+ * showTopicIndexMenu(000)
+ *
+ * @param item selection item
+ * @param coords availalbe menu show position
+ */
+ void showTopicIndexMenu(HbListWidgetItem *item, QPointF coords);
+
+ /**
+ * ShowTopicsMenu(1-999)
+ *
+ * @param item selection item
+ * @param coords availalbe menu show position
+ */
+ void showTopicsMenu(HbListWidgetItem *item, QPointF coords);
+
+ /**
+ * Connect with add / edit popup dialog to en/dis able OK button
+ */
+ void updateQueryAction(QString text);
+
+private:
+
+ /**
+ * createComponents
+ */
+ void createComponents();
+
+ /**
+ * Reload topic index data and update topic index widget. (000)
+ */
+ void reloadTopicIndex();
+
+ /**
+ * Reload topics data and update topics widget (1-999)
+ */
+ void reloadTopics();
+
+ /**
+ * Update given item
+ *
+ * @param item selection item
+ * @param topic selection topic
+ */
+ void updateItem(HbListWidgetItem &item, const TCbsTopic &topic);
+
+ /**
+ * UpdateItemIcon
+ *
+ * @param item selection item
+ * @param topic selection topic
+ */
+ void updateItemIcon(HbListWidgetItem &item, const TCbsTopic &topic);
+
+ /**
+ * updateItemText
+ *
+ * @param item selection item
+ * @param topic selection topic
+ */
+ void updateItemText(HbListWidgetItem &item, const TCbsTopic &topic);
+
+ /**
+ * Update current item by mTopicRow
+ *
+ * @param topic selection topic
+ */
+ void updateCurrentItem(const TCbsTopic &topic);
+
+ /**
+ * UpdateCurrentItemIcon, (un)subcribe and (un)hotmark
+ *
+ * @param topic selection topic
+ */
+ void updateCurrentItemIcon(const TCbsTopic &topic);
+
+ /**
+ * UpdateCurrentItemText
+ *
+ * @param topic selection topic
+ */
+ void updateCurrentItemText(const TCbsTopic &topic);
+
+ /**
+ * ShowPopupMenu
+ *
+ * @param topic selection topic
+ * @param coords availalbe menu show position
+ */
+ void showPopupMenu(const TCbsTopic &topic, QPointF coords);
+
+ /**
+ * Show current topic query dialog
+ * (edit/add current topic number or name)
+ *
+ * @param topic selection topic
+ * @param isAddTopic check if add or edit mode
+ */
+ bool showTopicQuery(TCbsTopic &topic, const bool isAddTopic);
+
+ /**
+ * Show topic number in use popup when edit topic
+ */
+ void showNumberInUsePopup();
+
+private: // Data
+ /**
+ * Not own, from CbsUiMainWindow
+ */
+ MCbs *mServer;
+ /**
+ * Not own, from CbsUiMainWindow
+ */
+ CbsUiViewManager *mViewManager;
+
+ int mTopicRow;
+
+ /**
+ * Not own, load from docml
+ */
+ HbListWidget *mTopicIndexWidget;
+
+ /**
+ * Not own, load from docml
+ */
+ HbListWidget *mTopicsWidget;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mReceptionButton;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mOpenAction;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mSubscibeAction;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mUnSubscibeAction;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mHotmarkAction;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mUnHotmarkAction;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mEditAction;
+
+ /**
+ * Not own, load from docml
+ */
+ HbAction *mDeleteAction;
+
+ //Monitors changes in topic list (Symbian).
+ CCbsUiTopicListMonitor *mMonitor;
+
+ /**
+ * Own, for add / edit topic
+ */
+ HbInputDialog *mTopicQuery;
+
+ /**
+ * Own
+ */
+ TCbsUiTopicNumberList *mTopicNumberList;
+};
+
+#endif // CBSUITOPICLISTVIEW_H