Files
tubestation/embedding/browser/gtk/tests/TestGtkEmbed.cpp

160 lines
3.5 KiB
C++

#include "gtkmozembed.h"
#include <gtk/gtk.h>
GtkWidget *toplevelwindow;
GtkWidget *box;
GtkWidget *entry;
GtkWidget *moz_embed;
static gboolean
destroy_cb(GtkWidget *widget, gpointer data);
static void
activate_cb(GtkEditable *widget, gpointer data);
void
link_message_cb(GtkMozEmbed *embed, gpointer data);
void
js_status_cb(GtkMozEmbed *embed, gpointer data);
void
location_cb(GtkMozEmbed *embed, gpointer data);
void
title_cb(GtkMozEmbed *embed, gpointer data);
void
progress_cb(GtkMozEmbed *embed, gint32 maxprogress, gint32 curprogress, gpointer data);
void
net_status_cb(GtkMozEmbed *embed, gint32 flags, gpointer data);
void
net_start_cb(GtkMozEmbed *embed, gpointer data);
void
net_stop_cb(GtkMozEmbed *embed, gpointer data);
int
main(int argc, char **argv)
{
gtk_init(&argc, &argv);
toplevelwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(toplevelwindow), "delete_event",
GTK_SIGNAL_FUNC(destroy_cb), NULL);
gtk_widget_set_usize(toplevelwindow, 300, 400);
box = gtk_vbox_new(FALSE, 2);
gtk_container_add(GTK_CONTAINER(toplevelwindow), box);
gtk_widget_show(box);
entry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 1);
gtk_widget_show(entry);
gtk_signal_connect(GTK_OBJECT(entry), "activate",
GTK_SIGNAL_FUNC(activate_cb), NULL);
moz_embed = gtk_moz_embed_new();
gtk_signal_connect(GTK_OBJECT(moz_embed), "link_message",
GTK_SIGNAL_FUNC(link_message_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "js_status",
GTK_SIGNAL_FUNC(js_status_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "location",
GTK_SIGNAL_FUNC(location_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "title",
GTK_SIGNAL_FUNC(title_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "progress",
GTK_SIGNAL_FUNC(progress_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "net_status",
GTK_SIGNAL_FUNC(net_status_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "net_start",
GTK_SIGNAL_FUNC(net_start_cb), NULL);
gtk_signal_connect(GTK_OBJECT(moz_embed), "net_stop",
GTK_SIGNAL_FUNC(net_stop_cb), NULL);
gtk_widget_set_usize(moz_embed, 100, 100);
gtk_box_pack_end(GTK_BOX(box), moz_embed, TRUE, TRUE, 1);
gtk_widget_show(moz_embed);
if (argc > 1)
{
gtk_moz_embed_load_url(GTK_WIDGET (moz_embed), argv[1]);
}
gtk_widget_show(toplevelwindow);
gtk_main();
}
gboolean
destroy_cb(GtkWidget *widget, gpointer data)
{
gtk_widget_destroy(toplevelwindow);
gtk_main_quit();
return TRUE;
}
void
activate_cb(GtkEditable *widget, gpointer data)
{
gchar *text = gtk_editable_get_chars(widget, 0, -1);
g_print("activate_cb. data is %s\n", text);
gtk_moz_embed_load_url(moz_embed, text);
g_free(text);
}
void
link_message_cb(GtkMozEmbed *embed, gpointer data)
{
g_print("link_message_cb\n");
}
void
js_status_cb(GtkMozEmbed *embed, gpointer data)
{
g_print("js_status_cb\n");
}
void
location_cb(GtkMozEmbed *embed, gpointer data)
{
g_print("location_cb\n");
}
void
title_cb(GtkMozEmbed *embed, gpointer data)
{
g_print("title_cb\n");
}
void
progress_cb(GtkMozEmbed *embed, gint32 maxprogress, gint32 curprogress, gpointer data)
{
g_print("progress_cb\n");
}
void
net_status_cb(GtkMozEmbed *embed, gint32 flags, gpointer data)
{
g_print("net_status\n");
}
void
net_start_cb(GtkMozEmbed *embed, gpointer data)
{
g_print("net_start\n");
}
void
net_stop_cb(GtkMozEmbed *embed, gpointer data)
{
g_print("net_stop\n");
}