/*
* Copyright (c) 2006-2006 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0""
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Implementation for Floating window
*
*/
#include "peninputfloatctrl.h"
const TInt KDefaultRoundSize = 2;
const TInt KDefaultOrdinalPosition = 0;
const TInt KDefaultOrdinalPriority = ECoeWinPriorityAlwaysAtFront + 100;
// ---------------------------------------------------------------------------
// C++ destructor
// ---------------------------------------------------------------------------
//
CPeninputFloatingCtrl::~CPeninputFloatingCtrl()
{
}
// ---------------------------------------------------------------------------
// Draw this control
// ---------------------------------------------------------------------------
//
void CPeninputFloatingCtrl::Draw( const TRect& aRect ) const
{
CWindowGc& gc = SystemGc();
TRect rect = Rect();
gc.Clear( rect );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
gc.SetBrushColor( KRgbGray );
gc.SetPenStyle( CGraphicsContext::ESolidPen );
gc.SetPenColor( KRgbBlack );
gc.DrawRoundRect( rect, TSize( KDefaultRoundSize, KDefaultRoundSize ) );
}
// ---------------------------------------------------------------------------
// Show this floating control
// ---------------------------------------------------------------------------
//
void CPeninputFloatingCtrl::Show( const TRect& aRect )
{
Show( aRect, KDefaultOrdinalPosition, KDefaultOrdinalPriority );
}
// ---------------------------------------------------------------------------
// Show this floating control
// ---------------------------------------------------------------------------
//
void CPeninputFloatingCtrl::Show( const TRect& aRect, TInt aOrdinalPos,
TInt aOrdinalPriority )
{
SetRect( aRect );
DrawableWindow()->SetOrdinalPosition( aOrdinalPos, aOrdinalPriority );
MakeVisible( ETrue );
}
// ---------------------------------------------------------------------------
// Hide this floating control
// ---------------------------------------------------------------------------
//
void CPeninputFloatingCtrl::Hide()
{
MakeVisible( EFalse );
}
// ---------------------------------------------------------------------------
// Test if transparency is supported by this control
// ---------------------------------------------------------------------------
//
TBool CPeninputFloatingCtrl::SupportTransparent() const
{
return iSupportTransparent;
}
// ---------------------------------------------------------------------------
// Symbian constructor
// ---------------------------------------------------------------------------
//
void CPeninputFloatingCtrl::BaseConstructL()
{
RWindowGroup& wg = CCoeEnv::Static()->RootWin();
CreateWindowL( wg );
SetComponentsToInheritVisibility();
Window().SetRequiredDisplayMode( EColor16MA );
TInt err = Window().SetTransparencyAlphaChannel();
iSupportTransparent = ( KErrNone == err );
MakeVisible( EFalse );
ActivateL();
}
// ---------------------------------------------------------------------------
// C++ constructor
// ---------------------------------------------------------------------------
//
CPeninputFloatingCtrl::CPeninputFloatingCtrl()
{
// No implementation required
}