Ruby TK GUI questions


#1

Hello,

I added a subject line to my recent email, not sure if that is required.

Here are the questions again:

I am working on a Ruby TK GUI application and have a couple of
questions:

  1. I setup a Listbox widget, and inserted 4 lines of text into it. The
    user
    clicks on any one of the elements of the list, which always holds the
    four
    possible selections. My question is, how do I get the active list
    element to
    display with the highlighting appearance you would see as if it was
    clicked
    on by the user? Right now, my list appears with no selected item until
    someone clicks on an item - I want the Listbox to be created at startup,
    filled with the selections, and then have the currently active element
    displayed in the same manner it would appear if it was clicked on. I
    know
    how to set one of the four selections to be the active item, but I want
    the
    user to ‘see’ this via the highlighting.

  2. Another portion of my project writes some text to a text widget. How
    do I
    set the cursor in the text widget at the first char position after the
    insertion is done? I know how to set the focus to that text widget, but
    the
    cursor is at the end of the inserted text, I want to put the cursor at
    the
    first line, first character position.

Any help would be greatly appreciated,

Thank You,

Harry T.


#2

From: “Harry T.” removed_email_address@domain.invalid
Subject: Ruby TK GUI questions
Date: Fri, 2 Dec 2005 04:24:29 +0900
Message-ID: 200512011424320.SM00796@htruax

  1. I setup a Listbox widget, and inserted 4 lines of text into it. The user
    clicks on any one of the elements of the list, which always holds the four
    possible selections. My question is, how do I get the active list element to
    display with the highlighting appearance you would see as if it was clicked
    on by the user?

listbox_widget.curselection

It returns an array containing the numerical indices of
the selected elements.

            Right now, my list appears with no selected item until

someone clicks on an item - I want the Listbox to be created at startup,
filled with the selections, and then have the currently active element
displayed in the same manner it would appear if it was clicked on. I know
how to set one of the four selections to be the active item, but I want the
user to ‘see’ this via the highlighting.

listbox_widget.selectmode(‘multiple’)
listbox_widget.selection_clear(0, :end)
[1,2].each{|idx| listbox_widget.selection_set(idx)}

or, if want to set all,

listbox_widget.selection_set(0, :end)

  1. Another portion of my project writes some text to a text widget. How do I
    set the cursor in the text widget at the first char position after the
    insertion is done? I know how to set the focus to that text widget, but the
    cursor is at the end of the inserted text, I want to put the cursor at the
    first line, first character position.

text_widget.mark_set(‘insert’, ‘1.0’)

 or

ins = TkTextMarkInsert.new(text_widget)
ins.set(‘1.0’)

In some case, the following is usefull.

text_widget.mark_gravity(‘insert’, :left)