Update view of stack at start.

This commit is contained in:
Simon Forman 2020-05-10 08:36:05 -07:00
parent 663753a770
commit a3e49a75f0
3 changed files with 29 additions and 4 deletions

View File

@ -20,7 +20,7 @@
'''
from Tkinter import Listbox, SINGLE
from Tkdnd import dnd_start
from joy.utils.stack import list_to_stack
from joy.utils.stack import iter_stack, list_to_stack
class SourceWrapper:
@ -137,6 +137,10 @@ class StackListbox(ControllerListbox):
self.delete(0, 'end')
self.insert(0, *self.stack)
def update_stack(self, stack):
self.stack = list(iter_stack(stack))
self._update()
def dnd_commit(self, source, event):
ControllerListbox.dnd_commit(self, source, event)
self._update()

View File

@ -29,7 +29,7 @@ from inspect import getdoc
from joy.joy import run
from joy.library import HELP_TEMPLATE
from joy.parser import Symbol
from joy.utils.stack import iter_stack, stack_to_string
from joy.utils.stack import stack_to_string
from joy.utils.types import type_check
from .utils import is_numerical
@ -160,10 +160,10 @@ class StackWorld(StackDisplayWorld):
def set_viewer(self, viewer):
self.viewer = viewer
self.viewer.update_stack(self.stack)
def print_stack(self):
StackDisplayWorld.print_stack(self)
if self.viewer:
self.viewer.stack = list(iter_stack(self.stack))
self.viewer._update()
self.viewer.update_stack(self.stack)

21
trylb.py Normal file
View File

@ -0,0 +1,21 @@
from Tkinter import Tk, mainloop, BOTH
from joy.gui.controllerlistbox import ControllerListbox
class StackListbox(ControllerListbox):
def _update(self):
self.delete(0, 'end')
self.insert(0, *self.stack)
def dnd_commit(self, source, event):
ControllerListbox.dnd_commit(self, source, event)
self._update()
T = Tk()
T.title("Hello there.")
stack = [1, 2, 3]
lb = FooListbox(T, items=stack)
lb.pack(expand=True, fill=BOTH)
lb._update()