epoc32/include/mw/coecntrl.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 2 epoc32/include/coecntrl.h@2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// 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
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
//
williamr@2
    15
williamr@2
    16
#ifndef __COECNTRL_H__
williamr@2
    17
#define __COECNTRL_H__
williamr@2
    18
williamr@2
    19
#include <e32std.h>
williamr@2
    20
#include <e32base.h>
williamr@2
    21
#include <w32std.h>
williamr@2
    22
#include <gulalign.h>
williamr@2
    23
#include <coedef.h>
williamr@2
    24
#include <coecobs.h>
williamr@2
    25
#include <coehelp.h>
williamr@2
    26
#include <coeinput.h>
williamr@2
    27
#include <coemop.h>
williamr@2
    28
#include <coemain.h>
williamr@2
    29
#include <coefont.h>
williamr@2
    30
#include <coetextdrawer.h>
williamr@2
    31
#include <coecontrolarray.h>
williamr@2
    32
williamr@2
    33
#include <coecoloruse.h>	// class TCoeColorUse
williamr@2
    34
williamr@2
    35
class TResourceReader;
williamr@2
    36
class CCoeEnv;
williamr@2
    37
class MCoeControlContext;
williamr@2
    38
class RCoeDynamicDataStorage;
williamr@2
    39
williamr@2
    40
class MCoeLayoutManager;
williamr@2
    41
class TCoeZoomWithType; 
williamr@2
    42
class CCoeFontProvider;
williamr@2
    43
williamr@2
    44
// forward declarations.	
williamr@2
    45
class CCoeControl;
williamr@2
    46
class CCoeTextDrawerBase;
williamr@2
    47
williamr@2
    48
/** Interface to be used if a control elects to be a background drawer.
williamr@2
    49
williamr@2
    50
Parent controls can elect to take responsibility for drawing the background for their child
williamr@2
    51
controls. To achieve this, they should aggregate an object that implements this interface.
williamr@2
    52
CCoeControl::SetBackground() accepts the object and sets it as the background drawer
williamr@2
    53
williamr@2
    54
@see CCoeControl::EnableWindowTransparency()
williamr@2
    55
@publishedAll
williamr@2
    56
@released
williamr@2
    57
*/
williamr@2
    58
class MCoeControlBackground
williamr@2
    59
	{
williamr@2
    60
public:
williamr@2
    61
	/** Draw the background for a given control.
williamr@2
    62
	The text drawer that shall be used to draw text on the specific background can be 
williamr@2
    63
	fetched through the GetTextDrawer() method. 
williamr@2
    64
williamr@2
    65
	@param aGc Graphics context used for drawing
williamr@2
    66
	@param aControl The control being drawn (may be a child of the drawer)
williamr@2
    67
	@param aRect The area to be redrawn
williamr@2
    68
williamr@2
    69
	@publishedAll
williamr@2
    70
	@released
williamr@2
    71
	*/
williamr@2
    72
	virtual void Draw(CWindowGc& aGc, const CCoeControl& aControl, const TRect& aRect) const = 0;
williamr@2
    73
	/**
williamr@2
    74
	This function retrieves the text drawer associated with the background.
williamr@2
    75
	@param aTextDrawer The text drawer associated with the background. This may be null. The default implementation
williamr@2
    76
	always sets this to 0.
williamr@2
    77
	@param aDrawingControl The control that is requesting the text drawer.
williamr@2
    78
	*/
williamr@2
    79
	IMPORT_C virtual void GetTextDrawer(CCoeTextDrawerBase*& aTextDrawer, const CCoeControl* aDrawingControl) const;
williamr@2
    80
protected:
williamr@2
    81
	IMPORT_C MCoeControlBackground();
williamr@2
    82
private:  
williamr@2
    83
  	IMPORT_C virtual void MCoeControlBackground_Reserved1();
williamr@2
    84
  	IMPORT_C virtual void MCoeControlBackground_Reserved2();
williamr@2
    85
  	IMPORT_C virtual void MCoeControlBackground_Reserved3();
williamr@2
    86
  	IMPORT_C virtual void MCoeControlBackground_Reserved4();
williamr@2
    87
  	IMPORT_C virtual void MCoeControlBackground_Reserved5();
williamr@2
    88
private:
williamr@2
    89
	TInt iMCoeControlBackground_Reserved1();
williamr@2
    90
	};
