1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
#!/usr/bin/env python
# $Id: TextEditor.py 536 2020-10-30 15:20:32Z andreasheld $
# Author: Chris Green <cmg@dok.org>
# Purpose: test text editor
# Created: Thu Jan 22 14:06:24 EST 2004
#
# This has a goal of http://www.fltk.org/documentation.php/doc-1.1/editor.html#editor
#
# Text Editor test program for pyFLTK the Python bindings
# for the Fast Light Tool Kit (FLTK).
#
# FLTK copyright 1998-1999 by Bill Spitzak and others.
# pyFLTK copyright 2003 by Andreas Held and others.
#
# This library is free software you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License, version 2.0 as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.
#
# Please report all bugs and problems to "pyfltk-user@lists.sourceforge.net".
#
import sys
from fltk import *
def onFileQuit(ptr, data):
#menuItem = Fl_Menu_ItemPtr(ptr)
menuItem = ptr
print(f'onFileQuit({str(menuItem)}, "{str(data)}")')
import sys # code
sys.exit(0) # code
def onFileSave(ptr , data):
#menuItem = Fl_Menu_ItemPtr(ptr)
menuItem = ptr
print(f'onFileSave({str(menuItem)}, "{str(data)}")')
textEditor = data
print(textEditor.buffer().text())
def tb_changed_cb(pos, nInserted, nDeleted, nRestyled, deleted_text, ptr):
print("in callback: ", pos, nDeleted)
def main():
o_1_0 = Fl_Window(810, 23, 200, 200)
textEditor = Fl_Text_Editor(0,100, 100, 100)
# create a 1000 byte long text buffer
textBuffer = Fl_Text_Buffer(1000)
textBuffer.text("Wee")
# "hello world!"
textBuffer.add_modify_callback(tb_changed_cb, textEditor);
#textBuffer.call_modify_callbacks();
# place the buffer inside the editor
textEditor.buffer(textBuffer)
o_2_0 = Fl_Menu_Bar(0, 0, 105, 25)
userData = "User callback data"
o_2_0.menu((
("&File", 0, 0, 0, 64),
("&Quit", 0, onFileQuit, userData, 0),
("&Save", 0, onFileSave, textEditor, 0),
(None, ),
(None, ) ))
o_1_0.end()
return o_1_0
if __name__=='__main__':
window = main()
window.show(len(sys.argv), sys.argv)
Fl.run()
|