Ruby Forum wxRuby > wxDirDialog and show_modal don't work

Posted by Petr Chelcicky (tracerecek)
on 07.07.2008 13:38
Hi,
I'm playing around with wxRuby and XRC and I'm unable to create modal
WxDirDialog. After opening it I'm always able to get focus on parent
window.

class TestApp < Wx::App
    def on_init
     @test =  Main.new.show
    end
end

class Main < MainFrame
   def initialize
     super
     self.size = ([133,191])
     evt_button(basic_config) { | event | butt_event(event)     }
   end
 end

def butt_eventos(event)
    adr = Wx::DirDialog.new( @test, "Choose a folder")
    case adr.show_modal()
    when Wx::ID_OK
      puts "Directory: %s" %
        [ adr.get_path ]
    when Wx::ID_CANCEL
      puts "NOT OK"
    end
    adr.destroy()
end


After changing DirDialog to FileDialog or MessageDialog it works great,
and those dialogs are modal, so it looks that in Dirdialog is buggy, bt
maybe I'm doing something wrong. Any ideas? Thnx.
(I'm using latest wxRuby,wx_sugar, tested on winXP and Vista)
Posted by Jonathan Maasland (Guest)
on 08.07.2008 12:40
(Received via mailing list)
You are looking for the fit() method.

 From the docs:
window.Fit(): The Fit() method sets the size of a window to fit around
its children. If it has no children then nothing is done, if it does
have children then the size of the window is set to the window's best 
size.

http://docs.wxwidgets.org/stable/wx_windowsizingoverview.html#windowsizingoverview

and
http://wxruby.rubyforge.org/doc/window.html#Window_fit

ps. frames that resize themselves aren't really considered user-friendly
either.

Best of luck,
Jonathan
Posted by Jonathan Maasland (Guest)
on 08.07.2008 12:51
(Received via mailing list)
Sorry about that, Thunderbird wasn't cooperating causing me to
accidentally responded to the wrong message.

My bad.