[Avida-cvs] [avida-svn] r566 - branches/developers/avida-edward/source/python/AvidaGui2
avidaedward@myxo.css.msu.edu
avidaedward at myxo.css.msu.edu
Tue Apr 4 12:59:32 PDT 2006
Author: avidaedward
Date: 2006-04-04 15:59:23 -0400 (Tue, 04 Apr 2006)
New Revision: 566
Added:
branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataCtrl.py
branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataView.py
Modified:
branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_version.py
Log:
Added missing files to Avida-ED repository.
Modified: branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_version.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_version.py 2006-04-04 19:40:42 UTC (rev 565)
+++ branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_version.py 2006-04-04 19:59:23 UTC (rev 566)
@@ -1 +1 @@
-svn_revision_string = 'Avida-ED v2.0.562:563'
+svn_revision_string = 'Avida-ED v2.0.562:564'
Added: branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataCtrl.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataCtrl.py 2006-04-04 19:40:42 UTC (rev 565)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataCtrl.py 2006-04-04 19:59:23 UTC (rev 566)
@@ -0,0 +1,170 @@
+from pyBufferCtrl import pyBufferCtrl
+from pyInstructionDescriptionCtrl import pyInstructionDescriptionCtrl
+from pyHideShowCtrl import pyHideShowCtrl
+from descr import descr
+from qt import *
+from AvidaCore import *
+
+class WidgetFactory:
+ def setParentAndLayout(self, parent, layout):
+ self.parent = parent
+ self.layout = layout
+ def setParent(self, parent):
+ self.setParentAndLayout(parent, self.layout_fn(parent))
+ def setLayoutFn(self, layout_fn):
+ self.layout_fn = layout_fn
+ def setWidgetFn(self, widget_fn):
+ self.widget_fn = widget_fn
+ def newWidget(self, name=None):
+ widget = self.widget_fn(self.parent, self.layout, name)
+ return widget
+ def getParent(self):
+ return self.parent
+ def getLayout(self):
+ return self.layout
+
+def hideShowSetup(parent, layout, name):
+ buffer = pyHideShowCtrl(parent, name)
+ layout.addWidget(buffer)
+ return buffer
+def bufferSetup(parent, layout, name):
+ buffer = pyBufferCtrl(parent.getSubwidget(), name)
+ layout.addWidget(buffer)
+ parent.updateMinWidth(buffer.maximumWidth())
+ return buffer
+def instDescrSetup(parent, layout, name):
+ inst_descr = pyInstructionDescriptionCtrl(parent.getSubwidget(), name)
+ layout.addWidget(inst_descr)
+ parent.updateMinWidth(inst_descr.maximumWidth())
+ return inst_descr
+def labelSetup(parent, layout, name):
+ font = QFont(qApp.font())
+ font.setPointSize(9)
+ label = QLabel(parent.getSubwidget(), name)
+ label.setFont(font)
+ layout.addWidget(label)
+ parent.updateMinWidth(label.maximumWidth())
+ return label
+
+
+class pyOrganismDataCtrl(QScrollView):
+#class pyOrganismDataCtrl(QWidget):
+ def __init__(self,parent = None,name = None,fl = 0):
+ QScrollView.__init__(self,parent,name,fl)
+ #QWidget.__init__(self,parent,name,fl)
+ if not name: self.setName("pyOrganismDataCtrl")
+
+ #font = QFont(qApp.font())
+ #font.setPointSize(9)
+ #self.setFont(font)
+
+ self.setPaletteBackgroundColor(Qt.white)
+
+ self.setResizePolicy(QScrollView.AutoOneFit)
+ self.viewport().setPaletteBackgroundColor(Qt.white)
+ self.setVScrollBarMode(QScrollView.AlwaysOn)
+ self.setHScrollBarMode(QScrollView.AlwaysOff)
+
+ layout = QVBoxLayout(self.viewport(),5,0)
+ #layout = QVBoxLayout(self,5,0)
+
+ self.old_frame_no = -1
+
+ self.hideshow_factory = WidgetFactory()
+ self.hideshow_factory.setWidgetFn(hideShowSetup)
+ self.hideshow_factory.setLayoutFn(lambda parent: layout)
+ self.hideshow_factory.setParent(self.viewport())
+ #self.hideshow_factory.setParent(self)
+
+ self.hideshow_all_hardware = self.hideshow_factory.newWidget("pyOrganismDataCtrl.hideshow_all_hardware")
+ self.hideshow_all_hardware.getLabel().setText("Hardware")
+ self.hideshow_factory.setLayoutFn(lambda parent: QVBoxLayout(parent,0,0))
+ self.hideshow_factory.setParent(self.hideshow_all_hardware.getSubwidget())
+
+ self.widget_factory = WidgetFactory()
+ self.widget_factory.setWidgetFn(bufferSetup)
+ self.widget_factory.setLayoutFn(lambda parent: QVBoxLayout(parent.getSubwidget(),0,0))
+
+ self.hideshow_inputs = self.hideshow_factory.newWidget("pyOrganismDataCtrl.hideshow_inputs")
+ self.hideshow_inputs.getLabel().setText("Input array")
+ self.widget_factory.setParent(self.hideshow_inputs)
+ self.buffer_in0 = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_in0").setReadFn(self,
+ lambda f, fn: f.m_ibuf_0_info[fn])
+ self.buffer_in1 = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_in1").setReadFn(self,
+ lambda f, fn: f.m_ibuf_1_info[fn])
+ self.buffer_in2 = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_in2").setReadFn(self,
+ lambda f, fn: f.m_ibuf_2_info[fn])
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_inputs.minimumWidth())
+
+ self.hideshow_output = self.hideshow_factory.newWidget("pyOrganismDataCtrl.hideshow_output")
+ self.hideshow_output.getLabel().setText("Output")
+ self.widget_factory.setParent(self.hideshow_output)
+ self.buffer_out = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_out").setReadFn(self,
+ lambda f, fn: f.m_obuf_0_info[fn])
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_output.minimumWidth())
+
+ self.hideshow_regs = self.hideshow_factory.newWidget("pyOrganismDataCtrl.hideshow_regs")
+ self.hideshow_regs.getLabel().setText("Registers A, B, C")
+ self.widget_factory.setParent(self.hideshow_regs)
+ self.buffer_regA = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_regA").setReadFn(self,
+ lambda f, fn: f.getThreadsSnapshotAt(fn)[0].GetRegister(cHardwareCPUDefs.s_REG_AX))
+ self.buffer_regB = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_regB").setReadFn(self,
+ lambda f, fn: f.getThreadsSnapshotAt(fn)[0].GetRegister(cHardwareCPUDefs.s_REG_BX))
+ self.buffer_regC = self.widget_factory.newWidget("pyOrganismDataCtrl.buffer_regC").setReadFn(self,
+ lambda f, fn: f.getThreadsSnapshotAt(fn)[0].GetRegister(cHardwareCPUDefs.s_REG_CX))
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_regs.minimumWidth())
+
+ self.hideshow_stackA = self.hideshow_factory.newWidget("pyOrganismDataCtrl.hideshow_stackA")
+ self.hideshow_stackA.getLabel().setText("Stack A")
+ self.widget_factory.setParent(self.hideshow_stackA)
+ ##### I don't know why this doesn't work (@kgn):
+ #self.buflist_stackA = [self.widget_factory.newWidget("pyOrganismDataCtrl.buflist_stackA[%i]"%i).setReadFn(self,
+ # lambda f, fn: f.getHardwareSnapshotAt(fn).pyGetGlobalStack().Get(i)) for i in range(10)]
+ l = lambda i: lambda f, fn: f.getHardwareSnapshotAt(fn).pyGetGlobalStack().Get(i)
+ self.buflist_stackB = [self.widget_factory.newWidget("pyOrganismDataCtrl.buflist_stackA[%i]"%i).setReadFn(self, l(i))
+ for i in range(10)]
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_stackA.minimumWidth())
+
+ self.hideshow_stackB = self.hideshow_factory.newWidget("pyOrganismDataCtrl.hideshow_stackB")
+ self.hideshow_stackB.getLabel().setText("Stack B")
+ self.widget_factory.setParent(self.hideshow_stackB)
+ ##### I don't know why this doesn't work (@kgn):
+ #self.buflist_stackB = [self.widget_factory.newWidget("pyOrganismDataCtrl.buflist_stackB[%i]"%i).setReadFn(self,
+ # lambda f, fn: f.getThreadsSnapshotAt(fn)[0].stack.Get(i)) for i in range(10)]
+ l = lambda i: lambda f, fn: f.getThreadsSnapshotAt(fn)[0].stack.Get(i)
+ self.buflist_stackB = [self.widget_factory.newWidget("pyOrganismDataCtrl.buflist_stackB[%i]"%i).setReadFn(self, l(i))
+ for i in range(10)]
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_stackB.minimumWidth())
+
+ self.hideshow_factory.setLayoutFn(lambda parent: layout)
+ self.hideshow_factory.setParent(self.viewport())
+ #self.hideshow_factory.setParent(self)
+
+ self.widget_factory.setWidgetFn(labelSetup)
+
+ self.hideshow_inst_legend = self.hideshow_factory.newWidget()
+ self.hideshow_inst_legend.getLabel().setText("Instructions legend")
+ self.widget_factory.setParent(self.hideshow_inst_legend)
+ self.no_legend_entries = self.widget_factory.newWidget()
+ self.no_legend_entries.setText("(no instruction set)")
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_inst_legend.minimumWidth())
+
+ self.widget_factory.setWidgetFn(instDescrSetup)
+
+ self.hideshow_cur_inst = self.hideshow_factory.newWidget()
+ self.hideshow_cur_inst.getLabel().setText("Current instruction")
+ self.widget_factory.setParent(self.hideshow_cur_inst)
+ self.curinst_descr = self.widget_factory.newWidget().setReadFn(self, None)
+ self.curinst_descr.setText("(no instruction)")
+ self.hideshow_all_hardware.updateMinWidth(self.hideshow_cur_inst.minimumWidth())
+
+ layout.addStretch(1)
+
+ def frameShownSlot(self, frames, frame_no):
+ if frames is None:
+ if self.old_frame_no != -1:
+ self.old_frame_no = -1
+ self.emit(PYSIGNAL("propagated-FrameShownSig"), (frames, -1))
+ elif self.old_frame_no != frame_no:
+ self.old_frame_no = frame_no
+ self.emit(PYSIGNAL("propagated-FrameShownSig"), (frames, frame_no))
Added: branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataView.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataView.py 2006-04-04 19:40:42 UTC (rev 565)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismDataView.py 2006-04-04 19:59:23 UTC (rev 566)
@@ -0,0 +1,61 @@
+from qt import *
+from pyBufferCtrl import pyBufferCtrl
+from pyHideShowCtrl import pyHideShowCtrl
+
+class pyHideShowFactory:
+ def setParent(self, parent):
+ self.m_parent = parent
+ self.m_layout = QVBoxLayout(parent,5,0)
+ def newHideShow(self):
+ buffer = pyHideShowCtrl(self.m_parent)
+ self.m_layout.addWidget(buffer)
+ return buffer
+ def layout(self):
+ return self.m_layout
+
+class pyBufferCtrlFactory:
+ def setParent(self, parent):
+ self.m_parent = parent
+ self.m_layout = QVBoxLayout(parent,0,0)
+ def newBuffer(self):
+ buffer = pyBufferCtrl(self.m_parent)
+ self.m_layout.addWidget(buffer)
+ return buffer
+
+class pyOrganismDataView(QWidget):
+ def __init__(self,parent = None,name = None,fl = 0):
+ QWidget.__init__(self,parent,name,fl)
+ if not name: self.setName("pyOrganismDataView")
+
+ #self.top_layout = QVBoxLayout(self,5,0,"pyOrganismDataView,top_layout")
+
+ #self.vb_layout = QVBoxLayout(None,0,0,"pyOrganismDataView,layout1")
+ #self.top_layout.addLayout(vb_layout)
+ #self.top_layout.addStretch()
+
+ hs_factory = pyHideShowFactory()
+ b_factory = pyBufferCtrlFactory()
+
+ hs_factory.setParent(self)
+
+ self.m_hideshow_inputs = hs_factory.newHideShow()
+ self.m_hideshow_inputs.getLabel().setText("input array")
+ b_factory.setParent(self.m_hideshow_inputs.getSubwidget())
+ self.m_buffer_in0 = b_factory.newBuffer()
+ self.m_buffer_in1 = b_factory.newBuffer()
+ self.m_buffer_in2 = b_factory.newBuffer()
+
+ self.m_hideshow_ouput = hs_factory.newHideShow()
+ self.m_hideshow_ouput.getLabel().setText("output")
+ b_factory.setParent(self.m_hideshow_ouput.getSubwidget())
+ self.m_buffer_out = b_factory.newBuffer()
+
+ self.m_hideshow_regs = hs_factory.newHideShow()
+ self.m_hideshow_regs.getLabel().setText("registers A, B, C")
+ b_factory.setParent(self.m_hideshow_regs.getSubwidget())
+ self.m_buffer_regA = b_factory.newBuffer()
+ self.m_buffer_regB = b_factory.newBuffer()
+ self.m_buffer_regC = b_factory.newBuffer()
+
+ hs_factory.layout().addStretch()
+
More information about the Avida-cvs
mailing list