NAObjectId

NAObjectId — The Identified Object Base Class Definition

Synopsis

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

#define             NA_TYPE_OBJECT_ID
#define             NA_OBJECT_ID                        (object)
#define             NA_IS_OBJECT_ID                     (object)
                    NAObjectId;
                    NAObjectIdClass;
gint                na_object_id_sort_alpha_asc         (const NAObjectId *a,
                                                         const NAObjectId *b);
gint                na_object_id_sort_alpha_desc        (const NAObjectId *a,
                                                         const NAObjectId *b);
void                na_object_id_prepare_for_paste      (NAObjectId *object,
                                                         gboolean relabel,
                                                         gboolean renumber,
                                                         NAObjectId *parent);
void                na_object_id_set_copy_of_label      (NAObjectId *object);
void                na_object_id_set_new_id             (NAObjectId *object,
                                                         const NAObjectId *new_parent);

Object Hierarchy

  GObject
   +----NAObject
         +----NAObjectId
               +----NAObjectItem
               +----NAObjectProfile

Implemented Interfaces

NAObjectId implements NAIDuplicable.

Description

This is a pure virtual class, i.e. not an instantiatable one. It serves as the base class for NAObject -derived object which have a unique Id, i.e. for NAObjectItem and NAObjectProfile.

Details

NA_TYPE_OBJECT_ID

#define NA_TYPE_OBJECT_ID                ( na_object_id_get_type())

NA_OBJECT_ID()

#define NA_OBJECT_ID( object )           ( G_TYPE_CHECK_INSTANCE_CAST( object, NA_TYPE_OBJECT_ID, NAObjectId ))

NA_IS_OBJECT_ID()

#define NA_IS_OBJECT_ID( object )        ( G_TYPE_CHECK_INSTANCE_TYPE( object, NA_TYPE_OBJECT_ID ))

NAObjectId

typedef struct _NAObjectId NAObjectId;

NAObjectIdClass

typedef struct {
	/**
	 * new_id:
	 * @object: a NAObjectId object.
	 * @new_parent: possibly the new NAObjectId parent, or NULL.
	 * If not NULL, this should actually be a NAObjectItem.
	 *
	 * If @object is a NAObjectProfile, then @new_parent must be a
	 * not null NAObjectAction. This function ensures that the new
	 * profile name does not already exist in the given @new_parent.
	 *
	 * This is a pure virtual function which should be implemented by
	 * the actual class. Actually, we asks for the most-derived class
	 * which implements this function.
	 *
	 * Returns: a new id suitable for this @object.
	 *
	 * Since: 2.30
	 */
	gchar * ( *new_id )( const NAObjectId *object, const NAObjectId *new_parent );
} NAObjectIdClass;

The NAObjectIdClass defines some methods available to derived classes.

new_id ()

Allocate a new id to an existing NAObjectId.

na_object_id_sort_alpha_asc ()

gint                na_object_id_sort_alpha_asc         (const NAObjectId *a,
                                                         const NAObjectId *b);

Sort the objects in alphabetical ascending order of their label.

a :

first NAObjectId.

b :

second NAObjectId.

Returns :

  • -1 if a must be sorted before b,

  • 0 if a and b are equal from the local point of view,

  • 1 if a must be sorted after b.

Since 2.30


na_object_id_sort_alpha_desc ()

gint                na_object_id_sort_alpha_desc        (const NAObjectId *a,
                                                         const NAObjectId *b);

Sort the objects in alphabetical descending order of their label.

a :

first NAObjectId.

b :

second NAObjectId.

Returns :

  • -1 if a must be sorted before b,

  • 0 if a and b are equal from the local point of view,

  • 1 if a must be sorted after b.

Since 2.30


na_object_id_prepare_for_paste ()

void                na_object_id_prepare_for_paste      (NAObjectId *object,
                                                         gboolean relabel,
                                                         gboolean renumber,
                                                         NAObjectId *parent);

Prepares object to be pasted.

If a NAObjectProfile, then object is attached to the specified NAObjectAction action. The identifier is always renumbered to be suitable with the already existing profiles.

If a NAObjectAction or a NAObjectMenu, a new identifier is allocated if and only if relabel is TRUE.

Actual relabeling takes place if relabel is TRUE, depending of the user preferences.

object :

the NAObjectId object to be pasted.

relabel :

whether this object should be relabeled when pasted.

renumber :

whether this item should be renumbered ?

parent :

the parent of object, or NULL.

Since 2.30


na_object_id_set_copy_of_label ()

void                na_object_id_set_copy_of_label      (NAObjectId *object);

Sets the 'Copy of' label.

object :

the NAObjectId object whose label is to be changed.

Since 2.30


na_object_id_set_new_id ()

void                na_object_id_set_new_id             (NAObjectId *object,
                                                         const NAObjectId *new_parent);

Request a new id to the derived class, and set it.

object :

the NAObjectId object whose internal identifier is to be set.

new_parent :

if object is a NAObjectProfile, then new_parent should be set to the NAObjectAction new parent. Else, it would not be possible to allocate a new profile id compatible with already existing ones.

Since 2.30