1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/mw/coecobs.h Wed Mar 31 12:27:01 2010 +0100
1.3 @@ -0,0 +1,117 @@
1.4 +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +//
1.18 +
1.19 +#ifndef __COECOBS_H__
1.20 +#define __COECOBS_H__
1.21 +
1.22 +#include <e32base.h>
1.23 +#include <coemop.h>
1.24 +
1.25 +class CCoeControl;
1.26 +
1.27 +class MCoeControlObserver
1.28 +/** Interface for a control to send events to its observer control.
1.29 +
1.30 +@publishedAll
1.31 +@released */
1.32 + {
1.33 +public:
1.34 + /** Observer event types. */
1.35 + enum TCoeEvent
1.36 + {
1.37 + /** Request exit.
1.38 + This event is used to indicate exit from a mode when
1.39 + the user has completed an operation 'successfully'. For example, this
1.40 + event might be sent when the user has a choice list open and presses
1.41 + enter to select an item. The UI Control Framework does not use this
1.42 + event itself. */
1.43 + EEventRequestExit,
1.44 + /** Request cancel.
1.45 + This event is used to indicate exit from a mode when the user has cancelled
1.46 + the operation that caused entry into the mode originally. For example, this
1.47 + event might be sent when the user presses escape to close the list and leave
1.48 + the choice as it was. The UI Control Framework does not use this event itself. */
1.49 + EEventRequestCancel,
1.50 + /** Request focus.
1.51 + This event is notified by the UI Control Framework during pointer down event
1.52 + processing after EEventPrepareFocusTransition is handled. */
1.53 + EEventRequestFocus,
1.54 + /** Prepare focus transition.
1.55 + This event is notified by the UI Control Framework during pointer down event
1.56 + processing if the control does not yet have, but could get, focus. */
1.57 + EEventPrepareFocusTransition,
1.58 + /** State changed.
1.59 + This event can be used by a control to report that some piece of internal
1.60 + data has changed, and hence that any observer should be notified accordingly.
1.61 + The UI Control Framework does not use this value itself. */
1.62 + EEventStateChanged,
1.63 + /** Interaction refused.
1.64 + This event is notified by the UI Control Framework during pointer down event
1.65 + processing if the control is dimmed (disabled). */
1.66 + EEventInteractionRefused
1.67 + };
1.68 +public:
1.69 + /** Handles an event from an observed control.
1.70 +
1.71 + This function is called when a control for which this control is the observer
1.72 + calls CCoeControl::ReportEventL(). It should be implemented by the observer
1.73 + control, and should handle all events sent by controls it observes.
1.74 +
1.75 + @param aControl The control that sent the event.
1.76 + @param aEventType The event type. */
1.77 + virtual void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType)=0;
1.78 +protected:
1.79 + IMPORT_C MCoeControlObserver();
1.80 +
1.81 +private:
1.82 + IMPORT_C virtual void MCoeControlObserver_Reserved1();
1.83 + IMPORT_C virtual void MCoeControlObserver_Reserved2();
1.84 +
1.85 +private:
1.86 + TInt iMCoeControlObserver_Reserved1;
1.87 + };
1.88 +
1.89 +class MCoeControlStateObserver
1.90 +/** This class defines an interface which will given notification of when a CCoeControl
1.91 +changes its visibility or dimmed state.
1.92 +
1.93 +@publishedAll
1.94 +@released */
1.95 + {
1.96 + friend class CCoeControl;
1.97 +public:
1.98 + /** The MObjectProvider framework should use this UID to know when to return a concrete instance of this interface. */
1.99 + DECLARE_TYPE_ID(0x10285A45)
1.100 + enum TCoeState
1.101 + {
1.102 + /** This enum is used to say that the control has changed its Dimmed state */
1.103 + EStateDimmed,
1.104 + /** This enum is used to say that the control has changed its Visibility state */
1.105 + EStateVisibility
1.106 + };
1.107 +private:
1.108 + /**
1.109 + If an object implementing this interface has been attached to the MObjectProvider
1.110 + hierarchy in which a CCoeControl is a member, any call to the CCoeControl's
1.111 + SetDimmed() or MakeVisible() (that results in an actual state change) will trigger
1.112 + a call to this interface.
1.113 +
1.114 + @param aControl A pointer to the control that has changed.
1.115 + @param aState An enum from TCoeState to say how the control has changed.
1.116 + @return A system wide error code, currently ignored but may not be in future.*/
1.117 + virtual TInt HandleControlStateChange(CCoeControl* aControl,TCoeState aState)=0;
1.118 + };
1.119 +
1.120 +#endif // __COECOBS_H__