First public contribution.
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 @internalComponent - Internal Symbian test code
24 const TUint8 KCmdQuery = 0;
25 const TUint8 KCmdSetGcFront = 1;
26 const TUint8 KCmdSetGcBack = 2;
27 const TUint8 KCmdResetGcFront = 3;
28 const TUint8 KCmdResetGcBack = 4;
29 const TUint8 KCmdSetBackObject = 5;
30 const TUint8 KCmdResetBackObject= 6;
32 const TUid KRedirectorInterfaceId = {0x10281e1d};
33 const TUid KRedirectorImplId = {0x10281e1e};
35 EXPORT_C CWsRedir* CWsRedir::NewL()
40 EXPORT_C CWsRedir* CWsRedir::NewL(TInt aScreenId)
42 return NewL(aScreenId, EFalse);
45 EXPORT_C CWsRedir* CWsRedir::NewL(TInt aScreenId, TBool aDisableWin)
47 CWsRedir* self = new(ELeave) CWsRedir;
48 CleanupStack::PushL(self);
50 data.Append((TUint8)aScreenId);
51 data.Append((TUint8)aDisableWin);
52 self->BaseConstructL(KRedirectorInterfaceId, KRedirectorImplId, data);
53 CleanupStack::Pop(self);
54 self->iIsReady = ETrue;
58 EXPORT_C CWsRedir::~CWsRedir()
63 void CWsRedir::HandleMessage(const TDesC8& aData)
65 if (aData.Size()>1 && aData[0]==KRedirectorInfoSig)
66 Mem::Copy(iReq, aData.Ptr(), aData.Size());
70 void CWsRedir::OnReplace()
74 EXPORT_C TInt CWsRedir::Redirect(TBufferType aWhich, TBool aHow)
80 if (aWhich==EFrontBuffer)
82 if (iIsFrontRedirected && aHow)
84 iIsFrontRedirected = aHow;
85 cmd.Append(iIsFrontRedirected? KCmdSetGcFront : KCmdResetGcFront);
89 if (iIsBackRedirected && aHow)
91 iIsBackRedirected = aHow;
92 cmd.Append(iIsBackRedirected? KCmdSetGcBack : KCmdResetGcBack);
99 EXPORT_C TInt CWsRedir::RedirectUsingWsBackBuffer(TBool aHow)
105 if (iIsBackRedirected && aHow)
107 iIsBackRedirected = aHow;
108 cmd.Append(iIsBackRedirected? KCmdSetBackObject : KCmdResetBackObject);
114 EXPORT_C TInt CWsRedir::QueryPlugin(TRedirectorInfo& aInfo)
117 cmd.Append(KCmdQuery);
126 EXPORT_C void CWsRedir::SetCallBack(TCallBack aCallBack)
128 iCallBack = aCallBack;