Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

GtkActivatable

GtkActivatable


Description

An interface for activatable widgets

Methods and Functions

Hierarchy

GInterface
   +----GtkActivatable

Implementations

Detailed Description

Activatable widgets can be connected to a GtkAction and reflects the state of its action. A GtkActivatable can also provide feedback through its action, as they are responsible for activating their related actions.

Implementing GtkActivatable When extending a class that is already GtkActivatable; it is only necessary to implement the GtkActivatable->syncActionProperties() and GtkActivatable->update() methods and chain up to the parent implementation, however when introducing a new GtkActivatable class; the "related-action" and "use-action-appearance" properties need to be handled by the implementor. Handling these properties is mostly a matter of installing the action pointer and boolean flag on your instance, and calling gtkActivatableDoSetRelatedAction and gtkActivatableSyncActionProperties at the appropriate times.

A class fragment implementing GtkActivatable

gClass("FooBar", "GtkButton",
       .prop_overrides=c("related-action", "use-action-appearance"),
       GObject=list(
         dispose=function(object) {
           object$doSetRelatedAction(NULL)
         },
         set_property=function(object, id, value, pspec) {
           if (pspec$name == "related-action") {
             assignProp(object, pspec, value)
             object$doSetRelatedAction(value)
           } else if (pspec$name == "use-action-appearance") {
             if (value != getProp(pspec)) {
               assignProp(object, pspec, value)
               object$syncActionProperties(object$"related-action")
             }
           } else {
             warning("invalid property: ", pspec$name)
           }
         }
       ),
       GtkActivatable=list(
         sync_action_properties=function(activatable, action) {
           if (is.null(action)) {
             return()
           }
           activatable$visible <- action$visible
           activatable$sensitive <- action$sensitive
           ## ...
           if (activatable$use_action_appearance) {
             if (!is.null(action$stock_id)) {
               activatable$label <- action$stock_id
             } else {
               activatable$label <- action$label
             }
             activatable$use_stock <- !is.null(action$stock_id)
           }
           ## ...
         },
         update=function(activatable, action, property_name) {
           if (property_name == "visible") {
             activatable$visible <- action$visible
           } else if (property_name == "sensitive") {
             activatable$sensitive <- action$sensitive
           }
           ## ...
           if (activatable$use_action_appearance) {
             if (property_name == "stock-id") {
               activatable$label <- action$stock_id
               activatable$use_stock <- !is.null(action$stock_id)
             } else if (property_name == "label") {
               activatable$label <- action$label
             }
           }
           ## ...
         }
       ))

Structures

GtkActivatable

undocumented

Properties

related-action [GtkAction : * : Read / Write]

The action that this activatable will activate and receive updates from for various states and possibly appearance. PLEASE NOTE: GtkActivatable implementors need to handle the this property and call gtkActivatableDoSetRelatedAction when it changes. Since 2.16

use-action-appearance [logical : Read / Write]

Whether this activatable should reset its layout and appearance when setting the related action or when the action changes appearance.

See the GtkAction documentation directly to find which properties should be ignored by the GtkActivatable when this property is FALSE. PLEASE NOTE: GtkActivatable implementors need to handle this property and call gtkActivatableSyncActionProperties on the activatable widget when it changes. Default value: TRUE Since 2.16

Author(s)

Derived by RGtkGen from GTK+ documentation

References


RGtk2

R Bindings for Gtk 2.8.0 and Above

v2.20.36
GPL
Authors
Michael Lawrence <michafla@gene.com> and Duncan Temple Lang <duncan@wald.ucdavis.edu>
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.