Need Code to Create Directory Picking Dialog Box

A

Alex DeCaria

I have a Ruby program and want to be able to pick a directory using a
dialog box. Does anyone have a quick, easy piece of code that will
bring up a dialog box to pick a directory? That's the only GUI part of
the program I need. I don't want to learn a whole GUI programming
library just to create a directory picking dialog box, so if someone has
some code I can just plug into my existing Ruby program I would greatly
appreciate it.

Thanks!

Alex DeCaria
 
B

Bosko Ivanisevic

I have a Ruby program and want to be able to pick a directory using a
dialog box.  Does anyone have a quick, easy piece of code that will
bring up a dialog box to pick a directory?  That's the only GUI part of
the program I need.  I don't want to learn a whole GUI programming
library just to create a directory picking dialog box, so if someone has
some code I can just plug into my existing Ruby program I would greatly
appreciate it.

Thanks!

Alex DeCaria

It really depends on which OS you are working and which library you
want to use. You can use ffi gem to open such dialog directly from
shared library or you can use some Ruby GUI bindings like RubyTk,
WxRuby or QtRuby. So there is no general solution and depends much of
your environment and your decision which library you will use.

Regards,
Bosko Ivanisevic
 
M

Marnen Laibow-Koser

Alex said:
I have a Ruby program and want to be able to pick a directory using a
dialog box. Does anyone have a quick, easy piece of code that will
bring up a dialog box to pick a directory? That's the only GUI part of
the program I need. I don't want to learn a whole GUI programming
library just to create a directory picking dialog box,

But you're going to have to. The only way to do this is through a GUI
library.
so if someone has
some code I can just plug into my existing Ruby program I would greatly
appreciate it.

Thanks!

Alex DeCaria

Best,
-- 
Marnen Laibow-Koser
http://www.marnen.org
(e-mail address removed)
 
A

Alex DeCaria

I figured out how to do it easily using FXRuby. The code snippet below
worked just fine and did exactly what I wanted. Not sure it's the most
efficient way, but it worked.

# ******** Directory Dialog Box *******************
require 'fox16'
include Fox

# Use GUI to select Session Directory
app = FXApp.new
dialog = FXDirDialog.new(app, "Select Session Directory")
dialog.directory = prs_root_path
app.create

dialog.show
if dialog.execute != 0 then
session_directory = dialog.directory
else
print "\n No session selected. Program exiting.\n"
exit
end
 
A

Albert Schlef

Alex said:
I don't want to learn a whole GUI programming
library just to create a directory picking dialog box

You can use a utility like 'dialog' or 'zenity' or 'kdialog':

dir = `zenity --list --title "pick your dir" --column "dir" one two
three`
puts dir
 
A

Albert Schlef

Albert said:
You can use a utility like 'dialog' or 'zenity' or 'kdialog':

dir = `zenity --list --title "pick your dir" --column "dir" one two
three`
puts dir

And after visiting its man page I see that you can just do:

dir = `zenity --file-selection --directory`
puts dir
 
A

Alex DeCaria

Albert said:
And after visiting its man page I see that you can just do:

dir = `zenity --file-selection --directory`
puts dir

Thanks Albert. I didn't know about zenity or the other utilities. That
will come in handy.
 
S

Siep Korteling

Alex said:
I figured out how to do it easily using FXRuby. (...)

Then this may be of no use to you (windows only):


require 'swin'
folder = SWin::CommonDialog.selectDirectory(nil, 'Pick your dir.',
'C:/windows')
puts folder


Siep
 
A

Alex DeCaria

Siep said:
Then this may be of no use to you (windows only):


require 'swin'
folder = SWin::CommonDialog.selectDirectory(nil, 'Pick your dir.',
'C:/windows')
puts folder


Siep

Siep,

That is helpful as I am doing mostly windows work. I didn't know about
SWIN. Thanks. --Alex
 
M

Marnen Laibow-Koser

Alex said:
Siep,

That is helpful as I am doing mostly windows work. I didn't know about
SWIN. Thanks. --Alex

You're probably best using something OS-neutral, though -- there's no
reason to introduce an OS dependency for something this trivial n

Best,
-- 
Marnen Laibow-Koser
http://www.marnen.org
(e-mail address removed)
 
A

Alex DeCaria

You're probably best using something OS-neutral, though -- there's no
reason to introduce an OS dependency for something this trivial n

Best,
-- 
Marnen Laibow-Koser
http://www.marnen.org
(e-mail address removed)

Good point. Thanks for everyone's input! You've all been very helpful.
--Alex
 
A

Albert Schlef

Alex said:
I have a Ruby program and want to be able to pick a directory using a
dialog box. Does anyone have a quick, easy piece of code that will

And here's how to do it in Ruby/Tk:

require 'tk'

TkRoot.new.withdraw # Get rid of the root window.

dir = Tk.chooseDirectory
puts dir


(There's also getOpenFile() and getSaveFile().)
 
H

Hidetoshi NAGAI

From: Albert Schlef <[email protected]>
Subject: Re: Need Code to Create Directory Picking Dialog Box
Date: Thu, 11 Feb 2010 05:41:38 +0900
Message-ID: said:
And here's how to do it in Ruby/Tk:

And, if you hate that the eventloop wastes CPU power,
---------------------------------------------------------------
require 'tk'
Tk.root.withdraw

def choose_directory(keys = {})
th = Thread.new{Tk.mainloop} # start the eventloop
begin
dir = Tk.chooseDirectory(keys) # show dialog
Tk.update # for safety
ensure
th.kill # stop the eventloop
end
dir
end

if __FILE__ == $0
dir = choose_directory:)initialdir => '/', :title => 'test test
test')
p dir
p choose_directory:)initialdir => dir, :title => 'test TEST test')
end
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,813
Latest member
lawrwtwinkle111

Latest Threads

Top