[fxruby-users] Preventing a parent window from closing

Joey Kinsella jkinsella at ancillaryservices.com
Wed May 5 10:14:03 EDT 2010


FXRuby users,

  Is it possible to prevent a parent window from closing when a child window
is open. I know I could probably do this with some kind of global variable
in the main window object, and basically have some kind of "reference" count
that if not equal to 0, it will not close the window. Then each time a child
window closes the reference count gets decremented by 1. ie:

--- BEGIN SNIPPET ---

#! /usr/bin/env ruby

require 'fox16'
include Fox

class SimpleApp < FXMainWindow
  def initialize(app)
    super(app,"Simple Test App", nil,nil, DECOR_ALL, 0,0, 640,480)
    @winref = 0

    FXButton.new(self, "Click Me").connect(SEL_COMMAND) do
      @winref += 1

      aw = AnotherWin.new(app)
      aw.create

      aw.connect(SEL_CLOSE) do
        @winref -= 1
      end

    end
  end

  def close(notify = false)
    ## popup a message. ##
    return if(@winref != 0)
    super(notify)
  end

  def create
    super
    show(PLACEMENT_SCREEN)
  end
end

class AnotherWin < FXMainWindow
  def initialize(app)
    super(app,"Another window", nil,nil, DECOR_ALL, 0,0, 320,260)
  end

  def create
    super
    show(PLACEMENT_SCREEN)
  end
end

app = FXApp.new("Test","Test")
SimpleApp.new(app)

app.create
app.run


--- END SNIPPET ---

I was curious if there was a better way of doing this, perhaps something in
the underlying routines in the Fox library. Perhaps I shouldn't be using
FXMainWindow as a child window? For now, I will probably end up using this
implementation, but I hope to hear back on a better way of doing this.

--
If you are not the intended recipient, you are hereby notified
that any dissemination, distribution, copying or other use of
this communication is strictly prohibited.  If you have
received this communication in error, please notify us
immediately.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/fxruby-users/attachments/20100505/ded47c96/attachment.html>


More information about the fxruby-users mailing list