📄 menuwindow.java
字号:
arrow = new Sprite(src, 5/*@ARROW_WIDTH*/, 7/*@ARROW_HEIGHT*/);
arrow.setFrame(1);
arrow.setAlignment( Drawable.ALIGNV_MIDDLE );
src = null;
//#ifdef _IS_NokiaS60
// src = TorinoCanvas.loadPackedPalPixels( RESFILE_COUNTRY, RES_FLAGSLARGE,
// RESFILE_COUNTRY, RES_FLAGSLARGE+1 );
// m_flagSprite = new Sprite( src, src[0], 36/*@FLAG_HEIGHT_LARGE*/ );
//#else
//#ifdef _NO_LARGE_FLAGS
src = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, 0/*@RES_FLAGS*/ );
m_flagSprite = new Sprite( src, src.getWidth(), 18/*@FLAG_HEIGHT*/ );
//#else
// src = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, RES_FLAGSLARGE );
// m_flagSprite = new Sprite( src, src.getWidth(), 36/*@FLAG_HEIGHT_LARGE*/ );
//#endif
//#endif
m_flagSprite.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_MIDDLE );
m_flagSprite.setFrame( m_data.aiCountry[m_data.iCurrentPlayer] );
flagContainer.addToFront( m_flagSprite );
flagContainer.sizeToChildren();
shelf.addToBack( flagContainer );
shelf.addToBack(arrow);
shelf.sizeToChildren();
m_countryLabel = createMenuLabel( LABEL_HIGHLIGHT );
m_countryLabel.setAlignment( Drawable.ALIGNH_CENTER );
flagStack.addToBack( m_countryLabel );
m_countryLabel.setText( STRING_NATION0 + m_data.aiCountry[m_data.iCurrentPlayer] );
flagStack.sizeToChildren();
Label label = createMenuLabel( LABEL_NORMAL );
label.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_BOTTOM );
m_menuContainer.addToFront( label );
//#ifndef _NO_ONLINE
//#ifdef _IS_SPRINT
// label.setText( m_canvas.m_sGLName );
//#else
// if (m_data.bOnline)
// {
// label.setText( m_data.sOnlineName );
// }
// else
// {
// label.setText( TorinoCanvas.getString( STRING_PLAYER ) + " " +
// Integer.toString( m_data.iCurrentPlayer+1 ) );
// }
//#endif
//#else
label.setText( TorinoCanvas.getString( STRING_PLAYER ) + " " +
Integer.toString( m_data.iCurrentPlayer+1 ) );
//#endif
m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
}
private void initMenu_SelectEvent()
{
m_menuContainer.m_iContainerType = CONTAINER_STACK;
m_menuContainer.setPadding((-3)/*@FONT_PADDING*/);
for ( int i=0; i<3/*@EVENT_COUNT*/; i++ )
{
appendMenuItem( TorinoCanvas.getString( STRING_EVENT0+i ));
}
//m_data.iGameMode = GAMEMODE_PRACTICE;
m_data.bInitialized = false;
m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
}
//#ifdef _MULTI_LANG
// private void initMenu_SelectLanguage()
// {
// m_menuContainer.m_iContainerType = CONTAINER_STACK;
// m_menuContainer.setPadding((-3)/*@FONT_PADDING*/);
//
// for (int i = 0; i < 1/*@LANG_COUNT*/; i++)
// {
// appendMenuItem( TorinoCanvas.getString( STRING_LANG0+i ));
// }
//
// if (m_data.bLanguageSet)
// {
// m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
// }
// else
// m_canvas.setKeyLabels( STRING_OK, (-1)/*@NULL_STRING*/ );
// }
//#endif
private void initMenu_AboutInstructions() throws IOException
{
m_menuContainer.m_iContainerType = CONTAINER_NORMAL;
if ( m_data.bEventLoading )
{
m_keyPrompt = createMenuLabel( LABEL_HIGHLIGHT );
m_keyPrompt.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_BOTTOM );
m_menuContainer.addToFront(m_keyPrompt);
m_keyPrompt.setText( m_canvas.getString(STRING_PRESS_ANY_KEY) );
if (m_keyPrompt.m_iWidth > m_menuContainer.m_iWidth-2)
m_keyPrompt.setDimensions( m_menuContainer.m_iWidth-2, m_keyPrompt.m_iHeight );
}
m_textControl = new TextControl( m_canvas );
m_menuContainer.addToBack( m_textControl );
if ( m_keyPrompt != null )
m_textControl.setDimensions( m_menuContainer.m_iWidth, m_keyPrompt.m_iY - m_textControl.m_iY );
else
m_textControl.setDimensions( m_menuContainer.m_iWidth, m_menuContainer.m_iHeight - m_textControl.m_iY );
String s;
if (m_iMenuID == MENU_ABOUT)
{
s = TorinoCanvas.getString(STRING_GAME_TITLE) + ", " +
TorinoCanvas.getString(STRING_VERSION) + " " +
// this code is too big - have to hardcode
//m_canvas.m_midlet.getAppProperty( "MIDlet-Version" ) +
"1.0.6"/*@_GAME_VERSION*/ +
TorinoCanvas.getString(STRING_COPYRIGHT_TEXT) +
TorinoCanvas.getString(STRING_CREDITS);
}
else if ( m_data.iGameMode == 0/*@GAMEMODE_NONE*/ )
s = TorinoCanvas.getString( STRING_HELPTEXT_MAIN );
else
s = TorinoCanvas.getString( STRING_HELPTEXT_EVENT0 + m_data.iEvent );
m_textControl.init( s,
TextControl.FULL_SCROLL, 0, 0x717AA7/*@COLOR_MENU_TEXT*/ );
if ( m_data.bEventLoading )
{
m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
return;
}
m_canvas.setKeyLabels( (-1)/*@NULL_STRING*/, STRING_BACK );
}
//#ifndef _IS_SPRINT
private void initMenu_EnterName()
{
m_menuContainer.m_iContainerType = CONTAINER_NORMAL;
//#ifndef _NO_ONLINE
// boolean bOnline = (m_data.iGameMode == 0/*@GAMEMODE_NONE*/
// || (m_data.iGameMode == 2/*@GAMEMODE_COMPETITION*/ && m_data.bOnline)
//#ifndef _NO_GHOST
// || (m_data.iGameMode == 3/*@GAMEMODE_CHALLENGE*/ && m_data.bOnline)
//#endif
// );
// if (bOnline)
// {
// m_sName = new String();
// }
// else
// {
//#endif
m_sName = new String( m_data.asName[m_data.iCurrentPlayer] );
//#ifndef _NO_ONLINE
// }
//#endif
m_nameLabel = createMenuLabel( LABEL_NORMAL );
m_nameLabel.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_MIDDLE );
m_nameLabel.setText( m_sName );
m_menuContainer.addToFront(m_nameLabel);
m_statusLabel = createMenuLabel( LABEL_NORMAL );
m_statusLabel.setAlignment( Drawable.ALIGNH_CENTER | Drawable.ALIGNV_BOTTOM );
m_statusLabel.m_iStyle |= Label.STYLE_SCROLLING;
m_statusLabel.setDimensions( m_iWidth-4, m_statusLabel.m_iHeight );
m_menuContainer.addToFront(m_statusLabel);
m_iFlashTime = (-1)/*@TIME_INVALID*/;
m_iLastKeyTime = (-1)/*@TIME_INVALID*/;
m_iLastTextKeyPressed = (-1)/*@KEY_INVALID*/;
m_iCursorOffset = 0;
m_iCursorIndex = 0;
m_iKeyCount = 0;
m_canvas.setKeyLabels( STRING_OK, STRING_BACK );
//#ifndef _NO_ONLINE
//#ifndef _NO_GHOST
// if( m_data.iGameMode == 3/*@GAMEMODE_CHALLENGE*/ )
// {
// m_canvas.createOnlineService();
// }
//#endif
//
// if ( !bOnline
//#ifndef _NO_GHOST
// || m_data.bGhostOnlineNameSearch
//#endif
// )
// {
//#endif
//#ifndef _NO_GHOST
// if ( m_data.iGameMode != 3/*@GAMEMODE_CHALLENGE*/ || !m_data.bGhostOnlineNameSearch )
//#endif
m_statusLabel.setTextNoResize( TorinoCanvas.getString( STRING_PLAYER ) + " " +
Integer.toString( m_data.iCurrentPlayer+1 ) );
//#ifndef _NO_ONLINE
//#ifndef _NO_GHOST
// else
// m_scoreLabel = createMenuLabel( LABEL_NORMAL );
//#endif
// m_iState = STATE_IDLE;
// }
// else
// {
// m_canvas.createOnlineService();
// getOnlineName();
// }
//#endif
}
//#endif
//#ifndef _NO_ONLINE
// private void startJCIThread()
// {
// m_bOnlineWait = true;
// m_jciThread = new Thread(this);
// m_jciThread.start();
// }
//
//#ifndef _IS_SPRINT
// private void getOnlineName()
// {
// m_iState = STATE_ENTERNAME_GETNAME;
// m_bCursorFlash = false;
// m_canvas.m_bNeedPaint = true;
// m_bOnlineWait = true;
// m_bOnlineError = false;
//
// m_statusLabel.setTextNoResize( STRING_GETTING_NAME );
// // create a thread to get the nickname
// startJCIThread();
// }
//
// private void setOnlineName()
// {
// m_iState = STATE_ENTERNAME_SETNAME;
// m_bCursorFlash = false;
// m_statusLabel.m_bVisible = true;
// m_statusLabel.setTextNoResize( STRING_SETTING_NAME );
// m_canvas.m_bNeedPaint = true;
//
// // create a thread to set the nickname
// startJCIThread();
// }
//
// private void getOnlineScore()
// {
// m_iState = STATE_GETTINGRANK;
// m_statusLabel.setText( STRING_GETTING_SCORE );
// //int iWidth = _min( m_canvas.getWidth()-4, m_statusLabel.getWidth() );
// //m_statusLabel->setDimensions( iWidth, m_pStatusLabel->getHeight() );
// m_canvas.m_bNeedPaint = true;
//
// // create a thread to get the score
// startJCIThread();
// }
//#endif
//#endif
private int m_aiRanks[] = new int[4/*@MAX_TOTAL_PLAYERS*/];
private void initMenu_Standings() throws IOException
{
m_canvas.setKeyLabels( STRING_OK, STRING_MENU );
m_menuContainer.m_iContainerType = CONTAINER_NORMAL;
//#ifndef _NO_SOUND
// intermission music
//#if defined(_IS_NokiaS60) && !defined(_MMAPI)
// m_canvas.loadSound( 1/*@SOUND_INTERMISSION*/, false );
//#else
m_canvas.loadSound( 1/*@SOUND_INTERMISSION*/ );
//#endif
if (m_canvas.m_iCurrentSoundID != 1/*@SOUND_INTERMISSION*/ ||
m_canvas.m_iSoundState != TorinoCanvas.SOUNDSTATE_PLAYING)
{
m_canvas.playSound( 1/*@SOUND_INTERMISSION*/, (-1)/*@LOOP_INFINITE*/);
}
//#endif
Window stack = new Window(m_canvas);
stack.m_iContainerType = CONTAINER_STACK;
m_menuContainer.addToFront(stack);
stack.setAlignment( Drawable.ALIGNH_CENTER );
stack.setPadding((-3)/*@FONT_PADDING*/);
//show rank and score for each player
for (int i=0; i<m_data.iMaxPlayers; i++)
m_aiRanks[i] = i;
// sort the scores
int iNumResults;
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
// if (m_data.bOnline)
// iNumResults = 1;
// else
// {
//#endif
//#endif
iNumResults = m_data.iMaxPlayers;
for (int i=0; i<iNumResults-1; i++)
{
for (int j=i+1; j<iNumResults; j++)
{
if ( m_data.aiTotalScore[m_aiRanks[i]] <
m_data.aiTotalScore[m_aiRanks[j]] )
{
{m_aiRanks[i]^=m_aiRanks[j];m_aiRanks[j]^=m_aiRanks[i];m_aiRanks[i]^=m_aiRanks[j];} ;
}
}
}
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
// }
//#endif
//#endif
Label label;
//#ifdef _IS_NokiaS60
//#ifdef _KEEP_SMALL_FLAGS_LOADED
// if (m_smallFlagsImage == null)
// m_smallFlagsImage = TorinoCanvas.loadPackedPalPixels( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/,
// RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/+1 );
//#else
// short[] m_smallFlagsImage = TorinoCanvas.loadPackedPalPixels( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/,
// RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/+1 );
//#endif
//#else
//#ifdef _KEEP_SMALL_FLAGS_LOADED
// if (m_smallFlagsImage == null)
// m_smallFlagsImage = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/ );
//#else
Image m_smallFlagsImage = TorinoCanvas.loadPackedImage( RESFILE_COUNTRY, 1/*@RES_FLAGSSMALL*/ );
//#endif
//#endif
for (int i=0; i<iNumResults; i++)
{
Window line = new Window(m_canvas);
line.setDimensions(116/*@LIST_WIDTH*/,0);
line.setAlignment( Drawable.ALIGNH_CENTER );
stack.addToBack( line );
Window shelf = new Window(m_canvas);
shelf.m_iContainerType = CONTAINER_SHELF;
shelf.setAlignment( Drawable.ALIGNH_LEFT | Drawable.ALIGNV_MIDDLE );
shelf.setPadding(2);
line.addToBack(shelf);
//#ifdef _IS_NokiaS60
// Sprite flag = new Sprite( m_smallFlagsImage, m_smallFlagsImage[0], 9/*@FLAG_HEIGHT_SMALL*/ );
//#else
Sprite flag = new Sprite( m_smallFlagsImage, m_smallFlagsImage.getWidth(), 9/*@FLAG_HEIGHT_SMALL*/ );
//#endif
flag.setAlignment( Drawable.ALIGNV_MIDDLE );
shelf.addToBack(flag);
flag.setFrame( m_data.aiCountry[m_aiRanks[i]] );
// create labels for initials and score
if (m_aiRanks[i] < m_data.iNumPlayers )
label = createMenuLabel( LABEL_HIGHLIGHT );
else
label = createMenuLabel( LABEL_NORMAL );
label.setAlignment( Drawable.ALIGNV_MIDDLE );
shelf.addToBack(label);
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
// if (m_data.bOnline)
// {
// label.setText( m_data.sOnlineName );
// }
// else
//#endif
//#endif
label.setText( m_data.asName[m_aiRanks[i]] );
Label scoreLabel;
if (m_aiRanks[i] < m_data.iNumPlayers )
scoreLabel = createMenuLabel( LABEL_HIGHLIGHT );
else
scoreLabel = createMenuLabel( LABEL_NORMAL );
scoreLabel.setAlignment( Drawable.ALIGNH_RIGHT | Drawable.ALIGNV_MIDDLE );
line.addToBack( scoreLabel );
scoreLabel.setText( Integer.toString(m_data.aiTotalScore[m_aiRanks[i]]) );
line.sizeToChildren();
//#ifdef _LIMIT_NAME_DISPLAY
// if (label.m_iWidth > 116/*@LIST_WIDTH*/ - scoreLabel.m_iWidth - 4)
// {
// label.m_iJustify = Label.JUSTIFY_LEFT;
// label.setDimensions( 116/*@LIST_WIDTH*/ - scoreLabel.m_iWidth - 4, label.m_iHeight );
// }
//#endif
}
stack.sizeToChildren();
if (m_data.iEvent < 3/*@EVENT_COMPETITION*/
//#ifndef _NO_MEDAL_CEREMONY
// || (
//#ifndef _NO_ONLINE
//#ifndef _IS_SPRINT
// !m_data.bOnline &&
//#endif
//#endif
// (m_aiRanks[3] != 0 || m_data.iNumPlayers>1))
//#endif
)
{
m_eventStack = n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -