## NAObjectAction NAObjectAction — The Action Class Definition |

## Synopsis

    #include <caja-actions/na-object-action.h>

    #define             NA_TYPE_OBJECT_ACTION
    #define             NA_OBJECT_ACTION                    (object)
    #define             NA_IS_OBJECT_ACTION                 (object)
                        NAObjectAction;
    NAObjectAction *    na_object_action_new                (void);
    NAObjectAction *    na_object_action_new_with_profile   (void);
    NAObjectAction *    na_object_action_new_with_defaults  (void);
    gchar *             na_object_action_get_new_profile_name
                                                            (const NAObjectAction *action);
    void                na_object_action_attach_profile     (NAObjectAction *action,
                                                             NAObjectProfile *profile);
    void                na_object_action_set_last_version   (NAObjectAction *action);

## Object Hierarchy

      GObject
       +----NAObject
             +----NAObjectId
                   +----NAObjectItem
                         +----NAObjectAction

## Implemented Interfaces

NAObjectAction implements NAIDuplicable, NAIContext and NAIFactoryObject.

## Properties

      "na-factory-data-all-mimetypes" gboolean              : Read / Write
      "na-factory-data-basenames" gpointer              : Read / Write
      "na-factory-data-capabilitites" gpointer              : Read / Write
      "na-factory-data-description" gchar*                : Read / Write
      "na-factory-data-enabled"  gboolean              : Read / Write
      "na-factory-data-folders"  gpointer              : Read / Write
      "na-factory-data-icon"     gchar*                : Read / Write
      "na-factory-data-id"       gchar*                : Read / Write
      "na-factory-data-items"    gpointer              : Read / Write
      "na-factory-data-items-slist" gpointer              : Read / Write
      "na-factory-data-iversion" guint                 : Read / Write
      "na-factory-data-label"    gchar*                : Read / Write
      "na-factory-data-last-allocated" guint                 : Read / Write
      "na-factory-data-matchcase" gboolean              : Read / Write
      "na-factory-data-mimetypes" gpointer              : Read / Write
      "na-factory-data-not-show-in" gpointer              : Read / Write
      "na-factory-data-only-show-in" gpointer              : Read / Write
      "na-factory-data-parent"   gpointer              : Read / Write
      "na-factory-data-provider" gpointer              : Read / Write
      "na-factory-data-provider-data" gpointer              : Read / Write
      "na-factory-data-readonly" gboolean              : Read / Write
      "na-factory-data-schemes"  gpointer              : Read / Write
      "na-factory-data-selection-count" gchar*                : Read / Write
      "na-factory-data-shortcut" gchar*                : Read / Write
      "na-factory-data-show-if-registered" gchar*                : Read / Write
      "na-factory-data-show-if-running" gchar*                : Read / Write
      "na-factory-data-show-if-true" gchar*                : Read / Write
      "na-factory-data-target-location" gboolean              : Read / Write
      "na-factory-data-target-selection" gboolean              : Read / Write
      "na-factory-data-target-toolbar" gboolean              : Read / Write
      "na-factory-data-toolbar-label" gchar*                : Read / Write
      "na-factory-data-toolbar-same-label" gboolean              : Read / Write
      "na-factory-data-tooltip"  gchar*                : Read / Write
      "na-factory-data-try-exec" gchar*                : Read / Write
      "na-factory-data-version"  gchar*                : Read / Write

## Description

This is the class which maintains data and properties of a Caja-Actions™ action.

### Note

Edition status. As a particular rule for a NAObjectItem -derived class, a NAObjectAction is considered modified as soon as any of its profiles has been modified itself (because they are saved as a whole).

## Details

### NA_TYPE_OBJECT_ACTION

    #define NA_TYPE_OBJECT_ACTION                ( na_object_action_get_type())

### NA_OBJECT_ACTION()

    #define NA_OBJECT_ACTION( object )           ( G_TYPE_CHECK_INSTANCE_CAST( object, NA_TYPE_OBJECT_ACTION, NAObjectAction ))

### NA_IS_OBJECT_ACTION()

    #define NA_IS_OBJECT_ACTION( object )        ( G_TYPE_CHECK_INSTANCE_TYPE( object, NA_TYPE_OBJECT_ACTION ))

### NAObjectAction

    typedef struct _NAObjectAction NAObjectAction;

### na_object_action_new ()

    NAObjectAction *    na_object_action_new                (void);

Allocates a new NAObjectAction object.

The new NAObjectAction object is initialized with suitable default values, but without any profile.

Returns : | the newly allocated NAObjectAction object.

Since 2.30

### na_object_action_new_with_profile ()

    NAObjectAction *    na_object_action_new_with_profile   (void);

Allocates a new NAObjectAction object along with a default profile.

Returns : | the newly allocated NAObjectAction action.

Since 2.30

### na_object_action_new_with_defaults ()

    NAObjectAction *    na_object_action_new_with_defaults  (void);

Allocates a new NAObjectAction object along with a default profile. These two objects have suitable default values.

Returns : | the newly allocated NAObjectAction action.

Since 2.30

### na_object_action_get_new_profile_name ()

    gchar *             na_object_action_get_new_profile_name
                                                            (const NAObjectAction *action);

Returns a name suitable as a new profile name.

The search is made by iterating over the standard profile name prefix : basically, we increment a counter until finding a name which is not yet allocated. The provided name is so only suitable for the specified `action`.

When inserting a list of profiles in the action, we iter first for new names, before actually do the insertion. We so keep the last allocated name to avoid to allocate the same one twice.

`action` : | the NAObjectAction object which will receive a new profile.
Returns : | a newly allocated profile name, which should be `g_free()` by the caller.

Since 2.30

### na_object_action_attach_profile ()

    void                na_object_action_attach_profile     (NAObjectAction *action,
                                                             NAObjectProfile *profile);

Adds a profile at the end of the list of profiles.

`action` : | the NAObjectAction action to which the profile will be attached.
`profile` : | the NAObjectProfile profile to be attached to `action`.

Since 2.30

### na_object_action_set_last_version ()

    void                na_object_action_set_last_version   (NAObjectAction *action);

Set the version number of the `action` to the last one.

`action` : | the NAObjectAction action to update.

Since 2.30

## Property Details

### The `"na-factory-data-all-mimetypes"` property

      "na-factory-data-all-mimetypes" gboolean              : Read / Write

The generic wildcard may be coded as '*', or '*/*' or 'all' or 'all/*' or 'all/all'. In each case, we will try to spend as less time as possible to check selection mimetypes.

Default value: TRUE

### The `"na-factory-data-basenames"` property

      "na-factory-data-basenames" gpointer              : Read / Write

### The `"na-factory-data-capabilitites"` property

      "na-factory-data-capabilitites" gpointer              : Read / Write

### The `"na-factory-data-description"` property

      "na-factory-data-description" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-enabled"` property

      "na-factory-data-enabled"  gboolean              : Read / Write

Default value: TRUE

### The `"na-factory-data-folders"` property

      "na-factory-data-folders"  gpointer              : Read / Write

### The `"na-factory-data-icon"` property

      "na-factory-data-icon"     gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-id"` property

      "na-factory-data-id"       gchar*                : Read / Write

Internal identifier of the NAObjectId object. Historically a UUID used as a MateConf directory (thus ASCII, case insensitive), it is also the basename of the .desktop file (thus UTF-8, case sensitive).

Default value: ""

### The `"na-factory-data-items"` property

      "na-factory-data-items"    gpointer              : Read / Write

List of subitems objects.

### The `"na-factory-data-items-slist"` property

      "na-factory-data-items-slist" gpointer              : Read / Write

### The `"na-factory-data-iversion"` property

      "na-factory-data-iversion" guint                 : Read / Write

The version of the configuration format that will be used to manage backward compatibility.

Default value: 3

### The `"na-factory-data-label"` property

      "na-factory-data-label"    gchar*                : Read / Write

Default value: "Empty label"

### The `"na-factory-data-last-allocated"` property

      "na-factory-data-last-allocated" guint                 : Read / Write

Last allocated profile number in na_object_action_get_new_profile_name(), reset to zero when saving the action.

Default value: 0

### The `"na-factory-data-matchcase"` property

      "na-factory-data-matchcase" gboolean              : Read / Write

Default value: TRUE

### The `"na-factory-data-mimetypes"` property

      "na-factory-data-mimetypes" gpointer              : Read / Write

### The `"na-factory-data-not-show-in"` property

      "na-factory-data-not-show-in" gpointer              : Read / Write

Defaults to none.

### The `"na-factory-data-only-show-in"` property

      "na-factory-data-only-show-in" gpointer              : Read / Write

Defaults to all.

### The `"na-factory-data-parent"` property

      "na-factory-data-parent"   gpointer              : Read / Write

The NAObjectItem which is the parent of this object.

### The `"na-factory-data-provider"` property

      "na-factory-data-provider" gpointer              : Read / Write

A pointer to the NAIOProvider object.

### The `"na-factory-data-provider-data"` property

      "na-factory-data-provider-data" gpointer              : Read / Write

A pointer to some NAIOProvider specific data.

### The `"na-factory-data-readonly"` property

      "na-factory-data-readonly" gboolean              : Read / Write

Is the item only readable ? This is an intrinsic property, dynamically set when the item is unserialized. This property being FALSE doesn't mean that the item will actually be updatable, as this also depend of parameters set by user and administrator. Also, a property initially set to FALSE when first unserializing may be set toTRUE if an eccor occurs on a later write operation.

Default value: FALSE

### The `"na-factory-data-schemes"` property

      "na-factory-data-schemes"  gpointer              : Read / Write

### The `"na-factory-data-selection-count"` property

      "na-factory-data-selection-count" gchar*                : Read / Write

Default value: ">0"

### The `"na-factory-data-shortcut"` property

      "na-factory-data-shortcut" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-show-if-registered"` property

      "na-factory-data-show-if-registered" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-show-if-running"` property

      "na-factory-data-show-if-running" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-show-if-true"` property

      "na-factory-data-show-if-true" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-target-location"` property

      "na-factory-data-target-location" gboolean              : Read / Write

Default value: FALSE

### The `"na-factory-data-target-selection"` property

      "na-factory-data-target-selection" gboolean              : Read / Write

Default value: TRUE

### The `"na-factory-data-target-toolbar"` property

      "na-factory-data-target-toolbar" gboolean              : Read / Write

Default value: FALSE

### The `"na-factory-data-toolbar-label"` property

      "na-factory-data-toolbar-label" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-toolbar-same-label"` property

      "na-factory-data-toolbar-same-label" gboolean              : Read / Write

Does the toolbar label is the same than the main one ?.

Default value: TRUE

### The `"na-factory-data-tooltip"` property

      "na-factory-data-tooltip"  gchar*                : Read / Write

The tooltip of the menu item that will appear in the file manager statusbar when the user points to the file manager context menu item with his/her mouse.

Default value: ""

### The `"na-factory-data-try-exec"` property

      "na-factory-data-try-exec" gchar*                : Read / Write

Default value: ""

### The `"na-factory-data-version"` property

      "na-factory-data-version"  gchar*                : Read / Write

The version of the configuration format that will be used to manage backward compatibility.

Default value: ""