Sha256: aa6fcab88ae66afc7db462bd2943d4ca6b55b5e25bdad9cbf8e24055eb79ef7d

Contents?: true

Size: 1.37 KB

Versions: 18

Compression:

Stored size: 1.37 KB

Contents

#!/usr/bin/env ruby

require 'fox16'

class ThreadedWindow < Fox::FXMainWindow
  include Fox

  def initialize(app)
    # Call the base class initializer first
    super(app, "Threaded Widget Test", :opts => DECOR_ALL, width: 200, height: 500)

    @vframe = FXVerticalFrame.new(self,
      FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 0) do |frame|
      FXButton.new(frame, "Klick to add", opts: FRAME_RAISED|FRAME_THICK|LAYOUT_FILL_X) do |button|
        button.connect(SEL_COMMAND, method(:on_button_clicked))
      end
    end
  end

  def on_button_clicked(sender, sel, ptr)
    FXHorizontalFrame.new(@vframe,
      FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X|LAYOUT_FILL_Y, :padding => 10) do |frame|

      label = FXLabel.new frame, "..."

      Thread.new do
        50.times do |seconds|
          runOnUiThread do
            label.text = "#{(50 - seconds)/10.0} seconds to remove"
          end
          sleep 0.1
        end

        runOnUiThread do
          @vframe.removeChild(frame)
          @vframe.create; @vframe.show; @vframe.recalc
        end
      end
    end
    @vframe.create; @vframe.show; @vframe.recalc
  end

  # Create and show this window
  def create
    super
    show(PLACEMENT_SCREEN)
  end
end

if __FILE__ == $0
  application = Fox::FXApp.new("ThreadApp", "FoxTest")
  ThreadedWindow.new(application)
  application.create
  application.run
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
fxruby-1.6.33-x86-mingw32 examples/thread.rb
fxruby-1.6.33-x64-mingw32 examples/thread.rb
fxruby-1.6.33 examples/thread.rb
fxruby-1.6.32-x86-mingw32 examples/thread.rb
fxruby-1.6.32-x64-mingw32 examples/thread.rb
fxruby-1.6.32 examples/thread.rb
fxruby-1.6.32.pre2-x64-mingw32 examples/thread.rb
fxruby-1.6.32.pre2-x86-mingw32 examples/thread.rb
fxruby-1.6.32.pre2 examples/thread.rb
fxruby-1.6.32.pre1 examples/thread.rb
fxruby-1.6.32.pre1-x86-mingw32 examples/thread.rb
fxruby-1.6.32.pre1-x64-mingw32 examples/thread.rb
fxruby-1.6.31-x64-mingw32 examples/thread.rb
fxruby-1.6.31-x86-mingw32 examples/thread.rb
fxruby-1.6.31 examples/thread.rb
fxruby-1.6.30-x86-mingw32 examples/thread.rb
fxruby-1.6.30-x64-mingw32 examples/thread.rb
fxruby-1.6.30 examples/thread.rb