Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TICKIT(7)	       Miscellaneous Information Manual		     TICKIT(7)

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 re-
       gions that can be managed by different parts of the program  structure.
       Each  window can	react to input events such as keyboard or mouse	inter-
       action.

       As well as creating the initial root window, the	 toplevel  Tickit  in-
       stance  also  performs  a few other jobs	for the	containing program. It
       can act as a containing event loop for the program, performing IO  mul-
       tiplexing  tasks	 both for tickit's own needs and the needs of the pro-
       gram 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_af-
       ter_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_win-
       dow_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  be-
       ing 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 con-
       dition  typically indicating a "don't care" or "unknown"	state; the ex-
       act 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 re-
       turn the	following enum type, to	indicate what type of value each indi-
       vidual 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  ob-
       ject:

       TICKIT_..._ON_DESTROY
	      Invoked  when  the object	instance is being destroyed. This will
	      be the last time the application can use the stored  data	 argu-
	      ment; 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 or-
	      der; the newest is run first and the oldest last.

CONTROLS
       A toplevel instance has a number	of runtime-configuration  control  op-
       tions   that   affect   its   behaviour.	  These	  can	be  set	 using
       tickit_setctl_int(3), and queried using tickit_getctl_int(3). The indi-
       vidual 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  ac-
	      tivate 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=tickit&sektion=7&manpath=FreeBSD+Ports+15.0>

home | help