📄 aknexslidercontainer.cpp
字号:
time.UniversalTime();
randSeed = time.Int64();
randValue = ( Math::Rand( randSeed ) % KSliderBaseMaxValue ) ;
if ( randValue % KSliderBaseStepSize != KSliderNormalRemainder )
{
if ( randValue < KSliderBaseStepSize )
{
randValue += ( KSliderBaseStepSize - randValue ) ;
}
else
{
randValue -= ( randValue % KSliderBaseStepSize );
}
}
iSlider->SetValueL( randValue );
ChangeLabelL();
}
break;
}
case EAknExSliderCmdSetStep:
{
// If the screen which is displayed is step size screen
// changes the step size of slider control.
if ( charCode == AKNEXSLIDER_STEP_CHANGE_KEY ||
charCode == AKNEXSLIDER_STEP_CHANGE_KEY2 )
{
response = EKeyWasConsumed;
// Increments the index of step size.
// If number of index is more than defined maximum number,
// sets minimum number to number of index.
if ( ++iCurrentStep >= KSliderStepChangeCount )
{
iCurrentStep = KSliderInitialStepIndex;
}
iSlider->SetValueL( KSliderClearValue );
iSlider->SetStepSize( KSliderStepChangeSize[iCurrentStep] );
ChangeLabelL();
}
break;
}
default:
{
break;
}
}
return response;
}
// ----------------------------------------------------------------------------
// CAknExSliderContainer::StopDisplaySlider()
// Deletes slider control objects.
// ----------------------------------------------------------------------------
//
void CAknExSliderContainer::StopDisplaySlider()
{
// Deletes slider control object.
if ( iSlider )
{
// Removes slider control from control stack.
iEikonEnv->EikAppUi()->RemoveFromStack( iSlider );
delete iSlider;
iSlider = NULL;
}
}
// ----------------------------------------------------------------------------
// CAknExSliderContainer::SetLabelState()
// Sets font and alignment of label.
// ----------------------------------------------------------------------------
//
void CAknExSliderContainer::SetLabelState( TAknExSliderLabelState aState )
{
if ( aState == EAknExSliderLabelTitle ) // Is label used for title?
{
// Uses <legend> font.
iLabel->SetFont( LatinBold19() );
// Horizontal : center, Vertical : center
iLabel->SetAlignment( EHCenterVCenter );
}
else
{
// Uses <annotation> font.
iLabel->SetFont( iEikonEnv->AnnotationFont() );
// Horizontal : left, Vertical : top
iLabel->SetAlignment( EHLeftVTop );
}
}
// ----------------------------------------------------------------------------
// CAknExSliderContainer::DisplayNextFeature()
// Sets ID of feature to displayed next.
// ----------------------------------------------------------------------------
//
void CAknExSliderContainer::DisplayNextFeature()
{
switch ( iCurrentFeature ) // Current screen is...
{
case EAknExSliderCmdEmpty: // Start screen.
// Next : Layout1 screen.
iCurrentFeature = EAknExSliderCmdLayout1;
SetLabelState( EAknExSliderLabelInformation );
break;
case EAknExSliderCmdLayout1: // Layout1 screen.
// Next : Layout2 screen.
iCurrentFeature = EAknExSliderCmdLayout2;
break;
case EAknExSliderCmdLayout2: // Layout2 screen.
// Next : Layout3 screen.
iCurrentFeature = EAknExSliderCmdLayout3;
break;
case EAknExSliderCmdLayout3: // Layout3 screen.
// Next : View mode screen.
iCurrentFeature = EAknExSliderCmdViewMode;
break;
case EAknExSliderCmdViewMode: // View mode screen.
// Next : Form screen.
iCurrentFeature = EAknExSliderCmdForm;
break;
case EAknExSliderCmdForm: // Form screen.
// Next : Return value screen.
iCurrentFeature = EAknExSliderCmdReturn;
SetLabelState( EAknExSliderLabelInformation );
break;
case EAknExSliderCmdReturn: // Return value screen.
// Next : Minimum screen.
iCurrentFeature = EAknExSliderCmdSetMinimum;
break;
case EAknExSliderCmdSetMinimum: // Minimum screen.
// Next : Maximum screen.
iCurrentFeature = EAknExSliderCmdSetMaximum;
break;
case EAknExSliderCmdSetMaximum: // Maximum screen.
// Next : Range screen.
iCurrentFeature = EAknExSliderCmdSetRange;
break;
case EAknExSliderCmdSetRange: // Range screen.
// Next : Current value screen.
iCurrentFeature = EAknExSliderCmdSetValue;
break;
case EAknExSliderCmdSetValue: // Current value screen.
// Next : Step size screen.
iCurrentFeature = EAknExSliderCmdSetStep;
break;
case EAknExSliderCmdSetStep: // Step size screen.
// Next : Value changed screen.
iCurrentFeature = EAknExSliderCmdValueChanged;
break;
case EAknExSliderCmdValueChanged: // Value changed screen.
// Next : Value type( not shown ) screen.
iCurrentFeature = EAknExSliderCmdTypeNotShown;
break;
case EAknExSliderCmdTypeNotShown: // Value type( not shown ) screen.
// Next : Value type( bare ) screen.
iCurrentFeature = EAknExSliderCmdTypeBare;
break;
case EAknExSliderCmdTypeBare: // Value type( bare ) screen.
// Next : Value type( percent ) screen.
iCurrentFeature = EAknExSliderCmdTypePercent;
break;
case EAknExSliderCmdTypePercent: // Value type( percent ) screen.
// Next : Value type( fraction ) screen.
iCurrentFeature = EAknExSliderCmdTypeFraction;
break;
case EAknExSliderCmdTypeFraction: // Value type( fraction ) screen.
// Next : Value type( decimal ) screen.
iCurrentFeature = EAknExSliderCmdTypeDecimal;
break;
case EAknExSliderCmdTypeDecimal: // Value type( decimal ) screen.
// Next : Value text screen.
iCurrentFeature = EAknExSliderCmdValueText;
break;
case EAknExSliderCmdValueText: // Value text screen.
// Next : Start screen.
iCurrentFeature = EAknExSliderCmdEmpty;
break;
default:
// Exception : Layout1 screen.
iCurrentFeature = EAknExSliderCmdLayout1;
break;
}
DisplayFeatureL();
}
// ----------------------------------------------------------------------------
// CAknExSliderContainer::DisplayFeatureL()
// Displays the slider and label.
// ----------------------------------------------------------------------------
//
void CAknExSliderContainer::DisplayFeatureL()
{
switch ( iCurrentFeature ) // Screen which is displayed is...
{
case EAknExSliderCmdEmpty: // Start screen.
// Deletes slider control and displays information.
StopDisplaySlider();
SetLabelState( EAknExSliderLabelTitle );
iView->SetTitleL( R_AKNEXSLIDER_INITAIL );
DisplayInformationL( R_AKNEXSLIDER_APP_TITLE );
break;
case EAknExSliderCmdLayout1: // Layout1 screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_LAYOUT1 );
break;
case EAknExSliderCmdLayout2: // Layout2 screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT2 );
DisplayInformationL( R_AKNEXSLIDER_INFO_LAYOUT2 );
break;
case EAknExSliderCmdLayout3: // Layout3 screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT3 );
DisplayInformationL( R_AKNEXSLIDER_INFO_LAYOUT3 );
break;
case EAknExSliderCmdViewMode: // View mode screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_VIEWMODE );
break;
case EAknExSliderCmdKeyEvent1: // Key event1 screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_KEYEVENT1 );
break;
case EAknExSliderCmdKeyEvent2: // Key even2 screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_KEYEVENT2 );
break;
case EAknExSliderCmdKeyEvent3: // Key event3 screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_KEYEVENT3 );
break;
case EAknExSliderCmdForm: // Form screen.
{
// Displays slider control in form.
StopDisplaySlider();
if ( iLabel )
{
TBuf<KAknExSliderMessageBufLength> information( 0 );
iLabel->SetTextL( information );
}
DrawNow();
// DisplayMessage( R_AKNEXSLIDER_INFO_FORM );
DisplayFormL( R_AKNEXSLIDER_SLIDER_FORM_DIALOG );
SetLabelState( EAknExSliderLabelTitle );
DisplayInformationL( R_AKNEXSLIDER_INFO_OPERATION );
break;
}
case EAknExSliderCmdReturn: // Return value.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_RETURN );
break;
case EAknExSliderCmdSetMinimum: // Minimum screen.
// Displays slider control and information.
iCurrentLabel = EAknExSliderChangeLabel1;
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT5 );
DisplayInformationL( R_AKNEXSLIDER_INFO_MINIMUM );
break;
case EAknExSliderCmdSetMaximum: // Maximum screen.
// Displays slider control and information.
iCurrentLabel = EAknExSliderChangeLabel1;
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT5 );
DisplayInformationL( R_AKNEXSLIDER_INFO_MAXIMUM );
break;
case EAknExSliderCmdSetRange: // Range screen.
// Displays slider control and information.
iCurrentLabel = KSliderClearValue;
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1, KSliderInitValue );
DisplayInformationL( R_AKNEXSLIDER_INFO_RANGE );
break;
case EAknExSliderCmdSetValue: // Current value screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_VALUE );
break;
case EAknExSliderCmdSetStep: // Step size screen.
// Displays slider control and information.
iCurrentStep = KSliderInitialStepIndex;
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_STEP );
break;
case EAknExSliderCmdValueChanged: // Value changed screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT1 );
DisplayInformationL( R_AKNEXSLIDER_INFO_VALUECHANGED );
break;
case EAknExSliderCmdTypeNotShown: // Value type( not shown ) screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT_VALUE_NOTSHOWN,
KSliderInitialValueOfValueTypeScreen );
DisplayInformationL( R_AKNEXSLIDER_INFO_VALUETYPE );
break;
case EAknExSliderCmdTypeBare: // Value type( bare ) screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT_VALUE_BARE,
KSliderInitialValueOfValueTypeScreen );
DisplayInformationL( R_AKNEXSLIDER_INFO_VALUETYPE );
break;
case EAknExSliderCmdTypePercent: // Value type( percent ) screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT_VALUE_PERCENT,
KSliderInitialValueOfValueTypeScreen );
DisplayInformationL( R_AKNEXSLIDER_INFO_VALUETYPE );
break;
case EAknExSliderCmdTypeFraction: // Value type( fraction ) screen.
// Displays slider control and information.
DisplaySliderL( R_AKNEXSLIDER_SLIDER_LAYOUT_VALUE_FRACTION,
KSliderInitialValueOfValueTypeScreen );
DisplayInformationL( R_AKNEXSLIDER_INFO_VALUETYPE );
break;
case EAknExSliderCmdTypeDecimal: // Value type( decimal ) screen.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -