Bil
2004-Jul-22 21:33 UTC
[fxruby-users] Re: FXRuby and Threads (was: radiobuttons are weird in 1.2.x series)
*********** REPLY SEPARATOR *********** On 22/07/2004 at 14:01 lyle@knology.net wrote:>On Thu, 22 Jul 2004 14:47:47 +0100, "Bil" <bil.bas@virgin.net> wrote : > >> Err, well it does work, though it does not require the background thread >to run very fast at all. The application is a prototype of a board-game >engine. The server is a regular threaded Ruby application (no FXRuby at >all). The client is obviously an FXRuby app. > >Wait, are we talking about two different Ruby processes here? I mean, do we >have a single-threaded client (which is a FXRuby app) running in process A, >and a multi-threaded server (a non-FXRuby app) running in process B? If so, >yeah, that should work. > >I was talking about a single Ruby application (process) that uses FXRuby >and >has multiple threads. For an example, see the groupbox.rb example program >that comes with FXRuby. There should be a little clock in the lower >right-hand corner that''s being updated by a thread, i.e. threads support is >"enabled" for that particular program.I looked at groupbox.rb again... Changed the radiobuttons in the GroupBox to: gp = FXVerticalFrame.new(group3, LAYOUT_SIDE_TOP|FRAME_GROOVE|LAYOUT_FILL_X, 0, 0, 0, 0) dt = FXDataTarget.new 1 FXRadioButton.new(gp, "Hilversum &1", dt, FXDataTarget::ID_OPTION+1, ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) FXRadioButton.new(gp, "Hilversum &2", dt, FXDataTarget::ID_OPTION+2, ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) FXRadioButton.new(gp, "One multi-line\nRadiobox Widget", dt, FXDataTarget::ID_OPTION+3, JUSTIFY_LEFT|JUSTIFY_TOP|ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) FXRadioButton.new(gp, "Radio Stad Amsterdam", dt, FXDataTarget::ID_OPTION+4, ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP) I added this to GroupWindow#create() app.addChore method(:giveTime) Added this method to GroupWindow: def giveTime(sender, sel, data) app.addChore method(:giveTime) end and put this in run() application.disableThreads and...it works entirely fine - clock AND radiobuttons! It also worked using "app.addTimeout 50, method(:giveTime)". Hope that helps you work out why this is working *8-P* bil