Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Unified Diff: remoting/host/disconnect_window_win.cc

Issue 10384127: Chromoting: the Me2me host now presents a notification on the console allowing a user to disconnect… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Unix-line endings. The license text. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/disconnect_window_mac.mm ('k') | remoting/host/host_mock_objects.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/disconnect_window_win.cc
diff --git a/remoting/host/disconnect_window_win.cc b/remoting/host/disconnect_window_win.cc
index 42e703f4d07aba30d68af53e572142494d1cccf8..06434a874a33e136540f2da44c8fdb8a11a3dac6 100644
--- a/remoting/host/disconnect_window_win.cc
+++ b/remoting/host/disconnect_window_win.cc
@@ -14,9 +14,7 @@
#include "base/win/scoped_hdc.h"
#include "base/win/scoped_select_object.h"
#include "remoting/host/chromoting_host.h"
-// TODO(wez): The DisconnectWindow isn't plugin-specific, so shouldn't have
-// a dependency on the plugin's resource header.
-#include "remoting/host/plugin/host_plugin_resource.h"
+#include "remoting/host/host_ui_resource.h"
#include "remoting/host/ui_strings.h"
// TODO(garykac): Lots of duplicated code in this file and
@@ -39,7 +37,8 @@ class DisconnectWindowWin : public DisconnectWindow {
DisconnectWindowWin();
virtual ~DisconnectWindowWin();
- virtual void Show(remoting::ChromotingHost* host,
+ virtual void Show(ChromotingHost* host,
+ const DisconnectCallback& disconnect_callback,
const std::string& username) OVERRIDE;
virtual void Hide() OVERRIDE;
@@ -50,10 +49,10 @@ private:
BOOL OnDialogMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
void ShutdownHost();
- void EndDialog(int result);
+ void EndDialog();
void SetStrings(const UiStrings& strings, const std::string& username);
- remoting::ChromotingHost* host_;
+ DisconnectCallback disconnect_callback_;
HWND hwnd_;
bool has_hotkey_;
base::win::ScopedGDIObject<HPEN> border_pen_;
@@ -62,15 +61,14 @@ private:
};
DisconnectWindowWin::DisconnectWindowWin()
- : host_(NULL),
- hwnd_(NULL),
+ : hwnd_(NULL),
has_hotkey_(false),
border_pen_(CreatePen(PS_SOLID, 5,
RGB(0.13 * 255, 0.69 * 255, 0.11 * 255))) {
}
DisconnectWindowWin::~DisconnectWindowWin() {
- EndDialog(0);
+ EndDialog();
}
BOOL CALLBACK DisconnectWindowWin::DialogProc(HWND hwnd, UINT msg,
@@ -100,8 +98,8 @@ BOOL DisconnectWindowWin::OnDialogMessage(HWND hwnd, UINT msg,
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_DISCONNECT:
+ EndDialog();
ShutdownHost();
- EndDialog(LOWORD(wParam));
return TRUE;
}
return FALSE;
@@ -113,8 +111,8 @@ BOOL DisconnectWindowWin::OnDialogMessage(HWND hwnd, UINT msg,
// Handle the disconnect hot-key.
case WM_HOTKEY:
+ EndDialog();
ShutdownHost();
- EndDialog(0);
return TRUE;
// Let the window be draggable by its client area by responding
@@ -143,9 +141,10 @@ BOOL DisconnectWindowWin::OnDialogMessage(HWND hwnd, UINT msg,
}
void DisconnectWindowWin::Show(ChromotingHost* host,
+ const DisconnectCallback& disconnect_callback,
const std::string& username) {
CHECK(!hwnd_);
- host_ = host;
+ disconnect_callback_ = disconnect_callback;
// Load the dialog resource so that we can modify the RTL flags if necessary.
// This is taken from chrome/default_plugin/install_dialog.cc
@@ -203,8 +202,8 @@ void DisconnectWindowWin::Show(ChromotingHost* host,
}
void DisconnectWindowWin::ShutdownHost() {
- CHECK(host_);
- host_->Shutdown(base::Closure());
+ CHECK(!disconnect_callback_.is_null());
+ disconnect_callback_.Run();
}
static int GetControlTextWidth(HWND control) {
@@ -275,17 +274,17 @@ void DisconnectWindowWin::SetStrings(const UiStrings& strings,
}
void DisconnectWindowWin::Hide() {
- EndDialog(0);
+ EndDialog();
}
-void DisconnectWindowWin::EndDialog(int result) {
+void DisconnectWindowWin::EndDialog() {
if (has_hotkey_) {
UnregisterHotKey(hwnd_, DISCONNECT_HOTKEY_ID);
has_hotkey_ = false;
}
if (hwnd_) {
- ::EndDialog(hwnd_, result);
+ ::DestroyWindow(hwnd_);
hwnd_ = NULL;
}
}
« no previous file with comments | « remoting/host/disconnect_window_mac.mm ('k') | remoting/host/host_mock_objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698