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

Unified Diff: remoting/ios/ui/host_view_controller.h

Issue 278863003: Chromoting iOS client (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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/ios/ui/host_list_view_controller_unittest.mm ('k') | remoting/ios/ui/host_view_controller.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/ios/ui/host_view_controller.h
diff --git a/remoting/ios/ui/host_view_controller.h b/remoting/ios/ui/host_view_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..6e0f2879488061126ba81c1eb91044e853bf8cb1
--- /dev/null
+++ b/remoting/ios/ui/host_view_controller.h
@@ -0,0 +1,115 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_IOS_UI_HOST_VIEW_CONTROLLER_H_
+#define REMOTING_IOS_UI_HOST_VIEW_CONTROLLER_H_
+
+#import <GLKit/GLKit.h>
+
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/scoped_vector.h"
+
+#import "remoting/ios/host.h"
+#import "remoting/ios/key_input.h"
+#import "remoting/ios/utility.h"
+#import "remoting/ios/bridge/host_proxy.h"
+#import "remoting/ios/ui/desktop_texture.h"
+#import "remoting/ios/ui/cursor_texture.h"
+#import "remoting/ios/ui/pin_entry_view_controller.h"
+#import "remoting/ios/ui/scene_view.h"
+
+@interface HostViewController
+ : GLKViewController<PinEntryViewControllerDelegate,
+ KeyInputDelegate,
+ // Communication channel from HOST to CLIENT
+ ClientProxyDelegate,
+ UIGestureRecognizerDelegate,
+ UIToolbarDelegate> {
+ @private
+ IBOutlet UIActivityIndicatorView* _busyIndicator;
+ IBOutlet UIButton* _barBtnDisconnect;
+ IBOutlet UIButton* _barBtnKeyboard;
+ IBOutlet UIButton* _barBtnNavigation;
+ IBOutlet UIButton* _barBtnCtrlAltDel;
+ IBOutlet UILongPressGestureRecognizer* _longPressRecognizer;
+ IBOutlet UIPanGestureRecognizer* _panRecognizer;
+ IBOutlet UIPanGestureRecognizer* _threeFingerPanRecognizer;
+ IBOutlet UIPinchGestureRecognizer* _pinchRecognizer;
+ IBOutlet UITapGestureRecognizer* _singleTapRecognizer;
+ IBOutlet UITapGestureRecognizer* _twoFingerTapRecognizer;
+ IBOutlet UITapGestureRecognizer* _threeFingerTapRecognizer;
+ IBOutlet UIToolbar* _toolbar;
+ IBOutlet UIToolbar* _hiddenToolbar;
+ IBOutlet NSLayoutConstraint* _toolBarYPosition;
+ IBOutlet NSLayoutConstraint* _hiddenToolbarYPosition;
+
+ KeyInput* _keyEntryView;
+ NSString* _statusMessage;
+
+ // The GLES2 context being drawn too.
+ EAGLContext* _context;
+
+ // GLKBaseEffect encapsulates the GL Shaders needed to draw at most two
+ // textures |_textureIds| given vertex information. The draw surface consists
+ // of two layers (GL Textures). The bottom layer is the desktop of the HOST.
+ // The top layer is mostly transparent and is used to overlay the current
+ // cursor.
+ GLKBaseEffect* _effect;
+
+ // All the details needed to draw our GL Scene, and our two textures.
+ SceneView* _scene;
+ DesktopTexture* _desktop;
+ CursorTexture* _mouse;
+
+ // List of regions and data that have pending draws to |_desktop| .
+ ScopedVector<GLRegion> _glRegions;
+
+ // Lock for |_glRegions|, regions are delivered from HOST on another thread,
+ // and drawn to |_desktop| from a GL Context thread
+ NSLock* _glBufferLock;
+
+ // Lock for |_mouse.cursor|, cursor updates are delivered from HOST on another
+ // thread, and drawn to |_mouse| from a GL Context thread
+ NSLock* _glCursorLock;
+
+ // Communication channel from CLIENT to HOST
+ HostProxy* _clientToHostProxy;
+}
+
+// Details for the host and user
+@property(nonatomic, readonly) Host* host;
+@property(nonatomic, readonly) NSString* userEmail;
+@property(nonatomic, readonly) NSString* userAuthorizationToken;
+
+- (void)setHostDetails:(Host*)host
+ userEmail:(NSString*)userEmail
+ authorizationToken:(NSString*)authorizationToken;
+
+// Zoom in/out
+- (IBAction)pinchGestureTriggered:(UIPinchGestureRecognizer*)sender;
+// Left mouse click, moves cursor
+- (IBAction)tapGestureTriggered:(UITapGestureRecognizer*)sender;
+// Scroll the view in 2d
+- (IBAction)panGestureTriggered:(UIPanGestureRecognizer*)sender;
+// Right mouse click and drag, moves cursor
+- (IBAction)longPressGestureTriggered:(UILongPressGestureRecognizer*)sender;
+// Right mouse click
+- (IBAction)twoFingerTapGestureTriggered:(UITapGestureRecognizer*)sender;
+// Middle mouse click
+- (IBAction)threeFingerTapGestureTriggered:(UITapGestureRecognizer*)sender;
+// Show hidden menus. Swipe up for keyboard, swipe down for navigation menu
+- (IBAction)threeFingerPanGestureTriggered:(UIPanGestureRecognizer*)sender;
+
+// Do navigation 'back'
+- (IBAction)barBtnNavigationBackPressed:(id)sender;
+// Show keyboard
+- (IBAction)barBtnKeyboardPressed:(id)sender;
+// Trigger |_toolbar| animation
+- (IBAction)barBtnToolBarHidePressed:(id)sender;
+// Send Keys for ctrl, atl, delete
+- (IBAction)barBtnCtrlAltDelPressed:(id)sender;
+
+@end
+
+#endif // REMOTING_IOS_UI_HOST_VIEW_CONTROLLER_H_
« no previous file with comments | « remoting/ios/ui/host_list_view_controller_unittest.mm ('k') | remoting/ios/ui/host_view_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698