Dialog problems
- From: Thomas Rast <t rast iname com>
- To: gnome-devel-list gnome org
- Subject: Dialog problems
- Date: Fri, 17 Mar 2000 18:00:07 +0100
Hi everybody
a few days ago, I programmed a little test with libgnome/libgnomeui (I have
attached the full sources). *Very* easy to do menus, toolbars, ... !!
But the "about" dialog didn't work. I have a callback to create one:
static void
about_cb (GtkWidget *button, gpointer data)
{
GtkWidget *about_dialog;
const gchar *authors [] = {
"Thomas Rast <t.rast@iname.com>",
NULL
};
about_dialog = gnome_about_new ("Menu Test", "0.1", "(c) 2000 Thomas Rast",
authors, "Just a test", NULL);
gnome_dialog_set_parent (GNOME_DIALOG (about_dialog), GTK_WINDOW (app));
gtk_widget_show (about_dialog);
}
It's like in the tutorial, except the strings. I had a look at the
gmenu-sources (well, i've got very old gnome-core/libs, shame on me :),
it's the same too.
The menus are defined with
GnomeUIInfo helpmenu [] = {
GNOMEUIINFO_MENU_ABOUT_ITEM (about_cb, NULL),
GNOMEUIINFO_END
};
GnomeUIInfo menubar [] = {
GNOMEUIINFO_MENU_HELP_TREE (helpmenu),
GNOMEUIINFO_END
};
void
create_menu (void)
{
gnome_app_create_menus (GNOME_APP (app), menubar);
}
I call create_menu from main ().
Now I compiled, runned and clicked help -> about, and then there is nothing
happening. file -> exit (see full source) worked.
Thanks in advance for your help.
Thomas
#include <gnome.h>
#include <stdlib.h>
#include <unistd.h>
GtkWidget *app;
int main (int argc, char *argv[]);
gint
del_event (GtkWidget *widget, GdkEvent *event, gpointer data);
void
exit_cb (GtkWidget *button, gpointer data);
gint
dialogbutton_clicked (GtkWidget *widget, GdkEvent *event, gpointer data);
#include "main.h"
static void about_cb (GtkWidget *button, gpointer data);
void create_menu (void);
void create_tool (void);
GnomeUIInfo filemenu [] = {
GNOMEUIINFO_MENU_EXIT_ITEM (exit_cb, NULL),
GNOMEUIINFO_END
};
GnomeUIInfo helpmenu [] = {
GNOMEUIINFO_MENU_ABOUT_ITEM (about_cb, NULL),
GNOMEUIINFO_END
};
GnomeUIInfo menubar [] = {
GNOMEUIINFO_MENU_FILE_TREE (filemenu),
GNOMEUIINFO_MENU_HELP_TREE (helpmenu),
GNOMEUIINFO_END
};
GnomeUIInfo toolbar [] = {
GNOMEUIINFO_ITEM_STOCK ("Exit", "Exit the Application", exit_cb, GNOME_STOCK_PIXMAP_EXIT),
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_ITEM_STOCK ("About", NULL, about_cb, GNOME_STOCK_PIXMAP_ABOUT),
GNOMEUIINFO_END
};
int
main (int argc, char *argv[])
{
GtkWidget *dialogbutton;
gnome_init ("menu-test", "0.1", argc, argv);
app = gnome_app_new ("menu-test", "Menu Creation");
gtk_signal_connect (GTK_OBJECT (app), "delete_event", GTK_SIGNAL_FUNC (del_event), NULL);
create_menu ();
create_tool ();
dialogbutton = gtk_button_new_with_label ("Some Dialog");
gtk_signal_connect (GTK_OBJECT (dialogbutton), "clicked", GTK_SIGNAL_FUNC (dialogbutton_clicked), NULL);
gnome_app_set_contents (GNOME_APP (app), dialogbutton);
gtk_widget_show_all (app);
gtk_main ();
return 0;
}
gint
del_event (GtkWidget *widget, GdkEvent *event, gpointer data)
{
gtk_main_quit ();
return FALSE;
}
void
exit_cb (GtkWidget *button, gpointer data)
{
gtk_main_quit ();
}
static void
about_cb (GtkWidget *button, gpointer data)
{
GtkWidget *about_dialog;
const gchar *authors [] = {
"Thomas Rast <t.rast@iname.com>",
NULL
};
about_dialog = gnome_about_new ("Menu Test", "0.1", "(c) 2000 Thomas Rast",
authors, "Just a test", NULL);
fprintf (stdout, "about_dialog = %p\n", about_dialog);
gnome_dialog_set_parent (GNOME_DIALOG (about_dialog), GTK_WINDOW (app));
gtk_widget_show (about_dialog);
}
gint
dialogbutton_clicked (GtkWidget *widget, GdkEvent *event, gpointer data)
{
GtkWidget *dialog;
dialog = gnome_message_box_new ("Fine, it worked!", GNOME_MESSAGE_BOX_INFO, GNOME_STOCK_BUTTON_OK, NULL);
gnome_dialog_set_parent (GNOME_DIALOG (dialog), GTK_WINDOW (app));
gnome_dialog_run_and_close (GNOME_DIALOG (dialog));
}
void
create_menu (void)
{
gnome_app_create_menus (GNOME_APP (app), menubar);
}
void
create_tool (void)
{
gnome_app_create_toolbar (GNOME_APP (app), toolbar);
}
----------------------------------------
Thomas Rast
t.rast@iname.com
----------------------------------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]