RE: dialog widget problem
- From: Matt Eisemann <meisemann dsrnet com>
- To: "'Dugas, Alan'" <alan dugas analog com>, "gtk-list gnome org" <gtk-list gnome org>
- Subject: RE: dialog widget problem
- Date: Tue, 14 Nov 2000 13:42:10 -0500
Somewhat related to below. I have my dialog widget in its own function
now. Hence , all the callbacks and widget creation are in a single
function . Is this a bad idea? See the code (simplified...taken out
hopefully extraneous code)
VOID dialog_create(SHARED_WINDOW *tasks)
{
GtkWidget *dialog_win;
GtkWidget *dialog_label;
GtkWidget *dialog_ok
dialog_win = gtk_dialog_new();
gtk_widget_set_usize(dialog_win, 250,250);
dialog_label=gtk_label_new("WARNING some text here \n");
dialog_ok = gtk_button_new_with_label("OK");
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_win)->vbox), dialog_label,
FALSE,FALSE,NO_PADDING);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_win)->action_area),
dialog_ok,
FALSE,FALSE,NO_PADDING);
gtk_signal_connect_object(GTK_OBJECT(dialog_ok),"clicked",
GTK_SIGNAL_FUNC(gtk_widget_hide)
,GTK_OBJECT(dialog_win));
gtk_signal_connect_object(GTK_OBJECT(dialog_win),"delete-event",
GTK_SIGNAL_FUNC(dialog_delete_ev
ent),NULL);
gtk_signal_connect(GTK_OBJECT(dialog_win),"destroy",
GTK_SIGNAL_FUNC(utics_destroy),N
ULL);
gtk_widget_show(dialog_ok);
gtk_widget_show(dialog_label);
gtk_widget_show(dialog_win);
tasks->dialog_win = dialog_win;
tasks->dialog_create = TRUE;
}
Here is the dialog_delete_event function.
gint dialog_delete_event(GtkWidget *widget,
GdkEvent *event,
gpointer data)
{
g_print("dialog delete event occurred\n");
gtk_widget_hide(widget);
return(TRUE);
}
void destroy(GtkWidget *widget),
gpointer data)
{
gtk_widget_hide(widget);
}
The gtk_signal_connect_object(GTK_OBJECT(dialog_ok),"clicked",
GTK_SIGNAL_FUNC(gtk_widget_hide)
,GTK_OBJECT(dialog_win));
works great without noticible problems but the other ones do not work.
When I try to close the window via the window manager, the menu for the
window dissappears but the dialog box remains. Any noticible reasons why?
Maybe the above code will help. I want the dialog box to dissaprear and
not be destroyed when the user closes the window via the window menu.
(command ALT - F4). Any ideas why it is not working. Thanks ahead of
time for your help.
Matt
-----Original Message-----
From: Dugas, Alan [SMTP:alan dugas analog com]
Sent: Monday, October 30, 2000 6:51 PM
To: gtk-list gnome org; Matt Eisemann
Subject: RE: dialog widget problem
The code looks OK to me, however, you may be running into a scoping issue
with dialog_win depending on where you use gtk_signal_connect().
Otherwise,
I think I'd need to see more of your code to figure out what's going on.
-- Stupid Genius
> ----------
> From: Matt Eisemann[SMTP:meisemann dsrnet com]
> Sent: Monday, October 30, 2000 6:23 PM
> To: 'Dugas, Alan'; gtk-list gnome org
> Subject: 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
> >
>
>
> _______________________________________________
> 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]