Added the open session file dialog implementation.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@149 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index 134bdee..d4fe41c 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -274,6 +274,27 @@
case WM_COMMAND:
switch (LOWORD(wParam)) {
+ case ID_OPENFILE:
+ {
+ char curDir[_MAX_DIR];
+ static char filename[_MAX_PATH];
+ OPENFILENAME ofn;
+ memset((void *) &ofn, 0, sizeof(OPENFILENAME));
+ GetCurrentDirectory(sizeof(curDir), curDir);
+
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = getMainHandle();
+ ofn.lpstrFile = filename;
+ ofn.nMaxFile = sizeof(filename);
+ ofn.lpstrInitialDir = curDir;
+ ofn.lpstrFilter = "Rfb Session files (*.rfb)\0*.rfb\0" \
+ "All files (*.*)\0*.*\0";
+ ofn.lpstrDefExt = "rfb";
+ ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
+ if (GetOpenFileName(&ofn))
+ openSessionFile(filename);
+ }
+ break;
case ID_PLAY:
setPaused(false);
break;
@@ -852,6 +873,7 @@
// Close the previous reading thread
if (rfbReader) {
+ is->resumePlayback();
delete rfbReader->join();
}
blankBuffer();
@@ -859,6 +881,7 @@
setSpeed(playbackSpeed);
rfbReader = new rfbSessionReader(this);
rfbReader->start();
+ SendMessage(posTrackBar, TBM_SETPOS, TRUE, 0);
}
void RfbPlayer::setPaused(bool paused) {
diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h
index 8ffa044..9a3e519 100644
--- a/rfbplayer/rfbplayer.h
+++ b/rfbplayer/rfbplayer.h
@@ -18,6 +18,7 @@
// -=- RfbPlayer.h
+#include <commdlg.h>
#include <windows.h>
#include <rfb_win32/DIBSectionBuffer.h>