Added code to display the first icon (I tried to display it animated, but failed).
It still uses just one imagelist, so I had to "expand" the icons to 96x32 (adding transparent pixels to the right). Sorry I don't know how to do this better and it's 4am. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@418 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
f0b41b1f0d
commit
ead647d422
|
@ -176,34 +176,29 @@ void CMemcardManager::ReloadMemcard(const char *fileName, int card)
|
|||
m_MemcardList[card]->InsertColumn(COLUMN_BANNER, _T("Banner"));
|
||||
m_MemcardList[card]->InsertColumn(COLUMN_TITLE, _T("Title"));
|
||||
m_MemcardList[card]->InsertColumn(COLUMN_COMMENT, _T("Comment"));
|
||||
m_MemcardList[card]->InsertColumn(COLUMN_ICON, _T("Icon"));
|
||||
|
||||
wxImageList *list=m_MemcardList[card]->GetImageList(wxIMAGE_LIST_SMALL);
|
||||
list->RemoveAll();
|
||||
|
||||
int nFiles = memoryCard[card]->GetNumFiles();
|
||||
|
||||
int *images = new int[nFiles];
|
||||
int *images = new int[nFiles*2];
|
||||
for(int i=0;i<nFiles;i++)
|
||||
{
|
||||
static u32 pxdata[96*32];
|
||||
static u8 animDelay[8];
|
||||
static u32 animData[32*32*8];
|
||||
|
||||
if(memoryCard[card]->ReadBannerRGBA8(i,pxdata))
|
||||
{
|
||||
//// it looks better without alpha
|
||||
//for(int i=0;i<96*32;i++)
|
||||
// pxdata[i]|=0xFF000000;
|
||||
}
|
||||
else
|
||||
int numFrames = memoryCard[card]->ReadAnimRGBA8(i,animData,animDelay);
|
||||
|
||||
if(!memoryCard[card]->ReadBannerRGBA8(i,pxdata))
|
||||
{
|
||||
memset(pxdata,0,96*32*4);
|
||||
|
||||
int numFrames = memoryCard[card]->ReadAnimRGBA8(i,animData,animDelay);
|
||||
if(numFrames>0) // just use the first one
|
||||
{
|
||||
int n = numFrames/2;
|
||||
u32 *icdata = animData+n*32*32;
|
||||
u32 *icdata = animData;
|
||||
|
||||
for(int y=0;y<32;y++)
|
||||
{
|
||||
|
@ -216,7 +211,22 @@ void CMemcardManager::ReloadMemcard(const char *fileName, int card)
|
|||
}
|
||||
|
||||
wxBitmap map((char*)pxdata,96,32,32);
|
||||
images[i] = list->Add(map);
|
||||
images[i*2] = list->Add(map);
|
||||
|
||||
if(numFrames>0)
|
||||
{
|
||||
memset(pxdata,0,96*32*4);
|
||||
for(int y=0;y<32;y++)
|
||||
{
|
||||
for(int x=0;x<32;x++)
|
||||
{
|
||||
pxdata[y*96+x] = animData[y*32+x];
|
||||
}
|
||||
}
|
||||
|
||||
wxBitmap icon((char*)pxdata,96,32,32);
|
||||
images[i*2+1] = list->Add(icon);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i=0;i<nFiles;i++)
|
||||
|
@ -231,10 +241,12 @@ void CMemcardManager::ReloadMemcard(const char *fileName, int card)
|
|||
m_MemcardList[card]->SetItem(index, COLUMN_BANNER, wxString::FromAscii(""));
|
||||
m_MemcardList[card]->SetItem(index, COLUMN_TITLE, wxString::FromAscii(title));
|
||||
m_MemcardList[card]->SetItem(index, COLUMN_COMMENT, wxString::FromAscii(comment));
|
||||
m_MemcardList[card]->SetItem(index, COLUMN_ICON, wxString::FromAscii(""));
|
||||
|
||||
if(images[i]>=0)
|
||||
{
|
||||
m_MemcardList[card]->SetItemImage(index, images[i]);
|
||||
m_MemcardList[card]->SetItemImage(index, images[i*2]);
|
||||
m_MemcardList[card]->SetItemColumnImage(index, COLUMN_ICON, images[i*2+1]);
|
||||
}
|
||||
}
|
||||
m_MemcardList[card]->Show();
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "MemoryCards/GCMemcard.h"
|
||||
|
||||
#undef MEMCARD_MANAGER_STYLE
|
||||
#define MEMCARD_MANAGER_STYLE wxCAPTION | wxSYSTEM_MENU | wxDIALOG_NO_PARENT | wxCLOSE_BOX | wxRESIZE_BORDER
|
||||
#define MEMCARD_MANAGER_STYLE wxCAPTION | wxSYSTEM_MENU | wxDIALOG_NO_PARENT | wxCLOSE_BOX | wxRESIZE_BORDER | wxMAXIMIZE_BOX
|
||||
|
||||
class CMemcardManager
|
||||
: public wxDialog
|
||||
|
@ -51,6 +51,9 @@ class CMemcardManager
|
|||
wxFilePickerCtrl* m_Memcard1Path;
|
||||
wxFilePickerCtrl* m_Memcard2Path;
|
||||
wxListCtrl* m_MemcardList[2];
|
||||
wxTimer* m_Timer;
|
||||
|
||||
int nframe;
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -70,6 +73,7 @@ class CMemcardManager
|
|||
COLUMN_BANNER = 0,
|
||||
COLUMN_TITLE,
|
||||
COLUMN_COMMENT,
|
||||
COLUMN_ICON,
|
||||
NUMBER_OF_COLUMN
|
||||
};
|
||||
|
||||
|
@ -80,6 +84,7 @@ class CMemcardManager
|
|||
void CopyDeleteClick(wxCommandEvent& event);
|
||||
void ReloadMemcard(const char *fileName, int card);
|
||||
void OnPathChange(wxFileDirPickerEvent& event);
|
||||
void OnTimer(wxTimerEvent& event);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue