[fxruby-users] Intercepting and reviewing FXText messages, especially KEY_PRESS|SEL_INSERTED

Jason Martin jason at jolierouge.net
Mon May 19 05:55:28 EDT 2008

Hi All,

I am new to the list, and FXRuby, this being my first post. I have hit a 
little snag, I am futzing around with a texteditor and everything works 
fine, but I would like to add in a snippet like functionality, but I 
seem to be at a loss for how to do it.

How I imagine it would be done is.

I have created a Dispatcher class, this class handles most messages in 
the program, adding a new tab/editor, displaying x or why. What I would 
like to do is have my Dispatcher class intercept messages
to and from the FXText, and then perform some actions on the FXText. If 
someone presses the TAB key, I would want to intercept that, grab the 
text before the cursor, see if a snippet has been defined, if
so, add the text in, otherwise, send the TAB key to the FXText like 
normal and let it do it's thing.

Some code:

class Dispatcher
  def initialize(owner,sender,sel,event)
    puts "Dispatcher Called with: #{owner}, #{sender}, #{sel}, #{event}"

def add_buffer(name)
      @buffers << FXText.new(frame,:opts => TEXT_WORDWRAP|LAYOUT_FILL)
      @current_buffer = @buffers.last

Essentially, what I imagine is this:

def add_buffer(name)
      #pseudo Code
        @buffers.last.connect(message) do |sender,sel,event|
      #end pseudo code
#pseudo code
  def handle_text_widget_message(sender,sel,event)
      if event.code == code_i_want then
          #do something here
#end pseudocode

I may be completely off my rocker and doing things retarded, as I am 
mainly a webprogrammer, and very new to GUI programming and how it 
works, so if there is a better, or more standard way of doing it, please 
point it out to me, or reference documents that might help, anything 
will be greatly appreciated. While writing this, I realize that I can 
use SEL_KEYRELEASE and get the info I want, however, I would like to get 
it before insertion,a nd not have to handle determining key behavior for 
the widget, like backspace, and insert etc.

Many thanks in advance,

More information about the fxruby-users mailing list