Forum: Ruby GtkDialog with GdkWindow as parent

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
6d29fef1247a3b3c86ab7e52e31c5537?d=identicon&s=25 Christian Madsen (Guest)
on 2007-02-12 22:16
(Received via mailing list)
I am trying to create a Gtk::MessageDialog with a win32 window as its
parent (the reason comes in the end). Now, it is possible to make a
Gdk::Window wrapper using

  require 'gtk2'

  win = Gdk::Window.foreign_new ARGV[0].to_i

But I cannot create a Gtk::MessageDialog with the Gdk::Window as
parent

  Gtk::MessageDialog.new(win,
                         Gtk::MessageDialog::MODAL,
                         Gtk::MessageDialog::INFO,
                         Gtk::MessageDialog::BUTTONS_OK,
                         "foreign_test")

gives me the warning

  GLib-GObject-WARNING **:invalid cast from `GdkWindow' to `GtkWindow'

which is fair enough and the failed assertion

  Gtk-CRITICAL **:gtk_message_dialog_new: assertion `parent == NULL ||
GTK_IS_WINDOW (parent)' failed

So: is there a way that I can create a Gtk::MessageDialog or other Gtk
window with a Gdk window as parent?

For the curious minds: what I am trying to do is to make a ruby
screensaver wrapper for win32. It consists of a .c executable that
functions as a windows screensaver and invokes a ruby script that
shall be the actual screensaver. When the windows "display properties"
app wants to call the configuration dialog, it calls the executable
with its own window handle as argument. This of cause works for
windows apps, but shouldn't it be possible to make this work with Gtk?
9fe908f5593444a40be14a424c372e58?d=identicon&s=25 Masao Mutoh (Guest)
on 2007-02-13 13:59
(Received via mailing list)
Hi,

On Tue, 13 Feb 2007 06:15:09 +0900
"Christian Madsen" <doktormadsen@gmail.com> wrote:

>   Gtk::MessageDialog.new(win,
>                          Gtk::MessageDialog::MODAL,
>                          Gtk::MessageDialog::INFO,
>                          Gtk::MessageDialog::BUTTONS_OK,
>                          "foreign_test")
>
> gives me the warning
>
>   GLib-GObject-WARNING **:invalid cast from `GdkWindow' to `GtkWindow'
>
> which is fair enough and the failed assertion

The error message means "Use Gtk::Window instead of Gdk::Window".
You need to use Gtk::Window as the parent.
6d29fef1247a3b3c86ab7e52e31c5537?d=identicon&s=25 Christian Madsen (Guest)
on 2007-02-13 20:05
(Received via mailing list)
On 13 Feb., 13:59, Masao Mutoh <m...@highway.ne.jp> wrote:
> >   require 'gtk2'
> >                          "foreign_test")
>
> > gives me the warning
>
> >   GLib-GObject-WARNING **:invalid cast from `GdkWindow' to `GtkWindow'
>
> > which is fair enough and the failed assertion
>
> The error message means "Use Gtk::Window instead of Gdk::Window".
> You need to use Gtk::Window as the parent.

Thanks, Masao.

But is it then possible to create a Gtk::Window which is modal to the
foreign Gdk::Window? Then I could use the Gtk::Window as a dialog...
This topic is locked and can not be replied to.