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

Unified Diff: remoting/host/disconnect_window_mac.mm

Issue 13212009: Made DesktopEnvironment responsible for creation of the disconnect window. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More Mac fixes. Created 7 years, 9 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
Index: remoting/host/disconnect_window_mac.mm
diff --git a/remoting/host/disconnect_window_mac.mm b/remoting/host/disconnect_window_mac.mm
index bc3015afed7c9af0cd44e10954e79c3914d23274..7fdb2504f2e02cc7cd85df0ad0cef0b4bdcc6e25 100644
--- a/remoting/host/disconnect_window_mac.mm
+++ b/remoting/host/disconnect_window_mac.mm
@@ -6,10 +6,13 @@
#import "remoting/host/disconnect_window_mac.h"
+#include "base/bind.h"
#include "base/compiler_specific.h"
+#include "base/memory/weak_ptr.h"
#include "base/string_util.h"
#include "base/strings/sys_string_conversions.h"
-#include "remoting/host/disconnect_window.h"
+#include "remoting/host/client_session_control.h"
+#include "remoting/host/host_window.h"
#include "remoting/host/ui_strings.h"
@interface DisconnectWindowController()
@@ -17,58 +20,66 @@
- (void)Hide;
@end
+const int kMaximumConnectedNameWidthInPixels = 400;
+
namespace remoting {
-class DisconnectWindowMac : public remoting::DisconnectWindow {
+class DisconnectWindowMac : public HostWindow {
public:
- explicit DisconnectWindowMac(const UiStrings* ui_strings);
+ explicit DisconnectWindowMac(const UiStrings& ui_strings);
virtual ~DisconnectWindowMac();
- virtual bool Show(const base::Closure& disconnect_callback,
- const std::string& username) OVERRIDE;
- virtual void Hide() OVERRIDE;
+ // HostWindow overrides.
+ virtual void Start(
+ const base::WeakPtr<ClientSessionControl>& client_session_control)
+ OVERRIDE;
private:
- DisconnectWindowController* window_controller_;
+ // Localized UI strings.
+ UiStrings ui_strings_;
- // Points to the localized strings.
- const UiStrings* ui_strings_;
+ DisconnectWindowController* window_controller_;
DISALLOW_COPY_AND_ASSIGN(DisconnectWindowMac);
};
-DisconnectWindowMac::DisconnectWindowMac(const UiStrings* ui_strings)
- : window_controller_(nil),
- ui_strings_(ui_strings) {
+DisconnectWindowMac::DisconnectWindowMac(const UiStrings& ui_strings)
+ : ui_strings_(ui_strings),
+ window_controller_(NULL) {
Sergey Ulanov 2013/04/04 00:10:03 s/NULL/nil/
alexeypa (please no reviews) 2013/04/04 16:56:40 Done.
}
DisconnectWindowMac::~DisconnectWindowMac() {
- Hide();
-}
+ DCHECK(CalledOnValidThread());
-bool DisconnectWindowMac::Show(const base::Closure& disconnect_callback,
- const std::string& username) {
- DCHECK(!disconnect_callback.is_null());
- DCHECK(window_controller_ == nil);
+ // DisconnectWindowController is responsible for releasing itself in its
+ // windowWillClose: method.
+ [window_controller_ Hide];
+ window_controller_ = nil;
+}
+void DisconnectWindowMac::Start(
+ const base::WeakPtr<ClientSessionControl>& client_session_control) {
+ DCHECK(CalledOnValidThread());
+ DCHECK(client_session_control);
+ DCHECK(!disconnect_window_);
+
+ // Create the window.
+ base::Closure disconnect_callback =
+ base::Bind(&ClientSessionControl::DisconnectSession,
+ client_session_control);
+ std::string client_jid = client_session_control->client_jid();
+ std::string username = client_jid.substr(0, client_jid.find('/'));
window_controller_ =
- [[DisconnectWindowController alloc] initWithUiStrings:ui_strings_
+ [[DisconnectWindowController alloc] initWithUiStrings:&ui_strings_
callback:disconnect_callback
username:username];
[window_controller_ showWindow:nil];
- return true;
-}
-
-void DisconnectWindowMac::Hide() {
- // DisconnectWindowController is responsible for releasing itself in its
- // windowWillClose: method.
- [window_controller_ Hide];
- window_controller_ = nil;
}
-scoped_ptr<DisconnectWindow> DisconnectWindow::Create(
- const UiStrings* ui_strings) {
- return scoped_ptr<DisconnectWindow>(new DisconnectWindowMac(ui_strings));
+// static
+scoped_ptr<HostWindow> HostWindow::CreateDisconnectWindow(
+ const UiStrings& ui_strings) {
+ return scoped_ptr<HostWindow>(new DisconnectWindowMac(ui_strings));
}
} // namespace remoting
@@ -120,10 +131,8 @@ scoped_ptr<DisconnectWindow> DisconnectWindow::Create(
CGFloat newConnectedWidth = NSWidth(connectedToFrame);
// Set a max width for the connected to text field.
- if (newConnectedWidth >
- remoting::DisconnectWindow::kMaximumConnectedNameWidthInPixels) {
- newConnectedWidth
- = remoting::DisconnectWindow::kMaximumConnectedNameWidthInPixels;
+ if (newConnectedWidth > kMaximumConnectedNameWidthInPixels) {
+ newConnectedWidth = kMaximumConnectedNameWidthInPixels;
connectedToFrame.size.width = newConnectedWidth;
[connectedToField_ setFrame:connectedToFrame];
}

Powered by Google App Engine
This is Rietveld 408576698