File: interval.c

package info (click to toggle)
melon 1.4-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 956 kB
  • ctags: 158
  • sloc: ansic: 2,427; makefile: 91; sh: 58
file content (91 lines) | stat: -rw-r--r-- 2,399 bytes parent folder | download
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
/* interval.c -- check interval setting
 *
 * Copyright(C) 2001-2002 Elisa Manara <e@entropika.net>
 * This code is released under the GPL License version 2 */

#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
#include "melon.h"

GtkWidget *entry;
static void update_interval(GtkWidget *widget, gpointer user_data);

gint set_interval (GtkWidget *widget, gpointer data)
{
	GtkWidget *window;
	GtkWidget *vbox, *hbox1, *hbox2;
	GtkWidget *button, *label;
	char text[16];

	/* window */
	window = gtk_window_new( GTK_WINDOW_DIALOG);
	gtk_window_set_position(GTK_WINDOW (window), GTK_WIN_POS_MOUSE);
	gtk_widget_set_usize( GTK_WIDGET (window), 200, 50);
	gtk_window_set_title(GTK_WINDOW (window), "Set Interval");
	gtk_widget_show(window);

	/* vbox */
	vbox = gtk_vbox_new( FALSE, 0 );
	gtk_container_add( GTK_CONTAINER( window ), vbox );
	gtk_widget_show( vbox );

	/* hbox1 */
	hbox1 = gtk_hbox_new( FALSE, 0 );
	gtk_container_add( GTK_CONTAINER( vbox ), hbox1);
	gtk_widget_show( hbox1 );

	/* label */
	label = gtk_label_new ("Interval (ms): ");
	gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 5);
	gtk_widget_show(label);

	/* entry */
	entry = gtk_entry_new();
	gtk_entry_set_max_length (GTK_ENTRY( entry ), 16);

	snprintf(text, 16, "%d", cfg_data.interval);
	gtk_entry_set_text (GTK_ENTRY( entry ), text);
	gtk_box_pack_start (GTK_BOX (hbox1), entry, FALSE, FALSE, 5);
	gtk_widget_show(entry);

	/* hbox2 */
	hbox2 = gtk_hbox_new( FALSE, 0 );
	gtk_container_add( GTK_CONTAINER( vbox ), hbox2);
	gtk_widget_show( hbox2 );

	/* APPLY button */
	button = gtk_button_new_with_label ("Apply");
	gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
		GTK_SIGNAL_FUNC(update_interval), NULL);
	gtk_box_pack_start (GTK_BOX (hbox2), button, TRUE, TRUE, 0);
	gtk_widget_show (button);

	/* CLOSE button */
	button = gtk_button_new_with_label ("Close");
	gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
		GTK_SIGNAL_FUNC(gtk_widget_destroy),
		GTK_OBJECT (window));
	gtk_box_pack_start (GTK_BOX (hbox2), button, TRUE, TRUE, 0);
	gtk_widget_show (button);

	return 1;

}

void update_interval(GtkWidget *widget, gpointer user_data)
{
	char *text;

	text = gtk_editable_get_chars(GTK_EDITABLE( entry ), 0, -1);
	if (text[0] != '\0') {
		cfg_data.interval = atoi(text);
		g_free(text);
	}

	dialog_message (" Interval value updated ");
	config_update();

	return;
}