## IdeProjectTemplate IdeProjectTemplate |

## Functions

gchar * | ide_project_template_get_id ()
gint | ide_project_template_get_priority ()
gchar * | ide_project_template_get_name ()
gchar * | ide_project_template_get_description ()
GtkWidget * | ide_project_template_get_widget ()
gchar ** | ide_project_template_get_languages ()
gchar * | ide_project_template_get_icon_name ()
void | ide_project_template_expand_async ()
gboolean | ide_project_template_expand_finish ()
gint | ide_project_template_compare ()

## Types and Values

#define | IDE_TYPE_PROJECT_TEMPLATE
struct | IdeProjectTemplateInterface
| IdeProjectTemplate

## Object Hierarchy

        GInterface
        ╰── IdeProjectTemplate

## Prerequisites

IdeProjectTemplate requires GObject.

## Description

## Functions

### ide_project_template_get_id ()

    gchar *
    ide_project_template_get_id (IdeProjectTemplate *self);

### ide_project_template_get_priority ()

    gint
    ide_project_template_get_priority (IdeProjectTemplate *self);

Gets the priority of the template. This can be used to sort the templates in the "new project" view.

#### Parameters

self | a IdeProjectTemplate |

#### Returns

the priority of the template

Since: 3.28

### ide_project_template_get_name ()

    gchar *
    ide_project_template_get_name (IdeProjectTemplate *self);

### ide_project_template_get_description ()

    gchar *
    ide_project_template_get_description (IdeProjectTemplate *self);

### ide_project_template_get_widget ()

    GtkWidget *
    ide_project_template_get_widget (IdeProjectTemplate *self);

Get's the configuration widget for the template if there is one.

#### Parameters

self | An IdeProjectTemplate |

#### Returns

a GtkWidget.

[transfer none]

### ide_project_template_get_languages ()

    gchar **
    ide_project_template_get_languages (IdeProjectTemplate *self);

Gets the list of languages that this template can support when generating the project.

#### Parameters

self | an IdeProjectTemplate |

#### Returns

A newly allocated, NULL terminated list of supported languages.

[transfer full]

### ide_project_template_get_icon_name ()

    gchar *
    ide_project_template_get_icon_name (IdeProjectTemplate *self);

### ide_project_template_expand_async ()

    void
    ide_project_template_expand_async (IdeProjectTemplate *self,
                                       GHashTable *params,
                                       GCancellable *cancellable,
                                       GAsyncReadyCallback callback,
                                       gpointer user_data);

Asynchronously requests expansion of the template.

This may involve creating files and directories on disk as well as expanding files based on the contents of `params` .

It is expected that this method is only called once on an IdeProjectTemplate.

#### Parameters

self | an IdeProjectTemplate |
params | A hashtable of template parameters. | [element-type utf8 GLib.Variant]
cancellable | a GCancellable or `NULL`. | [nullable]
callback | the callback for the asynchronous operation. |
user_data | user data for `callback` . |

### ide_project_template_expand_finish ()

    gboolean
    ide_project_template_expand_finish (IdeProjectTemplate *self,
                                        GAsyncResult *result,
                                        GError **error);

### ide_project_template_compare ()

    gint
    ide_project_template_compare (IdeProjectTemplate *a,
                                  IdeProjectTemplate *b);

## Types and Values

### IDE_TYPE_PROJECT_TEMPLATE

    #define IDE_TYPE_PROJECT_TEMPLATE (ide_project_template_get_type())

### struct IdeProjectTemplateInterface

    struct IdeProjectTemplateInterface {
      GTypeInterface parent;

      gchar      *(*get_id)          (IdeProjectTemplate   *self);
      gchar      *(*get_name)        (IdeProjectTemplate   *self);
      gchar      *(*get_description) (IdeProjectTemplate   *self);
      GtkWidget  *(*get_widget)      (IdeProjectTemplate   *self);
      gchar     **(*get_languages)   (IdeProjectTemplate   *self);
      gchar      *(*get_icon_name)   (IdeProjectTemplate   *self);
      void        (*expand_async)    (IdeProjectTemplate   *self,
                                      GHashTable           *params,
                                      GCancellable         *cancellable,
                                      GAsyncReadyCallback   callback,
                                      gpointer              user_data);
      gboolean    (*expand_finish)   (IdeProjectTemplate   *self,
                                      GAsyncResult         *result,
                                      GError              **error);
      gint        (*get_priority)    (IdeProjectTemplate   *self);
    };

### IdeProjectTemplate

    typedef struct _IdeProjectTemplate IdeProjectTemplate;