## GtkSourceCompletionProposal GtkSourceCompletionProposal — Completion proposal interface |

## Synopsis

    #include <gtksourceview/gtksource.h>

                        GtkSourceCompletionProposal;
    struct              GtkSourceCompletionProposalIface;
    gchar *             gtk_source_completion_proposal_get_label
                                                            (GtkSourceCompletionProposal *proposal);
    gchar *             gtk_source_completion_proposal_get_markup
                                                            (GtkSourceCompletionProposal *proposal);
    gchar *             gtk_source_completion_proposal_get_text
                                                            (GtkSourceCompletionProposal *proposal);
    GdkPixbuf *         gtk_source_completion_proposal_get_icon
                                                            (GtkSourceCompletionProposal *proposal);
    gchar *             gtk_source_completion_proposal_get_info
                                                            (GtkSourceCompletionProposal *proposal);
    void                gtk_source_completion_proposal_changed
                                                            (GtkSourceCompletionProposal *proposal);
    guint               gtk_source_completion_proposal_hash (GtkSourceCompletionProposal *proposal);
    gboolean            gtk_source_completion_proposal_equal
                                                            (GtkSourceCompletionProposal *proposal,
                                                             GtkSourceCompletionProposal *other);

## Object Hierarchy

      GInterface
       +----GtkSourceCompletionProposal

## Prerequisites

GtkSourceCompletionProposal requires GObject.

## Known Implementations

GtkSourceCompletionProposal is implemented by GtkSourceCompletionItem.

## Signals

      "changed"                                        : Action

## Description

The proposal interface represents a completion item in the completion window. It provides information on how to display the completion item and what action should be taken when the completion item is activated.

## Details

### GtkSourceCompletionProposal

    typedef struct _GtkSourceCompletionProposal GtkSourceCompletionProposal;

### struct GtkSourceCompletionProposalIface

    struct GtkSourceCompletionProposalIface {
    	GTypeInterface parent;

    	/* Interface functions */
    	gchar		*(*get_label) (GtkSourceCompletionProposal *proposal);
    	gchar		*(*get_markup) (GtkSourceCompletionProposal *proposal);
    	gchar		*(*get_text) (GtkSourceCompletionProposal *proposal);

    	GdkPixbuf *(*get_icon) (GtkSourceCompletionProposal *proposal);
    	gchar		*(*get_info) (GtkSourceCompletionProposal *proposal);

    	guint		 (*hash) (GtkSourceCompletionProposal *proposal);
    	gboolean	 (*equal) (GtkSourceCompletionProposal *proposal,
    					 GtkSourceCompletionProposal *other);

    	/* Signals */
    	void		 (*changed) (GtkSourceCompletionProposal *proposal);
    };

The virtual function table for GtkSourceCompletionProposal.

GTypeInterface `parent`; | The parent interface.
`get_label` () | The virtual function pointer for `gtk_source_completion_proposal_get_label()`. By default, `NULL` is returned.
`get_markup` () | The virtual function pointer for `gtk_source_completion_proposal_get_markup()`. By default, `NULL` is returned.
`get_text` () | The virtual function pointer for `gtk_source_completion_proposal_get_text()`. By default, `NULL` is returned.
`get_icon` () | The virtual function pointer for `gtk_source_completion_proposal_get_icon()`. By default, `NULL` is returned.
`get_info` () | The virtual function pointer for `gtk_source_completion_proposal_get_info()`. By default, `NULL` is returned.
`hash` () | The virtual function pointer for `gtk_source_completion_proposal_hash()`. By default, it uses a direct hash (`g_direct_hash()`).
`equal` () | The virtual function pointer for `gtk_source_completion_proposal_equal()`. By default, it uses direct equality (`g_direct_equal()`).
`changed` () | The function pointer for the "changed" signal.

### gtk_source_completion_proposal_get_label ()

    gchar *             gtk_source_completion_proposal_get_label
                                                            (GtkSourceCompletionProposal *proposal);

Gets the label of `proposal`. The label is shown in the list of proposals as plain text. If you need any markup (such as bold or italic text), you have to implement `gtk_source_completion_proposal_get_markup()`. The returned string must be freed with `g_free()`.

`proposal` : | a GtkSourceCompletionProposal.
Returns : | a new string containing the label of `proposal`.

### gtk_source_completion_proposal_get_markup ()

    gchar *             gtk_source_completion_proposal_get_markup
                                                            (GtkSourceCompletionProposal *proposal);

Gets the label of `proposal` with markup. The label is shown in the list of proposals and may contain markup. This will be used instead of `gtk_source_completion_proposal_get_label()` if implemented. The returned string must be freed with `g_free()`.

`proposal` : | a GtkSourceCompletionProposal.
Returns : | a new string containing the label of `proposal` with markup.

### gtk_source_completion_proposal_get_text ()

    gchar *             gtk_source_completion_proposal_get_text
                                                            (GtkSourceCompletionProposal *proposal);

Gets the text of `proposal`. The text that is inserted into the text buffer when the proposal is activated by the default activation. You are free to implement a custom activation handler in the provider and not implement this function. For more information, see `gtk_source_completion_provider_activate_proposal()`. The returned string must be freed with `g_free()`.

`proposal` : | a GtkSourceCompletionProposal.
Returns : | a new string containing the text of `proposal`.

### gtk_source_completion_proposal_get_icon ()

    GdkPixbuf *         gtk_source_completion_proposal_get_icon
                                                            (GtkSourceCompletionProposal *proposal);

Gets the icon of `proposal`.

`proposal` : | a GtkSourceCompletionProposal.
Returns : | The icon of `proposal`. [transfer none]

### gtk_source_completion_proposal_get_info ()

    gchar *             gtk_source_completion_proposal_get_info
                                                            (GtkSourceCompletionProposal *proposal);

Gets extra information associated to the proposal. This information will be used to present the user with extra, detailed information about the selected proposal. The returned string must be freed with `g_free()`.

`proposal` : | a GtkSourceCompletionProposal.
Returns : | a new string containing extra information of `proposal` or `NULL` if no extra information is associated to `proposal`.

### gtk_source_completion_proposal_changed ()

    void                gtk_source_completion_proposal_changed
                                                            (GtkSourceCompletionProposal *proposal);

Emits the "changed" signal on `proposal`. This should be called by implementations whenever the name, icon or info of the proposal has changed.

`proposal` : | a GtkSourceCompletionProposal.

### gtk_source_completion_proposal_hash ()

    guint               gtk_source_completion_proposal_hash (GtkSourceCompletionProposal *proposal);

Get the hash value of `proposal`. This is used to (together with `gtk_source_completion_proposal_equal()`) to match proposals in the completion model. By default, it uses a direct hash (`g_direct_hash()`).

`proposal` : | a GtkSourceCompletionProposal.
Returns : | The hash value of `proposal`.

### gtk_source_completion_proposal_equal ()

    gboolean            gtk_source_completion_proposal_equal
                                                            (GtkSourceCompletionProposal *proposal,
                                                             GtkSourceCompletionProposal *other);

Get whether two proposal objects are the same. This is used to (together with `gtk_source_completion_proposal_hash()`) to match proposals in the completion model. By default, it uses direct equality (`g_direct_equal()`).

`proposal` : | a GtkSourceCompletionProposal.
`other` : | a GtkSourceCompletionProposal.
Returns : | `TRUE` if `proposal` and `object` are the same proposal

## Signal Details

### The `"changed"` signal

    void                user_function                      (GtkSourceCompletionProposal *proposal,
                                                            gpointer                     user_data)      : Action

Emitted when the proposal has changed. The completion popup will react to this by updating the shown information.

`proposal` : | The GtkSourceCompletionProposal
`user_data` : | user data set when the signal handler was connected.