From 0b3f80d231e504a0d942ecb694e81dc3d0d15ca2 Mon Sep 17 00:00:00 2001 From: Nikolay Nikolov Date: Sun, 20 Oct 2024 13:24:29 +0300 Subject: [PATCH] + added unit System.Terminal.KeyboardInput --- packages/fcl-fpterm/fpmake.pp | 6 ++ .../src/system.terminal.keyboardinput.pas | 65 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 packages/fcl-fpterm/src/system.terminal.keyboardinput.pas diff --git a/packages/fcl-fpterm/fpmake.pp b/packages/fcl-fpterm/fpmake.pp index 99bd6682dd..e29d80fe2e 100644 --- a/packages/fcl-fpterm/fpmake.pp +++ b/packages/fcl-fpterm/fpmake.pp @@ -60,6 +60,12 @@ begin AddUnit('system.terminal.logger'); end; + T:=P.Targets.AddUnit('system.terminal.keyboardinput.pas'); + with T.Dependencies do + begin + AddUnit('system.terminal.base'); + end; + //P.NamespaceMap:='namespaces.lst'; {$ifndef ALLPACKAGES} diff --git a/packages/fcl-fpterm/src/system.terminal.keyboardinput.pas b/packages/fcl-fpterm/src/system.terminal.keyboardinput.pas new file mode 100644 index 0000000000..fa941b5f73 --- /dev/null +++ b/packages/fcl-fpterm/src/system.terminal.keyboardinput.pas @@ -0,0 +1,65 @@ +{ This file is part of fpterm - a terminal emulator, written in Free Pascal + + This unit defines a keyboard device for the terminal. + + Copyright (C) 2024 Nikolay Nikolov + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version with the following modification: + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules,and + to copy and distribute the resulting executable under terms of your choice, + provided that you also meet, for each linked independent module, the terms + and conditions of the license of that module. An independent module is a + module which is not derived from or based on this library. If you modify + this library, you may extend this exception to your version of the library, + but you are not obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License + for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. +} + +unit System.Terminal.KeyboardInput; + +{$mode objfpc}{$H+} + +interface + +uses + System.Terminal.Base; + +type + + { TTerminalKeyboardInput } + + TTerminalKeyboardInput = class + protected + function IsEventAvailable: Boolean; virtual; abstract; + public + constructor Create; virtual; + + procedure GetEvent(out Event: TKeyEvent); virtual; abstract; + property EventAvailable: Boolean read IsEventAvailable; + end; + +implementation + +{ TTerminalKeyboardInput } + +constructor TTerminalKeyboardInput.Create; +begin +end; + +end. +