FreeBSD Manual Pages
AG_NOTEBOOK(3) Library Functions Manual AG_NOTEBOOK(3) NAME AG_Notebook -- agar notebook container widget SYNOPSIS #include <agar/core.h> #include <agar/gui.h> DESCRIPTION The AG_Notebook widget maintains a set of AG_Box(3) containers, only one of which is visible at any given time. The user can select the visible container by clicking on a tab, or it can be selected program- matically. INHERITANCE HIERARCHY AG_Object(3) -> AG_Widget(3) -> AG_Notebook. INITIALIZATION AG_Notebook * AG_NotebookNew(AG_Widget *parent, Uint flags) void AG_NotebookSetPadding(AG_Notebook *nb, int padding) void AG_NotebookSetSpacing(AG_Notebook *nb, int spacing) void AG_NotebookSetTabAlignment(AG_Notebook *nb, enum ag_notebook_tab_alignment alignment) void AG_NotebookSetTabVisibility(AG_Notebook *nb, int flag) The AG_NotebookNew() function allocates, initializes, and attaches a new AG_Notebook widget. Acceptable flags include: AG_NOTEBOOK_HIDE_TABS Don't display the tab selector controls. AG_NOTEBOOK_HFILL Expand horizontally in parent container. AG_NOTEBOOK_VFILL Expand vertically in parent container. AG_NOTEBOOK_EXPAND Shorthand for AG_NOTEBOOK_HFILL | AG_NOTEBOOK_VFILL. AG_NotebookSetPadding() and AG_NotebookSetSpacing() sets the default AG_Box(3) padding and spacing to use for new tabs. By default, tabs are drawn at the top of the widget. AG_NotebookSetTabAlignment() changes the location of the tabs, where the argument is one of: enum ag_notebook_tab_alignment { AG_NOTEBOOK_TABS_TOP, AG_NOTEBOOK_TABS_BOTTOM, AG_NOTEBOOK_TABS_LEFT, AG_NOTEBOOK_TABS_RIGHT }; AG_NotebookSetTabVisibility() toggles the visibility of the tab header. TAB MANAGEMENT AG_NotebookTab * AG_NotebookAdd(AG_Notebook *nb, const char *name, enum ag_box_type type) void AG_NotebookDel(AG_Notebook *nb, AG_NotebookTab *tab) AG_NotebookTab * AG_NotebookGetByID(AG_Notebook *nb, int tabID) AG_NotebookTab * AG_NotebookGetByName(AG_Notebook *nb, const char *text) void AG_NotebookSelect(AG_Notebook *nb, AG_NotebookTab *tab) void AG_NotebookSelectByID(AG_Notebook *nb, int id) AG_NotebookAdd() creates a new tabbed container. name is an arbitrary text label to be displayed on the tab header. The type argument sets the type of AG_Box(3), that is either for AG_BOX_HORIZ horizontal pack- ing, or AG_BOX_VERT for vertical packing (see AG_Box(3) for details). AG_NotebookAdd() returns a pointer to the newly created AG_NotebookTab container widget (a subclass of AG_Box(3)). AG_NotebookDel() removes the given tabbed container, detaching and freeing all associated child widgets. AG_NotebookGetByID() returns the tab with given numerical ID (or NULL). AG_NotebookGetByName() looks up a tab based on the contents of its text label and returns a pointer to the tab (or NULL). The AG_NotebookSelect() function selects the active tabbed container. AG_NotebookSelectByID() selects the container by numerical ID. EVENTS The AG_Notebook widget does not generate any event. STRUCTURE DATA For the AG_Notebook object: TAILQ tabs The list of tabs as AG_NotebookTab objects. Uint nTabs Total number of tabs. AG_NotebookTab *selTab Pointer to the currently selected tab. int selTabID Numerical ID of currently selected tab. For the AG_NotebookTab object: AG_Label *lbl Pointer to the AG_Label(3) of the tab (or NULL). int id The numerical ID associated with the tab. EXAMPLES The following code fragment creates a notebook with two tabs: AG_Notebook *nb; AG_Notebook *ntab; nb = AG_NotebookNew(parent, AG_NOTEBOOK_EXPAND); { ntab = AG_NotebookAdd(nb, "Tab #1", AG_BOX_VERT); AG_LabelNew(ntab, 0, "This is Tab #1"); ntab = AG_NotebookAdd(nb, "Tab #2", AG_BOX_VERT); AG_LabelNew(ntab, 0, "This is Tab #2"); } SEE ALSO AG_Intro(3), AG_Widget(3), AG_Window(3) HISTORY The AG_Notebook widget first appeared in Agar 1.0. AG_NotebookGetByID() and AG_NotebookSelectByID() appeared in Agar 1.6.0. Agar 1.7 December 21, 2022 AG_NOTEBOOK(3)
NAME | SYNOPSIS | DESCRIPTION | INHERITANCE HIERARCHY | INITIALIZATION | TAB MANAGEMENT | EVENTS | STRUCTURE DATA | EXAMPLES | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=AG_Notebook&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
