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)
|