Provided by: libtickit-dev_0.4.3-2_amd64 bug

NAME

       tickit - Terminal Interface Construction KIT

SYNOPSIS

       #include <tickit.h>

       typedef struct Tickit;

DESCRIPTION

       tickit  is  a  library  for  building full-screen interactive programs that use a terminal
       interface. A program using  this  library  would  start  by  creating  a  toplevel  Tickit
       instance,  from  which  one  or  more divisions of the terminal area, called "windows" are
       created. These form a heirarchial tree that subdivides the content area  into  independent
       regions  that  can be managed by different parts of the program structure. Each window can
       react to input events such as keyboard or mouse interaction.

       As well as creating the initial root window, the toplevel Tickit instance also performs  a
       few  other  jobs for the containing program. It can act as a containing event loop for the
       program, performing IO multiplexing tasks both for tickit's own needs and the needs of the
       program as a whole.

FUNCTIONS

       A  new  toplevel  instance  is  created  by  using tickit_build(3), tickit_new_stdio(3) or
       tickit_new_stdtty(3). A toplevel instance stores a reference count to make it  easier  for
       applications  to  manage its lifetime. A new toplevel instance starts with a count of one,
       and it can be adjusted using tickit_ref(3) and tickit_unref(3).  When  the  count  reaches
       zero the instance is destroyed.

       The  toplevel  instance manages a tree of TickitWindow instances. The root of this tree is
       obtained by tickit_get_rootwin(3) and thereafter can be divided further by other functions
       on the window, described more in tickit_window(7).

       The   TickitTerm   instance   behind   the   toplevel   instance   can   be   obtained  by
       tickit_get_term(3), and is described more in tickit_term(7).

       Event handling callback functions can be installed to be called at a later time, by  using
       tickit_watch_io(3),    tickit_watch_timer_after_msec(3),   tickit_watch_timer_after_tv(3),
       tickit_watch_later(3), tickit_watch_signal(3)  or  tickit_watch_process(3).  The  main  IO
       event loop is controlled using tickit_run(3) and tickit_stop(3).

       The compile-time and run-time version of the library can be inspected using the macros and
       functions described in tickit_version(7).

TYPICAL STRUCTURE

       A typical program using this library would start by creating  the  toplevel  instance,  by
       calling   tickit_new_stdtty(3),   then   obtain   its   root   window  on  it  by  calling
       tickit_get_rootwin(3). This root window can then be sub-divided into regions  of  interest
       by  calling  tickit_window_new(3)  to  build  a tree of windows. Window can then have some
       event handlers attached by calling tickit_window_bind_event(3) - each window will need  to
       handle  the  TICKIT_WINDOW_ON_EXPOSE event, but might also wish to handle other kinds like
       geometry change for dynamic resizing, or  keyboard  or  mouse  to  react  to  user  input.
       Finally,  once  the initial window tree is created, the program would enter the main event
       loop by invoking tickit_run(3).

COMMON TYPES

       The flags argument to the various tickit_..._bind_event() functions should be zero,  or  a
       bitmask of the following constants.

       typedef enum {
         TICKIT_BIND_FIRST,
         TICKIT_BIND_UNBIND,
         TICKIT_BIND_DESTROY,
         TICKIT_BIND_ONESHOT,
       } TickitBindFlags;

       TICKIT_BIND_FIRST indicates that this handler should be inserted at the start of the list,
       rather than the default position at the end.

       TICKIT_BIND_UNBIND indicates that this handler should also be invoked at the  time  it  is
       unbound,  either  due  to  a  specific  call to the tickit_..._unbind_event() function, or
       because the bound object is being destroyed.

       TICKIT_BIND_DESTROY indicates that this handler should also be invoked at  the  time  that
       the bound object is being destroyed.

       TICKIT_BIND_ONESHOT  indicates that the handler should be invoke at-most once, and unbound
       the first time it is invoked. When invoked it will receive  both  the  TICKIT_EV_FIRE  and
       TICKIT_EV_UNBIND flags at once.

       Some  API  functions  take  or  return  the  following enum type, to represent a tri-state
       extended boolean concept of true, false, or some third condition  typically  indicating  a
       "don't  care"  or "unknown" state; the exact semantics will vary between specific uses and
       should be documented specifically.

       typedef enum {
         TICKIT_YES = 1,
         TICKIT_NO = 0,
         TICKIT_MAYBE = -1,
       } TickitMaybeBool;

       The various tickit_*ctl_type() and tickit_pen_attrtype(3) functions return  the  following
       enum type, to indicate what type of value each individual control or attribute takes.

       typedef enum {
         TICKIT_TYPE_NONE,
         TICKIT_TYPE_BOOL,
         TICKIT_TYPE_INT,
         TICKIT_TYPE_COLOUR,
       } TickitType;

COMMON EVENTS

       Every  object  instance  that  supports  events  supports  the following type of event, in
       addition to the specific ones listed for that kind of object:

       TICKIT_..._ON_DESTROY
              Invoked when the object instance is being destroyed. This will be the last time the
              application  can  use  the  stored  data  argument;  it  may  perform  any resource
              reclaiming operations that are required at this time.

EVENT FLAGS

       When an event handler function is invoked, it is passed a bitmask of flags to indicate the
       reason for its invocation.

       typedef enum {
         TICKIT_EV_FIRE,
         TICKIT_EV_UNBIND,
         TICKIT_EV_DESTROY,
       } TickitEventFlags;

       TICKIT_EV_FIRE
              This  handler  is being invoked because its associated event has occurred. The info
              pointer will point to a structure containing the relevant information.

       TICKIT_EV_UNBIND
              This handler is being invoked because it is being removed  from  the  object.  This
              will  only  be  observed if it was bound with the TICKIT_BIND_UNBIND flag. The info
              pointer will be NULL.

       TICKIT_EV_DESTROY
              This handler  is  being  invoked  because  the  object  instance  itself  is  being
              destroyed. This will be observed if it was bound with the TICKIT_BIND_DESTROY flag,
              or because it is bound to the TICKIT_..._ON_DESTROY event. The info pointer will be
              NULL.

              Any  event  handlers for this event will be invoked in reverse order; the newest is
              run first and the oldest last.

CONTROLS

       A toplevel instance has a number of runtime-configuration control options that affect  its
       behaviour.   These   can   be   set   using   tickit_setctl_int(3),   and   queried  using
       tickit_getctl_int(3). The individual controls have human-readable string names that can be
       obtained  by  tickit_ctl_name(3) and searched by name using tickit_ctl_lookup(3). The type
       of a control option can be queried using tickit_ctl_type(3).

       The options are given in an enumeration called TickitCtl. The following control values are
       recognised:

       TICKIT_CTL_USE_ALTSCREEN (bool)
              The  value  is a boolean indicating whether the instance will activate the terminal
              alternate screen buffer mode when started.

SEE ALSO

       tickit_window(7),  tickit_term(7),   tickit_pen(7),   tickit_rect(7),   tickit_rectset(7),
       tickit_renderbuffer(7), tickit_string(7), tickit_utf8_count(3), tickit_version(7)

                                                                                        TICKIT(7)