2009-07-28 21:32:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Copyright (C) 2003 Dolphin Project.
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// This program is free software: you can redistribute it and/or modify
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// it under the terms of the GNU General Public License as published by
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// the Free Software Foundation, version 2.0.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// This program is distributed in the hope that it will be useful,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// GNU General Public License 2.0 for more details.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// A copy of the GPL 2.0 should have been included with the program.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// If not, see http://www.gnu.org/licenses/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Official SVN repository and contact information can be found at
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// http://code.google.com/p/dolphin-emu/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "MemcardManager.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-12 07:14:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  "Common.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  "wx/mstream.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-01 07:15:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-23 18:08:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define ARROWS slot ? _T("") : ARROW[slot], slot ? ARROW[slot] : _T("") 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								const  u8  hdr [ ]  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x42 , 0x4D , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x38 , 0x30 , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x00 , 0x00 , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x36 , 0x00 , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x28 , 0x00 , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x20 , 0x00 , 0x00 , 0x00 ,  //W
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x20 , 0x00 , 0x00 , 0x00 ,  //H
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x01 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x20 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x00 , 0x00 , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x02 , 0x30 , 0x00 , 0x00 ,  //data size
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x12 , 0x0B , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x12 , 0x0B , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x00 , 0x00 , 0x00 , 0x00 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								0x00 , 0x00 , 0x00 , 0x00 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								wxBitmap  wxBitmapFromMemoryRGBA ( const  unsigned  char *  data ,  int  width ,  int  height ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  stride  =  ( 4 * width ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  bytes  =  ( stride * height )  +  sizeof ( hdr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									bytes  =  ( bytes + 3 ) & ( ~ 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									u8  * pdata  =  new  u8 [ bytes ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memset ( pdata , 0 , bytes ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memcpy ( pdata , hdr , sizeof ( hdr ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									u8  * pixelData  =  pdata  +  sizeof ( hdr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( int  y = 0 ; y < height ; y + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										memcpy ( pixelData + y * stride , data + ( height - y - 1 ) * stride , stride ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									* ( int * ) ( pdata + 18 )  =  width ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									* ( int * ) ( pdata + 22 )  =  height ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									* ( u32 * ) ( pdata + 34 )  =  bytes - sizeof ( hdr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxMemoryInputStream  is ( pdata ,  bytes ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBitmap  map ( wxImage ( is ,  wxBITMAP_TYPE_BMP ,  - 1 ) ,  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									delete  [ ]  pdata ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  map ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								BEGIN_EVENT_TABLE ( CMemcardManager ,  wxDialog ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_CLOSE ( CMemcardManager : : OnClose ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_COPYFROM_A , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_COPYFROM_B , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_DELETE_A , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_DELETE_B , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_SAVEIMPORT_B , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_SAVEEXPORT_B , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_SAVEIMPORT_A , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_SAVEEXPORT_A , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_CONVERTTOGCI , CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_PREVPAGE_A ,  CMemcardManager : : OnPageChange ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_NEXTPAGE_A ,  CMemcardManager : : OnPageChange ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_PREVPAGE_B ,  CMemcardManager : : OnPageChange ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_BUTTON ( ID_NEXTPAGE_B ,  CMemcardManager : : OnPageChange ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_FILEPICKER_CHANGED ( ID_MEMCARDPATH_A , CMemcardManager : : OnPathChange ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_FILEPICKER_CHANGED ( ID_MEMCARDPATH_B , CMemcardManager : : OnPathChange ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-12 07:14:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 18:43:52 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_MENU_RANGE ( ID_MEMCARDPATH_A ,  ID_USEPAGES ,  CMemcardManager : : OnMenuChange ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_MENU_RANGE ( ID_COPYFROM_A ,  ID_CONVERTTOGCI ,  CMemcardManager : : CopyDeleteClick ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-12 07:14:37 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									EVT_MENU_RANGE ( ID_NEXTPAGE_A ,  ID_PREVPAGE_B ,  CMemcardManager : : OnPageChange ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_MENU_RANGE ( COLUMN_BANNER ,  NUMBER_OF_COLUMN ,  CMemcardManager : : OnMenuChange ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								END_EVENT_TABLE ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								BEGIN_EVENT_TABLE ( CMemcardManager : : CMemcardListCtrl ,  wxListCtrl ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_RIGHT_DOWN ( CMemcardManager : : CMemcardListCtrl : : OnRightClick ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								END_EVENT_TABLE ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CMemcardManager : : CMemcardManager ( wxWindow *  parent ,  wxWindowID  id ,  const  wxString &  title ,  const  wxPoint &  position ,  const  wxSize &  size ,  long  style ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									:  wxDialog ( parent ,  id ,  title ,  position ,  size ,  style ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									memoryCard [ SLOT_A ] = NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memoryCard [ SLOT_B ] = NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( ! LoadSettings ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										itemsPerPage  =  16 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										mcmSettings . usePages  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										for  ( int  i  =  0 ;  i  <  NUMBER_OF_COLUMN ;  i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											mcmSettings . column [ i ]  =  ( i  < =  COLUMN_FIRSTBLOCK ) ?  true : false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									maxPages  =  ( 128  /  itemsPerPage )  -  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CreateGUIControls ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CMemcardManager : : ~ CMemcardManager ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( memoryCard [ SLOT_A ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										delete  memoryCard [ SLOT_A ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										memoryCard [ SLOT_A ]  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( memoryCard [ SLOT_B ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										delete  memoryCard [ SLOT_B ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										memoryCard [ SLOT_B ]  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SaveSettings ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bool  CMemcardManager : : LoadSettings ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-02 21:56:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( MemcardManagerIni . Load ( File : : GetUserPath ( F_DOLPHINCONFIG_IDX ) ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										iniMemcardSection  =  MemcardManagerIni . GetOrCreateSection ( " MemcardManager " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " Items per page " ,   & itemsPerPage ,  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " DefaultMemcardA " ,  & ( DefaultMemcard [ SLOT_A ] ) ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " DefaultMemcardB " ,  & ( DefaultMemcard [ SLOT_B ] ) ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " DefaultIOFolder " ,  & DefaultIOPath ,  " /Users/GC " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " Use Pages " ,  & mcmSettings . usePages ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " cBanner " ,  & mcmSettings . column [ COLUMN_BANNER ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " cTitle " ,  & mcmSettings . column [ COLUMN_TITLE ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " cComment " ,  & mcmSettings . column [ COLUMN_COMMENT ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " cIcon " ,  & mcmSettings . column [ COLUMN_ICON ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " cBlocks " ,  & mcmSettings . column [ COLUMN_BLOCKS ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										iniMemcardSection - > Get ( " cFirst Block " ,  & mcmSettings . column [ COLUMN_FIRSTBLOCK ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										mcmSettings . column [ NUMBER_OF_COLUMN ]  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										for ( int  i  =  COLUMN_GAMECODE ;  i  <  NUMBER_OF_COLUMN ;  i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											mcmSettings . column [ i ]  =  mcmSettings . column [ NUMBER_OF_COLUMN ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bool  CMemcardManager : : SaveSettings ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-02 21:56:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									MemcardManagerIni . Load ( File : : GetUserPath ( F_DOLPHINCONFIG_IDX ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									iniMemcardSection  =  MemcardManagerIni . GetOrCreateSection ( " MemcardManager " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " Items per page " ,   itemsPerPage ,  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " DefaultMemcardA " ,  DefaultMemcard [ SLOT_A ] ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " DefaultMemcardB " ,  DefaultMemcard [ SLOT_B ] ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " Use Pages " ,  mcmSettings . usePages ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " cBanner " ,  mcmSettings . column [ COLUMN_BANNER ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " cTitle " ,  mcmSettings . column [ COLUMN_TITLE ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " cComment " ,  mcmSettings . column [ COLUMN_COMMENT ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " cIcon " , 	mcmSettings . column [ COLUMN_ICON ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " cBlocks " ,  mcmSettings . column [ COLUMN_BLOCKS ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									iniMemcardSection - > Set ( " cFirst Block " ,  mcmSettings . column [ COLUMN_FIRSTBLOCK ] ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  MemcardManagerIni . Save ( File : : GetUserPath ( F_DOLPHINCONFIG_IDX ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : CreateGUIControls ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// Create the controls for both memcards
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-23 18:08:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									const  wxChar *  ARROW [ 2 ]  =  { _T ( " <- " ) ,  _T ( " -> " ) } ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_ConvertToGci  =  new  wxButton ( this ,  ID_CONVERTTOGCI ,  _ ( " Convert to GCI " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									for  ( int  slot  =  SLOT_A ;  slot  <  SLOT_B  +  1 ;  slot + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_CopyFrom [ slot ] 	=  new  wxButton ( this ,  ID_COPYFROM_A  +  slot , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxString : : Format ( _ ( " %1$sCopy%1$s " ) ,  ARROW [ slot  ?  0  :  1 ] ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_SaveImport [ slot ] 	=  new  wxButton ( this ,  ID_SAVEIMPORT_A  +  slot , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxString : : Format ( _ ( " %sImport GCI%s " ) ,  ARROWS ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_SaveExport [ slot ] 	=  new  wxButton ( this ,  ID_SAVEEXPORT_A  +  slot , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxString : : Format ( _ ( " %sExport GCI%s " ) ,  ARROWS ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_Delete [ slot ] 		=  new  wxButton ( this ,  ID_DELETE_A  +  slot , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxString : : Format ( _ ( " %sDelete%s " ) ,  ARROWS ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_PrevPage [ slot ]  =  new  wxButton ( this ,  ID_PREVPAGE_A  +  slot ,  _ ( " Prev Page " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_NextPage [ slot ]  =  new  wxButton ( this ,  ID_NEXTPAGE_A  +  slot ,  _ ( " Next Page " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										t_Status [ slot ]  =  new  wxStaticText ( this ,  0 ,  wxEmptyString ,  wxDefaultPosition , wxDefaultSize ,  0 ,  wxEmptyString ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sPages [ slot ]  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sPages [ slot ] - > Add ( m_PrevPage [ slot ] ,  0 ,  wxEXPAND | wxALL ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sPages [ slot ] - > Add ( t_Status [ slot ] , 0 ,  wxEXPAND | wxALL ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sPages [ slot ] - > Add ( 0 ,  0 ,  1 ,  wxEXPAND | wxALL ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sPages [ slot ] - > Add ( m_NextPage [ slot ] ,  0 ,  wxEXPAND | wxALL ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-02-02 21:56:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardPath [ slot ]  =  new  wxFilePickerCtrl ( this ,  ID_MEMCARDPATH_A  +  slot , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											 wxString : : From8BitData ( File : : GetUserPath ( D_GCUSER_IDX ) ) ,  _ ( " Choose a memory card: " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										_ ( " Gamecube Memory Cards (*.raw,*.gcp) " )  +  wxString ( wxT ( " |*.raw;*.gcp " ) ) ,  wxDefaultPosition ,  wxDefaultSize ,  wxFLP_USE_TEXTCTRL | wxFLP_OPEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardList [ slot ]  =  new  CMemcardListCtrl ( this ,  ID_MEMCARDLIST_A  +  slot ,  wxDefaultPosition ,  wxSize ( 350 , 400 ) , 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxLC_REPORT  |  wxSUNKEN_BORDER  |  wxLC_ALIGN_LEFT  |  wxLC_SINGLE_SEL ,  mcmSettings ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardList [ slot ] - > AssignImageList ( new  wxImageList ( 96 , 32 ) , wxIMAGE_LIST_SMALL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										sMemcard [ slot ]  =  new  wxStaticBoxSizer ( wxVERTICAL ,  this ,  _ ( " Memory Card " )  +  wxString : : Format ( wxT ( "  %c " ) ,  ' A '  +  slot ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										sMemcard [ slot ] - > Add ( m_MemcardPath [ slot ] ,  0 ,  wxEXPAND | wxALL ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sMemcard [ slot ] - > Add ( m_MemcardList [ slot ] ,  1 ,  wxEXPAND | wxALL ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sMemcard [ slot ] - > Add ( sPages [ slot ] ,  0 ,  wxEXPAND | wxALL ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > AddStretchSpacer ( 2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_CopyFrom [ SLOT_B ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_CopyFrom [ SLOT_A ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_SaveImport [ SLOT_A ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_SaveExport [ SLOT_A ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_ConvertToGci ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_SaveImport [ SLOT_B ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_SaveExport [ SLOT_B ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_Delete [ SLOT_A ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sButtons - > Add ( m_Delete [ SLOT_B ] ,  0 ,  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sButtons - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sMain  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sMain - > Add ( sMemcard [ SLOT_A ] ,  1 ,  wxEXPAND | wxALL ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sMain - > Add ( sButtons ,  0 ,  wxEXPAND ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									sMain - > Add ( sMemcard [ SLOT_B ] ,  1 ,  wxEXPAND | wxALL ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									this - > SetSizer ( sMain ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									sMain - > SetSizeHints ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Fit ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-25 06:12:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									Center ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( int  i  =  SLOT_A ;  i  <  SLOT_B  +  1 ;  i + + ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:47:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_PrevPage [ i ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_NextPage [ i ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_CopyFrom [ i ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_SaveImport [ i ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_SaveExport [ i ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_Delete [ i ] - > Disable ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( DefaultMemcard [ i ] . length ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:47:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-11 08:39:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_MemcardPath [ i ] - > SetPath ( wxString : : From8BitData ( DefaultMemcard [ i ] . c_str ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											ChangePath ( i ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:47:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : OnClose ( wxCloseEvent &  WXUNUSED  ( event ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : OnPathChange ( wxFileDirPickerEvent &  event ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:47:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									ChangePath ( event . GetId ( )  -  ID_MEMCARDPATH_A ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:47:38 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : ChangePath ( int  slot ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  slot2  =  ( slot  = =  SLOT_A )  ?  SLOT_B  :  SLOT_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									page [ slot ]  =  FIRSTPAGE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( mcmSettings . usePages  & &  m_PrevPage [ slot ] - > IsEnabled ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_PrevPage [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_MemcardList [ slot ] - > prevPage  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( ! strcasecmp ( m_MemcardPath [ slot2 ] - > GetPath ( ) . mb_str ( ) ,  m_MemcardPath [ slot ] - > GetPath ( ) . mb_str ( ) ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if ( m_MemcardPath [ slot ] - > GetPath ( ) . length ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											PanicAlert ( " %s " ,  _wxt ( " Memcard already opened " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( m_MemcardPath [ slot ] - > GetPath ( ) . length ( )  & &  ReloadMemcard ( m_MemcardPath [ slot ] - > GetPath ( ) . mb_str ( ) ,  slot ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											mcmSettings . twoCardsLoaded  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_SaveImport [ slot ] - > Enable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_SaveExport [ slot ] - > Enable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_Delete [ slot ] - > Enable ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										else 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											if  ( memoryCard [ slot ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												delete  memoryCard [ slot ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												memoryCard [ slot ]  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											mcmSettings . twoCardsLoaded  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardPath [ slot ] - > SetPath ( wxEmptyString ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ slot ] - > ClearAll ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											t_Status [ slot ] - > SetLabel ( wxEmptyString ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_SaveImport [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_SaveExport [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_Delete [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  ( mcmSettings . usePages ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												m_PrevPage [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												m_NextPage [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( m_Delete [ SLOT_A ] - > IsEnabled ( )  & &  m_Delete [ SLOT_B ] - > IsEnabled ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_CopyFrom [ SLOT_A ] - > Enable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_CopyFrom [ SLOT_B ] - > Enable ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_CopyFrom [ SLOT_A ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_CopyFrom [ SLOT_B ] - > Disable ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : OnPageChange ( wxCommandEvent &  event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  slot  =  SLOT_B ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									switch  ( event . GetId ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_NEXTPAGE_A : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										slot  =  SLOT_A ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_NEXTPAGE_B : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( ! m_PrevPage [ slot ] - > IsEnabled ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_PrevPage [ slot ] - > Enable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ slot ] - > prevPage  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										page [ slot ] + + ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( page [ slot ]  = =  maxPages ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_NextPage [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ slot ] - > nextPage  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										ReloadMemcard ( m_MemcardPath [ slot ] - > GetPath ( ) . mb_str ( ) ,  slot ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_PREVPAGE_A : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										slot  =  SLOT_A ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_PREVPAGE_B : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( ! m_NextPage [ slot ] - > IsEnabled ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_NextPage [ slot ] - > Enable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ slot ] - > nextPage  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										page [ slot ] - - ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( ! page [ slot ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_PrevPage [ slot ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ slot ] - > prevPage  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										ReloadMemcard ( m_MemcardPath [ slot ] - > GetPath ( ) . mb_str ( ) ,  slot ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : OnMenuChange ( wxCommandEvent &  event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  _id  =  event . GetId ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									switch ( _id ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_MEMCARDPATH_A : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_MEMCARDPATH_B : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										DefaultMemcard [ _id  -  ID_MEMCARDPATH_A ]  =  m_MemcardPath [ _id  -  ID_MEMCARDPATH_A ] - > GetPath ( ) . mb_str ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										return ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 18:43:52 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_USEPAGES : 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										mcmSettings . usePages  =  ! mcmSettings . usePages ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( ! mcmSettings . usePages ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_PrevPage [ SLOT_A ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_PrevPage [ SLOT_B ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_NextPage [ SLOT_A ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_NextPage [ SLOT_B ] - > Disable ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_MemcardList [ SLOT_A ] - > prevPage  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ SLOT_B ] - > prevPage  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											page [ SLOT_A ]  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											page [ SLOT_B ]  =  FIRSTPAGE ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 18:43:52 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  NUMBER_OF_COLUMN : 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										for  ( int  i  =  COLUMN_GAMECODE ;  i  < =  NUMBER_OF_COLUMN ;  i + + ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											mcmSettings . column [ i ]  =  ! mcmSettings . column [ i ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 18:43:52 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									default : 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										mcmSettings . column [ _id ]  =  ! mcmSettings . column [ _id ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 18:43:52 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( memoryCard [ SLOT_A ] ) 	ReloadMemcard ( m_MemcardPath [ SLOT_A ] - > GetPath ( ) . mb_str ( ) ,  SLOT_A ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( memoryCard [ SLOT_B ] ) 	ReloadMemcard ( m_MemcardPath [ SLOT_B ] - > GetPath ( ) . mb_str ( ) ,  SLOT_B ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bool  CMemcardManager : : CopyDeleteSwitch ( u32  error ,  int  slot ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									switch  ( error ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  GCS : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SuccessAlert ( " %s " ,  _wxt ( " File converted to .gci " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  SUCCESS : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( slot  ! =  - 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											memoryCard [ slot ] - > FixChecksums ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  ( ! memoryCard [ slot ] - > Save ( ) )  PanicAlert ( E_SAVEFAILED ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											page [ slot ]  =  FIRSTPAGE ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ReloadMemcard ( m_MemcardPath [ slot ] - > GetPath ( ) . mb_str ( ) ,  slot ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  NOMEMCARD : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " File is not recognized as a memcard " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  OPENFAIL : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " File could not be opened \n or does not have a valid extension " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  OUTOFBLOCKS : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( slot  = =  - 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											PanicAlert ( E_UNK ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( _wxt ( " Only %d blocks available " ) ,  memoryCard [ slot ] - > GetFreeBlocks ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  OUTOFDIRENTRIES : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " No free dir index entries " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  LENGTHFAIL : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " Imported file has invalid length " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  INVALIDFILESIZE : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " The save you are trying to copy has an invalid file size " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  TITLEPRESENT : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " Memcard already has a save for this title " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  SAVFAIL : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " Imported file has sav extension \n but does not have a correct header " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  GCSFAIL : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " Imported file has gsc extension \n but does not have a correct header " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  FAIL : 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( slot  = =  - 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											PanicAlert ( " %s " ,  _wxt ( " Export Failed " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " Invalid bat.map or dir entry " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  WRITEFAIL : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										PanicAlert ( E_SAVEFAILED ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-18 07:59:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  DELETE_FAIL : 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 18:09:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlert ( " %s " ,  _wxt ( " Order of files in the File Directory do not match the block order \n Right click and export all of the saves, \n and import the the saves to a new memcard \n " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-18 07:59:31 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										PanicAlert ( E_UNK ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : CopyDeleteClick ( wxCommandEvent &  event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  index_A  =  m_MemcardList [ SLOT_A ] - > GetNextItem ( - 1 ,  wxLIST_NEXT_ALL ,  wxLIST_STATE_SELECTED ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  index_B  =  m_MemcardList [ SLOT_B ] - > GetNextItem ( - 1 ,  wxLIST_NEXT_ALL ,  wxLIST_STATE_SELECTED ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  slot  =  SLOT_B ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  slot2  =  SLOT_A ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  index  =  index_B ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									std : : string  fileName2 ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( index_A  ! =  wxNOT_FOUND  & &  page [ SLOT_A ] )  index_A  + =  itemsPerPage  *  page [ SLOT_A ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( index_B  ! =  wxNOT_FOUND  & &  page [ SLOT_B ] )  index_B  + =  itemsPerPage  *  page [ SLOT_B ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									switch  ( event . GetId ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_COPYFROM_B : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										slot  =  SLOT_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										slot2  =  SLOT_B ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_COPYFROM_A : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										index  =  slot2  ?  index_B  :  index_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( ( index  ! =  wxNOT_FOUND ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CopyDeleteSwitch ( memoryCard [ slot ] - > CopyFrom ( * memoryCard [ slot2 ] ,  index ) ,  slot ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_FIXCHECKSUM_A : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										slot  =  SLOT_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_FIXCHECKSUM_B : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( memoryCard [ slot ] - > FixChecksums ( )  & &  memoryCard [ slot ] - > Save ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 13:14:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SuccessAlert ( " %s " ,  _wxt ( " The checksum was successfully fixed " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										else  PanicAlert ( E_SAVEFAILED ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_CONVERTTOGCI : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										fileName2  =  " convert " ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_SAVEIMPORT_A : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										slot  =  SLOT_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_SAVEIMPORT_B : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-07-23 23:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxString  fileName  =  wxFileSelector ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											_ ( " Select a save file to import " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2010-07-23 23:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											( strcmp ( DefaultIOPath . c_str ( ) ,  " /Users/GC " )  = =  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												?  wxString : : FromAscii ( " " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												:  wxString : : From8BitData ( DefaultIOPath . c_str ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxEmptyString ,  wxEmptyString , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											_ ( " Native GCI files(*.gci) " )  +  wxString ( wxT ( " |*.gci| " ) )  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											_ ( " MadCatz Gameshark files(*.gcs) " )  +  wxString ( wxT ( " |*.gcs| " ) )  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											_ ( " Datel MaxDrive/Pro files(*.sav) " )  +  wxString ( wxT ( " |*.sav " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxFD_OPEN  |  wxFD_FILE_MUST_EXIST ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( ! fileName . empty ( )  & &  ! fileName2 . empty ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxString  temp2  =  wxFileSelector ( _ ( " Save GCI as... " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2010-07-23 23:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												wxEmptyString ,  wxEmptyString ,  wxT ( " .gci " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												_ ( " GCI File(*.gci) " )  +  wxString ( _T ( " |*.gci " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												wxFD_OVERWRITE_PROMPT | wxFD_SAVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  ( temp2 . empty ( ) )  break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											fileName2  =  temp2 . mb_str ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( fileName . length ( )  >  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CopyDeleteSwitch ( memoryCard [ slot ] - > ImportGci ( fileName . mb_str ( ) ,  fileName2 ) ,  slot ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_SAVEEXPORT_A : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										slot = SLOT_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										index  =  index_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_SAVEEXPORT_B : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( index  ! =  wxNOT_FOUND ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-17 06:03:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											char  tempC [ 10  +  DENTRY_STRLEN ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												 tempC2 [ DENTRY_STRLEN ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											memoryCard [ slot ] - > DEntry_GameCode ( index , tempC ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											memoryCard [ slot ] - > DEntry_FileName ( index , tempC2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											sprintf ( tempC ,  " %s_%s.gci " ,  tempC ,  tempC2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-07-23 23:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											wxString  fileName  =  wxFileSelector ( 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												_ ( " Export save as... " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2010-07-23 23:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												wxString : : From8BitData ( DefaultIOPath . c_str ( ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												wxString : : From8BitData ( tempC ) ,  wxT ( " .gci " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-06 13:57:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												_ ( " Native GCI files(*.gci) " )  +  wxString ( wxT ( " |*.gci| " ) )  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												_ ( " MadCatz Gameshark files(*.gcs) " )  +  wxString ( wxT ( " |*.gcs| " ) )  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												_ ( " Datel MaxDrive/Pro files(*.sav) " )  +  wxString ( wxT ( " |*.sav " ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												wxFD_OVERWRITE_PROMPT | wxFD_SAVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-16 08:26:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											if  ( fileName . length ( )  >  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-16 08:26:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												if  ( ! CopyDeleteSwitch ( memoryCard [ slot ] - > ExportGci ( index ,  fileName . mb_str ( ) ,  NULL ) ,  - 1 ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-16 08:26:57 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
													File : : Delete ( fileName . mb_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_EXPORTALL_A : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										slot = SLOT_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_EXPORTALL_B : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 21:37:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										std : : string  path1 ,  path2 ,  mpath ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										mpath  =  m_MemcardPath [ slot ] - > GetPath ( ) . mb_str ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SplitPath ( mpath ,  & path1 ,  & path2 ,  NULL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										path1  + =  path2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										File : : CreateDir ( path1 . c_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-12 18:09:16 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if ( PanicYesNo ( _wxt ( " Warning: This will overwrite any existing saves that are in the folder: \n %s \n and have the same name as a file on your memcard \n Continue? " ) ,  path1 . c_str ( ) ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										for  ( int  i  =  0 ;  i  <  DIRLEN ;  i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 21:37:36 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CopyDeleteSwitch ( memoryCard [ slot ] - > ExportGci ( i ,  " . " ,  & path1 ) ,  - 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  ID_DELETE_A : 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 07:20:22 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										slot  =  SLOT_A ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										index  =  index_A ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  ID_DELETE_B : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( index  ! =  wxNOT_FOUND ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-13 11:30:00 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CopyDeleteSwitch ( memoryCard [ slot ] - > RemoveFile ( index ) ,  slot ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bool  CMemcardManager : : ReloadMemcard ( const  char  * fileName ,  int  card ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( memoryCard [ card ] )  delete  memoryCard [ card ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// TODO: add error checking and animate icons
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memoryCard [ card ]  =  new  GCMemcard ( fileName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( memoryCard [ card ] - > fail )  return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									int  j ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxString  wxTitle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											 wxComment , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											 wxBlock , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											 wxFirstBlock , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											 wxLabel , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											 tString ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > Hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > ClearAll ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > InsertColumn ( COLUMN_BANNER ,  _ ( " Banner " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > InsertColumn ( COLUMN_TITLE ,  _ ( " Title " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > InsertColumn ( COLUMN_COMMENT ,  _ ( " Comment " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > InsertColumn ( COLUMN_ICON ,  _ ( " Icon " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > InsertColumn ( COLUMN_BLOCKS ,  _ ( " Blocks " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > InsertColumn ( COLUMN_FIRSTBLOCK ,  _ ( " First Block " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxImageList  * list  =  m_MemcardList [ card ] - > GetImageList ( wxIMAGE_LIST_SMALL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									list - > RemoveAll ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  nFiles  =  memoryCard [ card ] - > GetNumFiles ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  * images  =  new  int [ nFiles * 2 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									for  ( int  i  =  0 ; i  <  nFiles ; i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										static  u32  pxdata [ 96 * 32 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										static  u8   animDelay [ 8 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										static  u32  animData [ 32 * 32 * 8 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										int  numFrames  =  memoryCard [ card ] - > ReadAnimRGBA8 ( i , animData , animDelay ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( ! memoryCard [ card ] - > ReadBannerRGBA8 ( i , pxdata ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											memset ( pxdata , 0 , 96 * 32 * 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  ( numFrames > 0 )  // Just use the first one
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												u32  * icdata  =  animData ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												for  ( int  y = 0 ; y < 32 ; y + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
													for  ( int  x = 0 ; x < 32 ; x + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
													{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
														pxdata [ y * 96 + x + 32 ]  =  icdata [ y * 32 + x ] ; //  | 0xFF000000
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxBitmap  map  =  wxBitmapFromMemoryRGBA ( ( u8 * ) pxdata , 96 , 32 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										images [ i * 2 ]  =  list - > Add ( map ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( numFrames > 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											memset ( pxdata , 0 , 96 * 32 * 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											int  frames = 3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											if  ( numFrames < frames )  frames = numFrames ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											for  ( int  f = 0 ; f < frames ; f + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												for  ( int  y = 0 ; y < 32 ; y + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
													for  ( int  x = 0 ; x < 32 ; x + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
													{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
														pxdata [ y * 96  +  x  +  32 * f ]  =  animData [ f * 32 * 32  +  y * 32  +  x ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxBitmap  icon  =  wxBitmapFromMemoryRGBA ( ( u8 * ) pxdata , 96 , 32 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											images [ i * 2 + 1 ]  =  list - > Add ( icon ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int 	pagesMax  =  ( mcmSettings . usePages )  ? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
													( page [ card ]  +  1 )  *  itemsPerPage  :  128 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( j  =  page [ card ]  *  itemsPerPage ;  ( j  <  nFiles )  & &  ( j  <  pagesMax ) ;  j + + ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-17 06:03:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										char  title [ DENTRY_STRLEN ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										char  comment [ DENTRY_STRLEN ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										u16  blocks ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										u16  firstblock ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										int  index  =  m_MemcardList [ card ] - > InsertItem ( j ,  wxEmptyString ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardList [ card ] - > SetItem ( index ,  COLUMN_BANNER ,  wxEmptyString ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( ! memoryCard [ card ] - > DEntry_Comment1 ( j ,  title ) )  title [ 0 ] = 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( ! memoryCard [ card ] - > DEntry_Comment2 ( j ,  comment ) )  comment [ 0 ] = 0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-01-14 07:19:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										bool  ascii  =  memoryCard [ card ] - > IsAsciiEncoding ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-09 14:11:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef _WIN32 
 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-08 02:03:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxCSConv  SJISConv ( wxFontMapper : : GetEncodingName ( wxFONTENCODING_SHIFT_JIS ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-09 14:11:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxCSConv  SJISConv ( wxFontMapper : : GetEncodingName ( wxFONTENCODING_EUC_JP ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-08 02:03:44 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-14 07:19:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxTitle   =   wxString ( title ,  ascii  ?  * wxConvCurrent  :  SJISConv ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxComment  =  wxString ( comment ,  ascii  ?  * wxConvCurrent  :  SJISConv ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-13 06:34:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-07 08:52:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardList [ card ] - > SetItem ( index ,  COLUMN_TITLE ,  wxTitle ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_MemcardList [ card ] - > SetItem ( index ,  COLUMN_COMMENT ,  wxComment ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										blocks  =  memoryCard [ card ] - > DEntry_BlockCount ( j ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( blocks  = =  0xFFFF )  blocks  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxBlock . Printf ( wxT ( " %10d " ) ,  blocks ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardList [ card ] - > SetItem ( index , COLUMN_BLOCKS ,  wxBlock ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 06:06:30 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										firstblock  =  memoryCard [ card ] - > DEntry_FirstBlock ( j ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( firstblock  = =  0xFFFF )  firstblock  =  3 ; 	// to make firstblock -1
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxFirstBlock . Printf ( wxT ( " %15d " ) ,  firstblock - 4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_MemcardList [ card ] - > SetItem ( index , COLUMN_FIRSTBLOCK ,  wxFirstBlock ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_MemcardList [ card ] - > SetItem ( index ,  COLUMN_ICON ,  wxEmptyString ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( images [ j ]  > =  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > SetItemImage ( index ,  images [ j * 2 ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > SetItemColumnImage ( index ,  COLUMN_ICON ,  images [ j * 2 + 1 ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( mcmSettings . usePages ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-17 06:03:53 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( nFiles  < =  itemsPerPage ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_PrevPage [ card ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > prevPage  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( j  = =  nFiles ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_NextPage [ card ] - > Disable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > nextPage  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_NextPage [ card ] - > Enable ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > nextPage  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									delete [ ]  images ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Automatic column width and then show the list
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									for  ( int  i  =  0 ;  i  <  NUMBER_OF_COLUMN ;  i + + ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										if  ( mcmSettings . column [ i ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > SetColumnWidth ( i ,  wxLIST_AUTOSIZE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											m_MemcardList [ card ] - > SetColumnWidth ( i ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_MemcardList [ card ] - > Show ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxLabel . Printf ( _ ( " %d Free Blocks; %d Free Dir Entries " ) , 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										memoryCard [ card ] - > GetFreeBlocks ( ) ,  DIRLEN  -  nFiles ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-20 08:07:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									t_Status [ card ] - > SetLabel ( wxLabel ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-08 05:30:24 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  CMemcardManager : : CMemcardListCtrl : : OnRightClick ( wxMouseEvent &  event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  flags ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									long  item  =  HitTest ( event . GetPosition ( ) ,  flags ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-23 08:05:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxMenu *  popupMenu  =  new  wxMenu ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( item  ! =  wxNOT_FOUND )  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( GetItemState ( item ,  wxLIST_STATE_SELECTED )  ! =  wxLIST_STATE_SELECTED ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SetItemState ( item ,  wxLIST_STATE_SELECTED ,  wxLIST_STATE_SELECTED  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SetItemState ( item ,  wxLIST_STATE_FOCUSED ,  wxLIST_STATE_FOCUSED ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										int  slot  =  GetId ( )  -  ID_MEMCARDLIST_A ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_COPYFROM_A  +  slot ,  wxString : : Format ( _ ( " Copy to Memcard %c " ) ,  ' B '  -  slot ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_DELETE_A  +  slot ,  _ ( " Delete Save " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_SAVEIMPORT_A  +  slot ,  _ ( " Import Save " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_SAVEEXPORT_A  +  slot ,  _ ( " Export Save " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_EXPORTALL_A  +  slot ,  _ ( " Export all saves " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
												
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > FindItem ( ID_COPYFROM_A  +  slot ) - > Enable ( __mcmSettings . twoCardsLoaded ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-11-23 08:05:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > AppendSeparator ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_FIXCHECKSUM_A  +  slot ,  _ ( " Fix Checksums " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_PREVPAGE_A  +  slot ,  _ ( " Previous Page " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_NEXTPAGE_A  +  slot ,  _ ( " Next Page " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > Append ( ID_MEMCARDPATH_A  +  slot ,  wxString : : Format ( _ ( " Set as default Memcard %c " ) ,  ' A '  +  slot ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > AppendCheckItem ( ID_USEPAGES ,  _ ( " Enable pages " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > FindItem ( ID_PREVPAGE_A  +  slot ) - > Enable ( prevPage  & &  __mcmSettings . usePages ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > FindItem ( ID_NEXTPAGE_A  +  slot ) - > Enable ( nextPage  & &  __mcmSettings . usePages ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > FindItem ( ID_USEPAGES ) - > Check ( __mcmSettings . usePages ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2009-11-23 08:05:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > AppendSeparator ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										popupMenu - > AppendCheckItem ( COLUMN_BANNER ,  _ ( " Show save banner " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > AppendCheckItem ( COLUMN_TITLE ,  _ ( " Show save title " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > AppendCheckItem ( COLUMN_COMMENT ,  _ ( " Show save comment " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > AppendCheckItem ( COLUMN_ICON ,  _ ( " Show save icon " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										popupMenu - > AppendCheckItem ( COLUMN_BLOCKS ,  _ ( " Show save blocks " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										for  ( int  i  =  COLUMN_BANNER ;  i  < =  COLUMN_BLOCKS ;  i + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-10 07:11:05 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											popupMenu - > FindItem ( i ) - > Check ( __mcmSettings . column [ i ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-22 03:23:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-23 08:05:54 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									PopupMenu ( popupMenu ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-10 02:41:55 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-28 02:30:50 +00:00