Re: [gtk-list] Problem with signals..
- From: Jim Harmon <jharmon telecnnct com>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Problem with signals..
- Date: Fri, 10 Apr 1998 12:01:19 -0400
Michael Oswell wrote:
>
> The problem is that for some reason, clicking on any button causes a
> sigsegv. I know there is something wrong with the code that is causing
> it, but for the life of me can't figure out what it is. I am fairly new
> to gtk (Installed it this morning for the first time. :P ), so it may very
> well be something very simple.
Are you saying that you got *no* errors compiling and installing GTK?
> Any help would be greatly appreciated. Oh.. And I have joined the list,
> or at least sent a request to it, but have had no responce back from the
> daemon yet, so please respond to oswell@mail.ocis.net.
>
> Thanks again..
>
> -------
>
> Here is my system:
> OpenBSD envy 2.2 GENERIC#10 i386
>
> gtk-config --version
> 0.99.10
>
> Here is the output from running my program:
>
> oswell@envy [~/code/configsys]: ./configsys
> Trace/BPT trap (core dumped)
> oswell@envy [~/code/configsys]: ./configsys
>
> ** ERROR **: sigsegv caught
>
> The first error I had never seen before I went to capture an error for
> this email... Whacky. :)
>
> And at last.. Here is the code.
>
> ----------
> #include "gtk/gtk.h"
>
> int login (void)
> {
> g_print("You pushed login.\n");
> }
>
> void destroy (void)
> {
> gtk_exit (0);
> }
>
> void new_alias(GtkWidget *widget, gpointer *data)
> {
> g_print("Clicked on new_alias: %s\n", (char *)data);
> }
>
> /******************************/
> /* Print out the main screen. */
> /******************************/
> GtkWidget *printMain(void)
> {
> GtkWidget *window, *table;
> GtkWidget *new_alias;
>
> window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
> gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL);
> gtk_window_set_title(GTK_WINDOW (window), "On Call Internet Services - User Configuration");
> gtk_container_border_width (GTK_CONTAINER (window), 10);
>
> /* Create a new table. */
> table = gtk_table_new(4,6,1);
> gtk_container_add(GTK_CONTAINER(window), table);
>
> /* Create the newalias button */
> new_alias = gtk_button_new_with_label ("New Alias");
> gtk_signal_connect(GTK_OBJECT(new_alias), "clicked", GTK_SIGNAL_FUNC (new_alias), (gpointer) "New Alias");
> gtk_table_attach_defaults(GTK_TABLE(table), new_alias, 0,1,0,1);
> gtk_widget_show(new_alias);
>
> gtk_widget_show (table);
> gtk_widget_show (window);
>
> return(window);
> }
>
> /*******************************/
> /* dologin shows login screen. */
> /*******************************/
>
> int dologin(void)
> {
> GtkWidget *window, *table;
> GtkWidget *login, *cancel;
> GtkWidget *label, *username, *password;
>
> window = gtk_window_new(GTK_WINDOW_DIALOG);
> gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL);
>
> gtk_window_set_title(GTK_WINDOW(window), "Login Dialog");
> gtk_container_border_width (GTK_CONTAINER (window), 10);
> gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
>
> /* Create table in new dialog box. */
> table = gtk_table_new(4,6,1);
> gtk_container_add(GTK_CONTAINER(window), table);
>
> /* Create username label. */
> label = gtk_label_new("Username: ");
> gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 0, 1);
> gtk_widget_show(label);
>
> /* Create username text box. */
> username = gtk_entry_new_with_max_length(15);
> gtk_table_attach_defaults(GTK_TABLE(table), username, 2, 5, 0 , 1);
> gtk_widget_show(username);
>
> /* Create password label. */
> label = gtk_label_new("Password: ");
> gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 1, 2);
> gtk_widget_show(label);
>
> /* Create password text box. */
> password = gtk_entry_new_with_max_length(15);
> gtk_table_attach_defaults(GTK_TABLE(table), password, 2, 5, 1 , 2);
> gtk_widget_show(password);
>
> /* Create the login button */
> login = gtk_button_new_with_label ("Login");
> gtk_signal_connect(GTK_OBJECT(login), "clicked", GTK_SIGNAL_FUNC(login), NULL);
> gtk_table_attach_defaults(GTK_TABLE(table), login, 1,2,3,4);
> gtk_widget_show(login);
>
> /* Create the cancel button */
> cancel = gtk_button_new_with_label ("Cancel");
> gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy), NULL);
> gtk_table_attach_defaults(GTK_TABLE(table), cancel, 4,5,3,4);
> gtk_widget_show(cancel);
>
> /* Make the login button the default. */
> GTK_WIDGET_SET_FLAGS(login, GTK_CAN_DEFAULT);
>
> gtk_widget_show (table);
> gtk_widget_show (window);
>
> return(0);
> }
>
> int
> main (int argc, char **argv)
> { GtkWidget *window;
> int login = 0;
>
> gtk_init (&argc, &argv);
>
> window = printMain();
> login = dologin();
>
> gtk_main ();
>
> return 0;
> }
>
> --
> To unsubscribe: mail -s unsubscribe gtk-list-request@redhat.com < /dev/null
--
Jim Harmon The Telephone Connection
jim@telecnnct.com Rockville, Maryland
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]