RE: dialog widget problem



You were right.  For some reason it needed gtk_signal_connect_object.  If I 
want to also have a window delete handler in case they close the window via 
window mgr does the following look right given the variable names I have 
used already.

gtk_signal_connect(GTK_OBJECT(dialog_win),"delete_event",
 
                            GTK_SIGNAL_FUNC(utics_ok_delete_handler),NULL);

gboolean utics_ok_delete_handler(GtkWidget *widget, GdkEvent *event,
                                                  gpointer user_data)
{
  gtk_widget_hide(widget);
  return(TRUE);
}

Actually, i just tried it and I got a core dump.  Anything look wrong 
above.  Thanks ahead of time for your help.

Matt



-----Original Message-----
From:	Dugas, Alan [SMTP:alan dugas analog com]
Sent:	Monday, October 30, 2000 5:58 PM
To:	gtk-list gnome org; Matt Eisemann
Subject:	RE: dialog widget problem

Just a thought...  It appears the problem has to do with 
gtk_signal_connect()
passing it's first argument to gtk_widget_hide() whereas I think your 
trying to
pass the last argument instead.  Try using gtk_signal_connect_object(), it 
will
change the order of the argments passed to the callback function so that 
the
last argument to gtk_signal_connect_object() is passed as the first 
argument to
gtk_widget_hide() instead.



				-- Stupid Genius

> ----------
> From: 	Matt Eisemann[SMTP:meisemann dsrnet com]
> Sent: 	Monday, October 30, 2000 5:09 PM
> To: 	gtk-list gnome org
> Subject: 	dialog widget problem
>
> Currently I am creating an application, but there is something wrong with 
> the callback that hides the widget or something is wrong in my logic. 
 Here
> is a bit of code below which so should give some idea of what I am doing. 
>  The main window calls a dialog box when a certain flag is set.  I want 
the
> user to be able to push the "OK" button and hide the dialog window and
> reset the flag back to FALSE.  I hopefully left out extraneous 
information
> and code.
>
> void some_function(... )
> {
>
>   .....
>
>
>
>   if(tasks->dead_tasks == TRUE)
>   {
>     gtk_widget_show_all(tasks->dialog_win);
>     tasks->dead_tasks = FALSE;
>   }
> }
>
>
>
> int main(INT argc, CHAR *argv[])
> {
>   ...
>   dialog_win = gtk_dialog_new();
>   dialog_label = gtk_label_new("WARNING.  There is something wrong.  ");
>   dialog_ok = gtk_button_new_with_label("OK");
>   gtk_window_set_title(GTK_WINDOW(dialog_win),"dead tasks");
>
>  gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_win)->vbox),dialog_label,F 
> ALSE,FALSE,NO_PADDING);
>   gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_win)->action_area),dialog 
> _ok, FALSE,FALSE, NO_PADDING);
>
>   gtk_signal_connect(GTK_OBJECT(dialog_ok),"clicked",
>
>                               GTK_SIGNAL_FUNC(gtk_widget_hide),GTK_OBJEC 
> T(dialog_win));
>  }
>   The code works somewthat above but the problem is that the OK button
> disappears and not the whole window.
>
>
> _______________________________________________
> gtk-list mailing list
> gtk-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-list
> 





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]