📄 gouyuappui.cpp
字号:
/* Copyright (c) 2003, Nokia. All rights reserved */
#include <avkon.hrh>
#include <aknnotewrappers.h>
#include "GouYu.pan"
#include "GouYuAppUi.h"
#include "GouYuAppView.h"
#include <GouYu.rsg>
#include "GouYu.hrh"
#include "GouYuEngine.h"
#include "BluetoothEngine.h"
#include <avkon.hrh>
#include <aknnotewrappers.h>
// System includes
#include <eikmenup.h>
#include <stringloader.h> // StringLoader
// Constants
void CGouYuAppUi::ConstructL()
{
BaseConstructL();
iEngine = CBluetoothEngine::NewL(this);
iAppView = CGouYuAppView::NewL(ClientRect());
iAppView->SetMopParent(this);
AddToStackL(iAppView);
// state = EFalse;
}
CGouYuAppUi::CGouYuAppUi()
{
}
CGouYuAppUi::~CGouYuAppUi()
{
if (iAppView)
{
iEikonEnv->RemoveFromStack(iAppView);
delete iAppView;
iAppView = NULL;
delete iEngine;
iEngine=NULL;
}
}
void CGouYuAppUi::DynInitMenuPaneL(TInt aResourceId,
CEikMenuPane* aMenuPane)
{
if (aResourceId == R_GOUYU_MENU)
{
if (iEngine->iIsSlave)
{
// slave mode
aMenuPane->SetItemDimmed(EHWCmdDiscoverDevices, ETrue);
aMenuPane->SetItemDimmed(EHWCmdDiscoverServices, ETrue);
aMenuPane->SetItemDimmed(EHWCmdConnectDevices, ETrue);
aMenuPane->SetItemDimmed(EHWCmdShowConnectedDevices, ETrue);
aMenuPane->SetItemDimmed(EHWCmdStartSlave, ETrue);
if ( iEngine->iListener->IsConnected() )
{
aMenuPane->SetItemDimmed(EHWCmdSendMessage, EFalse);
aMenuPane->SetItemDimmed(EHWCmdNewRound, EFalse);
}
else
{
aMenuPane->SetItemDimmed(EHWCmdSendMessage, ETrue);
aMenuPane->SetItemDimmed(EHWCmdNewRound, ETrue);
}
}
else
{
// master mode
aMenuPane->SetItemDimmed(EHWCmdDiscoverDevices, EFalse);
aMenuPane->SetItemDimmed(EHWCmdDiscoverServices, EFalse);
aMenuPane->SetItemDimmed(EHWCmdConnectDevices, EFalse);
aMenuPane->SetItemDimmed(EHWCmdShowConnectedDevices, EFalse);
if ( iEngine->iDeviceDiscoverer->HasDevices() )
{
// we have found devices, show discover services item
aMenuPane->SetItemDimmed(EHWCmdDiscoverServices, EFalse);
// disable slave option, entered master mode
aMenuPane->SetItemDimmed(EHWCmdStartSlave, ETrue);
}
else
{
// disconnected
aMenuPane->SetItemDimmed(EHWCmdDiscoverServices, ETrue);
}
if ( iEngine->iServiceDiscoverer->HasServices() )
{
// we have found services, show connect item
aMenuPane->SetItemDimmed(EHWCmdConnectDevices, EFalse);
}
else
{
// no services
aMenuPane->SetItemDimmed(EHWCmdConnectDevices, ETrue);
}
if ( iEngine->HasConnections() )
{
// we are connected, show send message item
aMenuPane->SetItemDimmed(EHWCmdSendMessage, EFalse);
aMenuPane->SetItemDimmed(EHWCmdNewRound, EFalse);
aMenuPane->SetItemDimmed(EHWCmdShowConnectedDevices, EFalse);
}
else
{
// disconnected
aMenuPane->SetItemDimmed(EHWCmdSendMessage, ETrue);
aMenuPane->SetItemDimmed(EHWCmdNewRound, ETrue);
aMenuPane->SetItemDimmed(EHWCmdShowConnectedDevices, ETrue);
}
}
}
}
void CGouYuAppUi::HandleCommandL(TInt aCommand)
{
switch(aCommand)
{
case EEikCmdExit:
case EAknSoftkeyExit:
Exit();
break;
case EHWCmdStartSlave:
{
if(!iEngine->iIsSlave)
iEngine->StartSlaveL();
break;
}
case EHWCmdDiscoverDevices:
{
if(!iEngine->iIsSlave)
iEngine->DiscoverDevicesL();
break;
}
case EHWCmdDiscoverServices:
{
if(!iEngine->iIsSlave)
iEngine->DiscoverServicesL();
break;
}
case EHWCmdConnectDevices:
{
if(!iEngine->iIsSlave)
iEngine->ConnectDevicesL();
break;
}
case EHWCmdShowConnectedDevices:
{
if(!iEngine->iIsSlave)
iEngine->ShowConnectedDevicesL();
break;
}
case EHWCmdSendMessage:
{
iEngine->SendMessage();
break;
}
case EHWCmdNewRound:
{
iEngine->num_temp = 0;
// iAppView->iGameStart=1;
iAppView->NewRound();
if(iAppView->iAppEngine->iPlayerNum == 0)
{
iEngine->MasterSendMessage(1);
iEngine->num_temp++;
}
else if(iAppView->iAppEngine->iPlayerNum == 1)
{
iEngine->SlaveSendMessage(1);
}
break;
}
default:
Panic(EGouYuUi);
break;
}
}
TKeyResponse CGouYuAppUi::HandleKeyEventL(
const TKeyEvent& aKeyEvent,TEventCode aType)
{
if(aType == EEventKey)
{
switch(aKeyEvent.iCode)
{
case EKeyLeftArrow:
iAppView->MoveLeft();
break;
case EKeyRightArrow:
iAppView->MoveRight();
break;
case EKeyUpArrow:
// iAppView->iclear = 1;
if(iAppView->isfish == 1 )
{
iAppView->is_f = 1 ;
// iAppView->ct1 = 1 ;
}
iAppView->SelectCard();
// iAppView->is_f_s = 0 ;
// iAppView->is_f_s = 1;
// iAppView->iclear = 0;
iAppView->ct1 = 1 ;
break;
case EKeyDownArrow:
iAppView->isfish = 0 ;
iAppView->CancelSelectCards();
iAppView->ct1 = 0 ;
iAppView->ctr_2 = 0 ;
break;
case EKeyOK:
if(iAppView->iAppEngine->activeplayer == iAppView->iAppEngine->iPlayerNum)
{
if(iAppView->isfish==1 && iAppView->is_f ==1)
{
iAppView->Fishing();
iAppView->isfish = 0;
iAppView->ctr_2 = 0 ;
iAppView->is_f = 0 ;
iAppView->ct1 = 0 ;
}
if(iAppView->iAppEngine->iPos >= 54)
{
if(iAppView->iAppEngine->iPlayerNum==0)
{
iEngine->MasterSendMessage(2);
}
else
{
iEngine->SlaveSendMessage( 2 );
}
}
}
break;
case '1':
if(iAppView->iAppEngine->activeplayer == iAppView->iAppEngine->iPlayerNum /*&& iAppView->iAppEngine->ctrl_1 !=0 */)
{
if(iAppView->ct1 != 0 && iAppView->iAppEngine->isok != 1)
{
iAppView->isfish = 1 ;
iAppView->ctr_2 = 1 ;
iAppView->Dofish();
iAppView->ct1 = 0 ;
}
}
break;
case '2':
if(iAppView->iAppEngine->activeplayer == iAppView->iAppEngine->iPlayerNum)
{
if(iAppView->ctr_2 !=1)
{
if(iAppView->iAppEngine->iPlayerNum==0)
{
if(iEngine->num_temp<3)
{
iEngine->MasterSendMessage(1);
iEngine->num_temp++;
}
}
iAppView->Giveup();
if(iAppView->iAppEngine->iPlayerNum==0)
{
iEngine->MasterSendMessage(2);
}
else
{
iEngine->SlaveSendMessage( 2 );
}
}
}
break;
/* case '8':
iAppView->flp1 = 1;
iAppView->DrawPlayer1();
break;
case '9':
iAppView->flp2 = 1 ;
iAppView->DrawPlayer2();
break;*/
default:
break;
}
return EKeyWasConsumed;
}
return EKeyWasNotConsumed;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -