tclVarFun               package:tcltk2               R Documentation

_M_a_n_i_p_u_l_a_t_e _R _v_a_r_i_a_b_l_e_s _a_n_d _f_u_n_c_t_i_o_n_s _f_r_o_m _t_c_l _a_n_d _b_a_c_k

_D_e_s_c_r_i_p_t_i_o_n:

     These functions are intended to provide a better "duality" between
     the name of variables in both R and tcl, including for function
     calls. It is possible to define a variable with the same name in R
     and tcl (the content is identical, but copied and coerced in the
     two respective environments). It is also possible to get the value
     of a tcl variable from R, and to call a R function from within
     tcl. These functionnalities are provided in the tcltk package, but
     Tcl variable usually have different internal names as R
     equivalents.

_U_s_a_g_e:

       makeTclNames(names, unique = FALSE)
       tclFun(f, name = deparse(substitute(f)))
       tclGetValue(name)
       tclSetValue(name, value)
       tclVarExists(name)
       tclVarFind(pattern)
       tclVarname(name, init = "", keep.existing = TRUE)

_A_r_g_u_m_e_n_t_s:

   names: Transform names so that they are valid for variables in tcl 

  unique: Should these names be unique in the vector? 

       f: An R function. currently, do no support functions with
          arguments. 

    name: The name of a variable 

   value: The value to place in a variable 

 pattern: A pattern to search for 

    init: Initial value to use when creating the variable 

keep.existing: If the tcl variable already exist, should we keep its
          content?  

_D_e_t_a_i_l_s:

     These functions are similar to 'tclVar()' from package tcltk,
     except for the following change: here, it is possible to propose a
     name for the created tcl variable, or to set or retrieve the
     content of a tcl variable that is not mirrored in R.

_V_a_l_u_e:

     Most of these functions return a 'tclVar' object.

_A_u_t_h_o_r(_s):

     Philippe Grosjean

_S_e_e _A_l_s_o:

     'tk2theme'

_E_x_a_m_p_l_e_s:

       ## Not run: 
         ## These cannot be run by examples() but should be OK when pasted
         ## into an interactive R session with the tcltk package loaded

             ## Tcl functions and variables manipulation
         tclVarExists("tcl_version")
         tclVarExists("probably_non_existant")
         tclVarFind("tcl*")

         # Using tclVarname() and tclGetValue()... intented for better match between R and Tcl variables
         Test <- tclVarname("Test", "this is a test!")
         # Now 'Test' exist both in R and in Tcl... In R, you need to use tclvalue(Test) to retrieve its content
         # If a variable already exists in Tcl, its content is preserved using keep.existing = TRUE
         .Tcl("set A_Variable {just to test...}") # Create a variable in Tcl and assign "just a test..." to it
         A_Variable <- tclVarname("A_Variable", "something else?") # Create the dual variable with same name
         tclvalue(A_Variable) # Content of the variable is not changed!

         # If you want to retrieve the content of a Tcl variable, but do not want to create a reference to it in R, use:
         .Tcl("set Another_Variable {something in it}")  # Create a Tcl variable, not visible from R
         tclGetValue("Another_Variable") # Get its content in R
       ## End(Not run)

