#include "stdafx.h"
#include "GUIWindowGameSaves.h"
#include "util.h"
#include "GUIWindowScriptsInfo.h"
#include <fstream>
#define CONTROL_BTNVIEWASICONS 2
#define CONTROL_BTNSORTBY 3
#define CONTROL_BTNSORTASC 4
#define CONTROL_LIST 50
#define CONTROL_THUMBS 51
#define CONTROL_LABELFILES 12
CGUIWindowGameSaves::CGUIWindowGameSaves()
: CGUIMediaWindow(WINDOW_GAMESAVES, "MyGameSaves.xml")
{
m_bViewOutput = false;
m_scriptSize = 0;
}
CGUIWindowGameSaves::~CGUIWindowGameSaves()
{
}
bool CGUIWindowGameSaves::OnAction(const CAction &action)
{
if (action.wID == ACTION_SHOW_INFO)
{
OnInfo();
return true;
}
return CGUIMediaWindow::OnAction(action);
}
bool CGUIWindowGameSaves::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_INIT:
{
if (m_vecItems.m_strPath == "?")
m_vecItems.m_strPath = "E:\\udata";
return CGUIMediaWindow::OnMessage(message);
}
break;
}
return CGUIMediaWindow::OnMessage(message);
}
bool CGUIWindowGameSaves::OnPlayMedia(int iItem)
{
CFileItem* pItem=m_vecItems[iItem];
CStdString strPath = pItem->m_strPath;
//CGUIWindowGameSaves::Update(strPath); // this line here was incase we dont't set it as a folder (thou this would need more work to handle non files)
/* do what ever next if folder open it script...
*/
//g_pythonParser.evalFile(strPath);
//strPath << will be usefull
return true;
}
void CGUIWindowGameSaves::OnInfo()
{
/// this means pressing WHite and well we can do this later :D once everything else works
//CGUIWindowScriptsInfo* pDlgInfo = (CGUIWindowScriptsInfo*)m_gWindowManager.GetWindow(WINDOW_SCRIPTS_INFO);
//if (pDlgInfo) pDlgInfo->DoModal();
/*
CGUIDialogContextMenu *pMenu = (CGUIDialogContextMenu *)m_gWindowManager.GetWindow(WINDOW_DIALOG_CONTEXT_MENU);
if (pMenu)
{
bool showEntry=(!m_vecItems[list][item]->IsParentFolder() || (m_vecItems[list][item]->IsParentFolder() && m_vecItems[list].GetSelectedCount()>0));
// load our menu
pMenu->Initialize();
// add the needed buttons
int btn_SelectAll = pMenu->AddButton(188); // SelectAll
int btn_Rename = pMenu->AddButton(118); // Rename
int btn_Delete = pMenu->AddButton(117); // Delete
int btn_Copy = pMenu->AddButton(115); // Copy
int btn_Move = pMenu->AddButton(116); // Move
int btn_NewFolder = pMenu->AddButton(119); // New Folder
int btn_Size = pMenu->AddButton(13393); // Calculate Size
//int btn_Settings = -2;
int btn_Settings = pMenu->AddButton(5); // Settings
int btn_GoToRoot = pMenu->AddButton(20128);
pMenu->EnableButton(btn_SelectAll, item >= 0);
pMenu->EnableButton(btn_Rename, item >= 0 && CanRename(list) && !m_vecItems[list][item]->IsParentFolder());
pMenu->EnableButton(btn_Delete, item >= 0 && CanDelete(list) && showEntry);
pMenu->EnableButton(btn_Copy, item >= 0 && CanCopy(list) && showEntry);
pMenu->EnableButton(btn_Move, item >= 0 && CanMove(list) && showEntry);
pMenu->EnableButton(btn_NewFolder, CanNewFolder(list));
pMenu->EnableButton(btn_Size, item >=0 && m_vecItems[list][item]->m_bIsFolder && !m_vecItems[list][item]->IsParentFolder());
// position it correctly
pMenu->SetPosition(iPosX - pMenu->GetWidth() / 2, iPosY - pMenu->GetHeight() / 2);
pMenu->DoModal();
int btnid = pMenu->GetButton();
if (btnid == btn_SelectAll)
{
OnSelectAll(list);
bDeselect=false;
}
if (btnid == btn_Delete)
OnDelete(list);
if (btnid == btn_Copy)
OnCopy(list);
if (btnid == btn_Move)
OnMove(list);
*/
}
void CGUIWindowGameSaves::Render()
{
// update control_list / control_thumbs if one or more scripts have stopped / started
CGUIWindow::Render();
}
bool CGUIWindowGameSaves::GetDirectory(const CStdString& strDirectory, CFileItemList& items)
{
if (!CGUIMediaWindow::GetDirectory(strDirectory,items))
return false;
CLog::Log(LOGINFO, "GSM %s", "Perferomgin to open file");
//std::ifstream inFile;
FILE *newfile;
// flatten any folders
for (int i = 0; i < items.Size(); i++)
{
CFileItem *item = items[i];
if (item->m_bIsFolder && !item->IsParentFolder() && !item->m_bIsShareOrDrive)
{ // folder item - let's check for a default.py file, and flatten if we have one
CStdString titlemetaXBX;
CUtil::AddFileToFolder(item->m_strPath, "titlemeta.xbx", titlemetaXBX);
if (CFile::Exists(titlemetaXBX))
{
char tstr[1024];
strcpy(tstr, item->GetLabel());
strcat(tstr, "(Game Name here for now) ");
item->SetLabel(tstr);
/*
// this means udata/folder/titlemeta.xbx was found so open the file and read title
char temp2[1];
newfile=fopen(titlemetaXBX, "r");
char c;
char titledat;
while(c!=EOF) //Just checking to see if it's the end of the file
{
c=fgetc(newfile); //Reading in a character from autoexec.bat
CLog::Log(LOGINFO, "Loading Characther from file %s", c);
}
fclose(newfile);
/*
inFile.open(titlemetaXBX);
if (!inFile) {
CLog::Log(LOGINFO, "strTitleName %s", "Unable to open file");
}
else
{
while( !inFile.eof() ) {
//inFile.getline(temp2,1);
//inFile.getline(temp,1);
}
inFile.close();
CLog::Log(LOGINFO, "strTitleName %s", temp2);
}
*/
CLog::Log(LOGINFO, "strTitleName %s", "hey");;
//item->m_strPath = titlemetaXBX; // this would mean like udata/0face008/titlemeta.xbx [we dont' want that]
item->m_bIsFolder = true; // fake it
item->FillInDefaultIcon();
item->SetLabelPreformated(true);
}
}
// hide the info and thumbnail files
if (item->GetLabel().Equals("titlemeta.xbx") || item->GetLabel().Equals("NICKNAME.XBN") || item->GetLabel().Equals("titleimage.xbx") || item->GetLabel().Equals("saveimage.xbx"))
{
items.Remove(i);
i--;
}
}
//items.SetGameSavesThumbs(); // Needs work
return true;
}