sl@0: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef __LOGVIEWWINDOWCHANGEOBSERVER_H__ sl@0: #define __LOGVIEWWINDOWCHANGEOBSERVER_H__ sl@0: sl@0: // System includes sl@0: #include sl@0: sl@0: // User includes sl@0: #include "LogViewChangeObserverInternal.h" sl@0: sl@0: // Classes referenced sl@0: class RLogSession; sl@0: sl@0: sl@0: ///////////////////////////////////////////////////////////////////////////////////////// sl@0: // -----> CLogViewWindowChangeObserver (header) sl@0: ///////////////////////////////////////////////////////////////////////////////////////// sl@0: NONSHARABLE_CLASS(CLogViewWindowChangeObserver) : public CBase, public MLogViewChangeObserverInternal sl@0: /** sl@0: @internalComponent sl@0: */ sl@0: { sl@0: public: sl@0: enum TType sl@0: { sl@0: ELogEventTypeAdd = 0, sl@0: ELogEventTypeChange, sl@0: ELogEventTypeDelete sl@0: }; sl@0: sl@0: public: sl@0: CLogViewWindowChangeObserver(MLogViewChangeObserverInternal& aObserver); sl@0: ~CLogViewWindowChangeObserver(); sl@0: sl@0: public: sl@0: sl@0: /** sl@0: * Request that the next change notification corresponding to the specified sl@0: * log id and change type is ignored. sl@0: */ sl@0: void IgnoreNextEventL(TLogId aId, TType aType); sl@0: sl@0: private: // FROM MLogViewChangeObserver sl@0: void HandleLogViewChangeEventAddedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); sl@0: void HandleLogViewChangeEventChangedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); sl@0: void HandleLogViewChangeEventDeletedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount); sl@0: sl@0: private: // FROM MLogViewChangeObserverInternal sl@0: void HandleLogViewChangeEventLogClearedL(); sl@0: sl@0: private: sl@0: TInt Find(TLogId aId, TType aType) const; sl@0: sl@0: private: sl@0: class TIgnoreEvent sl@0: { sl@0: public: sl@0: inline TIgnoreEvent(TLogId aId, TType aType) : iId(aId), iType(aType) { } sl@0: sl@0: public: sl@0: TLogId iId; sl@0: TType iType; sl@0: }; sl@0: sl@0: private: sl@0: MLogViewChangeObserverInternal& iObserver; sl@0: RArray iIgnoreStack; sl@0: }; sl@0: sl@0: sl@0: #endif