mirror of
https://github.com/jtdaugherty/brick.git
synced 2025-01-08 15:08:46 +03:00
docs: more intro updates
This commit is contained in:
parent
2324ab8e46
commit
eb8238990b
@ -87,7 +87,6 @@ To use the library we must provide it with a value of type
|
|||||||
various functions:
|
various functions:
|
||||||
|
|
||||||
.. code:: haskell
|
.. code:: haskell
|
||||||
:linenos:
|
|
||||||
|
|
||||||
data App s e =
|
data App s e =
|
||||||
App { appDraw :: s -> [Widget]
|
App { appDraw :: s -> [Widget]
|
||||||
@ -98,11 +97,29 @@ various functions:
|
|||||||
, appLiftVtyEvent :: Event -> e
|
, appLiftVtyEvent :: Event -> e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
The ``App`` type is polymorphic over two types: your application state
|
||||||
|
type ``s`` and event type ``e``.
|
||||||
|
|
||||||
|
The application state type is the type of data that will evolve over the
|
||||||
|
course of the application's execution; we will provide the library with
|
||||||
|
its starting value and event handling will transform it as the program
|
||||||
|
executes.
|
||||||
|
|
||||||
|
The event type is the type of events that your event handler
|
||||||
|
(``appHandleEvent``) will handle. The underlying ``vty`` library
|
||||||
|
provides ``Graphics.Vty.Event``, and this forms the basis of all events
|
||||||
|
we will handle with ``brick`` applications. However, that is often not
|
||||||
|
enough. Imagine an application with multiple threads and network or
|
||||||
|
disk I/O. Such an application will need to have its own internal events
|
||||||
|
to pass to the event handler as (for example) network data arrives. To
|
||||||
|
accomodate this we allow an ``App`` to use an event type of your own
|
||||||
|
design, so long as it provides a constructor for ``vty``'s ``Event``
|
||||||
|
type (``appLiftVtyEvent``).
|
||||||
|
|
||||||
The various fields of ``App`` will be described in the sections below.
|
The various fields of ``App`` will be described in the sections below.
|
||||||
|
|
||||||
Once we have declared an ``App``, we can pass it to
|
To run an ``App``, we pass it to ``Brick.Main.defaultMain`` or
|
||||||
``Brick.Main.defaultMain`` or ``Brick.Main.customMain`` to begin running
|
``Brick.Main.customMain``.
|
||||||
the application.
|
|
||||||
|
|
||||||
appDraw: Drawing an Interface
|
appDraw: Drawing an Interface
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user