40 lines
1.1 KiB
R
40 lines
1.1 KiB
R
|
|
rotate_string <- function(x, forwards)
|
|||
|
|
{
|
|||
|
|
nchx <- nchar(x)
|
|||
|
|
if(forwards)
|
|||
|
|
{
|
|||
|
|
paste(substr(x, nchx, nchx), substr(x, 1, nchx - 1), sep = "")
|
|||
|
|
} else
|
|||
|
|
{
|
|||
|
|
paste(substr(x, 2, nchx), substr(x, 1, 1), sep = "")
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
handle_rotate_label <- function(obj, interval = 100)
|
|||
|
|
{
|
|||
|
|
addHandlerIdle(obj,
|
|||
|
|
handler = function(h, ...)
|
|||
|
|
{
|
|||
|
|
svalue(obj) <- rotate_string(svalue(obj), tag(obj, "forwards"))
|
|||
|
|
},
|
|||
|
|
interval = interval
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
handle_change_direction_on_click <- function(obj)
|
|||
|
|
{
|
|||
|
|
addHandlerClicked(obj,
|
|||
|
|
handler = function(h, ...)
|
|||
|
|
{
|
|||
|
|
tag(h$obj, "forwards") <- !tag(h$obj, "forwards")
|
|||
|
|
}
|
|||
|
|
)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
library(gWidgets)
|
|||
|
|
library(gWidgetstcltk) #or library(gWidgetsRGtk2) or library(gWidgetsrJava)
|
|||
|
|
lab <- glabel("Hello World! ", container = gwindow())
|
|||
|
|
tag(lab, "forwards") <- TRUE
|
|||
|
|
handle_rotate_label(lab)
|
|||
|
|
handle_change_direction_on_click(lab)
|