| // Copyright 2015 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. |
| |
| [DartPackage="mojo_services"] |
| module mojo.terminal; |
| |
| import "files/public/interfaces/file.mojom"; |
| import "files/public/interfaces/types.mojom"; |
| import "terminal/public/interfaces/terminal_client.mojom"; |
| |
| // Interface for actual terminal programs, in particular, for a single terminal |
| // display. For terminals that display output and are embeddable, this will |
| // typically be a service provided by the |ViewManagerClient| (see |OnEmbed()|). |
| interface Terminal { |
| // Connects to the terminal. If |force| is true, it will terminate any |
| // existing connection. The reply is sent when |terminal| is no longer |
| // connected. It is not successful only on "synchronous"/immediate failure, |
| // e.g., if something else is already connected (|force| is false). |
| Connect(mojo.files.File& terminal_file, bool force) |
| => (mojo.files.Error error); |
| |
| // Asks the terminal to connect to the given client. (|force| and response as |
| // are for |Connect()|.) |
| ConnectToClient(TerminalClient terminal_client, bool force) |
| => (mojo.files.Error error); |
| |
| // Gets the size of terminal (in number of rows/columns of text). (|rows| and |
| // |columns| are valid only on success.) |
| GetSize() => (mojo.files.Error error, uint32 rows, uint32 columns); |
| |
| // Sets the size of terminal (in number of rows/columns of text); 0 for |
| // rows or columns means to compute that automatically. If |reset| is true, it |
| // will reset (clear) the terminal. Note that it may not set exactly the |
| // requested size. (On success, the response will provide the actual set |
| // size.) |
| SetSize(uint32 rows, uint32 columns, bool reset) |
| => (mojo.files.Error error, uint32 rows, uint32 columns); |
| }; |