Skip to content

Commit

Permalink
Merge pull request #2065 from freakboy3742/textual
Browse files Browse the repository at this point in the history
Add a Textual backend.
  • Loading branch information
freakboy3742 committed Aug 19, 2023
2 parents 53bb064 + edcab76 commit 4dd84fa
Show file tree
Hide file tree
Showing 72 changed files with 833 additions and 129 deletions.
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Expand Up @@ -54,6 +54,7 @@ jobs:
- "gtk"
- "iOS"
- "toga"
- "textual"
- "web"
- "winforms"

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/publish.yml
Expand Up @@ -20,6 +20,7 @@ jobs:
- "toga_demo"
- "toga_dummy"
- "toga_gtk"
- "toga_textual"
- "toga_iOS"
- "toga_web"
- "toga_winforms"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Expand Up @@ -51,6 +51,7 @@ jobs:
- "toga_dummy"
- "toga_gtk"
- "toga_iOS"
- "toga_textual"
- "toga_web"
- "toga_winforms"
steps:
Expand Down
1 change: 1 addition & 0 deletions changes/1867.feature.rst
@@ -0,0 +1 @@
A new Textual backend was added to support terminal applications.
4 changes: 2 additions & 2 deletions docs/reference/api/app.rst
Expand Up @@ -5,8 +5,8 @@ Application
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:exclude: {0: '(?!(App|Component))'}
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Application|Component))'}

The app is the main entry point and container for the Toga GUI.

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/containers/box.rst
Expand Up @@ -7,7 +7,7 @@ A generic container for other widgets. Used to construct layouts.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Box|Component))'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/containers/optioncontainer.rst
Expand Up @@ -11,7 +11,7 @@ A container that can display multiple labeled tabs of content.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(OptionContainer|Component))'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/containers/scrollcontainer.rst
Expand Up @@ -12,7 +12,7 @@ overflow controlled by scroll bars.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(ScrollContainer|Component))'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/containers/splitcontainer.rst
Expand Up @@ -11,7 +11,7 @@ A container that divides an area into two panels with a movable border.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(SplitContainer|Component))'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/mainwindow.rst
Expand Up @@ -5,7 +5,7 @@ MainWindow
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(MainWindow|Component))'}

A window for displaying components to the user
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/resources/app_paths.rst
Expand Up @@ -8,7 +8,7 @@ application.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(App Paths|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/resources/command.rst
Expand Up @@ -5,7 +5,7 @@ Command
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Command|Component))'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/resources/fonts.rst
Expand Up @@ -5,7 +5,7 @@ Font
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Font|Component))'}

The font class is used for abstracting the platforms implementation of fonts.
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/resources/group.rst
Expand Up @@ -5,7 +5,7 @@ Group
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Group|Component))'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/resources/icons.rst
Expand Up @@ -5,7 +5,7 @@ Icon
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Icon|Component))'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/resources/images.rst
Expand Up @@ -5,7 +5,7 @@ Image
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Image|Component)$)'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/activityindicator.rst
Expand Up @@ -11,7 +11,7 @@ usually rendered as a "spinner" animation.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(ActivityIndicator|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/button.rst
Expand Up @@ -11,7 +11,7 @@ A button that can be pressed or clicked.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Button|Component))'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/canvas.rst
Expand Up @@ -5,7 +5,7 @@ Canvas
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Canvas|Component))'}

The canvas is used for creating a blank widget that you can draw on.
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/dateinput.rst
Expand Up @@ -11,7 +11,7 @@ A widget to select a calendar date.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(DateInput|Component))'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/detailedlist.rst
Expand Up @@ -5,7 +5,7 @@ DetailedList
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(DetailedList|Component))'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/divider.rst
Expand Up @@ -10,7 +10,7 @@ A separator used to visually distinguish two sections of content in a layout.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Divider|Component))'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/imageview.rst
Expand Up @@ -5,7 +5,7 @@ ImageView
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(ImageView|Component)$)'}

A widget that displays an image.
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/label.rst
Expand Up @@ -10,7 +10,7 @@ A text label for annotating forms or interfaces.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Label|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/multilinetextinput.rst
Expand Up @@ -11,7 +11,7 @@ A scrollable panel that allows for the display and editing of multiple lines of
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(MultilineTextInput|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/numberinput.rst
Expand Up @@ -10,7 +10,7 @@ A text input that is limited to numeric input.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(NumberInput|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/passwordinput.rst
Expand Up @@ -13,7 +13,7 @@ not the actual characters.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(PasswordInput|Component)$)'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/progressbar.rst
Expand Up @@ -11,7 +11,7 @@ known or indeterminate length.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(ProgressBar|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/selection.rst
Expand Up @@ -10,7 +10,7 @@ A widget to select a single option from a list of alternatives.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Selection|Component)$)'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/slider.rst
Expand Up @@ -12,7 +12,7 @@ and the selected value is shown as a draggable marker.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Slider|Component)$)'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/switch.rst
Expand Up @@ -12,7 +12,7 @@ unchecked). The button has a text label.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Switch|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/table.rst
Expand Up @@ -5,7 +5,7 @@ Table
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Table|Component)$)'}

The table widget is a widget for displaying tabular data. It can be instantiated with the list of headings and then data rows
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/textinput.rst
Expand Up @@ -11,7 +11,7 @@ A widget for the display and editing of a single line of text.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(TextInput|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/timeinput.rst
Expand Up @@ -11,7 +11,7 @@ A widget to select a clock time.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(TimeInput|Component))'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/tree.rst
Expand Up @@ -5,7 +5,7 @@ Tree
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Tree|Component)$)'}

The tree widget is still under development.
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/webview.rst
Expand Up @@ -10,7 +10,7 @@ An embedded web browser.
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(WebView|Component)$)'}

Usage
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/widgets/widget.rst
Expand Up @@ -7,7 +7,7 @@ The abstract base class of all widgets. This class should not be be instantiated
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!^(Widget|Component)$)'}


Expand Down
2 changes: 1 addition & 1 deletion docs/reference/api/window.rst
Expand Up @@ -5,7 +5,7 @@ Window
.. csv-filter:: Availability (:ref:`Key <api-status-key>`)
:header-rows: 1
:file: ../data/widgets_by_platform.csv
:included_cols: 4,5,6,7,8,9
:included_cols: 4,5,6,7,8,9,10
:exclude: {0: '(?!(Window|Component))'}

A window for displaying components to the user
Expand Down

0 comments on commit 4dd84fa

Please sign in to comment.