#include "stdafx.h" #include "GameViewer.h" #include "Loader/PSF.h" static const std::string m_class_name = "GameViewer"; GameViewer::GameViewer(wxWindow* parent) : wxListView(parent) { LoadSettings(); m_columns.Show(this); m_path = "/dev_hdd0/game/"; Bind(wxEVT_LIST_ITEM_ACTIVATED, &GameViewer::DClick, this); Bind(wxEVT_LIST_COL_CLICK, &GameViewer::OnColClick, this); Refresh(); } GameViewer::~GameViewer() { SaveSettings(); } void GameViewer::DoResize(wxSize size) { SetSize(size); } int wxCALLBACK ListItemCompare(long item1, long item2, long sortinfo) { ListSortInfo *SortInfo = (ListSortInfo *)sortinfo; int Column = SortInfo->Column; GameViewer *pGameViewer = SortInfo->GameViewerCtrl; bool SortAscending = SortInfo->SortAscending; long index1 = pGameViewer->FindItem(0, item1); long index2 = pGameViewer->FindItem(0, item2); wxString string1 = pGameViewer->GetItemText(index1, Column); wxString string2 = pGameViewer->GetItemText(index2, Column); if (string1.Cmp(string2) < 0) { return SortAscending ? -1 : 1; } else if (string1.Cmp(string2) > 0) { return SortAscending ? 1 : -1; } else { return 0; } } void GameViewer::OnColClick(wxListEvent& event) { if (event.GetColumn() == SortInfo.Column) { SortInfo.SortAscending = SortInfo.SortAscending ? FALSE : TRUE; } else { SortInfo.SortAscending = TRUE; } SortInfo.Column = event.GetColumn(); SortInfo.GameViewerCtrl = this; SortItems(ListItemCompare, (long)&SortInfo); } void GameViewer::LoadGames() { vfsDir dir(m_path); ConLog.Write("path: %s", m_path.c_str()); if(!dir.IsOpened()) return; m_games.clear(); for(const DirEntryInfo* info = dir.Read(); info; info = dir.Read()) { if(info->flags & DirEntry_TypeDir) { m_games.push_back(info->name); } } //ConLog.Write("path: %s", m_path.wx_str()); //ConLog.Write("folders count: %d", m_games.GetCount()); } void GameViewer::LoadPSF() { m_game_data.clear(); for(uint i=0; i