settings.h
7.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
* "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
* (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
* aplicativos mainframe. Registro no INPI sob o nome G3270.
*
* Copyright (C) <2008> <Banco do Brasil S.A.>
*
* Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
* os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
* Free Software Foundation.
*
* Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
* GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
* A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
* obter mais detalhes.
*
* Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
* programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
* St, Fifth Floor, Boston, MA 02110-1301 USA
*
* Este programa está nomeado como - e possui - linhas de código.
*
* Contatos:
*
* perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
* erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
*
*/
#ifndef V3270SETTINGS_H_INCLUDED
#define V3270SETTINGS_H_INCLUDED 1
#ifdef _WIN32
#include <windows.h>
#endif // _WIN32
#include <gtk/gtk.h>
G_BEGIN_DECLS
/*--[ Tools ]----------------------------------------------------------------------------------------*/
/// @brief Reads the terminal settings from the group group_name in key_file.
LIB3270_EXPORT gboolean v3270_load_key_file(GtkWidget *widget, GKeyFile *key_file, const gchar *group_name);
/// @brief This function adds the terminal settings from widget to key_file.
LIB3270_EXPORT void v3270_to_key_file(GtkWidget *widget, GKeyFile *key_file, const gchar *group_name);
/// @brief Emit the "save-settings" signal.
LIB3270_EXPORT void v3270_emit_save_settings(GtkWidget *widget, const gchar *property_name);
#ifdef _WIN32
LIB3270_EXPORT gboolean v3270_load_registry(GtkWidget *widget, HKEY hKey, const gchar *group_name);
LIB3270_EXPORT void v3270_to_registry(GtkWidget *widget, HKEY hKey, const gchar *group_name);
LIB3270_EXPORT LSTATUS v3270_win32_create_regkey(LPCSTR lpSubKey, REGSAM samDesired, PHKEY phkResult);
#endif // _WIN32
/*--[ V3270 Settings Widget ]------------------------------------------------------------------------*/
#define GTK_TYPE_V3270_SETTINGS (V3270Settings_get_type())
#define GTK_V3270_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270_SETTINGS, V3270Settings))
#define GTK_V3270_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270_SETTINGS, V3270SettingsClass))
#define GTK_IS_V3270_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270_SETTINGS))
#define GTK_IS_V3270_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270_SETTINGS))
#define GTK_V3270_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270_SETTINGS, V3270SettingsClass))
typedef struct _V3270Settings {
GtkGrid parent;
GtkWidget * terminal;
const gchar * label; ///< @brief Label for settings dialog.
const gchar * title; ///< @brief Title for settings dialog.
const gchar * tooltip; ///< @brief Tooltip for settings dialog.
gboolean valid; ///< @brief True if the settings can be applyed.
} V3270Settings;
typedef struct _V3270SettingsClass {
GtkGridClass parent_class;
void (*load)(GtkWidget *widget, GtkWidget *terminal); ///< @brief Method to load the properties from terminal widget
void (*apply)(GtkWidget *widget, GtkWidget *terminal); ///< @brief Method for GTK_RESPONSE_APPLY
void (*revert)(GtkWidget *widget, GtkWidget *terminal); ///< @brief Method for GTK_RESPONSE_CANCEL
void (*update_message)(GtkWidget *widget, GtkWidget *terminal); ///< @brief Lib3270 message has changed.
void (*validity)(GtkWidget *, gboolean);
} V3270SettingsClass;
LIB3270_EXPORT GType V3270Settings_get_type(void);
LIB3270_EXPORT void v3270_settings_set_terminal_widget(GtkWidget *widget, GtkWidget *terminal);
LIB3270_EXPORT GtkWidget * v3270_settings_get_terminal_widget(GtkWidget *widget);
LIB3270_EXPORT void v3270_settings_apply(GtkWidget *widget);
LIB3270_EXPORT void v3270_settings_revert(GtkWidget *widget);
LIB3270_EXPORT void v3270_settings_set_valid(GtkWidget *widget, gboolean is_valid);
LIB3270_EXPORT gboolean v3270_settings_get_valid(GtkWidget *widget);
LIB3270_EXPORT const gchar * v3270_settings_get_title(GtkWidget *widget);
LIB3270_EXPORT const gchar * v3270_settings_get_label(GtkWidget *widget);
LIB3270_EXPORT const gchar * v3270_settings_get_tooltip(GtkWidget *widget);
/// @brief Popup a settings dialog for the terminal.
LIB3270_EXPORT GtkWidget * v3270_settings_popup_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal);
/// @brief Get an edit dialog for the settings widget.
LIB3270_EXPORT GtkWidget * v3270_settings_get_edit_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal);
/*--[ V3270 Settings Dialog ]------------------------------------------------------------------------*/
#define GTK_TYPE_V3270_SETTINGS_DIALOG (V3270SettingsDialog_get_type())
#define GTK_V3270_SETTINGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270_SETTINGS_DIALOG, V3270SettingsDialog))
#define GTK_V3270_SETTINGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270_SETTINGS_DIALOG, V3270SettingsDialogClass))
#define GTK_IS_V3270_SETTINGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270_SETTINGS_DIALOG))
#define GTK_IS_V3270_SETTINGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270_SETTINGS_DIALOG))
#define GTK_V3270_SETTINGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270_SETTINGS_DIALOG, V3270SettingsDialogClass))
typedef struct _V3270SettingsDialog V3270SettingsDialog;
typedef struct _V3270SettingsDialogClass V3270SettingsDialogClass;
LIB3270_EXPORT GType V3270SettingsDialog_get_type(void);
LIB3270_EXPORT GtkWidget * v3270_settings_dialog_new();
LIB3270_EXPORT void v3270_settings_dialog_set_terminal_widget(GtkWidget *widget, GtkWidget *terminal);
LIB3270_EXPORT void v3270_settings_dialog_set_has_subtitle(GtkWidget *widget, gboolean has_subtitle);
/// @brief Process GtkDialog's "response" signal.
LIB3270_EXPORT void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWidget *terminal);
LIB3270_EXPORT void v3270_settings_dialog_apply(GtkWidget *widget);
LIB3270_EXPORT void v3270_settings_dialog_revert(GtkWidget *widget);
LIB3270_EXPORT GtkWidget * v3270_font_chooser_widget_new() G_GNUC_DEPRECATED;
LIB3270_EXPORT GtkWidget * v3270_host_select_new() G_GNUC_DEPRECATED;
/// @brief Create accelerator settings widget.
LIB3270_EXPORT GtkWidget * v3270_accelerator_settings_new();
/// @brief Create host settings widget.
LIB3270_EXPORT GtkWidget * v3270_host_settings_new();
/// @brief Create font settings widget.
LIB3270_EXPORT GtkWidget * v3270_font_settings_new();
/// @brief Create color settings widget.
LIB3270_EXPORT GtkWidget * v3270_color_settings_new();
/// @brief Create cut & paste settings widget.
LIB3270_EXPORT GtkWidget * v3270_clipboard_settings_new();
G_END_DECLS
#endif // V3270SETTINGS_H_INCLUDED