void CRecognizerContainer::ConstructL(const TRect& aRect, CAknView* View, TBool navi)
{
	CALLSTACKITEM_N(_CL("CRecognizerContainer"), _CL("ConstructL"));

	iView=View;
	iNavi=navi;
	iCurrentCodeArray=new RPointerArray<CCodeInfo>;
	iScreenMsgBuf = CEikonEnv::Static()->AllocReadResourceL(R_CODE_SCREEN_MSG);

	if (iNavi) {
		CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
		CAknNavigationControlContainer *np = (CAknNavigationControlContainer *)sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi)); 
		CLocalNotifyWindow* tp=CLocalNotifyWindow::Global();
		np->PushDefaultL(ETrue);	
		HBufC * t = iEikonEnv->AllocReadResourceL(R_CHOOSE_CODE);
		tp->SetTitleText(t);
	} else {
//		CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
		CLocalNotifyWindow* tp=CLocalNotifyWindow::Global();
		tp->SetTitleTextToDefaultL();
	}

	CreateWindowL();

	iStandByLabel = new (ELeave) CEikLabel;
	iStandByLabel->SetContainerWindowL(*this);
	iStandByLabel->SetTextL(_L("Camera Standby\nClick to resume"));
	iStandByLabel->SetAlignment(TGulAlignment(EHCenterVCenter));
	iStandByLabel->SetExtent(TPoint(0,0), TSize(176,144));
	
	SetRect(aRect);
	ActivateL();
}
示例#2
0
void CMainMenuListContainer::SizeChanged()
{
    CCoeControl::SizeChanged();

    if(iBgContext) {
        iBgContext->SetRect(Rect());
        if (&Window()) {
            iBgContext->SetParentPos(PositionRelativeToScreen());
        }
    }

    CCoeControlArray::TCursor cursor = Components().Find(ETitleLabel);
    CEikLabel* label = cursor.Control<CEikLabel>();
    const TDesC* titleText = label->Text();
    TRect rect = Rect();
    CFont* titleFont = FindLargestPossibleFontL(*titleText, rect.Width(), EAknLogicalFontPrimaryFont);
    label->SetFont(titleFont);
    CEikonEnv::Static()->ScreenDevice()->ReleaseFont(titleFont);

    // Set the size of the label, need to think of the descent as well.
    TSize size = label->MinimumSize();
    size.iWidth = rect.Width();
    TInt descent = label->Font()->DescentInPixels();
    size.iHeight += descent;

    // Set the pos for the listbox, use the height for the label when doing this.
    // Also add the descent in pixels to get some space between the label and the
    // listbox.
    rect.iTl.iY = descent;
    TPoint pos(0, descent);
    label->SetExtent(rect.iTl, size);
    rect.iTl.iY += size.iHeight;

    // As default display both rows and hide the scrollbars
    HideSecondRow(EFalse);
    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,
            CEikScrollBarFrame::EOff);

    // Need to set the rect to get the listbox to update its values
    iListBox->SetRect(rect);
    TInt listBoxHeight = iListBox->ItemHeight() * iListBox->Model()->NumberOfItems();

    if (listBoxHeight > rect.Height()) {
        // The listbox is to large to fint, hide the row and check again.
        HideSecondRow(ETrue);
        iListBox->SetRect(rect);
        listBoxHeight = iListBox->ItemHeight() * iListBox->Model()->NumberOfItems();
        if (listBoxHeight > rect.Height()) {
            // Show scroll bar only if the height of the listbox is larger then
            // the rect.
            iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,
                    CEikScrollBarFrame::EOn);
            iListBox->UpdateScrollBarsL();
        }
    }
    else {
        // Setting the first item gets the list box positioned correctly on the screen
        iListBox->ScrollToMakeItemVisible(0);
    }
}