---
title: "Widget, Canvas and Container Gallery"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Widget, Canvas and Container Gallery}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
## Containers
Containers are ways of grouping multiple widgets.
Containers can be nested within other containers to achieve complex layouts.
| Container | Code/Description |
|---|---|
| | tic_window(...)
Create a top level window |
| | tic_col(A, B, C)
Layout objects in column |
| | tic_row(A, B, C)
Layout objects rowwise|
| | tic_frame(...)
Invisible container. Useful for advanced users who want to customize layout |
| | tic_labelframe(...)
Frame with a a label and usually visible outline |
| | tic_notebook(A, B, C)
Tabbed display |
| | tic_panedwindow(A, B, C)
Layout multiple elements which can be resized as panes|
## Widgets
| Widget | Code/Description |
|---|---|
| | tic_label(...)
Display text. If you need headings rather than body text, Use `style = 'h1'` to `style = 'h5'` for different sized text |
| | tic_button(...)
Clickable button. Available `style` options: 'primary', 'seconary', 'info', 'success', 'warning', 'danger', 'light', 'dark' |
| | tic_checkbutton(...)
On/off button (default styling) |
| | tic_checkbutton(...)
On/off button with `style = 'toggle'` |
| | tic_checkbutton(...)
On/off button with `style = 'switch'` |
| | tic_radiobutton(...)
Groups of mutually exclusion options|
| | tic_menubutton(...)
Button which displays a drop-down menu |
| | tic_canvas(...)
General drawing canvas |
| | tic_spinbox(...)
Choose options |
| | tic_combobox(...)
Choose options |
| | tic_textentry(...)
Single line text entry |
| | tic_textbox(...)
Multipe line text entry |
| | tic_progressbar(...)
Progress bar |
| | tic_slider(...)
Slider |
## Popups
*Popups* are windows which are initiated separate from the main UI.
| Popup | Code/Description |
|---|---|
| | popup_color_picker()
|
| | popup_messagebox()
|
| | popup_open_file()
|
| | popup_save_file()
|
## Canvas
After creating a canvas with `tic_canvas()`, it can be manipulated with the following
commands:
* Draw on the canvas
* `canvas_line()`
* `canvas_text()`
* `canvas_rect()`
* `canvas_polygon()`
* `canvas_oval()`
* `canvas_arc()`
* `canvas_plot()` render a plot to the canvas
* `canvas_clear()` clear all objects from the canvas
* `canvas_image()` render an image from a file to the canvas
* `canvas_save()` save the contents of the canvas to an image file.
The actual canvas in tcl/tk renders *structured graphics* and it is much more like
SVG or PDF than just a simple array of pixels.
The canvas implementation in this package treats the canvas as just a raster
object i.e. a rectangular collection of pixels. This made it easier to write
this package and keep the API/syntax simple, but it doesn't unleash the full
power of the canvas.
The effort to write a more complete abstraction over the canvas is
not currently warranted. **Please get in contact if such a facility is important to you.**