Re: text widget: drag and drop
- From: Bryan Oakley <oakley@xxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 29 Nov 2005 04:32:23 GMT
Ihug wrote:
I am trying to get drag and drop to work.
One thing I am trying to understand is when events get triggered - this differs once the mouse button is depressed.
When the user moves the mouse over the various tags they are highlighted (as per the Motion binding below).
When the user presses button-1 the drag gets initiated.
When the user releases button-1 the drop gets initiated.
The problem is once the button is pressed no more motion events get triggered, hence nullifying the "drag" effect.
Can the text widget ($tw) be configured to activate motion events while the buttons are pressed?
Short answer: no.
What you do is put a <Motion> binding on the thing being clicked on. Then, use the winfo command to determine the window below the mouse as it is being dragged. Use this information to know what to highlight. If it is a text widget, you can get the index of the character under the pointer, determine any bindings on that character, and Do The Right Thing.
This behavior of the widget handling the ButtonPress event also getting all the Motion events is documented briefly in the bind man page.
A rudimentary drag and drop example can be found at this wiki page: http://wiki.tcl.tk/416
The example doesn't explicitly address text widgets, but it shows how as the drag occurs, the widget that was clicked on gets the motion events and can highlight the item under the pointer.
.
- Follow-Ups:
- Re: text widget: drag and drop
- From: Ihug
- Re: text widget: drag and drop
- References:
- text widget: drag and drop
- From: Ihug
- text widget: drag and drop
- Prev by Date: Re: Where can I download tclodbc?
- Next by Date: Re: string handle problem
- Previous by thread: text widget: drag and drop
- Next by thread: Re: text widget: drag and drop
- Index(es):