|
Packit Service |
639700 |
// SPDX-License-Identifier: GPL-2.0+
|
|
Packit |
fabffb |
/* NetworkManager Connection editor -- Connection editor for NetworkManager
|
|
Packit |
fabffb |
*
|
|
Packit |
fabffb |
* Dan Williams <dcbw@redhat.com>
|
|
Packit |
fabffb |
*
|
|
Packit |
fabffb |
* Copyright 2008 - 2014 Red Hat, Inc.
|
|
Packit |
fabffb |
*/
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#ifndef __CE_PAGE_H__
|
|
Packit |
fabffb |
#define __CE_PAGE_H__
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#include <glib.h>
|
|
Packit |
fabffb |
#include <glib-object.h>
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#include <gtk/gtk.h>
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#include <NetworkManager.h>
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#include "nm-connection-editor.h"
|
|
Packit |
fabffb |
#include "utils.h"
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
/* for ARPHRD_ETHER / ARPHRD_INFINIBAND for MAC utilies */
|
|
Packit |
fabffb |
#include <net/if_arp.h>
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
struct _func_tag_page_new_connection_result;
|
|
Packit |
fabffb |
#define FUNC_TAG_PAGE_NEW_CONNECTION_RESULT_IMPL struct _func_tag_page_new_connection_result *_dummy
|
|
Packit |
fabffb |
#define FUNC_TAG_PAGE_NEW_CONNECTION_RESULT_CALL ((struct _func_tag_page_new_connection_result *) NULL)
|
|
Packit |
fabffb |
typedef void (*PageNewConnectionResultFunc) (FUNC_TAG_PAGE_NEW_CONNECTION_RESULT_IMPL,
|
|
Packit |
fabffb |
NMConnection *connection, /* allow-none, don't transfer reference, allow-keep */
|
|
Packit |
fabffb |
gboolean canceled,
|
|
Packit |
fabffb |
GError *error,
|
|
Packit |
fabffb |
gpointer user_data);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
typedef GSList * (*PageGetConnectionsFunc) (gpointer user_data);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
struct _func_tag_page_new_connection;
|
|
Packit |
fabffb |
#define FUNC_TAG_PAGE_NEW_CONNECTION_IMPL struct _func_tag_page_new_connection *_dummy
|
|
Packit |
fabffb |
#define FUNC_TAG_PAGE_NEW_CONNECTION_CALL ((struct _func_tag_page_new_connection *) NULL)
|
|
Packit |
fabffb |
typedef void (*PageNewConnectionFunc) (FUNC_TAG_PAGE_NEW_CONNECTION_IMPL,
|
|
Packit |
fabffb |
GtkWindow *parent,
|
|
Packit |
fabffb |
const char *detail,
|
|
Packit |
fabffb |
gpointer detail_data,
|
|
Packit |
fabffb |
NMConnection *connection,
|
|
Packit |
fabffb |
NMClient *client,
|
|
Packit |
fabffb |
PageNewConnectionResultFunc result_func,
|
|
Packit |
fabffb |
gpointer user_data);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#define CE_TYPE_PAGE (ce_page_get_type ())
|
|
Packit |
fabffb |
#define CE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CE_TYPE_PAGE, CEPage))
|
|
Packit |
fabffb |
#define CE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CE_TYPE_PAGE, CEPageClass))
|
|
Packit |
fabffb |
#define CE_IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CE_TYPE_PAGE))
|
|
Packit |
fabffb |
#define CE_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CE_TYPE_PAGE))
|
|
Packit |
fabffb |
#define CE_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CE_TYPE_PAGE, CEPageClass))
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#define CE_PAGE_CONNECTION "connection"
|
|
Packit |
fabffb |
#define CE_PAGE_PARENT_WINDOW "parent-window"
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#define CE_PAGE_CHANGED "changed"
|
|
Packit |
fabffb |
#define CE_PAGE_INITIALIZED "initialized"
|
|
Packit |
fabffb |
#define CE_PAGE_NEW_EDITOR "new-editor"
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
typedef struct {
|
|
Packit |
fabffb |
GObject parent;
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
gboolean inter_page_change_running;
|
|
Packit |
fabffb |
GtkBuilder *builder;
|
|
Packit |
fabffb |
GtkWidget *page;
|
|
Packit |
fabffb |
char *title;
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
gulong secrets_done_validate;
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
NMConnectionEditor *editor;
|
|
Packit |
fabffb |
NMConnection *connection;
|
|
Packit |
fabffb |
GtkWindow *parent_window;
|
|
Packit |
fabffb |
NMClient *client;
|
|
Packit |
fabffb |
} CEPage;
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
typedef struct {
|
|
Packit |
fabffb |
GObjectClass parent;
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
/* Virtual functions */
|
|
Packit |
fabffb |
gboolean (*ce_page_validate_v) (CEPage *self, NMConnection *connection, GError **error);
|
|
Packit |
fabffb |
gboolean (*last_update) (CEPage *self, NMConnection *connection, GError **error);
|
|
Packit |
fabffb |
gboolean (*inter_page_change) (CEPage *self);
|
|
Packit |
fabffb |
} CEPageClass;
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
typedef CEPage* (*CEPageNewFunc)(NMConnectionEditor *editor,
|
|
Packit |
fabffb |
NMConnection *connection,
|
|
Packit |
fabffb |
GtkWindow *parent,
|
|
Packit |
fabffb |
NMClient *client,
|
|
Packit |
fabffb |
const char **out_secrets_setting_name,
|
|
Packit |
fabffb |
GError **error);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#define CE_TOOLTIP_ADDR_AUTO _("IP addresses identify your computer on the network. " \
|
|
Packit |
fabffb |
"Click the “Add” button to add static IP address to be " \
|
|
Packit |
fabffb |
"configured in addition to the automatic ones.")
|
|
Packit |
fabffb |
#define CE_TOOLTIP_ADDR_MANUAL _("IP addresses identify your computer on the network. " \
|
|
Packit |
fabffb |
"Click the “Add” button to add an IP address.")
|
|
Packit |
fabffb |
#define CE_TOOLTIP_ADDR_SHARED _("The IP address identify your computer on the network and " \
|
|
Packit |
fabffb |
"determines the address range distributed to other computers. " \
|
|
Packit |
fabffb |
"Click the “Add” button to add an IP address. "\
|
|
Packit |
fabffb |
"If no address is provided, range will be determined automatically.")
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#define CE_LABEL_ADDR_AUTO _("Additional static addresses")
|
|
Packit |
fabffb |
#define CE_LABEL_ADDR_MANUAL _("Addresses")
|
|
Packit |
fabffb |
#define CE_LABEL_ADDR_SHARED _("Address (optional)")
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
GType ce_page_get_type (void);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
GtkWidget * ce_page_get_page (CEPage *self);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
const char * ce_page_get_title (CEPage *self);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
gboolean ce_page_validate (CEPage *self, NMConnection *connection, GError **error);
|
|
Packit |
fabffb |
gboolean ce_page_last_update (CEPage *self, NMConnection *connection, GError **error);
|
|
Packit |
fabffb |
gboolean ce_page_inter_page_change (CEPage *self);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
void ce_page_setup_mac_combo (CEPage *self, GtkComboBox *combo,
|
|
Packit |
fabffb |
const char *mac, char **mac_list);
|
|
Packit |
fabffb |
void ce_page_setup_data_combo (CEPage *self, GtkComboBox *combo,
|
|
Packit |
fabffb |
const char *data, char **list);
|
|
Packit |
fabffb |
void ce_page_setup_cloned_mac_combo (GtkComboBoxText *combo, const char *current);
|
|
Packit |
fabffb |
void ce_page_setup_device_combo (CEPage *self,
|
|
Packit |
fabffb |
GtkComboBox *combo,
|
|
Packit |
fabffb |
GType device_type,
|
|
Packit |
fabffb |
const char *ifname,
|
|
Packit |
fabffb |
const char *mac,
|
|
Packit |
fabffb |
const char *mac_property);
|
|
Packit |
fabffb |
gboolean ce_page_mac_entry_valid (GtkEntry *entry, int type, const char *property_name, GError **error);
|
|
Packit |
fabffb |
gboolean ce_page_interface_name_valid (const char *iface, const char *property_name, GError **error);
|
|
Packit |
fabffb |
gboolean ce_page_device_entry_get (GtkEntry *entry, int type,
|
|
Packit |
fabffb |
gboolean check_ifname,
|
|
Packit |
fabffb |
char **ifname, char **mac,
|
|
Packit |
fabffb |
const char *device_name,
|
|
Packit |
fabffb |
GError **error);
|
|
Packit |
fabffb |
char *ce_page_cloned_mac_get (GtkComboBoxText *combo);
|
|
Packit |
fabffb |
gboolean ce_page_cloned_mac_combo_valid (GtkComboBoxText *combo, int type, const char *property_name, GError **error);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
void ce_page_changed (CEPage *self);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
NMConnectionEditor *ce_page_new_editor (CEPage *self,
|
|
Packit |
fabffb |
GtkWindow *parent_window,
|
|
Packit |
fabffb |
NMConnection *connection);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
void ce_spin_automatic_val (GtkSpinButton *spin, int defvalue);
|
|
Packit |
fabffb |
void ce_spin_default_val (GtkSpinButton *spin, int defvalue);
|
|
Packit Service |
639700 |
void ce_spin_off_val (GtkSpinButton *spin, int defvalue);
|
|
Packit |
fabffb |
int ce_get_property_default (NMSetting *setting, const char *property_name);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
void ce_page_complete_init (CEPage *self,
|
|
Packit |
fabffb |
const char *setting_name,
|
|
Packit |
fabffb |
GVariant *secrets,
|
|
Packit |
fabffb |
GError *error);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
char *ce_page_get_next_available_name (const GPtrArray *connections, const char *format);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
/* Only for subclasses */
|
|
Packit |
fabffb |
void ce_page_complete_connection (NMConnection *connection,
|
|
Packit |
fabffb |
const char *format,
|
|
Packit |
fabffb |
const char *ctype,
|
|
Packit |
fabffb |
gboolean autoconnect,
|
|
Packit |
fabffb |
NMClient *client);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
static inline NMConnection *
|
|
Packit |
fabffb |
_ensure_connection_own (NMConnection **connection)
|
|
Packit |
fabffb |
{
|
|
Packit |
fabffb |
return (*connection) ?: (*connection = nm_simple_connection_new ());
|
|
Packit |
fabffb |
}
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
static inline NMConnection *
|
|
Packit |
fabffb |
_ensure_connection_other (NMConnection *connection, NMConnection **connection_to_free)
|
|
Packit |
fabffb |
{
|
|
Packit |
fabffb |
if (connection) {
|
|
Packit |
fabffb |
*connection_to_free = NULL;
|
|
Packit |
fabffb |
return connection;
|
|
Packit |
fabffb |
}
|
|
Packit |
fabffb |
return (*connection_to_free = nm_simple_connection_new ());
|
|
Packit |
fabffb |
}
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
CEPage *ce_page_new (GType page_type,
|
|
Packit |
fabffb |
NMConnectionEditor *editor,
|
|
Packit |
fabffb |
NMConnection *connection,
|
|
Packit |
fabffb |
GtkWindow *parent_window,
|
|
Packit |
fabffb |
NMClient *client,
|
|
Packit |
fabffb |
const char *ui_resource,
|
|
Packit |
fabffb |
const char *widget_name,
|
|
Packit |
fabffb |
const char *title);
|
|
Packit |
fabffb |
|
|
Packit |
fabffb |
#endif /* __CE_PAGE_H__ */
|
|
Packit |
fabffb |
|