## IAnjutaMarkable IAnjutaMarkable — Implemented by editors (or views) with markers support |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/interfaces/ianjuta-markable.h>

    enum                IAnjutaMarkableError;
    enum                IAnjutaMarkableMarker;
    struct              IAnjutaMarkableIface;
    GQuark              ianjuta_markable_error_quark        (void);
    void                ianjuta_markable_delete_all_markers (IAnjutaMarkable *obj,
                                                             IAnjutaMarkableMarker marker,
                                                             GError **err);
    gboolean            ianjuta_markable_is_marker_set      (IAnjutaMarkable *obj,
                                                             gint location,
                                                             IAnjutaMarkableMarker marker,
                                                             GError **err);
    gint                ianjuta_markable_location_from_handle
                                                            (IAnjutaMarkable *obj,
                                                             gint handle,
                                                             GError **err);
    gint                ianjuta_markable_mark               (IAnjutaMarkable *obj,
                                                             gint location,
                                                             IAnjutaMarkableMarker marker,
                                                             const gchar *tooltip,
                                                             GError **err);
    void                ianjuta_markable_unmark             (IAnjutaMarkable *obj,
                                                             gint location,
                                                             IAnjutaMarkableMarker marker,
                                                             GError **err);

## Object Hierarchy

      GEnum
       +----IAnjutaMarkableError

      GEnum
       +----IAnjutaMarkableMarker

## Description

## Details

### enum IAnjutaMarkableError

    typedef enum {
    	IANJUTA_MARKABLE_INVALID_LOCATION
    } IAnjutaMarkableError;

### enum IAnjutaMarkableMarker

    typedef enum {
    	IANJUTA_MARKABLE_LINEMARKER,
    	IANJUTA_MARKABLE_BOOKMARK,
    	IANJUTA_MARKABLE_MESSAGE,
    	IANJUTA_MARKABLE_BREAKPOINT_DISABLED,
    	IANJUTA_MARKABLE_BREAKPOINT_ENABLED,
    	IANJUTA_MARKABLE_PROGRAM_COUNTER
    } IAnjutaMarkableMarker;

This enumeration is used to specify the pixmap used for the marker

`IANJUTA_MARKABLE_LINEMARKER` | Mark a particular line
`IANJUTA_MARKABLE_BOOKMARK` | A bookmark
`IANJUTA_MARKABLE_MESSAGE` | An (error) message
`IANJUTA_MARKABLE_BREAKPOINT_DISABLED` | a disabled breakpoint
`IANJUTA_MARKABLE_BREAKPOINT_ENABLED` | a enabled breakpoint
`IANJUTA_MARKABLE_PROGRAM_COUNTER` | Marks the program counter position

### struct IAnjutaMarkableIface

    struct IAnjutaMarkableIface {
    	GTypeInterface g_iface;

    	/* Signal */
    	void (*marker_clicked) (IAnjutaMarkable *obj, gboolean double_click,  gint location);

    	void (*delete_all_markers) (IAnjutaMarkable *obj, IAnjutaMarkableMarker marker, GError **err);
    	gboolean (*is_marker_set) (IAnjutaMarkable *obj, gint location,  IAnjutaMarkableMarker marker, GError **err);
    	gint (*location_from_handle) (IAnjutaMarkable *obj, gint handle, GError **err);
    	gint (*mark) (IAnjutaMarkable *obj, gint location,  IAnjutaMarkableMarker marker,  const gchar* tooltip, GError **err);
    	void (*unmark) (IAnjutaMarkable *obj, gint location,  IAnjutaMarkableMarker marker, GError **err);
    };

### ianjuta_markable_error_quark ()

    GQuark              ianjuta_markable_error_quark        (void);

### ianjuta_markable_delete_all_markers ()

    void                ianjuta_markable_delete_all_markers (IAnjutaMarkable *obj,
                                                             IAnjutaMarkableMarker marker,
                                                             GError **err);

Delete the `marker` from all locations.

`obj` : | Self
`marker` : | Marker to delete.
`err` : | Error propagation and reporting

### ianjuta_markable_is_marker_set ()

    gboolean            ianjuta_markable_is_marker_set      (IAnjutaMarkable *obj,
                                                             gint location,
                                                             IAnjutaMarkableMarker marker,
                                                             GError **err);

Check if the `marker` is set at the given `location`.

`obj` : | Self
`location` : | Location to check.
`marker` : | Marker to check.
`err` : | Error propagation and reporting
Returns : | TRUE if the marker is set at the location, other false.

### ianjuta_markable_location_from_handle ()

    gint                ianjuta_markable_location_from_handle
                                                            (IAnjutaMarkable *obj,
                                                             gint handle,
                                                             GError **err);

Location where a marker is set could have moved by some operation in the implementation. To retrieve the correct location where the marker has moved, pass the handle retured by `ianjuta_markable_mark()` to this method.

`obj` : | Self
`handle` : | Handle of location.
`err` : | Error propagation and reporting
Returns : | Current location where the marker was set.

### ianjuta_markable_mark ()

    gint                ianjuta_markable_mark               (IAnjutaMarkable *obj,
                                                             gint location,
                                                             IAnjutaMarkableMarker marker,
                                                             const gchar *tooltip,
                                                             GError **err);

Marks the specified location with the given marker type. Location is implementation depenedent. For example, for an editor location means lines where markers are set.

`obj` : | Self
`location` : | Location at which the marker to set.
`marker` : | Type of marker to be used
`tooltip` : | optional tooltip displayed with the marker. [allow-none]
`err` : | Error propagation and reporting
Returns : | Handle of the location marked. Can be used later to obtain new location, if it has been moved due to addetions/deletions in the implementor object.

### ianjuta_markable_unmark ()

    void                ianjuta_markable_unmark             (IAnjutaMarkable *obj,
                                                             gint location,
                                                             IAnjutaMarkableMarker marker,
                                                             GError **err);

Clears the `marker` at given `location`.

`obj` : | Self
`location` : | Location where the marker is set.
`marker` : | The marker to unset.
`err` : | Error propagation and reporting