williamr@2
    91
williamr@2
    92
/** Abstract interface for defining a control's hit region.
williamr@2
    93
williamr@2
    94
This could be implemented by a CCoeControl-derived class to 
williamr@2
    95
define hit region checking. The object is installed by calling CCoeControl::SetHitTest().
williamr@2
    96
williamr@2
    97
The hit region is the area inside the control's rectangle in which pointer events are handled.
williamr@2
    98
It can be any shape, not necessarily rectangular.
williamr@2
    99
williamr@2
   100
@publishedAll
williamr@2
   101
@released
williamr@2
   102
*/
williamr@2
   103
class MCoeControlHitTest
williamr@2
   104
	{
williamr@2
   105
public:	
williamr@2
   106
	/** Tests whether a pointer event occurred inside the control's hit region.
williamr@2
   107
	This function is called by CCoeControl::HandlePointerEventL().
williamr@2
   108
williamr@2
   109
	@param aPoint The position of the pointer event.
williamr@2
   110
	@return ETrue if the specified point lies inside the hit region, EFalse if not.
williamr@2
   111
williamr@2
   112
	@publishedAll
williamr@2
   113
	@released
williamr@2
   114
	*/
williamr@2
   115
	virtual TBool HitRegionContains(const TPoint& aPoint, const CCoeControl& aControl) const = 0;
williamr@2
   116
protected:
williamr@2
   117
	IMPORT_C MCoeControlHitTest();
williamr@2
   118
private:
williamr@2
   119
	IMPORT_C virtual void MCoeControlHitTest_Reserved1();
williamr@2
   120
	IMPORT_C virtual void MCoeControlHitTest_Reserved2();
williamr@2
   121
private: 
williamr@2
   122
    TInt iMCoeControlHitTest_Reserved1;
williamr@2
   123
	};
williamr@2
   124
williamr@2
   125
williamr@2
   126
/** 
williamr@2
   127
Control base class from which all other controls are derived. 
williamr@2
   128
williamr@2
   129
@publishedAll
williamr@2
   130
@released 
williamr@2
   131
*/
williamr@2
   132
class CCoeControl : public CBase, public MObjectProvider
williamr@2
   133
	{
williamr@2
   134
public:
williamr@2
   135
    enum TZoomType 
williamr@2
   136
        { 
williamr@2
   137
        EAbsoluteZoom,        // absolute 
williamr@2
   138
        ERelativeZoom         // relative to parent's zoom 
williamr@2
   139
        }; 
williamr@2
   140
public:    
williamr@2
   141
    // Construction and destruction    
williamr@2
   142
	IMPORT_C CCoeControl();
williamr@2
   143
	IMPORT_C CCoeControl(CCoeEnv* aCoeEnv);
williamr@2
   144
	IMPORT_C ~CCoeControl();
williamr@2
   145
	IMPORT_C TBool ComponentArrayExists() const;
williamr@2
   146
public: // Virtuals (see more related non-virtuals further down)
williamr@2
   147
	// Key input
williamr@2
   148
	IMPORT_C virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
williamr@2
   149
	// Visual state
williamr@2
   150
	IMPORT_C virtual void MakeVisible(TBool aVisible);
williamr@2
   151
	IMPORT_C virtual void SetDimmed(TBool aDimmed);
williamr@2
   152
	// Construction
williamr@2
   153
	IMPORT_C virtual void SetContainerWindowL(const CCoeControl& aContainer);
williamr@2
   154
	IMPORT_C virtual void ConstructFromResourceL(TResourceReader& aReader);
williamr@2
   155
	IMPORT_C virtual void ActivateL();
williamr@2
   156
	// Focus
williamr@2
   157
	IMPORT_C virtual void PrepareForFocusLossL();
williamr@2
   158
	IMPORT_C virtual void PrepareForFocusGainL();
williamr@2
   159
	// Control proximity
williamr@2
   160
	IMPORT_C virtual void SetAdjacent(TInt aAdjacent);
williamr@2
   161
	IMPORT_C virtual void SetNeighbor(CCoeControl* aNeighbor);
williamr@2
   162
	IMPORT_C virtual TBool HasBorder() const;	// deprecated from 9.2
williamr@2
   163
	// Control size
williamr@2
   164
	IMPORT_C virtual TSize MinimumSize();
williamr@2
   165
	// Resource change handling
williamr@2
   166
	IMPORT_C virtual void HandleResourceChange(TInt aType);
williamr@2
   167
	// Logical color use (for Java)
williamr@2
   168
	IMPORT_C virtual void GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const;
williamr@2
   169
	// User help
williamr@2
   170
	IMPORT_C virtual void GetHelpContext(TCoeHelpContext& aContext) const;
williamr@2
   171
	// Text input
williamr@2
   172
	IMPORT_C virtual TCoeInputCapabilities InputCapabilities() const;
williamr@2
   173
public:	
williamr@2
   174
	// Environment
williamr@2
   175
	inline CCoeEnv* ControlEnv() const;
williamr@2
   176
	// Container window
williamr@2
   177
	IMPORT_C RDrawableWindow* DrawableWindow() const;
williamr@2
   178
	IMPORT_C TBool OwnsWindow() const;
williamr@2
   179
	IMPORT_C TBool IsBackedUp() const;
williamr@2
   180
	IMPORT_C void SetContainerWindowL(RWindow& aWindow); 			// deprecated from 9.2
williamr@2
   181
	IMPORT_C void SetContainerWindowL(RBackedUpWindow& aWindow);	// deprecated from 9.2
williamr@2
   182
	// Control parent
williamr@2
   183
	IMPORT_C CCoeControl* Parent();
williamr@2
   184
	IMPORT_C const CCoeControl* Parent() const;
williamr@2
   185
	IMPORT_C virtual TInt SetParent(CCoeControl* aParent);
williamr@2
   186
	// Size and position
williamr@2
   187
	IMPORT_C TRect Rect() const;
williamr@2
   188
	IMPORT_C void SetRect(const TRect& aRect);
williamr@2
   189
	IMPORT_C void SetExtent(const TPoint& aPosition,const TSize& aSize);
williamr@2
   190
	IMPORT_C void SetExtentToWholeScreen();
williamr@2
   191
	IMPORT_C TSize Size() const;
williamr@2
   192
	IMPORT_C void SetSize(const TSize& aSize);
williamr@2
   193
	IMPORT_C TPoint Position() const;
williamr@2
   194
	IMPORT_C TPoint PositionRelativeToScreen() const;
williamr@2
   195
	IMPORT_C void SetPosition(const TPoint& aPosition);
williamr@2
   196
	IMPORT_C TInt MaximumWidth() const;
williamr@2
   197
	IMPORT_C TInt SetMaximumWidth(TInt aMaxWidth);
williamr@2
   198
	// Layout	
williamr@2
   199
	IMPORT_C MCoeLayoutManager* LayoutManager() const;
williamr@2
   200
	IMPORT_C virtual void SetLayoutManagerL(MCoeLayoutManager* aLayout);
williamr@2
   201
	IMPORT_C virtual TBool RequestRelayout(const CCoeControl* aChildControl);
williamr@2
   202
	// Visibility
williamr@2
   203
	IMPORT_C TBool IsVisible() const;
williamr@2
   204
	IMPORT_C void SetComponentsToInheritVisibility(TBool aInherit=ETrue);
williamr@2
   205
	// Dimmed
williamr@2
   206
	IMPORT_C TBool IsDimmed() const;
williamr@2
   207
	// State observer
williamr@2
   208
	IMPORT_C void SetObserver(MCoeControlObserver* aObserver);
williamr@2
   209
	IMPORT_C MCoeControlObserver* Observer() const;
williamr@2
   210
	// Focus
williamr@2
   211
	IMPORT_C TBool IsFocused() const;
williamr@2
   212
	IMPORT_C void SetFocus(TBool aFocus,TDrawNow aDrawNow=ENoDrawNow);
williamr@2
   213
	IMPORT_C void SetNonFocusing();
williamr@2
   214
	IMPORT_C void SetFocusing(TBool aFocusing);
williamr@2
   215
	IMPORT_C TBool IsNonFocusing() const;
williamr@2
   216
	// Drawing (see also Draw() below)
williamr@2
   217
	IMPORT_C void DrawNow() const;
williamr@2
   218
	IMPORT_C void DrawNow(const TRect &aRect) const;
williamr@2
   219
	IMPORT_C void DrawDeferred() const;
williamr@2
   220
	IMPORT_C CWindowGc& SystemGc() const;
williamr@2
   221
	IMPORT_C TInt SetCustomGc(CWindowGc* aGraphicsContext);
williamr@2
   222
	IMPORT_C CWindowGc* CustomGc() const;	
williamr@2
   223
	// Control context (background color etc). Deprecated (use MCoeControlBackground)
williamr@2
   224
	IMPORT_C void SetControlContext(MCoeControlContext* aContext);		// deprecated from 9.2
williamr@2
   225
	IMPORT_C void CopyControlContextFrom(const CCoeControl* aControl);	// deprecated from 9.2
williamr@2
   226
	IMPORT_C MCoeControlContext* ControlContext() const;				// deprecated from 9.2
williamr@2
   227
	// Pointer events
williamr@2
   228
	IMPORT_C void SetPointerCapture(TBool aCapture=ETrue);
williamr@2
   229
	IMPORT_C void ClaimPointerGrab(TBool aSendUpEvent=ETrue);
williamr@2
   230
	IMPORT_C void IgnoreEventsUntilNextPointerUp();
williamr@2
   231
	IMPORT_C void SetGloballyCapturing(TBool aGlobal);
williamr@2
   232
	// Pointer hit test
williamr@2
   233
	IMPORT_C TInt SetHitTest(const MCoeControlHitTest* aHitTestControl);
williamr@2
   234
	IMPORT_C const MCoeControlHitTest* HitTest() const;
williamr@2
   235
	// Logical colors
williamr@2
   236
	IMPORT_C void OverrideColorL(TInt aLogicalColor,TRgb aColor);
williamr@2
   237
	IMPORT_C TBool GetColor(TInt aLogicalColor,TRgb& aColor) const;
williamr@2
   238
	// Control background
williamr@2
   239
	IMPORT_C void DrawBackground(const TRect& aRect) const;
williamr@2
   240
	IMPORT_C void DrawForeground(const TRect& aRect) const;
williamr@2
   241
	IMPORT_C const MCoeControlBackground* Background() const;
williamr@2
   242
	IMPORT_C const MCoeControlBackground* FindBackground() const;
williamr@2
   243
	IMPORT_C void SetBackground(const MCoeControlBackground* aBackground);
williamr@2
   244
	// Zooming
williamr@2
   245
	IMPORT_C void SetZoomFactorL(TInt aZoomFactor, TZoomType aZoomType = ERelativeZoom);
williamr@2
   246
   	IMPORT_C TZoomFactor AccumulatedZoom() const;
williamr@2
   247
   	IMPORT_C const TCoeZoomWithType* ZoomWithType() const;
williamr@2
   248
  	// Font provider (see ScreenFont() below)
williamr@2
   249
    IMPORT_C const CCoeFontProvider& FindFontProvider() const;
williamr@2
   250
	IMPORT_C void SetFontProviderL(const CCoeFontProvider& aFontProvider);
williamr@2
   251
	// Text baseline (virtuals)
williamr@2
   252
	IMPORT_C virtual TInt TextBaselineOffset(const TSize& aSize) const;
williamr@2
   253
	IMPORT_C virtual void SetTextBaselineSpacing(TInt aSpacing);
williamr@2
   254
	// Input capabilities
williamr@2
   255
	IMPORT_C TCoeInputCapabilities RecursivelyMergedInputCapabilities() const;
williamr@2
   256
	// Interface access
williamr@2
   257
	IMPORT_C void SetMopParent(MObjectProvider* aParent);
williamr@2
   258
	// Instance identification
williamr@2
   259
	IMPORT_C TInt UniqueHandle() const;
williamr@2
   260
	IMPORT_C TInt SetUniqueHandle(TInt aUniqueHandle); 
williamr@2
   261
public: // Pointer events (virtuals)
williamr@2
   262
	IMPORT_C virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   263
protected: // Virtuals. Override to handle these events.
williamr@2
   264
	IMPORT_C virtual void HandlePointerBufferReadyL();	// See HandlePointerEventL()
williamr@2
   265
	// Change of focus
williamr@2
   266
	IMPORT_C virtual void FocusChanged(TDrawNow aDrawNow);
williamr@2
   267
	// Change of size and position
williamr@2
   268
	IMPORT_C virtual void SizeChanged();
williamr@2
   269
	IMPORT_C virtual void PositionChanged();
williamr@2
   270
public:
williamr@2
   271
	// Component control access
williamr@2
   272
	IMPORT_C virtual TInt CountComponentControls() const;
williamr@2
   273
	IMPORT_C virtual CCoeControl* ComponentControl(TInt aIndex) const;
williamr@2
   274
	IMPORT_C TInt Index(const CCoeControl* aControl) const;
williamr@2
   275
protected:
williamr@2
   276
	// Control state	
williamr@2
   277
	IMPORT_C TBool IsActivated() const;
williamr@2
   278
	IMPORT_C TBool IsBeingDestroyed() const;
williamr@2
   279
	// Component ownership
williamr@2
   280
	IMPORT_C void InitComponentArrayL();
williamr@2
   281
	IMPORT_C CCoeControlArray& Components();
williamr@2
   282
	IMPORT_C const CCoeControlArray& Components() const;
williamr@2
   283
	// Container window
williamr@2
   284
	IMPORT_C RWindow& Window() const;
williamr@2
   285
	IMPORT_C RBackedUpWindow& BackedUpWindow() const;
williamr@2
   286
	IMPORT_C void CloseWindow();
williamr@2
   287
	IMPORT_C void CreateWindowL();
williamr@2
   288
	IMPORT_C void CreateWindowL(const CCoeControl* aParent);
williamr@2
   289
	IMPORT_C void CreateWindowL(RWindowTreeNode& aParent);
williamr@2
   290
	IMPORT_C void CreateWindowL(RWindowGroup* aParent);
williamr@2
   291
	IMPORT_C void CreateBackedUpWindowL(RWindowTreeNode& aParent);
williamr@2
   292
	IMPORT_C void CreateBackedUpWindowL(RWindowTreeNode& aParent,TDisplayMode aDisplayMode);
williamr@2
   293
	IMPORT_C void EnableWindowTransparency();
williamr@2
   294
	// Size and position
williamr@2
   295
	IMPORT_C void SetCornerAndSize(TGulAlignment aCorner,const TSize& aSize);
williamr@2
   296
	IMPORT_C void SetSizeWithoutNotification(const TSize& aSize);
williamr@2
   297
	// Font access
williamr@2
   298
	IMPORT_C const CFont& ScreenFont(const TCoeFont& aFont) const;
williamr@2
   299
	// Text drawer
williamr@2
   300
	IMPORT_C CCoeTextDrawerBase& TextDrawer(TInt aKey = KErrNotFound) const; 
williamr@2
   301
	// Pointer events
williamr@2
   302
	IMPORT_C void EnableDragEvents();
williamr@2
   303
	IMPORT_C void HandleRedrawEvent(const TRect& aRect) const;
williamr@2
   304
	IMPORT_C void SetAllowStrayPointers();
williamr@2
   305
	IMPORT_C CCoeControl* GrabbingComponent() const;
williamr@2
   306
	IMPORT_C TBool CapturesPointer() const;
williamr@2
   307
	// Drawing	
williamr@2
   308
	IMPORT_C TBool IsReadyToDraw() const;
williamr@2
   309
	IMPORT_C TBool IsBlank() const;
williamr@2
   310
	IMPORT_C void SetBlank();
williamr@2
   311
	IMPORT_C void SetCanDrawOutsideRect();
williamr@2
   312
	IMPORT_C void ActivateGc() const;
williamr@2
   313
	IMPORT_C void DeactivateGc() const;
williamr@2
   314
	IMPORT_C void ResetGc() const;
williamr@2
   315
	// State events
williamr@2
   316
	IMPORT_C void ReportEventL(MCoeControlObserver::TCoeEvent aEvent);
williamr@2
   317
	// Resource changes	
williamr@2
   318
	IMPORT_C void HandleComponentControlsResourceChange(TInt aType);
williamr@2
   319
	// Copy Constructor and Assignment Operator
williamr@2
   320
	inline CCoeControl(const CCoeControl& aControl);
williamr@2
   321
	inline CCoeControl& operator=(const CCoeControl& aControl);
williamr@2
   322
protected:	
williamr@2
   323
	friend class CCoeControlArray;   
williamr@2
   324
	IMPORT_C virtual void HandleControlArrayEventL(CCoeControlArray::TEvent aEvent, const CCoeControlArray* aArray, CCoeControl* aControl, TInt aControlId);
williamr@2
   325
private: // reserved
williamr@2
   326
	IMPORT_C virtual void Reserved_CCoeControl_10();
williamr@2
   327
	IMPORT_C virtual void Reserved_CCoeControl_11();
williamr@2
   328
	IMPORT_C virtual void Reserved_CCoeControl_12();
williamr@2
   329
	IMPORT_C virtual void Reserved_CCoeControl_13();
williamr@2
   330
private:
williamr@2
   331
	IMPORT_C virtual void GetTextDrawer(CCoeTextDrawerBase*& aTextDrawer, const CCoeControl* aDrawingControl, TInt aKey) const;
williamr@2
   332
private: // reserved
williamr@2
   333
	IMPORT_C virtual void Reserved_CCoeControl_8();
williamr@2
   334
	IMPORT_C virtual void Reserved_CCoeControl_9();
williamr@2
   335
protected: // from MObjectProvider
williamr@2
   336
	IMPORT_C TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
williamr@2
   337
private: // from MObjectProvider
williamr@2
   338
	IMPORT_C MObjectProvider* MopNext();
williamr@2
   339
private: 
williamr@2
   340
	// Drawing (override this to draw)
williamr@2
   341
	IMPORT_C virtual void Draw(const TRect& aRect) const;
williamr@2
   342
protected: 
williamr@2
   343
	// Debugging
williamr@2
   344
	IMPORT_C virtual void WriteInternalStateL(RWriteStream& aWriteStream) const;
williamr@2
   345
private: // reserved
williamr@2
   346
	IMPORT_C virtual void Reserved_2();
williamr@2
   347
public: // but not exported
williamr@2
   348
	void ProcessPointerEventL(const TPointerEvent& aPointerEvent);
williamr@2
   349
	void ProcessPointerBufferReadyL();
williamr@2
   350
	void RecursivelyMergeInputCapabilities(TCoeInputCapabilities& aInputCapabilities) const;
williamr@2
   351
	void WriteInternalStateNowL(RWriteStream& aWriteStream) const;
williamr@2
   352
    void NotifyFontChange(const CCoeFontProvider* aFontProvider);
williamr@2
   353
    void RemoveFromParent();
williamr@2
   354
    void RefetchPixelMappingL();
williamr@2
   355
public: // deprecated
williamr@2
   356
	inline TInt SetGc(CWindowGc* aGraphicsContext) const;
williamr@2
   357
	inline CWindowGc* GetGc() const;
williamr@2
   358
private:
williamr@2
   359
	friend class CCoeRedrawer;
williamr@2
   360
	void DrawComponents(const TRect& aRect) const;	
williamr@2
   361
	void DrawWindowOwningComponentsNow() const;
williamr@2
   362
	void DrawWindowOwningComponentsNow(const TRect &aRect) const;	
williamr@2
   363
	void SetGrabbed(TBool aGrabbed);
williamr@2
   364
	TBool IsGrabbed() const;
williamr@2
   365
	void DoMakeVisible(TBool aVisible);
williamr@2
   366
	void CheckPointerEventPurge() const;
williamr@2
   367
	void RecursivelyMergeTextDrawers(CCoeTextDrawerBase*& aTextDrawer, const CCoeControl* aDrawingControl, TInt aKey) const;
williamr@2
   368
	CCoeControl* WindowOwningParent();
williamr@2
   369
	const CCoeControl* WindowOwningParent() const { return const_cast<CCoeControl*>(this)->WindowOwningParent(); }
williamr@2
   370
	const CCoeControl* SearchParent(const CCoeControl* aParentToFind) const;
williamr@2
   371
	TInt SetZoomWithType(TCoeZoomWithType* aZoomWithType);
williamr@2
   372
	TCoeZoomWithType* GetZoomWithType() const;
williamr@2
   373
	TInt SetFontProvider(const CCoeFontProvider* aFontProvider);
williamr@2
   374
	const CCoeFontProvider* GetFontProvider() const;
williamr@2
   375
	TInt FindColor(TInt aLogicalColor) const;
williamr@2
   376
	void ActivateGcRecursive() const;
williamr@2
   377
	void DeactivateGcRecursive() const;
williamr@2
   378
	void ReportControlStateChange(MCoeControlStateObserver::TCoeState aType);
williamr@2
   379
public:	
williamr@2
   380
	IMPORT_C void EnableReportControlStateChange(TBool aState);
williamr@2
   381
williamr@2
   382
protected:
williamr@2
   383
	CCoeEnv* iCoeEnv;
williamr@2
   384
	MCoeControlContext* iContext;	// deprecated
williamr@2
   385
	TPoint iPosition;
williamr@2
   386
	TSize iSize;
williamr@2
   387
private:
williamr@2
   388
	TInt iFlags;
williamr@2
   389
	RDrawableWindow* iWin;
williamr@2
   390
	RCoeDynamicDataStorage* iData;
williamr@2
   391
	MObjectProvider* iMopParent;
williamr@2
   392
	};
williamr@2
   393
williamr@2
   394
williamr@2
   395
/** 
williamr@2
   396
Gets the control environment object for this control.
williamr@2
   397
williamr@2
   398
@return The control's control environment object. 
williamr@2
   399
*/
williamr@2
   400
inline CCoeEnv* CCoeControl::ControlEnv() const
williamr@2
   401
	{ return(iCoeEnv); }
williamr@2
   402
williamr@2
   403
/**
williamr@2
   404
Deprecated. See CCoeControl::SetCustomGc().
williamr@2
   405
@deprecated
williamr@2
   406
*/
williamr@2
   407
inline TInt CCoeControl::SetGc(CWindowGc* aGraphicsContext) const
williamr@2
   408
	{ return const_cast<CCoeControl*>(this)->SetCustomGc(aGraphicsContext); }
williamr@2
   409
	
williamr@2
   410
/**
williamr@2
   411
Deprecated. See CCoeControl::CustomGc().
williamr@2
   412
@deprecated
williamr@2
   413
*/
williamr@2
   414
inline CWindowGc* CCoeControl::GetGc() const
williamr@2
   415
	{ return CustomGc(); }
williamr@2
   416
williamr@2
   417
williamr@2
   418
#endif	// __COECNTRL_H__