sabberappui.h

来自「Simple Jabber Client for Symbian Platfor」· C头文件 代码 · 共 179 行

H
179
字号
/*
* ============================================================================
*  Name     : CSabberAppUi from SabberAppUi.h
*  Part of  : Sabber
*  Created  : 2004-12-9 by Xie Tian Lu
*  Description:
*     Declares UI class for application.
*  Version  : 0.1
*  Copyright: (c) Xie Tian Lu Http://sabber.jabberstudio.org/
* ============================================================================
*/

#ifndef SABBERAPPUI_H
#define SABBERAPPUI_H

// INCLUDES
#include <eikapp.h>
#include <eikdoc.h>
#include <e32std.h>
#include <coeccntx.h>
#include <aknviewappui.h>
#include <akntabgrp.h>
#include <aknnavide.h>
#include "IAPConnectStateObserver.h"
#include "notify.h"
#include "usertimer.h"
#include "jabber.h"

// FORWARD DECLARATIONS
class CSabberRosterView;
class CSabberRosterContainer;
class CSabberMessageView;
class CSettingData;
class CIAPConnectEngine;
class CSymSocket;
class CIconSet;


// CONSTANTS
//const ?type ?constant_var = ?constant;

enum ESabberStatus {
	EJabberOffline		= 0,
	EJabberLogon		= 1,	
	EJabberOnline		= 2
};

enum EJabberState {
	CON_STATE_OFF			= JCONN_STATE_OFF,
	CON_STATE_CONNECTED		= JCONN_STATE_CONNECTED,
	CON_STATE_STATE_ON		= JCONN_STATE_ON,
	CON_STATE_AUTH			= JCONN_STATE_AUTH,
	CON_STATE_CONNECTING	= JCONN_STATE_CONNECTING,
	CON_STATE_AUTHFAILED,
	CON_STATE_NOTREGISTED,
	CON_STATE_REGISTING,
	CON_STATE_REGISTED,
	CON_STATE_DISCONNECTED,
	CON_STATE_LOGGED_IN,
	CON_STATE_ADDITEM,
	CON_STATE_REMOVEITEM,
	CON_STATE_ITEM_HANDLED,
};


// CLASS DECLARATION

/**
* Application UI class.
* Provides support for the following features:
* - EIKON control architecture
* - view architecture
* - status pane
* 
*/
class CSabberAppUi : public CAknViewAppUi,
					 public MTimerCallBack, 
					 public MIAPConnectStateObserver,
					 public MUINotify
    {
    public: // // Constructors and destructor

        /**
        * EPOC default constructor.
        */      
        void ConstructL();

        /**
        * Destructor.
        */      
        ~CSabberAppUi();
        
    public: // New functions
		void ActivateView( TInt index );
		void GetTimeStamp( TDes& stamp );
		void RetrieveJid();
		void RetrievePswd();
		void CheckJidChanged();
		void CheckPswdChanged();

		void ConnectServer();
		void ConnectTimeout();
		void ConnectFailed();

		void Register();
		void RegisterFailed();

		void Logon();
		void Logoff();
		void LogonFailed();
		void GetAuthorized();

		void SetCurState( int state );
		int  GetCurState();
		void ChangePresence( int s );
		TUint GetPresence();

		void RecvMsg	 ( char* body, char* from, char* to );
		void RecvRoster	 ( char* jid, char* nick, char* group, char* subs );
		void RecvPresence( char* jid, char* show, char* status, int on = 1 );

		void SendMsg	 ( char* body, char* to );

    public: // Functions from base classes
		void OnTimer( CUserTimer* aTimer );
		void Notify( TSymSocketState aState );
		void IAPStateChangedL( TInt aState );

    private:
        // From MEikMenuObserver
        void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);

    private:
        /**
        * From CEikAppUi, takes care of command handling.
        * @param aCommand command to be handled
        */
        void HandleCommandL(TInt aCommand);

        /**
        * From CEikAppUi, handles key events.
        * @param aKeyEvent Event to handled.
        * @param aType Type of the key event. 
        * @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
        */
        virtual TKeyResponse HandleKeyEventL(
            const TKeyEvent& aKeyEvent,TEventCode aType);

	public:
		CSettingData*					iSettingData;
		CSabberRosterView*				iRosterView;
		CSabberMessageView*				iMessageView;
		CIconSet*						iIconSet;
		CFont*							iFont;

    private: //Data
        CAknNavigationControlContainer* iNaviPane;
        CAknTabGroup*                   iTabGroup;
        CAknNavigationDecorator*        iDecoratedTabGroup;
		CIAPConnectEngine*				iIap;
		TBool							iIapConnected;
		Globaldata*						iGData;
		CSymSocket*						iJabSock;
		TSymSocketState					iSockState;
		jconn							iJabber;
		EJabberState					iState;
		TUint							iPresence;		// user presence status
		CUserTimer*						iPollTimer;
		char							iJid [ 128 ];	// user's jid
		char							iPswd[ 32 ];
		TBool							iJidChanged;
		TBool							iPswdChanged;
		TTime*							iTime; 
    };

#endif

// End of File

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?