NetworkManager/src/libnm-client-public/nm-vpn-editor.h
Lubomir Rintel 649314ddaa libnm: replace nm-types.h by defining the types in respective headers
The typedefs in nm-types.h confuse gtkdoc-scan. It generates a
libnm-sections.txt file like this:

  <SECTION>
  <FILE>nm-types</FILE>
  <TITLE>NMDeviceOvs</TITLE>
  NMAccessPoint
  NMActiveConnection
  NMCheckpoint
  NMClient
  NMDevice
  ...

Note the wrongly picked title and, more importantly, the object types in
a bogus section. This in turn makes gtkdoc-mkdb fail to include the
property and signal documentation in appropriate sections.

Without nm-types.h, we need to mind the header dependencies. This means
that we need to order the headers that define types before the ones that
use them. Also, we need to break the depencency loops in few palces.
2022-05-06 18:33:27 +02:00

68 lines
2.3 KiB
C

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2008 Novell, Inc.
* Copyright (C) 2008 - 2015 Red Hat, Inc.
*/
#ifndef __NM_VPN_EDITOR_H__
#define __NM_VPN_EDITOR_H__
#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <glib.h>
#include <glib-object.h>
#include "nm-vpn-editor-plugin.h"
G_BEGIN_DECLS
/*****************************************************************************/
/* Editor interface */
/*****************************************************************************/
#define NM_TYPE_VPN_EDITOR (nm_vpn_editor_get_type())
#define NM_VPN_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_VPN_EDITOR, NMVpnEditor))
#define NM_IS_VPN_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_VPN_EDITOR))
#define NM_VPN_EDITOR_GET_INTERFACE(obj) \
(G_TYPE_INSTANCE_GET_INTERFACE((obj), NM_TYPE_VPN_EDITOR, NMVpnEditorInterface))
/**
* NMVpnEditorInterface:
* @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.
*
* Interface for editing a specific #NMConnection
*/
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;
GType nm_vpn_editor_get_type(void);
GObject *nm_vpn_editor_get_widget(NMVpnEditor *editor);
gboolean
nm_vpn_editor_update_connection(NMVpnEditor *editor, NMConnection *connection, GError **error);
G_END_DECLS
#endif /* __NM_VPN_EDITOR_H__ */