[fxruby-users] Draw on top of a widget?
davidp at touringcyclist.com
Fri Apr 22 00:49:29 EDT 2005
Is there a way to draw an arbitrary text string "on top of" an FXRuby
widget, in this case an FXListBox? I want to overwrite a portion of the
text in the selection box with that same text but drawn as if
"selected". Can this be done in FXRuby?
What am I trying to do? I'm making a version of the FXListBox widget
with a keyboard interface. As you type characters, the first item in the
list that matches the typed character(s) is selected. I have the key
capturing and list matching routine down, and the correct item is
getting displayed in the selection box. But I want to visually indicate
what portion of that item has matched the typed text, and thus I want to
draw just a portion of the item in the "selected" state. Since the
selection box portion of the FXListBox widget is an FXButton under the
skin in Fox and FXButtons don't have any way to display partial
selection like say an FXTextField would, I don't see any way to do this
directly in the FXListBox itself. Thus my idea of this "draw on top" kludge.
I know a much cleaner approach would be to make a Fox FXButton widget
that implements and displays subselection of the caption, make a new Fox
"MyFXListBox" that uses that altered FXButton, all in C++, and make the
glue code that imports that new widget into FXRuby. But my C++ is really
weak, and I don't know thing one about SWIG. If it turns out that the
"draw on top" kludge can't work, I'd appreciate seeing the source for
any custom Fox C++ widgets that have been merged into FXRuby, or at
least pointers for getting started with SWIG.
Thanks for your time.
More information about the fxruby-users