All pastes #148643 Raw Edit

Something

public text v1 · immutable
#148643 ·published 2006-08-25 08:42 UTC
rendered paste body
#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;
}