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

FreeBSD Manual Pages

  
 
  

home | help
AG_CONSOLE(3)		     Library Functions Manual		   AG_CONSOLE(3)

NAME
     AG_Console -- agar log console widget

SYNOPSIS
     #include <agar/core.h>
     #include <agar/gui.h>

DESCRIPTION
     AG_Console displays a scrollable list of messages in a log format.  Log en-
     tries  can  be copied to the clipboard or exported to a file.  The contents
     and attributes of existing log entries can be updated dynamically.

INHERITANCE HIERARCHY
     AG_Object(3)-> AG_Widget(3)-> AG_Console.

INITIALIZATION
     AG_Console * AG_ConsoleNew(AG_Widget *parent, Uint flags)

     The AG_ConsoleNew() function allocates, initializes,  and	attaches  a  new
     AG_Console widget.  Acceptable flags include:

     AG_CONSOLE_NOAUTOSCROLL   Don't scroll automatically to make newly inserted
			       lines visible.

     AG_CONSOLE_NOPOPUP        Disable	the  right-click  contextual  popup menu
			       (with Copy, Select All and Export functions).

     AG_CONSOLE_HFILL	       Expand horizontally in parent container.

     AG_CONSOLE_VFILL	       Expand vertically in parent container.

     AG_CONSOLE_EXPAND	       Shorthand      for	AG_CONSOLE_HFILL       |
			       AG_CONSOLE_VFILL.

MESSAGES
     AG_ConsoleLine * AG_ConsoleMsg(AG_Console *cons, const char *format, ...)

     AG_ConsoleLine * AG_ConsoleMsgS(AG_Console *cons, const char *s)

     AG_ConsoleLine  *	AG_ConsoleBinary(AG_Console  *cons,  const  void  *data,
     AG_Size data_size, const char *label, const char *format)

     void AG_ConsoleMsgEdit(AG_ConsoleLine *line, const char *s)

     void AG_ConsoleMsgCatS(AG_ConsoleLine *line, const char *s)

     void AG_ConsoleMsgPtr(AG_ConsoleLine *line, void *ptr)

     void AG_ConsoleMsgColor(AG_ConsoleLine *line, const AG_Color *c)

     void AG_ConsoleClear(AG_Console *cons)

     char * AG_ConsoleExportText(AG_Console *cons, enum ag_newline_type newline)

     char * AG_ConsoleExportBuffer(AG_Console *cons, enum  ag_newline_type  new-
     line)

     The AG_ConsoleMsg() function appends a new message to the console log.  Un-
     less  an  error  occurs,  the  function  returns  a  pointer to the created
     AG_ConsoleLine.  If the message contains newlines, create a group of  lines
     (which  will be displayed in an indented style) and return a pointer to the
     first line (which will be the parent of the  subsequent  lines).	The  re-
     turned  AG_ConsoleLine remains valid until deleted (or AG_ConsoleClear() is
     used).

     As a special case, if a cons argument of NULL is passed to  AG_ConsoleMsg()
     then  the	message  is  passed  to  AG_Verbose(3) (and the function returns
     NULL).

     AG_ConsoleBinary() displays binary data in canonical hex+ASCII format.   If
     non-NULL,	label is prepended to every line.  If non-NULL, format specifies
     an alternate format string (such as "%02d " for decimal).	The default for-
     mat is "%02x ".  The format string must generate 3 characters.

     AG_ConsoleMsgEdit() replaces an existing log entry's text	with  the  given
     string.

     AG_ConsoleMsgCatS()  appends  the	given  string to an existing log entry's
     text.

     AG_ConsoleMsgPtr() sets an optional user pointer for this log entry.

     AG_ConsoleMsgColor() sets an alternate, line-specific color  for  this  log
     entry.

     AG_ConsoleClear() clears all messages from the console.

     AG_ConsoleExportText() returns a C string containing all currently selected
     lines,  joined  by newlines of the given variety.	Similarly, AG_ConsoleEx-
     portBuffer() joins all lines in the buffer with the specified type of  new-
     line.

FILE MONITORING
     AG_ConsoleFile  *	AG_ConsoleOpenFile(AG_Console  *cons, const char *label,
     const char *file, enum ag_newline_type newline, Uint flags)

     AG_ConsoleFile * AG_ConsoleOpenFD(AG_Console *cons, const char *label,  int
     fd, enum ag_newline_type newline, Uint flags)

     AG_ConsoleFile  * AG_ConsoleOpenStream(AG_Console *cons, const char *label,
     FILE *f, enum ag_newline_type newline, Uint flags)

     void AG_ConsoleClose(AG_Console *cons, AG_ConsoleFile *cf)

     AG_ConsoleOpenFile() opens a file for reading, displays its contents on the
     console and then arranges for AG_Console to follow changes made to the file
     (similar to "tail -f" in Unix).   Internally  the	function  uses	AG_AddE-
     ventSink(3)  to  set up an event sink of type AG_SINK_READ on the open file
     descriptor.

     The newline argument indicates the style of newline to use:

     enum ag_newline_type {
	     AG_NEWLINE_LF,    /* Unix, Amiga, BeOS, Multics, RISC OS */
	     AG_NEWLINE_CR_LF, /* DOS/Windows, early non-Unix */
	     AG_NEWLINE_CR,    /* Commodore 8-bit machines (C64/128) */
     };

     Possible flags include:

     #define AG_CONSOLE_FILE_BINARY	0x01  /* Binary hex dump */
     #define AG_CONSOLE_FILE_LEAVE_OPEN 0x02  /* Don't close fd on detach */

     If AG_CONSOLE_FILE_BINARY is used	then  AG_Console  produces  a  canonical
     hex+ASCII dump of the file (and any changes to it).

     The AG_CONSOLE_FILE_LEAVE_OPEN option causes AG_ConsoleClose() to leave the
     file descriptor (or FILE * handle) open.

     The  AG_ConsoleOpenFD()  variant  accepts	an  integer file descriptor, and
     AG_ConsoleOpenFILE() accepts the FILE * handle of an open stream.

     AG_ConsoleClose() closes a file being followed.

EVENTS
     The AG_Console widget does not generate any event.

STRUCTURE DATA
     For the AG_Console object:

     int pos		     Current cursor position (or -1).
     int sel		     Selection (offset from cursor).
     AG_Mutex lock	     Lock on buffer contents.
     AG_ConsoleLine **lines  Lines in buffer.
     Uint nLines	     Line count.

     For the AG_ConsoleLine structure:

     char *text     Text string.
     AG_Size len    Length of string in characters.
     int selected   Line selection flag.
     int icon	    Icon surface to display.
     AG_Color cFg   Foreground color.
     AG_Color cBg   Background color.
     void *p	    User pointer

SEE ALSO
     AG_Color(3), AG_Intro(3), AG_Text(3), AG_Textbox(3), AG_Widget(3),  AG_Win-
     dow(3)

HISTORY
     The AG_Console widget first appeared in Agar 1.3.4.  In Agar 1.6.0, AG_Con-
     soleSetPadding()  was  deprecated by the generic "padding" style attribute.
     Agar 1.6.0 added support for  multi-line  entries	and  introduced  AG_Con-
     soleOpenFile(),   AG_ConsoleOpenFD(),  AG_ConsoleOpenStream(),  AG_Console-
     Close(),  AG_ConsoleMsgCatS(),  AG_ConsoleBinary()  and   AG_ConsoleExport-
     Buffer().

Agar 1.7			December 21, 2022		   AG_CONSOLE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_Console&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help