GtkActivatable

0th

Percentile

GtkActivatable

An interface for activatable widgets

Keywords
internal
Methods and Functions

gtkActivatableDoSetRelatedAction(object, action) gtkActivatableGetRelatedAction(object) gtkActivatableGetUseActionAppearance(object) gtkActivatableSyncActionProperties(object, action = NULL) gtkActivatableSetRelatedAction(object, action) gtkActivatableSetUseActionAppearance(object, use.appearance)

Hierarchy

GInterface
   +----GtkActivatable

Implementations

GtkActivatable is implemented by GtkButton, GtkCheckButton, GtkCheckMenuItem, GtkColorButton, GtkFontButton, GtkImageMenuItem, GtkLinkButton, GtkMenuItem, GtkMenuToolButton, GtkOptionMenu, GtkRadioButton, GtkRadioMenuItem, GtkRadioToolButton, GtkRecentChooserMenu, GtkScaleButton, GtkSeparatorMenuItem, GtkSeparatorToolItem, GtkTearoffMenuItem, GtkToggleButton, GtkToggleToolButton, GtkToolButton, GtkToolItem and GtkVolumeButton.

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

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

References

http://library.gnome.org/devel//gtk/GtkActivatable.html

Aliases
  • GtkActivatable
Documentation reproduced from package RGtk2, version 2.20.31, License: GPL

Community examples

Looks like there are no examples yet.