NAObjectItem

## NAObjectItem NAObjectItem — The Object Item Base Class Definition |

## Functions

#define | NA_TYPE_OBJECT_ITEM
#define | NA_OBJECT_ITEM()
#define | NA_IS_OBJECT_ITEM()
gboolean | na_object_item_is_finally_writable ()
void | na_object_item_set_writability_status ()
NAObjectId * | na_object_item_get_item ()
gint | na_object_item_get_position ()
void | na_object_item_append_item ()
void | na_object_item_insert_at ()
void | na_object_item_insert_item ()
void | na_object_item_remove_item ()
guint | na_object_item_get_items_count ()
void | na_object_item_count_items ()
GList * | na_object_item_copyref_items ()
GList * | na_object_item_free_items ()
void | na_object_item_rebuild_children_slist ()
void | na_object_item_deals_with_version ()

## Types and Values

| NAObjectItem
enum | NAItemTarget

## Includes

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

## Description

This is a pure virtual class, i.e. not an instantiatable one, but serves as the base class for NAObjectAction and NAObjectMenu.

## Functions

### NA_TYPE_OBJECT_ITEM

    #define NA_TYPE_OBJECT_ITEM                ( na_object_item_get_type())

### NA_OBJECT_ITEM()

    #define NA_OBJECT_ITEM( object )           ( G_TYPE_CHECK_INSTANCE_CAST( object, NA_TYPE_OBJECT_ITEM, NAObjectItem ))

### NA_IS_OBJECT_ITEM()

    #define NA_IS_OBJECT_ITEM( object )        ( G_TYPE_CHECK_INSTANCE_TYPE( object, NA_TYPE_OBJECT_ITEM ))

### na_object_item_is_finally_writable ()

    gboolean
    na_object_item_is_finally_writable (const NAObjectItem *item,
                                        guint *reason);

#### Parameters

item | this NAObjectItem -derived object. |
reason | if not `NULL`, a pointer to a guint which will hold the reason code. |

#### Returns

the writability status of the `item` .

Since: 3.1

### na_object_item_set_writability_status ()

    void
    na_object_item_set_writability_status (NAObjectItem *item,
                                           gboolean writable,
                                           guint reason);

Set the writability status of the `item` .

#### Parameters

item | this NAObjectItem -derived object. |
writable | whether the item is finally writable. |
reason | the reason code. |

Since: 3.1

### na_object_item_get_item ()

    NAObjectId *
    na_object_item_get_item (const NAObjectItem *item,
                             const gchar *id);

#### Parameters

item | the NAObjectItem from which we want retrieve a subitem. |
id | the id of the searched subitem. |

#### Returns

a pointer to the NAObjectId -derived child with the required id.

The returned NAObjectId is owned by the `item` object ; the caller should not try to `g_free()` nor `g_object_unref()` it.

Since: 2.30

### na_object_item_get_position ()

    gint
    na_object_item_get_position (const NAObjectItem *item,
                                 const NAObjectId *child);

#### Parameters

item | this NAObjectItem object. |
child | a NAObjectId -derived child. |

#### Returns

the position of `child` in the subitems list of `item` , starting from zero, or -1 if not found.

Since: 2.30

### na_object_item_append_item ()

    void
    na_object_item_append_item (NAObjectItem *item,
                                const NAObjectId *child);

Appends a new `child` to the list of subitems of `item` , and setup the parent pointer of the child to its new parent.

Doesn't modify the reference count on `object` .

#### Parameters

item | the NAObjectItem to which add the subitem. |
child | a NAObjectId to be added to list of subitems. |

Since: 2.30

### na_object_item_insert_at ()

    void
    na_object_item_insert_at (NAObjectItem *item,
                              const NAObjectId *child,
                              gint pos);

Inserts a new `child` in the list of subitems of `item` .

Doesn't modify the reference count on `child` .

#### Parameters

item | the NAObjectItem in which add the subitem. |
child | a NAObjectId -derived to be inserted in the list of subitems. |
pos | the position at which the `child` should be inserted. |

Since: 2.30

### na_object_item_insert_item ()

    void
    na_object_item_insert_item (NAObjectItem *item,
                                const NAObjectId *child,
                                const NAObjectId *before);

Inserts a new `child` in the list of subitems of `item` .

Doesn't modify the reference count on `child` .

#### Parameters

item | the NAObjectItem to which add the subitem. |
child | a NAObjectId to be inserted in the list of subitems. |
before | the NAObjectId before which the `child` should be inserted. |

Since: 2.30

### na_object_item_remove_item ()

    void
    na_object_item_remove_item (NAObjectItem *item,
                                const NAObjectId *child);

Removes a `child` from the list of subitems of `item` .

Doesn't modify the reference count on `child` .

#### Parameters

item | the NAObjectItem from which the subitem must be removed. |
child | a NAObjectId -derived to be removed from the list of subitems. |

Since: 2.30

### na_object_item_get_items_count ()

    guint
    na_object_item_get_items_count (const NAObjectItem *item);

#### Parameters

item | the NAObjectItem from which we want a count of subitems. |

#### Returns

the count of subitems of `item` .

Since: 2.30

### na_object_item_count_items ()

    void
    na_object_item_count_items (GList *items,
                                gint *menus,
                                gint *actions,
                                gint *profiles,
                                gboolean recurse);

#### Parameters

items | a list if NAObject -derived to be counted. |
menus | will be set to the count of menus. |
actions | will be set to the count of actions. |
profiles | will be set to the count of profiles. |
recurse | whether to recursively count all items, or only those in level zero of the list. |

#### Returns

the count the numbers of items if the provided list.

As this function is recursive, the counters should be initialized by the caller before calling it.

Since: 2.30

### na_object_item_copyref_items ()

    GList *
    na_object_item_copyref_items (GList *items);

Creates a copy of the provided list, recursively incrementing the reference count of NAObjects.

#### Parameters

items | a list of NAObject -derived items. |

#### Returns

the new list, which should be `na_object_free_items()` by the caller.

Since: 3.1

### na_object_item_free_items ()

    GList *
    na_object_item_free_items (GList *items);

Free the items list.

#### Parameters

items | a list of NAObject -derived items. |

#### Returns

a `NULL` pointer.

Since: 3.1

### na_object_item_rebuild_children_slist ()

    void
    na_object_item_rebuild_children_slist (NAObjectItem *item);

Rebuild the string list of children.

#### Parameters

item | this NAObjectItem -derived object. |

Since: 2.30

### na_object_item_deals_with_version ()

    void
    na_object_item_deals_with_version (NAObjectItem *item);

Just after the `item` has been read from NAIFactoryProvider, setup the version. This is needed because some conversions may occur in this object.

Note that there is only some 2.x versions where the version string was not systematically written. If `item` has been read from a .desktop file, then iversion is already set to (at least) 3.

#### Parameters

item | this NAObjectItem -derived object. |

Since: 2.30

## Types and Values

### NAObjectItem

    typedef struct {
    } NAObjectItem;

### enum NAItemTarget

The NAItemTarget mode is Caja-driven. It determines in which part of the Caja UI our actions will be displayed.

#### Members

ITEM_TARGET_SELECTION | when targeting the selection context menu. |
ITEM_TARGET_LOCATION | when targeting the background context menu. |
ITEM_TARGET_TOOLBAR | when targeting the toolbar. |
ITEM_TARGET_ANY | a wilcard target defined in order to be able to activate an action from a keyboard shortcut, while keeping this same action hidden from the UI. |