blob: a09ac6b3080a6604285932aae3031c4ae10c1441 [file] [log] [blame]
// 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);
};