FreeRDP
RDPSessionViewController.h
1 /*
2  RDP Session View Controller
3 
4  Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
5 
6  This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
7  If a copy of the MPL was not distributed with this file, You can obtain one at
8  http://mozilla.org/MPL/2.0/.
9  */
10 
11 #import <UIKit/UIKit.h>
12 #import "RDPSession.h"
13 #import "RDPKeyboard.h"
14 #import "RDPSessionView.h"
15 #import "TouchPointerView.h"
16 #import "AdvancedKeyboardView.h"
17 
19  : UIViewController <RDPSessionDelegate, TouchPointerDelegate, AdvancedKeyboardDelegate,
20  RDPKeyboardDelegate, UIScrollViewDelegate, UITextFieldDelegate>
21 {
22  // scrollview that hosts the rdp session view
23  IBOutlet UIScrollView *_session_scrollview;
24 
25  // rdp session view
26  IBOutlet RDPSessionView *_session_view;
27 
28  // touch pointer view
29  IBOutlet TouchPointerView *_touchpointer_view;
30  BOOL _autoscroll_with_touchpointer;
31  BOOL _is_autoscrolling;
32 
33  // rdp session toolbar
34  IBOutlet UIToolbar *_session_toolbar;
35  BOOL _session_toolbar_visible;
36 
37  // dummy text field used to display the keyboard
38  IBOutlet UITextField *_dummy_textfield;
39 
40  // connecting view and the controls within that view
41  IBOutlet UIView *_connecting_view;
42  IBOutlet UILabel *_lbl_connecting;
43  IBOutlet UIActivityIndicatorView *_connecting_indicator_view;
44  IBOutlet UIButton *_cancel_connect_button;
45 
46  // extended keyboard toolbar
47  UIToolbar *_keyboard_toolbar;
48 
49  // rdp session
50  RDPSession *_session;
51  BOOL _session_initilized;
52 
53  // flag that indicates whether the keyboard is visible or not
54  BOOL _keyboard_visible;
55 
56  // flag to switch between left/right mouse button mode
57  BOOL _toggle_mouse_button;
58 
59  // keyboard extension view
60  AdvancedKeyboardView *_advanced_keyboard_view;
61  BOOL _advanced_keyboard_visible;
62  BOOL _requesting_advanced_keyboard;
63  CGFloat _keyboard_last_height;
64 
65  // delayed mouse move event sending
66  NSTimer *_mouse_move_event_timer;
67  int _mouse_move_events_skipped;
68  CGPoint _prev_long_press_position;
69 }
70 
71 - (id)initWithNibName:(NSString *)nibNameOrNil
72  bundle:(NSBundle *)nibBundleOrNil
73  session:(RDPSession *)session;
74 
75 @end