## NMVpnEditor NMVpnEditor |

## Functions

NMVpnEditorPlugin * | (*NMVpnEditorPluginFactory) ()
NMVpnEditorPlugin * | nm_vpn_editor_plugin_factory ()
NMVpnEditor * | nm_vpn_editor_plugin_get_editor ()
NMVpnEditorPluginCapability | nm_vpn_editor_plugin_get_capabilities ()
NMConnection * | nm_vpn_editor_plugin_import ()
gboolean | nm_vpn_editor_plugin_export ()
char * | nm_vpn_editor_plugin_get_suggested_filename ()
GObject * | nm_vpn_editor_get_widget ()
gboolean | nm_vpn_editor_update_connection ()

## Properties

gchar * | description | Read
gchar * | name | Read
gchar * | service | Read

## Signals

void | changed | Run First

## Types and Values

enum | NMVpnEditorPluginCapability
#define | NM_VPN_EDITOR_PLUGIN_NAME
#define | NM_VPN_EDITOR_PLUGIN_DESCRIPTION
#define | NM_VPN_EDITOR_PLUGIN_SERVICE
| NMVpnEditorPluginInterface
| NMVpnEditorInterface

## Object Hierarchy

        GFlags
        ╰── NMVpnEditorPluginCapability
        GInterface
        ├── NMVpnEditor
        ╰── NMVpnEditorPlugin

## Description

## Functions

### NMVpnEditorPluginFactory ()

    NMVpnEditorPlugin *
    (*NMVpnEditorPluginFactory) (GError **error);

### nm_vpn_editor_plugin_factory ()

    NMVpnEditorPlugin *
    nm_vpn_editor_plugin_factory (GError **error);

### nm_vpn_editor_plugin_get_editor ()

    NMVpnEditor *
    nm_vpn_editor_plugin_get_editor (NMVpnEditorPlugin *plugin,
                                     NMConnection *connection,
                                     GError **error);

#### Returns

.

[transfer full]

### nm_vpn_editor_plugin_get_capabilities ()

    NMVpnEditorPluginCapability
    nm_vpn_editor_plugin_get_capabilities (NMVpnEditorPlugin *plugin);

### nm_vpn_editor_plugin_import ()

    NMConnection *
    nm_vpn_editor_plugin_import (NMVpnEditorPlugin *plugin,
                                 const char *path,
                                 GError **error);

#### Returns

.

[transfer full]

### nm_vpn_editor_plugin_export ()

    gboolean
    nm_vpn_editor_plugin_export (NMVpnEditorPlugin *plugin,
                                 const char *path,
                                 NMConnection *connection,
                                 GError **error);

### nm_vpn_editor_plugin_get_suggested_filename ()

    char *
    nm_vpn_editor_plugin_get_suggested_filename
                                   (NMVpnEditorPlugin *plugin,
                                    NMConnection *connection);

### nm_vpn_editor_get_widget ()

    GObject *
    nm_vpn_editor_get_widget (NMVpnEditor *editor);

#### Returns

.

[transfer none]

### nm_vpn_editor_update_connection ()

    gboolean
    nm_vpn_editor_update_connection (NMVpnEditor *editor,
                                     NMConnection *connection,
                                     GError **error);

## Types and Values

### enum NMVpnEditorPluginCapability

Flags that indicate certain capabilities of the plugin to editor programs.

#### Members

NM_VPN_EDITOR_PLUGIN_CAPABILITY_NONE | unknown or no capability |
NM_VPN_EDITOR_PLUGIN_CAPABILITY_IMPORT | the plugin can import new connections |
NM_VPN_EDITOR_PLUGIN_CAPABILITY_EXPORT | the plugin can export connections |
NM_VPN_EDITOR_PLUGIN_CAPABILITY_IPV6 | the plugin supports IPv6 addressing |

### NM_VPN_EDITOR_PLUGIN_NAME

    #define NM_VPN_EDITOR_PLUGIN_NAME "name"

### NM_VPN_EDITOR_PLUGIN_DESCRIPTION

    #define NM_VPN_EDITOR_PLUGIN_DESCRIPTION "description"

### NM_VPN_EDITOR_PLUGIN_SERVICE

    #define NM_VPN_EDITOR_PLUGIN_SERVICE "service"

### NMVpnEditorPluginInterface

    typedef struct {
    	GTypeInterface g_iface;

    	NMVpnEditor * (*get_editor) (NMVpnEditorPlugin *plugin,
    	                             NMConnection *connection,
    	                             GError **error);

    	NMVpnEditorPluginCapability (*get_capabilities) (NMVpnEditorPlugin *plugin);

    	NMConnection * (*import_from_file) (NMVpnEditorPlugin *plugin,
    	                                    const char *path,
    	                                    GError **error);

    	gboolean (*export_to_file) (NMVpnEditorPlugin *plugin,
    	                            const char *path,
    	                            NMConnection *connection,
    	                            GError **error);

    	char * (*get_suggested_filename) (NMVpnEditorPlugin *plugin, NMConnection *connection);
    } NMVpnEditorPluginInterface;

Interface for VPN editor plugins.

#### Members

GTypeInterface `g_iface`; | the parent interface |
`get_editor` () | returns an NMVpnEditor, pre-filled with values from `connection` if non-`NULL`. |
`get_capabilities` () | returns a bitmask of capabilities. |
`import_from_file` () | Try to import a connection from the specified path. On success, return a partial NMConnection object. On error, return `NULL` and set `error` with additional information. Note that `error` can be `NULL`, in which case no additional error information should be provided. |
`export_to_file` () | Export the given connection to the specified path. Return `TRUE` on success. On error, return `FALSE` and set `error` with additional error information. Note that `error` can be `NULL`, in which case no additional error information should be provided. |
`get_suggested_filename` () | For a given connection, return a suggested file name. Returned value will be `NULL` or a suggested file name to be freed by the caller. |

### NMVpnEditorInterface

    typedef struct {
    	GTypeInterface g_iface;

    	GObject * (*get_widget) (NMVpnEditor *editor);

    	void (*placeholder) (void);

    	gboolean (*update_connection) (NMVpnEditor *editor,
    	                               NMConnection *connection,
    	                               GError **error);

    	void (*changed) (NMVpnEditor *editor);
    } NMVpnEditorInterface;

Interface for editing a specific NMConnection

#### Members

GTypeInterface `g_iface`; | the parent interface |
`get_widget` () | return the GtkWidget for the VPN editor's UI |
`placeholder` () | not currently used |
`update_connection` () | called to save the user-entered options to the connection object. Should return `FALSE` and set `error` if the current options are invalid. `error` should contain enough information for the plugin to determine which UI widget is invalid at a later point in time. For example, creating unique error codes for what error occurred and populating the message field of `error` with the name of the invalid property. |
`changed` () | emitted when the value of a UI widget changes. May trigger a validity check via `update_connection` to write values to the connection. |

## Property Details

### The `“description”` property

      “description”              gchar *

Longer description of the VPN plugin.

Flags: Read

Default value: NULL

### The `“name”` property

      “name”                     gchar *

Short display name of the VPN plugin.

Flags: Read

Default value: NULL

### The `“service”` property

      “service”                  gchar *

D-Bus service name of the plugin's VPN service.

Flags: Read

Default value: NULL

## Signal Details

### The `“changed”` signal

    void
    user_function (NMVpnEditor *nmvpneditor,
                   gpointer     user_data)

Flags: Run First