// Activates this view, called by framework
void CAafAppFileBrowserView::ViewActivatedL(const TVwsViewId &/*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8 &/*aCustomMessage*/)
{
	// Set files to be displayed
	SetFileListL(iBrowserEngine->GetCurrentDirectory());

	// Set menubar and CBA
	CEikonEnv* eikonEnv = CEikonEnv::Static();
	MEikAppUiFactory* appUiFactory = eikonEnv->AppUiFactory();

	CEikMenuBar* menuBar = appUiFactory->MenuBar();
	CEikButtonGroupContainer* cba = appUiFactory->Cba();

	// If any menubar is displayed - stop displaying
	if (menuBar)
		menuBar->StopDisplayingMenuBar();

	menuBar->SetMenuTitleResourceId(R_AAF_FILEBROWSER_MENUBAR);

	cba->SetCommandSetL(R_AAF_CBA_STANDART);
	cba->DrawDeferred();

	// Bring this view to the top of windows stack
	Window().SetOrdinalPosition(0);

	// Restore listbox item selection (if it's not empty)
	if (iListBox->Model()->NumberOfItems())
		iListBox->SetCurrentItemIndex(iCurrentItemIndex);

	// Set view visible
	MakeVisible(ETrue);
}
예제 #2
0
// Activates this view, called by framework
void CAafAppCameraView::ViewActivatedL(const TVwsViewId &aPrevViewId, TUid aCustomMessageId, const TDesC8 &aCustomMessage)
{
	__LOGSTR_TOFILE("CAafAppCameraView::ViewActivatedL() ends");

	if (!iContainer)
	{
		__LOGSTR_TOFILE("CAafAppCameraView::ViewActivatedL() iContainer initialization begins");

		iContainer = CAafCameraContainer::NewL( Rect() );
		iContainer->SetContainerWindowL( *this );
		
		iContainer->ActivateL();
		__LOGSTR_TOFILE("CAafAppCameraView::ViewActivatedL() iContainer initialization ends");
	}
	else
	{
		iContainer->ActivateL();
		iContainer->InitCameraL();
	}

	// Set menubar and CBA
	CEikonEnv* eikonEnv = CEikonEnv::Static();
	MEikAppUiFactory* appUiFactory = eikonEnv->AppUiFactory();


	CEikMenuBar* menuBar = appUiFactory->MenuBar();
	CEikButtonGroupContainer* cba = appUiFactory->Cba();

	// If any menubar is displayed - stop displaying
	if (menuBar)
		menuBar->StopDisplayingMenuBar();

	menuBar->SetMenuTitleResourceId(R_AAF_CAMERA_VIEW_MENUBAR);

	cba->SetCommandSetL(R_AAF_CBA_STANDART);
	cba->DrawDeferred();

	// Bring this view to the top of windows stack
	Window().SetOrdinalPosition(0);

	MakeVisible(ETrue);

	__LOGSTR_TOFILE("CAafAppCameraView::ViewActivatedL() ends");
}
예제 #3
0
void CAknDialog::CreateMenuBarL(TInt aMenuTitleResourceId)
	{
	if (iMenuBar)
		{
		// just replace the content if it doesn't already exist
		iMenuBar->TitleArray()->ResetAndDestroy();
		iMenuBar->SetMenuTitleResourceId(aMenuTitleResourceId);
		}
	else
		{
		CEikMenuBar* newMenuBar = new (ELeave) CEikMenuBar();
		CleanupStack::PushL(newMenuBar);
		newMenuBar->ConstructL(this, NULL, aMenuTitleResourceId);
		iEikonEnv->EikAppUi()->AddToStackL(newMenuBar,ECoeStackPriorityMenu,ECoeStackFlagRefusesFocus);
		iMenuBar=newMenuBar;
		CleanupStack::Pop(); // now owned by this Dialog.
		}

    AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this );
	}
