| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
I am trying to make splash screen as widget. Problems are: 1) I think command splash = MY_SPLASH(g_object_new(my_splash_get_type(), NULL));should create new window (since GtkWindow is a parent) but how can I set to this new window GTK_WINDOW_POPUP as GtkWindowType?
2) I am inheriting MySplash from GtkWindow:
struct _MySplash {
GtkWindow window;
GtkWidget *label, *progressBar;
};
But when I am trying to cast MySplash as GtkWindow
---
MySplash * my_splash_new(GdkPixbuf *pixbuf) {
MySplash *splash;
GtkWidget *vbox, *image;
// actual object creation
splash = MY_SPLASH(g_object_new(my_splash_get_type(), NULL));
gtk_window_set_position (GTK_WINDOW (splash), GTK_WIN_POS_CENTER_ALWAYS);
----
I get a run-time warning:
GLib-GObject-WARNING **: invalid cast from `MySplash' to `GtkWindow'
Gtk-CRITICAL **: gtk_window_set_position: assertion `GTK_IS_WINDOW (window)'
failed
Same thing with GTK_CONTAINER(splash) or even GTK_CONTAINER(&(splash->window))
3) Each time label or progress bar is updated on splash screen, it should be updated on the real screen, so I define (by tutorial):
void gtk_splash_set_text(GtkWidget *widget, const gchar *text) {
MySplash *splash;
g_return_if_fail (widget != NULL);
g_return_if_fail (IS_MY_SPLASH (widget));
splash = MY_SPLASH (widget);
gtk_label_set_text( splash->label, text);
while(gtk_events_pending()) {
gtk_main_iteration();
}
}
Do I have to define first parameter here as GtkWidget or can I define it
directly as MySplash *splash?
Also I am a confused, loop while(gtk_events_pending()) gtk_main_iteration();
will run BEFORE gtk_main_loop(), Since splash screen always shown during
initialization phase of application. Will this loop work?
_______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list
[Home] [Foundations of GTK+ Development] [Yosemite News] [Yosemite Photos] [Yosemite Book Store] [PDAs] [Gimp's Home] [Epson FAQ] [Steve's Art]
![]() |
![]() |