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

📄 shoppinglistappui.cpp

📁 为symbian7.0c操作系统series60系列开发的购物软件
💻 CPP
字号:
/* Copyright (c) 2003, Nokia. All rights reserved */

#include <avkon.hrh>
#include <aknnotewrappers.h>

#include <AknQueryDialog.h>

#include <ShoppingList.rsg>
#include "ShoppingItem.h"
#include "ShoppingList.pan"
#include "ShoppingListAppUi.h"
#include "ShoppingListAppView.h"
#include "ShoppingList.hrh"
#include "ShoppingListDocument.h"

const TInt KTextBufferLength = 40;


void CShoppingListAppUi::ConstructL()
    {
    BaseConstructL();

    iAppView = CShoppingListAppView::NewL(ClientRect(), GetDocument());
	iAppView->SetMopParent(this);
    AddToStackL(iAppView);
    }

CShoppingListAppUi::CShoppingListAppUi()                              
    {
	// No implementation required
    }

CShoppingListAppUi::~CShoppingListAppUi()
    {
    if (iAppView)
        {
        iEikonEnv->RemoveFromStack(iAppView);
        delete iAppView;
        iAppView = NULL;
        }
    }

void CShoppingListAppUi::HandleCommandL(TInt aCommand)
    {
	TInt selectedItemIndex = 0;
	CShoppingItem* item;

    switch(aCommand)
        {
        case EEikCmdExit:
        case EAknSoftkeyExit:
            TRAPD( Err, SaveL() );  // Ignore any errors
			Exit();
            break;

		case EShoppingListNewItem:
				{
				if( GetDocument()->ItemCount() > 0 )
					{
					selectedItemIndex = iAppView->CurrentItemIndex();
					}
				item = CShoppingItem::NewLC();
				_LIT(KNewitem,"New item");
				item->SetNameL(KNewitem().AllocL());
				GetDocument()->InsertItemL( item, selectedItemIndex );
				CleanupStack::Pop(item);
				HandleModelChangeL();

				TBuf<KTextBufferLength> name;
				CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL(name);
				if (dlg->ExecuteLD(R_DIALOG_TEXT_ITEM_NAME))
					{
					GetDocument()->Item(iAppView->CurrentItemIndex())->SetNameL(name.AllocL());
					}
				HandleModelChangeL();
				}
			break;

        case EShoppingListMarkUnmark:
			if( GetDocument()->ItemCount() > 0 )
				{
				item = GetDocument()->Item( iAppView->CurrentItemIndex() );
				item->SetFlags( item->Flags() ^ CShoppingItem::EMarked );
				HandleModelChangeL();
				}
			break;

        case EShoppingListRemove:
			if( GetDocument()->ItemCount() > 0 )
				{
				selectedItemIndex = iAppView->CurrentItemIndex();
				GetDocument()->RemoveItem( selectedItemIndex );
				TInt count = GetDocument()->ItemCount();
				if( count > 0 && iAppView->CurrentItemIndex() == count )
					{
					iAppView->SetCurrentItemIndex(iAppView->CurrentItemIndex() - 1 );
					}
				HandleModelChangeL();
				}
			break;

        default:
            Panic(EShoppingListUi);
            break;
        }
    }


CShoppingListDocument* CShoppingListAppUi::GetDocument()
	{
	return static_cast<CShoppingListDocument*>(Document());
	}


void CShoppingListAppUi::HandleModelChangeL()
    {
    iAppView->UpdateL();
	iAppView->DrawNow();
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -