u__add_text_area <- function(label, shift_function, session) {
temp_list <- list()
temp_list$Frame <- RGtk2::gtkFrame()
RGtk2::gtkFrameSetLabel(temp_list$Frame, label)
temp_list$View <- RGtk2::gtkTextView()
RGtk2::gSignalConnect(temp_list$View, "key-release-event",
function(view, event, data) {
session<- data[[1]]
shift_function <- data[[2]]
key <- z__event_state_key(event)
if(key=="shift+ctrl"){
shift_function(session)
}
return(TRUE)
},data=list(session,shift_function))
temp_list$Scroll <- RGtk2::gtkScrolledWindow()
RGtk2::gtkScrolledWindowSetPolicy(temp_list$Scroll, "automatic", "automatic")
RGtk2::gtkContainerAdd(temp_list$Scroll, temp_list$View)
RGtk2::gtkContainerAdd(temp_list$Frame, temp_list$Scroll)
RGtk2::gtkWidgetModifyFont(temp_list$View, RGtk2::pangoFontDescriptionFromString("Monospace"))
temp_list$View["editable"] <- T
temp_list$View["cursor-visible"] <- T
temp_list$View["justification"] <- "left" # GtkJustification value
temp_list$View["left-margin"] <- 10 # 0 is default
Buffer <- RGtk2::gtkTextViewGetBuffer(temp_list$View)
RGtk2::gtkTextBufferSetText(Buffer, "")
return(temp_list)
}
u__text_area_get_text <- function(obj) {
Buffer <- RGtk2::gtkTextViewGetBuffer(obj$View)
end_iter <- RGtk2::gtkTextBufferGetEndIter(Buffer)
start_iter <- RGtk2::gtkTextBufferGetStartIter(Buffer)
cmd <- RGtk2::gtkTextBufferGetText(Buffer,
start_iter$iter, end_iter$iter,
include.hidden.chars = TRUE
)
return(cmd)
}
u__text_area_append_text <- function(obj, txt) {
txt0 <- u__text_area_get_text(obj)
if (txt0 == "") {
u__text_area_set_text(obj, txt)
} else {
u__text_area_set_text(obj, paste0(txt0, "\n", txt))
}
return(T)
}
u__text_area_set_text <- function(obj, txt) {
Buffer <- RGtk2::gtkTextViewGetBuffer(obj$View)
RGtk2::gtkTextBufferSetText(Buffer, txt)
return(T)
}
u__text_area_clear <- function(obj) {
Buffer <- RGtk2::gtkTextViewGetBuffer(obj$View)
RGtk2::gtkTextBufferSetText(Buffer, "")
return(T)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.