mirror of https://github.com/stella-emu/stella.git
- Games play now when double-clicked in list
Hi there! Check Cyberstella/ReadMe.txt for my current ToDo list. Feel free to add/edit/remove/suggest :-) When the *urgent* stuff is done, Cyberstella is ready to be released. Main problem at the moment is: Window does neither send me the ItemActivate message when ENTER is pressed, nor do WM_KEYDOWN messages come through when the ENTER key is pressed. Hm... Any ideas appreciated... :-) (Not really a bug, as you can start games via menu, toolbar and direct doubleclick now, but it should do on ENTER too, I'd say...) Greetings, Manuel git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@86 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
312d234755
commit
6fef5ab191
|
@ -53,7 +53,6 @@ CCyberstellaView::CCyberstellaView()
|
|||
//{{AFX_DATA_INIT(CCyberstellaView)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
|
||||
m_pGlobalData = new CGlobalData(GetModuleHandle(NULL));
|
||||
m_bIsPause = false;
|
||||
m_pPropertiesSet = NULL;
|
||||
|
@ -95,17 +94,8 @@ void CCyberstellaView::OnInitialUpdate()
|
|||
status.Format(IDS_STATUSTEXT, m_List.GetItemCount());
|
||||
SetDlgItemText(IDC_ROMCOUNT,status);
|
||||
|
||||
//
|
||||
// Show rom path
|
||||
//
|
||||
|
||||
//ToDo: SetDlgItemText(IDC_ROMPATH, m_pGlobalData->romDir);
|
||||
|
||||
//
|
||||
// Set default button
|
||||
//
|
||||
|
||||
::SendMessage( *this, DM_SETDEFID, IDC_PLAY, 0 );
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -405,9 +395,7 @@ void CCyberstellaView::Initialize()
|
|||
m_List.SetImageList (&m_imglist, LVSIL_SMALL);
|
||||
|
||||
// Init ListCtrl
|
||||
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
||||
m_List.insertColumns();
|
||||
m_List.setPropertiesSet(m_pPropertiesSet);
|
||||
m_List.init(m_pPropertiesSet,this);
|
||||
|
||||
// Try to load the file stella.pro file
|
||||
string filename( "stella.pro" );
|
||||
|
|
|
@ -15,10 +15,10 @@ static char THIS_FILE[] = __FILE__;
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// GameList
|
||||
|
||||
GameList::GameList()
|
||||
GameList::GameList()
|
||||
: rs("GameList")
|
||||
{
|
||||
rs.Bind(path, "ROM Path", "");
|
||||
rs.Bind(m_Path, "ROM Path", "");
|
||||
}
|
||||
|
||||
GameList::~GameList()
|
||||
|
@ -29,6 +29,7 @@ BEGIN_MESSAGE_MAP(GameList, CListCtrl)
|
|||
//{{AFX_MSG_MAP(GameList)
|
||||
ON_NOTIFY_REFLECT(LVN_COLUMNCLICK, OnColumnclick)
|
||||
ON_NOTIFY_REFLECT(LVN_ITEMACTIVATE, OnItemActivate)
|
||||
ON_WM_KEYDOWN()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
@ -111,7 +112,7 @@ void GameList::populateRomList()
|
|||
deleteItemsAndProperties();
|
||||
|
||||
// Add new content
|
||||
if(path.GetLength() > 0)
|
||||
if(m_Path.GetLength() > 0)
|
||||
{
|
||||
displayPath();
|
||||
}
|
||||
|
@ -137,10 +138,10 @@ void GameList::displayPath()
|
|||
BOOL first = true;
|
||||
|
||||
// Do pathname
|
||||
if (path.GetAt(path.GetLength()-1) == '\\')
|
||||
searchpath = path + "*.*";
|
||||
if (m_Path.GetAt(m_Path.GetLength()-1) == '\\')
|
||||
searchpath = m_Path + "*.*";
|
||||
else
|
||||
searchpath = path + "\\*.*";
|
||||
searchpath = m_Path + "\\*.*";
|
||||
|
||||
bFind = find.FindFile(searchpath);
|
||||
|
||||
|
@ -235,7 +236,7 @@ void GameList::displayDrives()
|
|||
int itemCounter;
|
||||
|
||||
// Clear path
|
||||
path = "";
|
||||
m_Path = "";
|
||||
|
||||
//Enumerate drive letters and add them to list
|
||||
dwDrives = GetLogicalDrives();
|
||||
|
@ -284,28 +285,34 @@ void GameList::OnItemActivate(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
||||
if(strcmpi(props->get("Cartridge.Type").c_str(), "Dots") == 0)
|
||||
{
|
||||
int cutPos = path.ReverseFind('\\');
|
||||
path = path.Left(cutPos);
|
||||
int cutPos = m_Path.ReverseFind('\\');
|
||||
m_Path = m_Path.Left(cutPos);
|
||||
populateRomList();
|
||||
}
|
||||
else if(strcmpi(props->get("Cartridge.Type").c_str(), "Directory") == 0)
|
||||
{
|
||||
// Do pathname
|
||||
if (path.GetLength() <= 0)
|
||||
if (m_Path.GetLength() <= 0)
|
||||
{
|
||||
path = dir;
|
||||
m_Path = dir;
|
||||
}
|
||||
else if (path.GetAt(path.GetLength()-1) != '\\')
|
||||
else if (m_Path.GetAt(m_Path.GetLength()-1) != '\\')
|
||||
{
|
||||
path += "\\";
|
||||
path += dir;
|
||||
m_Path += "\\";
|
||||
m_Path += dir;
|
||||
}
|
||||
else
|
||||
{
|
||||
path += dir;
|
||||
m_Path += dir;
|
||||
}
|
||||
populateRomList();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Notify parent to play the current game by
|
||||
// sending a faked 'Play Button Pressed' message.
|
||||
if (m_pParent) m_pParent->PostMessage(WM_COMMAND, BN_CLICKED | IDC_PLAY);
|
||||
}
|
||||
}
|
||||
*pResult = 0;
|
||||
}
|
||||
|
@ -357,10 +364,10 @@ CString GameList::getCurrentFile()
|
|||
int curSel = GetSelectionMark();
|
||||
if(curSel >= 0)
|
||||
{
|
||||
if (path.GetAt(path.GetLength()-1) != '\\')
|
||||
path += "\\";
|
||||
if (m_Path.GetAt(m_Path.GetLength()-1) != '\\')
|
||||
m_Path += "\\";
|
||||
|
||||
filename = path + GetItemText(curSel,0);
|
||||
filename = m_Path + GetItemText(curSel,0);
|
||||
}
|
||||
|
||||
return filename;
|
||||
|
@ -375,4 +382,12 @@ CString GameList::getCurrentName()
|
|||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
void GameList::init(PropertiesSet* newPropertiesSet, CWnd* newParent)
|
||||
{
|
||||
m_pParent = newParent;
|
||||
m_pPropertiesSet = newPropertiesSet;
|
||||
SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
||||
insertColumns();
|
||||
}
|
|
@ -17,7 +17,8 @@ class GameList : public CListCtrl
|
|||
{
|
||||
private:
|
||||
// memebers saved in registry
|
||||
CString path;
|
||||
CString m_Path;
|
||||
CWnd* m_pParent;
|
||||
PropertiesSet* m_pPropertiesSet;
|
||||
|
||||
// Regbinding
|
||||
|
@ -31,6 +32,7 @@ private:
|
|||
// Construction
|
||||
public:
|
||||
GameList();
|
||||
virtual ~GameList();
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
@ -42,11 +44,9 @@ public:
|
|||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~GameList();
|
||||
void insertColumns();
|
||||
void populateRomList();
|
||||
void setPropertiesSet(PropertiesSet* newPropertiesSet)
|
||||
{m_pPropertiesSet = newPropertiesSet;}
|
||||
void init(PropertiesSet* newPropertiesSet, CWnd* newParent);
|
||||
void deleteItemsAndProperties();
|
||||
CString getCurrentFile();
|
||||
CString getCurrentName();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Cyberstella V1.2 by Manuel Polik
|
||||
Cyberstella V1.2
|
||||
|
||||
Currently Open Todos:
|
||||
|
||||
|
|
Loading…
Reference in New Issue