Since an interactive window cannot be captured in a vignette, a video screen capture has been taken of the window and included below.
library(tickle)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Buttons/Values which are directly written to by the GUI or store state
# about the GUI must be "reactive" objects.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
checkbutton1 <- reactive_lgl(FALSE)
checkbutton2 <- reactive_lgl(TRUE)
checkbutton3 <- reactive_lgl(NA)
checkbutton4 <- reactive_lgl(FALSE)
radio_opts <- c('Adam', 'Betty', 'Craig', 'Daniel')
radio_var <- reactive_chr(radio_opts[1])
text_entry <- reactive_chr("Single Line Text entry")
spinbox_options <- c("Spinbox", "is", "good")
spinbox_selected <- reactive_chr(spinbox_options[1])
combobox_options <- c("Combobox", "is", "good")
combobox_selected <- reactive_chr(combobox_options[1])
ro_combobox_options <- c("Readonly Combobox", "is", "good")
ro_combobox_selected <- reactive_chr(ro_combobox_options[1])
slider_var <- reactive_dbl(25)
textbox_var <- reactive_textbox()
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Define the specification for the UI
# Unless you are an expert, always start with a `tic_window()`
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ui_spec <- tic_window(
title = "{tickle} Complex Demo",
tic_menu(
tic_submenu(label = "File",
tic_menuitem("Tickle", "command", function() {message("Tickle")}),
tic_menuitem("Me" , "command", function() {message("Me")}),
tic_menuitem(menutype = "separator"),
tic_menuitem("Elmo" , "command", function() {message("Elmo")})
)
),
tic_col(
tic_label(toupper("Macrodata Refinement"), style = "h1"),
tic_row(
pack_def = pack_opts(padx = 15), # Default padding for children in this row
tic_col(
tic_labelframe(
text = "Checkbuttons",
relief = 'groove',
tic_col(
tic_checkbutton(text = "Unchecked" , variable = checkbutton1),
tic_checkbutton(text = "Checked" , variable = checkbutton2),
tic_checkbutton(text = "Disabled" , variable = checkbutton4, state = 'disabled')
)
),
tic_separator(),
tic_labelframe(
text = "Radiobuttons",
tic_col(
tic_radiobutton(text = radio_opts[1], value = radio_opts[1], variable = radio_var),
tic_radiobutton(text = radio_opts[2], value = radio_opts[2], variable = radio_var),
tic_radiobutton(text = radio_opts[3], value = radio_opts[3], variable = radio_var, state = 'disabled'),
tic_radiobutton(text = radio_opts[4], value = radio_opts[4], variable = radio_var)
)
)
),
tic_col(
pack_def = pack_opts(pady = 3),
tic_textentry(textvariable = text_entry),
tic_spinbox(values = spinbox_options, textvariable = spinbox_selected),
tic_combobox(values = combobox_options, textvariable = combobox_selected),
tic_combobox(values = ro_combobox_options, textvariable = ro_combobox_selected,
state = 'readonly'),
tic_menubutton(
text = "Menubutton",
tic_menuitem("Tickle", menutype = "command", function() {message("Tickle")}),
tic_menuitem("Me" , "command", function() {message("Me")}),
tic_menuitem(menutype = "separator"),
tic_menuitem("Elmo" , "command", function() {message("Elmo")})
),
tic_button(text = "Button", command = function() {message("Click!")}),
tic_button(text = "Accent button", style = 'Accent.TButton'),
tic_checkbutton(text = "Toggle button", style = 'Toggle.TButton'),
tic_checkbutton(text = "Switch", style = 'Switch.TCheckbutton')
),
tic_col(
tic_notebook(
labels = c("Tab 1", "Tab 2", "Tab 3"),
tic_col(
tic_row(
tic_slider(slider_var),
tic_progressbar(slider_var)
),
tic_col(
tic_row(
pack_def = pack_opts(padx = 1),
tic_button('primary' , style = 'primary' ),
tic_button('secondary', style = 'secondary'),
tic_button('success' , style = 'success' ),
tic_button('danger' , style = 'danger' ),
tic_button('warning' , style = 'warning' ),
tic_button('info' , style = 'info' ),
tic_button('light' , style = 'light' ),
tic_button('dark' , style = 'dark' )
),
tic_label("Textbox for long form text entry"),
tic_textbox(textbox_var)
)
),
tic_frame(
tic_button("Tab 2 contents", pack = pack_opts(expand = FALSE, fill = 'none', side = 'bottom'))
),
tic_button("Tab 3 contents")
)
)
)
)
)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Now render the UI specification to the screen
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
win <- render_ui(ui_spec)