// ---------------------------------------------------------
// CCertManUIContainerAuthority::HandleListBoxEventL(
// CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
// ---------------------------------------------------------
//
void CCertManUIContainerAuthority::HandleListBoxEventL(
    CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
{
    CERTMANUILOGGER_ENTERFN( " CCertManUIContainerAuthority::HandleListBoxEventL" );

    switch  ( aEventType )
    {
    case EEventItemDoubleClicked:
    case EEventItemSingleClicked:
    case EEventEnterKeyPressed:
    {
        const CListBoxView::CSelectionIndexArray* selections = iListBox->SelectionIndexes();
        if ( iListItemCount > 0 )
        {
            TInt currentItemIndex = iListBox->CurrentItemIndex();
            if ( selections->Count() == 0 )
            {
                iKeeper.iCertificateHelper->MessageQueryViewDetailsL(
                    currentItemIndex, KCertTypeAuthority, iEikonEnv );
            }
            else
            {
                CEikMenuBar* menuBar = iParent.MenuBar();
                menuBar->SetContextMenuTitleResourceId( R_CERTMANUI_MENUBAR_OPTIONS_MARKED );
                menuBar->TryDisplayContextMenuBarL();
            }
        }
        break;
    }

    default:
    {
        break;
    }
    }

    CERTMANUILOGGER_LEAVEFN( " CCertManUIContainerAuthority::HandleListBoxEventL" );
}
예제 #5
0
// Handle key events. Called by framework
TKeyResponse CRegisterView::OfferKeyEventL(
        const TKeyEvent& aKeyEvent,TEventCode aType)
 {
#ifdef __LOGME__
	iAppUi.LogText.Copy(_L("keycode="));
	iAppUi.LogText.AppendNum(aKeyEvent.iCode);
	iAppUi.WriteLogFile(iAppUi.LogText);
#endif

	// First handle right/left arrow keys. Switch focused control, if needed
    if(aType == EEventKey && iMainScreenView->IsFocused() &&
       aKeyEvent.iCode == EKeyRightArrow && itemIndex != 4)
    {
        iMainScreenView->SetFocus(EFalse, EDrawNow);
        iMainSubScreenView->SetFocus(ETrue, EDrawNow);
        return EKeyWasConsumed;
    }
    else if(aType == EEventKey && iMainSubScreenView->IsFocused() &&
       aKeyEvent.iCode == EKeyLeftArrow)
    {
        iMainScreenView->SetFocus(ETrue, EDrawNow);
        iMainSubScreenView->SetFocus(EFalse, EDrawNow);
        return EKeyWasConsumed;
    }
    else if(aType == EEventKey && iMainScreenView->IsFocused() &&
       aKeyEvent.iCode == EKeyDownArrow)
    {
       	if( itemIndex < 4)
			itemIndex++;

		if(itemIndex == 1)
        {
		    iMainSubScreenView->SetData(1);
        }
        else if(itemIndex == 2)
        {
			iMainSubScreenView->SetData(2);
        }
        else if(itemIndex == 3)
        {
			iMainSubScreenView->SetData(3);
        }
        else if(itemIndex == 4)
        {
			iMainSubScreenView->SetData(4);
        }
    }
    else if(aType == EEventKey && iMainScreenView->IsFocused() &&
       aKeyEvent.iCode == EKeyUpArrow)
    {
        if( itemIndex > 0)
			itemIndex--;

		 if(itemIndex == 0)
		 {
			iMainSubScreenView->SetData(0);
		 }
         else if(itemIndex == 1)
         {
			iMainSubScreenView->SetData(1);
		 }
         else if(itemIndex == 2)
         {
			iMainSubScreenView->SetData(2);
		 }
         else if(itemIndex == 3)
         {
			CEikMenuBar* menuBar = iEikonEnv->AppUiFactory()->MenuBar();
			menuBar->ChangeMenuBarL(0, R_REGISTER_MENUBAR, EFalse);

			iMainSubScreenView->SetData(3);
		 }
    }
    else if(aType == EEventKey && aKeyEvent.iCode == 13 && itemIndex != 4)
    {
		if(iMainScreenView->IsFocused())
		{
			iMainScreenView->SetFocus(EFalse, EDrawNow);
			iMainSubScreenView->SetFocus(ETrue, EDrawNow);
			return EKeyWasConsumed;
		}
		else if(iMainSubScreenView->IsFocused())
		{
			iAppUi.ActivateWindow();
			return EKeyWasConsumed;
		}

	}
	
	//if(itemIndex != 4)
	{
		// Let the focused control handle any other key events
		if(iMainScreenView->IsFocused())
			return iMainScreenView->OfferKeyEventL(aKeyEvent, aType);
		else if(iMainSubScreenView->IsFocused())
			return iMainSubScreenView->OfferKeyEventL(aKeyEvent, aType);
		else
			return EKeyWasNotConsumed;
	}
}
예제 #6
0
void QWidgetPrivate::show_sys()
{
    Q_Q(QWidget);

    if (q->testAttribute(Qt::WA_OutsideWSRange))
        return;

    Q_ASSERT(q->testAttribute(Qt::WA_WState_Created));

    q->setAttribute(Qt::WA_Mapped);

    if (q->testAttribute(Qt::WA_DontShowOnScreen)) {
        invalidateBuffer(q->rect());
        return;
    }

    if (q->internalWinId()) {
        if (!extra->activated)
             activateSymbianWindow();

         QSymbianControl *id = static_cast<QSymbianControl *>(q->internalWinId());
         const bool isFullscreen = q->windowState() & Qt::WindowFullScreen;
         const TBool cbaRequested = q->windowFlags() & Qt::WindowSoftkeysVisibleHint;

#ifdef Q_WS_S60
        // Lazily initialize the S60 screen furniture when the first window is shown.
        if (q->isWindow() && !QApplication::testAttribute(Qt::AA_S60DontConstructApplicationPanes)
                && !S60->buttonGroupContainer() && !S60->statusPane()) {

            if (!q->testAttribute(Qt::WA_DontShowOnScreen)) {

                // Create the status pane and CBA here
                CEikAppUi *ui = static_cast<CEikAppUi *>(S60->appUi());
                MEikAppUiFactory *factory = CEikonEnv::Static()->AppUiFactory();

                QT_TRAP_THROWING(
                    factory->CreateResourceIndependentFurnitureL(ui);

                    TRect boundingRect = static_cast<CEikAppUi*>(S60->appUi())->ClientRect();

                    CEikButtonGroupContainer *cba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba,
                        CEikButtonGroupContainer::EHorizontal,ui,R_AVKON_SOFTKEYS_EMPTY_WITH_IDS);
                    if (isFullscreen && !cbaRequested)
                        cba->MakeVisible(false);

                    CEikButtonGroupContainer *oldCba = factory->SwapButtonGroup(cba);
                    Q_ASSERT(!oldCba);
                    S60->setButtonGroupContainer(cba);

                    // If the creation of the first widget is delayed, for example by doing it
                    // inside the event loop, S60 somehow "forgets" to set the visibility of the
                    // toolbar (the three middle softkeys) when you flip the phone over, so we
                    // need to do it ourselves to avoid a "hole" in the application, even though
                    // Qt itself does not use the toolbar directly..
                    CAknAppUi *appui = dynamic_cast<CAknAppUi *>(CEikonEnv::Static()->AppUi());
                    if (appui) {
                        CAknToolbar *toolbar = appui->PopupToolbar();
                        if (toolbar && !toolbar->IsVisible())
                            toolbar->SetToolbarVisibility(ETrue);
                    }

                    CEikMenuBar *menuBar = new(ELeave) CEikMenuBar;
                    menuBar->ConstructL(ui, 0, R_AVKON_MENUPANE_EMPTY);
                    menuBar->SetMenuType(CEikMenuBar::EMenuOptions);
                    S60->appUi()->AddToStackL(menuBar,ECoeStackPriorityMenu,ECoeStackFlagRefusesFocus);

                    CEikMenuBar *oldMenu = factory->SwapMenuBar(menuBar);
                    Q_ASSERT(!oldMenu);
                )

                if (S60->statusPane()) {
                    // Use QDesktopWidget as the status pane observer to proxy for the AppUi.
                    // Can't use AppUi directly because it privately inherits from MEikStatusPaneObserver.
                    QSymbianControl *desktopControl = static_cast<QSymbianControl *>(QApplication::desktop()->winId());
                    S60->statusPane()->SetObserver(desktopControl);
                    if (isFullscreen) {
                        const bool cbaVisible = S60->buttonGroupContainer() && S60->buttonGroupContainer()->IsVisible();
                        S60->setStatusPaneAndButtonGroupVisibility(false, cbaVisible);
                    }
                }
            }
        }
예제 #7
0
파일: contacts.cpp 프로젝트: xubing/tts
void ContactsReader::Read() {
    app_state_.Reset();
    app_helper_.ReadTitle(&control_tree_, &app_state_);
    // return;
    const TVwsViewId view_id = app_helper_.ReadView(&control_tree_, &app_state_);
    return;
    app_helper_.ReadCba(&control_tree_, &app_state_);
    CEikMenuBar* menu = control_tree_.MenuBar();
    if (menu && menu->IsFocused()) {
        CEikMenuPane* pane = menu->MenuPane();
        app_helper_.ReadMenu(pane, &app_state_);
        if (pane) {
            return;
        }
    }
    // TODO(mikie): move tab reading to AppHelper.
    CAknTabGroup* tabgroup = control_tree_.TabGroup();
    if (tabgroup) {
        app_state_.SetSelectedTabIndex(tabgroup->ActiveTabIndex());
        app_state_.SetTabCount(tabgroup->TabCount());
        const TInt id = tabgroup->ActiveTabId();
        CAknTabGroupAccess* access = (CAknTabGroupAccess*)tabgroup;
        CArrayPtr<CAknTabAccess>* tabs = access->iTabArray;
        for (int i = 0; i < tabs->Count(); ++i) {
            CAknTabAccess* tab = tabs->At(i);
            CCoeControl* tab_control = (CCoeControl*)tab;
            if (tab && tab->iId == id) {
                // Not all tabs have text.
                CEikLabel* label = tab->iLabel;
                if (label) {
                    app_state_.SetSelectedTabText(*label->Text());
                }
                break;
            }
        }
    }
    if (view_id.iAppUid != ForApplication()) {
        return;
    }
    const TUint view = view_id.iViewUid.iUid;
    if (view == 1) {
        // Main contacts view
        CCoeControl* top = control_tree_.TopFocusedControl();
        if (top->CountComponentControls() == 0) return;
        CCoeControl* container = top->ComponentControl(0);
        if (container->CountComponentControls() < 2) return;
        CEikListBox* listbox = (CEikListBox*)container->ComponentControl(0);
        CAknSearchField* field = (CAknSearchField*)container->ComponentControl(1);

        ReadList(listbox, &app_state_);

        HBufC* text = HBufC::NewLC(field->TextLength());
        TPtr16 textp = text->Des();
        field->GetSearchText(textp);
        app_state_.SetSearchFieldText(*text);
        CleanupStack::PopAndDestroy(text);
    } else if (view == 4) {
        // Details (read-only) view
        CCoeControl* top = control_tree_.TopFocusedControl();
        if (top->CountComponentControls() == 0) return;
        CCoeControl* container = top->ComponentControl(0);
        if (container->CountComponentControls() < 1) return;
        CEikListBox* listbox = (CEikListBox*)container->ComponentControl(0);

        ReadList(listbox, &app_state_);
    }
}