Ruby Tk (make available of a single pointer(marker) of TkText)

Hi,

Now, I am trying to make simple Diff-viewer by using Ruby Tk.

But, I have a problems to show a pointer(cursor) on the TkText panel.

Simply, you can understand my case in the following code pattern.

        @leftText = TkText.new(leftFrame) do
             padx 0
             borderwidth 0
             background 'white'
             state 'normal'
         end
         @rightText = TkText.new(rightFrame) do
             padx 0
             borderwidth 0
             background 'white'
             state 'normal'
         end

Create both of TkText instances to show a diff of sources.

After inserting a source into TkText panel, I set

@leftText['state'] = :disabled
@rightText['state'] = :disabled

I know, this two lines make uncursored panel.

But, without this lines, panel is modifiable. Users can delete and insert their own texts.

Is any idea for this ?

Jun Young Kim wrote:

Hi,

Now, I am trying to make simple Diff-viewer by using Ruby Tk.

But, I have a problems to show a pointer(cursor) on the TkText panel.

Simply, you can understand my case in the following code pattern.

        @leftText = TkText.new(leftFrame) do
             padx 0
             borderwidth 0
             background 'white'
             state 'normal'
         end
         @rightText = TkText.new(rightFrame) do
             padx 0
             borderwidth 0
             background 'white'
             state 'normal'
         end

Create both of TkText instances to show a diff of sources.

After inserting a source into TkText panel, I set

@leftText['state'] = :disabled
@rightText['state'] = :disabled

I know, this two lines make uncursored panel.

But, without this lines, panel is modifiable. Users can delete and insert their own texts.

Is any idea for this ?

I don't know enough about Ruby to be sure, but one method we Tcl/Tk programmers would use is the Tk Bind command to catch keystroke events and then decide what to do based on the keystroke. That can be used to bypass the default key event bindings to insert text.

But a question I'd ask is why do you want a cursor on an unmodifiable text widget. That seem counter to GUI design patterns which say that a cursor is an insertion point in text items. Do you really just want a scroll bar and tandem scrolling between both text widgets in some way?

···

--
Ron Fox
NSCL
Michigan State University
East Lansing, MI 48824-1321