📄 aknexquerycontainer.cpp
字号:
CDesCArray* textArray = iCoeEnv->ReadDesCArrayResourceL( resourceId );
iListBox->Model()->SetItemTextArray( textArray );
iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray );
// Sets pixel values of width.
TRect rect( TPoint( KAknExQueryListBoxRectPointX,
KAknExQueryListBoxRectPointY ),
TSize( KAknExQueryListBoxRectWidth,
KAknExQueryListBoxRectHeight ) );
CColumnListBoxData* columnData = iListBox->ItemDrawer()->ColumnData();
columnData->SetColumnWidthPixelL( KAknExQueryNameColumnIndex,
rect.Width() );
columnData->SetColumnWidthPixelL( KAknExQueryNameGapColumnIndex,
rect.Width() );
// Gets current number of list box items.
TInt numberOfItems( iListBox->Model()->NumberOfItems() );
// Gets new height of list box.
TInt height( iListBox->CalcHeightBasedOnNumOfItems( numberOfItems ) );
// If new height is less than defined height of list box
// sets new height to list box height.
if ( height < rect.Height() )
{
rect.SetHeight( height );
}
iListBox->SetRect( rect ); // Sets rectangle of list box.
ActivateL();
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::DeleteListBoxL()
// Deletes listbox object.
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::DeleteListBoxL()
{
if ( iListBox )
{
delete iListBox;
iListBox = NULL;
}
if ( iHandler )
{
delete iHandler;
iHandler = NULL;
}
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::CreateLabelL()
// Creates label object.
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::CreateLabelL( TInt aResourceId )
{
if ( !iLabelResultMessage )
{
iLabelResultMessage = new ( ELeave ) CEikLabel;
iLabelResultMessage->SetContainerWindowL( *this );
iLabelResultMessage->SetRect( Rect() );
iLabelResultMessage->SetAlignment( EHCenterVTop );
iLabelResultMessage->SetPosition( AKNEXQUERY_LABEL2_POSITION );
if (AknLayoutUtils::Variant() == EApacVariant)
{
iLabelResultMessage->SetFont( ApacPlain16() );
}
else
{
iLabelResultMessage->SetFont( LatinBold19() );
}
}
TBuf<KAknExQueryTextBufLength> labelText;
iCoeEnv->ReadResource( labelText, aResourceId );
iLabelResultMessage->SetTextL( labelText );
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::DeleteLabelL()
// Deletes label object.
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::DeleteLabelL()
{
delete iLabelResultMessage;
iLabelResultMessage = NULL;
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::SetTextToLabelL()
// Set Label text.
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::SetTextToLabelL( TInt aResourceId )
{
TBuf<KAknExQueryTextBufLength> messageString;
iCoeEnv->ReadResource( messageString, aResourceId );
iLabel->SetTextL( messageString );
DrawNow();
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::ShowMessageL( const TDesC& aMessage )
// Show Message.
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::ShowMessageL( const TDesC& aMessage )
{
iLabelResultMessage->SetTextL( aMessage );
DrawNow();
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::OfferKeyEventL()
// Handles the key events.
// ----------------------------------------------------------------------------
//
TKeyResponse CAknExQueryContainer::OfferKeyEventL(
const TKeyEvent& aKeyEvent,
TEventCode aType )
{
if ( aType != EEventKey )
{
return EKeyWasNotConsumed;
}
switch ( aKeyEvent.iCode )
{
case EKeySpace:
if ( iDisplayDialog )
{
return EKeyWasNotConsumed;
}
iView->DisplayNextOutlineL();
DrawNow();
break;
default:
if ( !iDisplayDialog && iListBox )
{
return iListBox->OfferKeyEventL( aKeyEvent, aType );
}
else
{
return EKeyWasNotConsumed;
}
}
return EKeyWasConsumed;
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::SizeChanged()
// Called by framework when the view size is changed
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::SizeChanged()
{
if ( iLabel )
{
iLabel->SetExtent( AKNEXQUERY_LABEL_ORIGIN, Size() );
iLabel->SetAlignment( EHCenterVCenter );
}
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::CountComponentControls() const
// Returns number of component.
// ----------------------------------------------------------------------------
//
TInt CAknExQueryContainer::CountComponentControls() const
{
TInt count( KAknExQueryCountComponentControls );
if ( iLabelResultMessage )
{
count++;
}
if ( iListBox )
{
count++;
}
return count;
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::ComponentControl( TInt aIndex ) const
// Returns pointer to particular component.
// ----------------------------------------------------------------------------
//
CCoeControl* CAknExQueryContainer::ComponentControl( TInt aIndex ) const
{
switch ( aIndex )
{
case EAknExQueryComponentLabel:
return iLabel;
case EAknExQueryComponentLabel2:
if ( iLabelResultMessage )
{
return iLabelResultMessage;
}
else
{
return iListBox;
}
case EAknExQueryComponentListBox:
return iListBox;
default:
return NULL;
}
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::Draw( const TRect& aRect ) const
//
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::Draw( const TRect& aRect ) const
{
CWindowGc& gc = SystemGc();
gc.SetPenStyle( CGraphicsContext::ENullPen );
gc.SetBrushColor( KAknExQueryGray );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
gc.DrawRect( aRect );
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::ShowMultiLineTimeAndDurationLayoutL
// Display of MultiLine Time with Duration Query
// ----------------------------------------------------------------------------
void CAknExQueryContainer::ShowMultiLineTimeAndDurationLayoutL(
const TInt aResourceId,
const TInt aTopResourceId)
{
iDisplayDialog = ETrue;
SetTextToLabelL( R_AKNEXQUERY_OPERATE_MESSAGE );
TBuf<KAknExQueryTextBufLength> bufferRes;
iCoeEnv -> ReadResource(bufferRes, aTopResourceId);
TTime topDateTime;
topDateTime.Set(bufferRes);
topDateTime.HomeTime();
TTimeIntervalSeconds bottomDuration = 300; // set timer field to 5 minutes
CAknMultiLineDataQueryDialog* dlg =
CAknMultiLineDataQueryDialog::NewL( topDateTime, bottomDuration );
dlg->ExecuteLD( aResourceId );
iDisplayDialog = EFalse;
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::SetIconL()
// Set Icon dynamically
// ----------------------------------------------------------------------------
void CAknExQueryContainer::SetIconL( CAknQueryDialog* aDlg,
TInt32 aBitmap,
TInt32 aMask )
{
CEikImage* image = new ( ELeave ) CEikImage();
CleanupStack::PushL( image );
CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(
KAknExQueryMbmFilePath, aBitmap );
CleanupStack::PushL( bitmap );
CFbsBitmap* mask = iEikonEnv->CreateBitmapL(
KAknExQueryMbmFilePath, aMask );
CleanupStack::PushL( mask );
image->SetBitmap( bitmap );
image->SetMask( mask );
CleanupStack::Pop( 2 ); //mask and bitmap
aDlg->QueryHeading()->SetHeaderImageL( image );
CleanupStack::PopAndDestroy(); //image
}
// ----------------------------------------------------------------------------
// CAknExQueryContainer::ShowGlobalListQueryL()
// ----------------------------------------------------------------------------
//
void CAknExQueryContainer::ShowGlobalListQueryL()
{
iDisplayDialog = ETrue;
SetTextToLabelL( R_AKNEXQUERY_OPERATE_MESSAGE );
CDesCArray* textArray = iCoeEnv->ReadDesCArrayResourceL(
R_AKNEXQUERY_SUB_POPUP_DATA );
CleanupStack::PushL( textArray );
if ( iGlobalListObserver )
{
iGlobalListObserver->Cancel();
delete iGlobalListObserver;
iGlobalListObserver = NULL;
}
iGlobalListObserver = CAknExQueryGlobalListObserver::NewL( this );
iGlobalListObserver->UnsetSelectItemFlag();
iGlobalListObserver->Start();
if ( iGlobalListQuery )
{
delete iGlobalListQuery;
iGlobalListQuery = NULL;
}
iGlobalListQuery = CAknGlobalListQuery::NewL();
iGlobalListObserver->SetSelectItemFlag();
iGlobalListQuery->ShowListQueryL(
textArray,
iGlobalListObserver->iStatus,
0 );
CleanupStack::PopAndDestroy(); // textArray
iDisplayDialog = EFalse;
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -