Move reset() to text method.

Rearrange some other stuff.
This commit is contained in:
Simon Forman 2018-07-14 19:34:01 -07:00
parent 8bbf4fc2bf
commit ea11fbebda
2 changed files with 41 additions and 41 deletions

View File

@ -17,6 +17,36 @@ from joy.library import initialize
from joy.utils.stack import stack_to_string
tb = TEXT_BINDINGS.copy()
tb.update({
'<F4>': lambda tv: tv.cut,
'<F3>': lambda tv: tv.copy_selection_to_stack,
# '<F-->': lambda tv: tv.pastecut,
'<F6>': lambda tv: tv.copyto,
})
defaults = dict(text_bindings=tb, width=80, height=25)
GLOBAL_COMMANDS = {
'<F5>': 'swap',
'<F6>': 'dup',
'<Shift-F5>': 'roll<',
'<Shift-F6>': 'roll>',
'<F7>': 'over',
'<Shift-F7>': 'tuck',
'<Shift-F3>': 'parse',
'<F12>': 'words',
'<F1>': 'reset_log show_log',
'<Escape>': 'clear reset_log show_log',
'<Control-Delete>': 'pop',
'<Control-Shift-Delete>': 'popd',
}
JOY_HOME, repo = init_home()
@ -102,36 +132,17 @@ def show_log(*args):
def grand_reset(s, e, d):
stack = load_stack() or ()
reset_text(log, LOG_FN)
reset_text(t, JOY_FN)
log.reset()
t.reset()
return stack, e, d
def reset_text(t, filename):
if os.path.exists(filename):
with open(filename) as f:
data = f.read()
if data:
t.delete('0.0', tk.END)
t.insert(tk.END, data)
def load_stack():
if os.path.exists(STACK_FN):
with open(STACK_FN) as f:
return pickle.load(f)
tb = TEXT_BINDINGS.copy()
tb.update({
'<F4>': lambda tv: tv.cut,
'<F3>': lambda tv: tv.copy_selection_to_stack,
# '<F-->': lambda tv: tv.pastecut,
'<F6>': lambda tv: tv.copyto,
})
defaults = dict(text_bindings=tb, width=80, height=25)
D = initialize()
for func in (
reset_log,
@ -153,26 +164,6 @@ log = TextViewerWidget(world, log_window, **defaults)
FONT = get_font('Iosevka', size=14) # Requires Tk root already set up.
log.init('Log', LOG_FN, repo_relative_path(LOG_FN), repo, FONT)
t.init('Joy - ' + JOY_HOME, JOY_FN, repo_relative_path(JOY_FN), repo, FONT)
GLOBAL_COMMANDS = {
'<F5>': 'swap',
'<F6>': 'dup',
'<Shift-F5>': 'roll<',
'<Shift-F6>': 'roll>',
'<F7>': 'over',
'<Shift-F7>': 'tuck',
'<Shift-F3>': 'parse',
'<F12>': 'words',
'<F1>': 'reset_log show_log',
'<Escape>': 'clear reset_log show_log',
'<Control-Delete>': 'pop',
'<Control-Shift-Delete>': 'popd',
}
for event, command in GLOBAL_COMMANDS.items():
t.bind_all(event, lambda _, _command=command: world.interpret(_command))

View File

@ -414,6 +414,15 @@ class TextViewerWidget(tk.Text, MouseBindingsMixin, SavingMixin):
self.repo = repo
self['font'] = font # See below.
def reset(self):
if os.path.exists(self.filename):
with open(self.filename) as f:
data = f.read()
if data:
self.delete('0.0', tk.END)
self.insert(tk.END, data)
def popupTB(self, tb):
top = tk.Toplevel()
T = TextViewerWidget(