Ver código fonte

Added about window and version file

Min 4 anos atrás
pai
commit
0d91752cfb
4 arquivos alterados com 46 adições e 5 exclusões
  1. 1 0
      msp430emu/__init__.py
  2. 33 1
      msp430emu/emulator.py
  3. 3 0
      msp430emu/version.py
  4. 9 4
      setup.py

+ 1 - 0
msp430emu/__init__.py

@@ -1 +1,2 @@
 from .emulator import run
+from .version import *

+ 33 - 1
msp430emu/emulator.py

@@ -1,6 +1,8 @@
 from threading import Thread, Event
 from os import path
+import sys
 import _msp430emu
+import version
 import wx
 from wx.adv import RichToolTip
 
@@ -153,6 +155,8 @@ class EmulatorWindow(wx.Frame):
         self.Bind(wx.EVT_MENU, self.OnLoad, menuReload)
         # menuReset = file_menu.Append(wx.ID_CLOSE_ALL, "&Reset", " Reset Emulator")
         # self.Bind(wx.EVT_MENU, self.RestartEmulator, menuReset)
+        menuAbout = file_menu.Append(wx.ID_ABOUT, "About", "About")
+        self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout)
         menuExit = file_menu.Append(wx.ID_EXIT, "E&xit", " Terminate the program")
         self.Bind(wx.EVT_MENU, self.OnClose, menuExit)
         self.Bind(wx.EVT_CLOSE, self.OnExit)
@@ -335,6 +339,9 @@ class EmulatorWindow(wx.Frame):
         self.timer_running.set()
         e.Skip()
 
+    def OnAbout(self, e):
+        AboutWindow(self)
+
     def OnMouseDown(self, e):
         if self.emu_paused:
             e.Skip()
@@ -394,7 +401,6 @@ class EmulatorWindow(wx.Frame):
         self.Layout()
 
 
-
 class RegisterPanel(wx.Panel):
     def __init__(self, parent, emu: Emulator):
         wx.Panel.__init__(self, parent)
@@ -459,6 +465,32 @@ class RegisterPanel(wx.Panel):
                 reg.SetValue(f"{values[i]:08b}")
 
 
+class AboutWindow(wx.Frame):
+    def __init__(self, parent, title="About"):
+        super().__init__(parent, title=title)
+        self.vbox = wx.BoxSizer(wx.VERTICAL)
+        self._add_text(version.description)
+        self._add_text("version: " + version.__version__, 20)
+        self._add_text("wx version: " + wx.VERSION_STRING)
+        self._add_text("python: " + sys.version)
+        box = wx.BoxSizer()
+        box.Add(self.vbox, 1, wx.ALL | wx.EXPAND, border=20)
+        self.SetSizer(box)
+        self.Layout()
+        self.Fit()
+        self.Center()
+        self.Show()
+
+    def _add_text(self, text, bottom=0):
+        stext = wx.StaticText(self, label=text, style=wx.ALIGN_CENTRE_HORIZONTAL)
+        if bottom > 0:
+            self.vbox.Add(stext, 0, wx.BOTTOM | wx.EXPAND, border=bottom)
+        else:
+            self.vbox.Add(stext, 0, wx.EXPAND)
+
+
+
+
 class DrawRect(wx.Panel):
     """ class MyPanel creates a panel to draw on, inherits wx.Panel """
     RED = wx.Colour(255, 0, 0, wx.ALPHA_OPAQUE)

+ 3 - 0
msp430emu/version.py

@@ -0,0 +1,3 @@
+__version__ = "0.4"
+description = 'MSP 430 Emulator'
+__author__ = 'zceemja@ucl.ac.uk'

+ 9 - 4
setup.py

@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 from setuptools.dist import Distribution
 from distutils.core import setup, Extension
-
+from distutils.util import convert_path
 
 emulator_files = [
     'emulator/devices/utilities.c',
@@ -24,6 +24,11 @@ emulator_files = [
     'emulator/win.c',
 ]
 
+main_ns = {}
+ver_path = convert_path('msp430emu/version.py')
+with open(ver_path) as ver_file:
+    exec(ver_file.read(), main_ns)
+
 
 class BinaryDistribution(Distribution):
     def is_pure(self):
@@ -31,9 +36,9 @@ class BinaryDistribution(Distribution):
 
 
 setup(name='msp430emu',
-      version='0.3',
-      description='MSP 430 Emulator',
-      author_email='zceemja@ucl.ac.uk',
+      version=main_ns['__version__'],
+      description=main_ns['description'],
+      author_email=main_ns['__author__'],
       packages=['msp430emu'],
       package_dir={'msp430emu': 'msp430emu'},
       package_data={'msp430emu': ['*.png']},