Update view of stack at start.
This commit is contained in:
parent
663753a770
commit
a3e49a75f0
|
|
@ -20,7 +20,7 @@
|
||||||
'''
|
'''
|
||||||
from Tkinter import Listbox, SINGLE
|
from Tkinter import Listbox, SINGLE
|
||||||
from Tkdnd import dnd_start
|
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:
|
class SourceWrapper:
|
||||||
|
|
@ -137,6 +137,10 @@ class StackListbox(ControllerListbox):
|
||||||
self.delete(0, 'end')
|
self.delete(0, 'end')
|
||||||
self.insert(0, *self.stack)
|
self.insert(0, *self.stack)
|
||||||
|
|
||||||
|
def update_stack(self, stack):
|
||||||
|
self.stack = list(iter_stack(stack))
|
||||||
|
self._update()
|
||||||
|
|
||||||
def dnd_commit(self, source, event):
|
def dnd_commit(self, source, event):
|
||||||
ControllerListbox.dnd_commit(self, source, event)
|
ControllerListbox.dnd_commit(self, source, event)
|
||||||
self._update()
|
self._update()
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ from inspect import getdoc
|
||||||
from joy.joy import run
|
from joy.joy import run
|
||||||
from joy.library import HELP_TEMPLATE
|
from joy.library import HELP_TEMPLATE
|
||||||
from joy.parser import Symbol
|
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 joy.utils.types import type_check
|
||||||
from .utils import is_numerical
|
from .utils import is_numerical
|
||||||
|
|
||||||
|
|
@ -160,10 +160,10 @@ class StackWorld(StackDisplayWorld):
|
||||||
|
|
||||||
def set_viewer(self, viewer):
|
def set_viewer(self, viewer):
|
||||||
self.viewer = viewer
|
self.viewer = viewer
|
||||||
|
self.viewer.update_stack(self.stack)
|
||||||
|
|
||||||
def print_stack(self):
|
def print_stack(self):
|
||||||
StackDisplayWorld.print_stack(self)
|
StackDisplayWorld.print_stack(self)
|
||||||
if self.viewer:
|
if self.viewer:
|
||||||
self.viewer.stack = list(iter_stack(self.stack))
|
self.viewer.update_stack(self.stack)
|
||||||
self.viewer._update()
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
Loading…
Reference in New Issue