Skip to content

Commit

Permalink
no message
Browse files Browse the repository at this point in the history
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk/XBMC@586 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
  • Loading branch information
yamp committed Jan 22, 2004
1 parent 5461a75 commit 890c92d
Show file tree
Hide file tree
Showing 15 changed files with 245 additions and 22 deletions.
6 changes: 6 additions & 0 deletions xbmc.vcproj
Expand Up @@ -374,6 +374,12 @@
<File
RelativePath=".\xbmc\FileItem.cpp">
</File>
<File
RelativePath=".\xbmc\GUIDialogFileStacking.cpp">
</File>
<File
RelativePath=".\xbmc\GUIDialogFileStacking.h">
</File>
<File
RelativePath=".\xbmc\GUIDialogOK.cpp">
</File>
Expand Down
2 changes: 2 additions & 0 deletions xbmc/Application.cpp
Expand Up @@ -226,6 +226,7 @@ HRESULT CApplication::Initialize()
m_gWindowManager.Add(&m_guiWindowFullScreen); // window id = 2005
m_gWindowManager.Add(&m_guiWindowVisualisation); // window id = 2006
m_gWindowManager.Add(&m_guiWindowSlideshow); // window id = 2007
m_gWindowManager.Add(&m_guiDialogFileStacking); // window id = 2008

/* window id's 3000 - 3100 are reserved for python */

Expand Down Expand Up @@ -294,6 +295,7 @@ void CApplication::LoadSkin(const CStdString& strSkin)
m_guiMyMusicTop100.Load( strSkinPath+"\\mymusictop100.xml" );
m_guiDialogSelect.Load( strSkinPath+"\\dialogSelect.xml" );
m_guiDialogOK.Load( strSkinPath+"\\dialogOK.xml" );
m_guiDialogFileStacking.Load( strSkinPath+"\\dialogFileStacking.xml" );
m_guiVideoInfo.Load( strSkinPath+"\\DialogVideoInfo.xml" );
m_guiMusicOverlay.Load( strSkinPath+"\\musicOverlay.xml" );
m_guiSettingsScreen.Load( strSkinPath+"\\settingsScreen.xml" );
Expand Down
2 changes: 2 additions & 0 deletions xbmc/Application.h
Expand Up @@ -19,6 +19,7 @@
#include "GUIDialogOK.h"
#include "GUIDialogProgress.h"
#include "GUIDialogSelect.h"
#include "GUIDialogFileStacking.h"
#include "GUIWindowSystemInfo.h"
#include "GUIWindowSettingsGeneral.h"
#include "GUIWindowSettingsScreen.h"
Expand Down Expand Up @@ -113,6 +114,7 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs
CGUIWindowScripts m_guiScripts;
CGUIWindowSettingsFilter m_guiSettingsFilter;
CGUIDialogSelect m_guiDialogSelect;
CGUIDialogFileStacking m_guiDialogFileStacking;
CGUIWindowMusicOverlay m_guiMusicOverlay;
CGUIWindowFullScreen m_guiWindowFullScreen;
CGUIWindowVideoOverlay m_guiWindowVideoOverlay;
Expand Down
93 changes: 93 additions & 0 deletions xbmc/GUIDialogFileStacking.cpp
@@ -0,0 +1,93 @@
#include "GUIDialogFileStacking.h"
#include "guiWindowManager.h"
#include "localizeStrings.h"

CGUIDialogFileStacking::CGUIDialogFileStacking(void)
:CGUIDialog(0)
{
m_iSelectedFile=-1;
m_iNumberOfFiles=0;
}

CGUIDialogFileStacking::~CGUIDialogFileStacking(void)
{
}
void CGUIDialogFileStacking::OnAction(const CAction &action)
{
if (action.wID == ACTION_CLOSE_DIALOG || action.wID == ACTION_PREVIOUS_MENU)
{
Close();
return;
}
CGUIWindow::OnAction(action);
}

bool CGUIDialogFileStacking::OnMessage(CGUIMessage& message)
{
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_INIT:
{
CGUIDialog::OnMessage(message);
m_iSelectedFile=-1;
m_iFrames=0;

// enable the CD's
for (int i=1; i <= m_iNumberOfFiles; ++i)
{
CONTROL_ENABLE(GetID(),i);
SET_CONTROL_VISIBLE(GetID(),i);
}

// disable CD's we dont use
for (int i=m_iNumberOfFiles+1; i <= 5; ++i)
{
SET_CONTROL_HIDDEN(GetID(), i);
CONTROL_DISABLE(GetID(), i);
}
return true;
}
break;

case GUI_MSG_CLICKED:
{
m_iSelectedFile=message.GetSenderId();
Close();
return true;
}
break;
}
return CGUIDialog::OnMessage(message);
}

int CGUIDialogFileStacking::GetSelectedFile() const
{
return m_iSelectedFile;
}
void CGUIDialogFileStacking::SetNumberOfFiles(int iFiles)
{
m_iNumberOfFiles=iFiles;
}


void CGUIDialogFileStacking::Render()
{
if (m_iFrames <=25)
{
// slide in...
int dwScreenWidth=g_graphicsContext.GetWidth();
for (int i=1; i <= m_iNumberOfFiles; ++i)
{
CGUIControl* pControl=(CGUIControl*)GetControl(i);
DWORD dwEndPos = dwScreenWidth - ((m_iNumberOfFiles-i)*32)-140;
DWORD dwStartPos = dwScreenWidth;
float fStep= (float)(dwStartPos - dwEndPos);
fStep/=25.0f;
fStep*=(float)m_iFrames;
DWORD dwPosX = (DWORD) ( ((float)dwStartPos)-fStep );
pControl->SetPosition( dwPosX, pControl->GetYPosition() );
}
m_iFrames++;
}
CGUIDialog::Render();
}
21 changes: 21 additions & 0 deletions xbmc/GUIDialogFileStacking.h
@@ -0,0 +1,21 @@
#pragma once
#include "guidialog.h"

class CGUIDialogFileStacking :
public CGUIDialog
{
public:
CGUIDialogFileStacking(void);
virtual ~CGUIDialogFileStacking(void);
virtual bool OnMessage(CGUIMessage& message);
virtual void OnAction(const CAction &action);

int GetSelectedFile() const;
void SetNumberOfFiles(int iFiles);
virtual void Render();
protected:
int m_iSelectedFile;
int m_iNumberOfFiles;
int m_iFrames;

};
2 changes: 1 addition & 1 deletion xbmc/GUIWindowFullScreen.cpp
Expand Up @@ -662,7 +662,7 @@ void CGUIWindowFullScreen::ChangetheTimeCode(DWORD remote)
itotal = ih+im+is;
unsigned int temp = g_application.m_pPlayer->GetTime();

if(itotal < temp)
if((unsigned int)itotal < temp)
g_application.m_pPlayer->SeekTime(itotal);
ts_counter = 0;
}
Expand Down
32 changes: 30 additions & 2 deletions xbmc/GUIWindowPrograms.cpp
Expand Up @@ -41,6 +41,7 @@ bool CGUIWindowPrograms::OnMessage(CGUIMessage& message)
switch ( message.GetMessage() )
{
case GUI_MSG_WINDOW_DEINIT:

Clear();
break;

Expand All @@ -67,6 +68,12 @@ bool CGUIWindowPrograms::OnMessage(CGUIMessage& message)


Update(m_strDirectory);

if (g_stSettings.m_iMyProgramsSelectedItem >=0)
{
CONTROL_SELECT_ITEM(GetID(), CONTROL_LIST,g_stSettings.m_iMyProgramsSelectedItem);
CONTROL_SELECT_ITEM(GetID(), CONTROL_THUMBS,g_stSettings.m_iMyProgramsSelectedItem);
}
return true;
}
break;
Expand Down Expand Up @@ -201,8 +208,10 @@ void CGUIWindowPrograms::OnAction(const CAction &action)
{
if (action.wID == ACTION_PREVIOUS_MENU)
{
m_gWindowManager.PreviousWindow();
return;
g_stSettings.m_iMyProgramsSelectedItem = GetSelectedItem();
g_settings.Save();
m_gWindowManager.PreviousWindow();
return;
}
CGUIWindow::OnAction(action);
}
Expand Down Expand Up @@ -328,6 +337,9 @@ void CGUIWindowPrograms::OnClick(int iItem)
}
else
{
g_stSettings.m_iMyProgramsSelectedItem = GetSelectedItem();
g_settings.Save();

// launch xbe...
char szPath[1024];
char szDevicePath[1024];
Expand Down Expand Up @@ -680,4 +692,20 @@ void CGUIWindowPrograms::DeleteThumbs(VECFILEITEMS& items)
}
}
}
}

int CGUIWindowPrograms::GetSelectedItem()
{
int iControl;
if ( g_stSettings.m_bMyProgramsViewAsIcons)
{
iControl=CONTROL_THUMBS;
}
else
iControl=CONTROL_LIST;

CGUIMessage msg(GUI_MSG_ITEM_SELECTED,GetID(),iControl,0,0,NULL);
g_graphicsContext.SendMessage(msg);
int iItem=msg.GetParam1();
return iItem;
}
1 change: 1 addition & 0 deletions xbmc/GUIWindowPrograms.h
Expand Up @@ -22,6 +22,7 @@ class CGUIWindowPrograms :
void UpdateButtons();
void Clear();
void DeleteThumbs(VECFILEITEMS& items);
int GetSelectedItem();
CGUIDialogProgress* m_dlgProgress;
VECFILEITEMS m_vecItems;
CStdString m_strDirectory;
Expand Down
59 changes: 44 additions & 15 deletions xbmc/GUIWindowVideoGenre.cpp
@@ -1,12 +1,7 @@
// Todo:
// - directory history
// - if user selects movie, then do file stacking...
// - if movie does not exists when play movie is called then show dialog asking to insert the correct CD
// - show if movie has subs
// - oninfo() -> just show imdb info...
// - sort by:
// - name
// - date (should sort on year)

#include "guiwindowVideoGenre.h"
#include "settings.h"
Expand All @@ -26,7 +21,7 @@
#include "nfofile.h"
#include "filesystem/file.h"
#include "xbox/iosupport.h"

#include "GUIDialogFileStacking.h"
#define CONTROL_BTNVIEWASICONS 2
#define CONTROL_BTNSORTBY 3
#define CONTROL_BTNSORTASC 4
Expand Down Expand Up @@ -460,15 +455,49 @@ void CGUIWindowVideoGenre::OnClick(int iItem)
}
Update(strPath);
}
else if (CUtil::IsVideo(pItem->m_strPath))
else
{
// Set selected item
m_iItemSelected=GetSelectedItem();

// play movie...
g_TextureManager.Flush();
g_graphicsContext.SetFullScreenVideo(true);
m_gWindowManager.ActivateWindow(WINDOW_FULLSCREEN_VIDEO);
g_application.PlayFile(strPath);
int iSelectedFile=1;
VECMOVIESFILES movies;
m_database.GetFiles(atol(pItem->m_strPath),movies);
if (movies.size() <=0) return;
if (movies.size() >1)
{
CGUIDialogFileStacking* dlg = (CGUIDialogFileStacking*)m_gWindowManager.GetWindow(2008);
dlg->SetNumberOfFiles(movies.size());
dlg->DoModal(GetID());
iSelectedFile = dlg->GetSelectedFile();
if (iSelectedFile < 1) return;
}
CStdString strFileName=movies[iSelectedFile-1];
if (CUtil::IsVideo(strFileName))
{
// play movie...
g_TextureManager.Flush();
g_graphicsContext.SetFullScreenVideo(true);
m_gWindowManager.ActivateWindow(WINDOW_FULLSCREEN_VIDEO);
g_application.PlayFile(strFileName);
}
}
}

void CGUIWindowVideoGenre::OnInfo(int iItem)
{
CFileItem* pItem=m_vecItems[iItem];
if (pItem->m_bIsFolder) return;

VECMOVIESFILES movies;
m_database.GetFiles(atol(pItem->m_strPath),movies);
if (movies.size() <=0) return;
CStdString strFile=movies[0];
if (m_database.HasMovieInfo(strFile) )
{
CIMDBMovie movieDetails;
m_database.GetMovieInfo(strFile,movieDetails);
CGUIWindowVideoInfo* pDlgInfo= (CGUIWindowVideoInfo*)m_gWindowManager.GetWindow(2003);
pDlgInfo->SetMovie(movieDetails);
pDlgInfo->DoModal(GetID());
if ( !pDlgInfo->NeedRefresh() ) return;
m_database.DeleteMovieInfo(strFile);
}
}
1 change: 1 addition & 0 deletions xbmc/GUIWindowVideoGenre.h
Expand Up @@ -26,5 +26,6 @@ class CGUIWindowVideoGenre : public CGUIWindowVideo
virtual void UpdateButtons();
virtual void Update(const CStdString &strDirectory);
virtual void OnClick(int iItem);
virtual void OnInfo(int iItem);

};
16 changes: 15 additions & 1 deletion xbmc/Settings.cpp
Expand Up @@ -9,7 +9,7 @@ struct CSettings::stSettings g_stSettings;

CSettings::CSettings(void)
{

g_stSettings.m_iMyProgramsSelectedItem=0;
g_stSettings.m_iAudioStream=0;
g_stSettings.m_bPPAuto=true;
g_stSettings.m_bPPVertical=false;
Expand Down Expand Up @@ -785,6 +785,16 @@ bool CSettings::LoadSettings(const CStdString& strSettingsFile)
GetInteger(pElement, "PPVerticalVal",g_stSettings.m_iPPVertical);
}

// my programs
pElement = pRootElement->FirstChildElement("myprograms");
if (pElement)
{
GetBoolean(pElement, "viewicons", g_stSettings.m_bMyProgramsViewAsIcons);
GetBoolean(pElement, "sortascending", g_stSettings.m_bMyProgramsSortAscending);
GetBoolean(pElement, "flatten", g_stSettings.m_bMyProgramsFlatten);
GetInteger(pElement, "sortmethod", g_stSettings.m_iMyProgramsSortMethod);
GetInteger(pElement, "selecteditem",g_stSettings.m_iMyProgramsSelectedItem);
}
return true;
}

Expand All @@ -803,6 +813,8 @@ bool CSettings::SaveSettings(const CStdString& strSettingsFile) const
SetInteger(pNode, "sortmethod", g_stSettings.m_iMyProgramsSortMethod);
SetBoolean(pNode, "sortascending", g_stSettings.m_bMyProgramsSortAscending);
SetBoolean(pNode, "flatten", g_stSettings.m_bMyProgramsFlatten);
SetInteger(pNode, "selecteditem",g_stSettings.m_iMyProgramsSelectedItem);

// mypictures settings
TiXmlElement picturesNode("mypictures");
pNode = pRoot->InsertEndChild(picturesNode);
Expand Down Expand Up @@ -985,6 +997,8 @@ bool CSettings::SaveSettings(const CStdString& strSettingsFile) const
SetInteger(pNode, "PPHorizontalVal",g_stSettings.m_iPPHorizontal);
SetInteger(pNode, "PPVerticalVal",g_stSettings.m_iPPVertical);



// save the file
return xmlDoc.SaveFile(strSettingsFile);
}
2 changes: 1 addition & 1 deletion xbmc/Settings.h
Expand Up @@ -201,7 +201,7 @@ class CSettings
bool m_bMyVideoGenreRootViewAsIcons;
int m_iMyVideoGenreSortMethod;
bool m_bMyVideoGenreSortAscending;

int m_iMyProgramsSelectedItem;
};

VECSHARES m_vecMyProgramsBookmarks;
Expand Down
2 changes: 1 addition & 1 deletion xbmc/Util.cpp
Expand Up @@ -1033,7 +1033,7 @@ void CUtil::SetThumbs(VECFILEITEMS &items)
bGotIcon=true;
}
}
if (!bGotIcon)
if (!bGotIcon && pItem->GetLabel() != "..")
{
CStdString strFolderImage;
AddFileToFolder(pItem->m_strPath, "folder.jpg", strFolderImage);
Expand Down

0 comments on commit 890c92d

Please sign in to comment.