| | 472 | class TextEditTool(Tool): |
|---|
| | 473 | |
|---|
| | 474 | def __init__(self): |
|---|
| | 475 | pass |
|---|
| | 476 | |
|---|
| | 477 | def on_double_click(self, context, event): |
|---|
| | 478 | """Create a popup window with some editable text. |
|---|
| | 479 | """ |
|---|
| | 480 | print 'Double click' |
|---|
| | 481 | window = gtk.Window() |
|---|
| | 482 | window.set_property('decorated', False) |
|---|
| | 483 | window.set_resize_mode(gtk.RESIZE_IMMEDIATE) |
|---|
| | 484 | #window.set_modal(True) |
|---|
| | 485 | window.set_parent_window(context.view.window) |
|---|
| | 486 | buffer = gtk.TextBuffer() |
|---|
| | 487 | text_view = gtk.TextView() |
|---|
| | 488 | text_view.set_buffer(buffer) |
|---|
| | 489 | text_view.show() |
|---|
| | 490 | window.add(text_view) |
|---|
| | 491 | window.size_allocate(gtk.gdk.Rectangle(int(event.x), int(event.y), 50, 50)) |
|---|
| | 492 | #window.move(int(event.x), int(event.y)) |
|---|
| | 493 | cursor_pos = context.view.get_toplevel().get_screen().get_display().get_pointer() |
|---|
| | 494 | print 'cursor_pos', cursor_pos |
|---|
| | 495 | window.move(cursor_pos[1], cursor_pos[2]) |
|---|
| | 496 | window.connect('focus-out-event', self._on_focus_out_event, buffer) |
|---|
| | 497 | text_view.connect('key-press-event', self._on_key_press_event, buffer) |
|---|
| | 498 | #text_view.set_size_request(50, 50) |
|---|
| | 499 | window.show() |
|---|
| | 500 | #text_view.grab_focus() |
|---|
| | 501 | #window.set_uposition(event.x, event.y) |
|---|
| | 502 | #window.focus |
|---|
| | 503 | return True |
|---|
| | 504 | |
|---|
| | 505 | def _on_key_press_event(self, widget, event, buffer): |
|---|
| | 506 | if event.keyval == gtk.keysyms.Return: |
|---|
| | 507 | print 'Enter!' |
|---|
| | 508 | #widget.get_toplevel().destroy() |
|---|
| | 509 | elif event.keyval == gtk.keysyms.Escape: |
|---|
| | 510 | print 'Escape!' |
|---|
| | 511 | widget.get_toplevel().destroy() |
|---|
| | 512 | |
|---|
| | 513 | def _on_focus_out_event(self, widget, event, buffer): |
|---|
| | 514 | print 'focus out!', buffer.get_text(buffer.get_start_iter(), buffer.get_end_iter()) |
|---|
| | 515 | widget.destroy() |
|---|