📄 s60uicodeextextcontrol.cpp
字号:
/*
* ==============================================================================
* Name : S60UICodeExTextControl.cpp
* Part of : S60UICodeEx
* Interface :
* Description :
* Version :
*
* Copyright (c) 2005-2006 Nokia Corporation.
* This material, including documentation and any related
* computer programs, is protected by copyright controlled by
* Nokia Corporation.
* ==============================================================================
*/
// INCLUDE FILES
#include <aknbiditextutils.h>
#include <gulfont.h>
#include <stringloader.h>
#include <akniconutils.h>
#include <aknutils.h>
#include "S60UICodeEx.h"
#include "S60UICodeExTextControl.h"
// ============================ MEMBER FUNCTIONS ==============================
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::NewL
// Two-phased constructor.
// ----------------------------------------------------------------------------
//
CS60UICodeExTextControl* CS60UICodeExTextControl::NewL(
const TRect& aRect,
const CCoeControl* aParent )
{
CS60UICodeExTextControl* self = new (ELeave) CS60UICodeExTextControl;
CleanupStack::PushL( self );
self->ConstructL( aRect, aParent );
CleanupStack::Pop(self);
return self;
}
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::ConstructL
//
// ----------------------------------------------------------------------------
//
void CS60UICodeExTextControl::ConstructL( const TRect& aRect, const CCoeControl* aParent )
{
SetContainerWindowL( *aParent );
iFocus = EFalse;
SetRect( aRect );
ActivateL();
}
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::~CS60UICodeExTextControl
// Destructor
// ----------------------------------------------------------------------------
//
CS60UICodeExTextControl::~CS60UICodeExTextControl()
{
}
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::SizeChanged
//
// ----------------------------------------------------------------------------
//
void CS60UICodeExTextControl::SizeChanged()
{
DrawDeferred();
}
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::SetText
//
// ----------------------------------------------------------------------------
//
void CS60UICodeExTextControl::SetText( TDes& aText )
{
iText.Copy( aText );
DrawDeferred();
}
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::Draw
//
// ----------------------------------------------------------------------------
//
void CS60UICodeExTextControl::Draw( const TRect& aRect ) const
{
CWindowGc& gc = SystemGc();
gc.Clear( aRect );
const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontPrimaryFont );
TPoint textPoint;
TPoint persentPoint;
textPoint.SetXY( aRect.iTl.iX, aRect.iTl.iY );
textPoint.iY = aRect.iTl.iY + font->HeightInPixels();
TBuf<100> visualtext;
gc.UseFont( font );
TInt textSizeInPixels = font->TextWidthInPixels( iText ) + 10;
// Convert text to visual and clip it if it exceeds given dimensions:
AknBidiTextUtils::ConvertToVisualAndClip( iText,
visualtext, *font, aRect.iBr.iX - aRect.iTl.iX, aRect.iBr.iX - aRect.iTl.iX );
gc.DrawText( visualtext, textPoint );
if(iFocus)
{
// red color
gc.SetPenColor(TRgb(255,0,0));
}
TSize textRect( textSizeInPixels, font->HeightInPixels() );
gc.SetPenStyle( CWindowGc::ESolidPen );
gc.SetPenSize( TSize(1,1 ));
gc.DrawRoundRect( aRect, TSize(4,4));
gc.DiscardFont();
}
// ----------------------------------------------------------------------------
// CS60UICodeExTextControl::ControlFocusGained
//
// ----------------------------------------------------------------------------
//
void CS60UICodeExTextControl::ControlFocusGained( TBool aFocus )
{
iFocus = aFocus;
DrawDeferred();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -