mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-10 03:08:43 +02:00
54 lines
1.2 KiB
ObjectPascal
54 lines
1.2 KiB
ObjectPascal
Program gconfcallback2;
|
|
|
|
{$Mode ObjFpc}
|
|
|
|
Uses glib, gtk, gconf, gconfclient;
|
|
|
|
Procedure entry_activated_callback(entry : PGtkWidget; user_data : gpointer); cdecl;
|
|
var
|
|
client : PGConfClient;
|
|
str : Pgchar;
|
|
begin
|
|
client := PGConfClient(user_data);
|
|
|
|
str := gtk_editable_get_chars(GTK_EDITABLE(entry), 0, -1);
|
|
|
|
gconf_client_set_string(client, '/extra/test/directory/key',
|
|
str, nil);
|
|
|
|
g_free(str);
|
|
end;
|
|
|
|
var
|
|
window : PGtkWidget;
|
|
entry : PGtkWidget;
|
|
client : PGConfClient;
|
|
begin
|
|
gtk_init(@argc, @argv);
|
|
gconf_init(argc, argv, nil);
|
|
|
|
window := gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
gtk_signal_connect(PGtkOBJECT (window), 'delete_event',
|
|
gtk_SIGNAL_FUNC (@gtk_exit), NIL);
|
|
|
|
entry := gtk_entry_new();
|
|
|
|
gtk_container_add(GTK_CONTAINER(window), entry);
|
|
|
|
client := gconf_client_get_default;
|
|
|
|
gconf_client_add_dir(client,
|
|
'/extra/test/directory',
|
|
GCONF_CLIENT_PRELOAD_NONE,
|
|
NULL);
|
|
|
|
|
|
gtk_signal_connect(GTK_OBJECT(entry), 'activate',
|
|
GTK_SIGNAL_FUNC(@entry_activated_callback),
|
|
client);
|
|
|
|
gtk_widget_show_all(window);
|
|
|
|
gtk_main();
|
|
end.
|