chromium/remoting/ios/app/settings/remoting_settings_view_controller.h

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_IOS_APP_SETTINGS_REMOTING_SETTINGS_VIEW_CONTROLLER_H_
#define REMOTING_IOS_APP_SETTINGS_REMOTING_SETTINGS_VIEW_CONTROLLER_H_

#import <MaterialComponents/MaterialCollections.h>

#include "remoting/client/gesture_interpreter.h"

@protocol RemotingSettingsViewControllerDelegate<NSObject>

@optional  // Applies to all methods.

// Sets the setting to resize the host to fix the client window.
- (void)setResizeToFit:(BOOL)resizeToFit;
// Use the direct input mode for the current connection.
- (void)useDirectInputMode;
// Use the trackpad input mode for the current connection.
- (void)useTrackpadInputMode;
// Sends the key combo ctrl + alt + del to the host.
- (void)sendCtrAltDel;
// Sends the key Print Screen to the host.
- (void)sendPrintScreen;
// Sends feedback to the developers.
- (void)sendFeedback;

@end

// |RemotingSettingsViewController| is intended to be reinitialized before it
// is displayed. It only synchronizes to the delegate.
// TODO(nicholss): Perhaps we should remove the internal settings storage and
// get the state from the delegate directly. It will remove the sync issue.
@interface RemotingSettingsViewController : MDCCollectionViewController

@property(weak, nonatomic) id<RemotingSettingsViewControllerDelegate> delegate;
@property(nonatomic) remoting::GestureInterpreter::InputMode inputMode;
@property(nonatomic) BOOL shouldResizeHostToFit;

@end

#endif  // REMOTING_IOS_APP_SETTINGS_REMOTING_SETTINGS_VIEW_CONTROLLER_H_