⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s60uicodeextextcontrol.cpp

📁 symbian os c++ 自定义界面
💻 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 + -