parent
8bbf4fc2bf
commit
ea11fbebda
|
|
@ -17,6 +17,36 @@ from joy.library import initialize
|
||||||
from joy.utils.stack import stack_to_string
|
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()
|
JOY_HOME, repo = init_home()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -102,36 +132,17 @@ def show_log(*args):
|
||||||
|
|
||||||
def grand_reset(s, e, d):
|
def grand_reset(s, e, d):
|
||||||
stack = load_stack() or ()
|
stack = load_stack() or ()
|
||||||
reset_text(log, LOG_FN)
|
log.reset()
|
||||||
reset_text(t, JOY_FN)
|
t.reset()
|
||||||
return stack, e, d
|
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():
|
def load_stack():
|
||||||
if os.path.exists(STACK_FN):
|
if os.path.exists(STACK_FN):
|
||||||
with open(STACK_FN) as f:
|
with open(STACK_FN) as f:
|
||||||
return pickle.load(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()
|
D = initialize()
|
||||||
for func in (
|
for func in (
|
||||||
reset_log,
|
reset_log,
|
||||||
|
|
@ -153,26 +164,6 @@ log = TextViewerWidget(world, log_window, **defaults)
|
||||||
FONT = get_font('Iosevka', size=14) # Requires Tk root already set up.
|
FONT = get_font('Iosevka', size=14) # Requires Tk root already set up.
|
||||||
log.init('Log', LOG_FN, repo_relative_path(LOG_FN), repo, FONT)
|
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)
|
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():
|
for event, command in GLOBAL_COMMANDS.items():
|
||||||
t.bind_all(event, lambda _, _command=command: world.interpret(_command))
|
t.bind_all(event, lambda _, _command=command: world.interpret(_command))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -414,6 +414,15 @@ class TextViewerWidget(tk.Text, MouseBindingsMixin, SavingMixin):
|
||||||
self.repo = repo
|
self.repo = repo
|
||||||
self['font'] = font # See below.
|
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):
|
def popupTB(self, tb):
|
||||||
top = tk.Toplevel()
|
top = tk.Toplevel()
|
||||||
T = TextViewerWidget(
|
T = TextViewerWidget(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue