示例#1
0
文件: gui.cpp 项目: darwin/pacwars2
bool GUI_Help1Menu::eventButtonClick(int id, PG_Widget* widget)
{
  switch (id) {
  case 1:
    Return();
    break;
  case 3:
    Return();
    GUI_OpenMenu(GUI_HELP2);
    break;
  }
  return true;
}
示例#2
0
unsigned int GUI_CB_MyPictures( GUIMenu_t *lpGUIMenu, unsigned int nGUIMsg,
								unsigned int nCtrlParam, unsigned int nOther )
{
	GUIThumbItem_t		*pItem;
	const fileInfo_t	*pFile;
	unsigned int		nRet, nOffset;
	char				szNewPath[MAX_PATH + 1], *pStr;

	switch( nGUIMsg )
	{
		case GUI_MSG_OPEN:
			pErrImage = GUI_MenuGetImage( lpGUIMenu,
				((GUICtrl_Image_t*)GUI_ControlByID(ID_IMAGE_ERROR)->pCtrl)->nTexture );

			pDirImage = GUI_MenuGetImage( lpGUIMenu,
				((GUICtrl_Image_t*)GUI_ControlByID(ID_IMAGE_DIR)->pCtrl)->nTexture );

			if( !szCurDir[0] )
				MyPictures_Init();

			break;

		case GUI_MSG_CLOSE:
			GUI_Ctrl_ThumbnailPanel_VramClean( GUI_ControlByID(ID_THUMBNAIL_PANEL) );
			break;

		case GUI_MSG_CONTROL:
			switch( LOWORD(nCtrlParam) )
			{
				case ID_CACHE_IMAGES:
					GUI_OpenDialog( GUI_MENU_DLGTHUMB, lpGUIMenu, 0 );
					break;

				case ID_SORT_BY_NAME:
					if( nNumFiles )
					{
						qsort( fileInfo, nNumFiles, sizeof(fileInfo_t), SortPanelByName );
						RefreshPanel();
					}
					break;

				case ID_SORT_BY_SIZE:
					if( nNumFiles )
					{
						qsort( fileInfo, nNumFiles, sizeof(fileInfo_t), SortPanelBySize );
						RefreshPanel();
					}
					break;

				case ID_SORT_BY_TYPE:
					break;

				case ID_GO_BACK:
					GUI_OpenMenu( GUI_MENU_MAIN );
					break;

				case ID_THUMBNAIL_PANEL:
					switch( HIWORD(nCtrlParam) )
					{
						case GUI_NOT_NEED_INFO:
							pItem = (GUIThumbItem_t*) nOther;
							pFile = (fileInfo_t*) pItem->pUser;

							pItem->pStr	= pFile->name;

							// device list
							if( !szCurDir[0] )
							{
								if( !strncmp( pFile->name, "pfs", 3 ) )
								{
									pItem->pStr = HDD_GetPartition(pFile->name);
								}
								else if( !strncmp( pFile->name, "smb", 3 ) )
								{
									pItem->pStr = SMB_GetShareNameByPath(pFile->name);
								}
							}

							nRet = CreateThumbnail( pFile, szCurDir, &pItem->pTexture );
							if( nRet == 0 )
								pItem->pTexture = pErrImage->gsTexture;
							break;

						case GUI_NOT_REMOVE:
							pItem = (GUIThumbItem_t*) nOther;

							if( pItem->pTexture )
							{
								if( pItem->pTexture && pItem->pTexture != pErrImage->gsTexture &&
									pItem->pTexture != pDirImage->gsTexture )
									gsLib_texture_free( pItem->pTexture );
							}

							pItem->pTexture = NULL;
							pItem->pStr		= NULL;
							break;

						case GUI_NOT_THUMB:
							pFile = (fileInfo_t*) ((GUIThumbItem_t*)nOther)->pUser;
							pItem = (GUIThumbItem_t*) nOther;

							if( pFile->flags & FLAG_DIRECTORY )
							{
								if( !strcmp( pFile->name, ".." ) )
								{
									if( BrowsingRoot(szCurDir) )
									{
										MyPictures_Init();
										GUI_Render();
										return 0;
									}
									else
									{
										nOffset = strlen(szCurDir) - 1;
										strncpy( szNewPath, szCurDir, nOffset );
										szNewPath[ nOffset ] = 0;

										if( !(pStr = strrchr( szNewPath, '/' )) )
											break;

										nOffset = pStr - szNewPath + 1;
										strncpy( szNewPath, szCurDir, nOffset );
										szNewPath[ nOffset ] = 0;
									}
								}
								else
								{
									snprintf( szNewPath, MAX_PATH, "%s%s", szCurDir,
											  pFile->name );

									if( szNewPath[ strlen(szNewPath) - 1 ] != '/' )
										strncat( szNewPath, "/", MAX_PATH );
								}

								SetBrowseDir( szNewPath );
							}
							else
							{
								// clicked an image thumbnail
								if( pItem->pTexture != pErrImage->gsTexture &&
									pItem->pTexture != pDirImage->gsTexture )
								{
									snprintf( szNewPath, sizeof(szNewPath), "%s%s",
											  szCurDir, pFile->name );

									GUI_OpenViewMenu( szNewPath );
								}
							}
							break;
					}
					break;
			}
			break;
	}

	return 0;
}
示例#3
0
unsigned int GUI_CB_Main( GUIMenu_t *lpGUIMenu, unsigned int nGUIMsg, unsigned int nCtrlParam,
						  unsigned int nOther )
{
	static int bInit = 0;

	switch( nGUIMsg )
	{
		case GUI_MSG_OPEN:
			if( !bInit )
			{
				// myPS2 partition couldn't be found, show dialog
				if( HDD_Available() == HDD_AVAIL_NO_PART )
					GUI_OpenDialog( GUI_MENU_PARTITION1, lpGUIMenu, DLG_PARTITION_1 );

				bInit = 1;
			}
			break;

		case GUI_MSG_CONTROL:
			switch( LOWORD(nCtrlParam) )
			{
				case ID_MYPICTURES:
					GUI_OpenMenu( GUI_MENU_MYPICTURES );
					break;

				case ID_MYPROGRAMS:
					GUI_OpenMenu( GUI_MENU_MYPROGRAMS );
					break;

				case ID_MYFILES:
					GUI_OpenMenu( GUI_MENU_MYFILES );
					break;

				case ID_MYMUSIC:
					GUI_OpenMenu( GUI_MENU_MYMUSIC );
					break;

				case ID_SETTINGS:
					GUI_OpenMenu( GUI_MENU_SETTINGS );
					break;

				case ID_EXIT:
					GUI_DlgYesNo( GUI_GetLangStr(LANG_STR_TURN_OFF_PS2),
								  GUI_GetLangStr(LANG_STR_SHUTDOWN),
								  DLG_CONFIRM_EXIT );
					break;
			}
			break;

		case GUI_MSG_DIALOG:
			switch( LOWORD(nCtrlParam) )
			{
				case DLG_CONFIRM_EXIT:
					if( HIWORD(nCtrlParam) == DLG_RET_YES )
						hddPowerOff();
					break;

				case DLG_PARTITION_1:
					if( HIWORD(nCtrlParam) == DLG_RET_YES )
						GUI_OpenDialog( GUI_MENU_PARTITION2, lpGUIMenu, DLG_PARTITION_2 );
					break;
					
				case DLG_PARTITION_2:
					if( HIWORD(nCtrlParam) == DLG_RET_CREATE )
					{
						switch( nOther )
						{
							case DLG_ERR_CREATE:
								GUI_DlgMsgBox( GUI_GetLangStr(LANG_STR_PART_ERR_CREATE),
											   GUI_GetLangStr(LANG_STR_ERROR), 0 );
								break;

							case DLG_ERR_MOUNT:
								GUI_DlgMsgBox( GUI_GetLangStr(LANG_STR_PART_ERR_MOUNT),
											   GUI_GetLangStr(LANG_STR_ERROR), 0 );
								break;

							case DLG_ERR_NOERROR:
							default:
								GUI_DlgMsgBox( GUI_GetLangStr(LANG_STR_PART_CREATED),
											   GUI_GetLangStr(LANG_STR_OK), 0 );
								break;
						}
					}
					break;
			}
			break;
	}

	return 0;
}