|
1 /* |
|
2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 #ifndef _ALFRSUAPI_H_ |
|
19 #define _ALFRSUAPI_H_ |
|
20 |
|
21 const TInt KAlfCompositionAgnosticWindowTreeObserverInterfaceId(0x2002BCFB); |
|
22 |
|
23 class MAlfCompositionAgnosticWindowTreeObserver |
|
24 { |
|
25 public: |
|
26 enum TFlags |
|
27 { |
|
28 /** For a window to be drawn, it needs to be activated and visible and have visible parents. |
|
29 Making a window invisible, implies that its children should be invisible as well. |
|
30 The default value for a window is true. */ |
|
31 EVisible = 1, |
|
32 /** Non-fading windows should not be drawn faded regardless of their fade-count. |
|
33 The default value is false. */ |
|
34 ENonFading, |
|
35 /** Windows with this attribute enabled uses alpha channel to control its transparency. |
|
36 The default value is false. */ |
|
37 EAlphaChannelTransparencyEnabled, |
|
38 /** True if a clipping rect should be applied when drawing a standard text cursor, false otherwise. |
|
39 The default value is false. */ |
|
40 ECursorClipRectSet |
|
41 }; |
|
42 /** |
|
43 This enum encapsulates the set of non-boolean attribute changes that can be observed |
|
44 using the MWsWindowTreeObserver interface. |
|
45 @see AttributeChanged */ |
|
46 enum TAttributes |
|
47 { |
|
48 /** Cursor type. |
|
49 @see MWsStandardTextCursor::Type()*/ |
|
50 ECursorType = 1, |
|
51 /** Cursor clip rect. |
|
52 @see MWsStandardTextCursor::ClipRect()*/ |
|
53 ECursorClipRect, |
|
54 /** Cursor flags. |
|
55 @see MWsStandardTextCursor::Flags()*/ |
|
56 ECursorFlags, |
|
57 /** Cursor color. |
|
58 @see MWsStandardTextCursor::Color()*/ |
|
59 ECursorColor, |
|
60 /** Window shape. |
|
61 @see MWsWindow::WindowArea()*/ |
|
62 EWindowShape, |
|
63 /** Window group name |
|
64 @see MWsWindowGroup::Name()*/ |
|
65 EWindowGroupName |
|
66 }; |
|
67 |
|
68 virtual void NodeCreated(const MWsWindowTreeNode& aWindowTreeNode, const MWsWindowTreeNode* aParent) = 0; |
|
69 virtual void NodeReleased(const MWsWindowTreeNode& aWindowTreeNode) = 0; |
|
70 virtual void NodeActivated(const MWsWindowTreeNode& aWindowTreeNode) = 0; |
|
71 virtual void NodeExtentChanged(const MWsWindowTreeNode& aWindowTreeNode, const TRect& aRect) = 0; |
|
72 virtual void SiblingOrderChanged(const MWsWindowTreeNode& aWindowTreeNode, TInt aNewPos) = 0; |
|
73 virtual void FlagChanged(const MWsWindowTreeNode& aWindowTreeNode, TInt aFlag, TBool aNewValue) = 0; |
|
74 virtual void AttributeChanged(const MWsWindowTreeNode& aWindowTreeNode, TInt aAttribute) = 0; |
|
75 virtual void FadeCountChanged(const MWsWindowTreeNode& aWindowTreeNode, TInt aFadeCount) = 0; |
|
76 virtual void TransparentRegionChanged(const MWsWindowTreeNode& aWindowTreeNode, const TRegion& aNewTransparentRegion, const TRegion* aNewOpaqueRegion) = 0; |
|
77 //virtual void ElementAdded(const MWsWindowTreeNode& aWindowTreeNode, const TRect& aElement) = 0; |
|
78 virtual void MovedToWindowGroup(const MWsWindowTreeNode& aWindowTreeNode, const MWsWindowTreeNode& aNewWindowGroupNode) = 0; |
|
79 virtual void WindowGroupChained(const MWsWindowTreeNode& aParent, const MWsWindowTreeNode& aChild) = 0; |
|
80 virtual void WindowGroupChainBrokenAfter(const MWsWindowTreeNode& aWindowGroupNode) = 0; |
|
81 virtual void FadeAllChildren(const MWsWindowTreeNode& aWindowTreeNode, TBool aFaded) = 0; |
|
82 }; |
|
83 |
|
84 class RAlfBridgerClient; |
|
85 |
|
86 class MAlfBridge |
|
87 { |
|
88 public: |
|
89 enum TEvent { |
|
90 EAlfBridgeCreated, // data: MAlfBridge |
|
91 EAlfNativeWindowCreated, // data: TAlfNativeWindowData |
|
92 ESetWindowTreeObserver, // data: MAlfCompositionAgnosticWindowTreeObserver* |
|
93 EExternalize, // externalize complete state data: Todo |
|
94 EInternalize // reset the state from data data: Todo |
|
95 }; |
|
96 |
|
97 virtual void CommitL() = 0; |
|
98 virtual void WriteIntsL(TUint8 aCommand, TInt aCount, TInt* aArray) = 0; |
|
99 virtual RAlfBridgerClient* Client() = 0; |
|
100 }; |
|
101 |
|
102 #endif // _ALFRSUAPI_H_ |