diff --git a/src/simudator/gui/color_scheme.py b/src/simudator/gui/color_scheme.py new file mode 100644 index 0000000000000000000000000000000000000000..ea428aee0355f603636bbcdcc6b55b0cd7dbb552 --- /dev/null +++ b/src/simudator/gui/color_scheme.py @@ -0,0 +1,18 @@ +from PyQt5.QtGui import QColor + + +""" +A class used for storing colors used by the gui in a central place that is easy +to edit. +""" +class ColorScheme(): + Window = QColor(125, 174, 163) + ModuleBackground = QColor(212, 190, 152) + ModuleOutline = QColor(0, 0, 0) + ModuleText = QColor(0, 0, 0) + ModuleShadow = QColor(60, 56, 54, 127) + Signal = QColor(255, 0, 0) + SignalHighlighted = QColor(255, 0, 0) + Port = QColor(0, 0, 0) + PortLabel = QColor(0, 0, 0) + PortHighlighted = QColor(0, 0, 0) diff --git a/src/simudator/gui/cpu_graphics_scene.py b/src/simudator/gui/cpu_graphics_scene.py index 925ad9846014c8538a422eacd43c298bf9f19933..489456086359b06812a9227a5eaffdcea7cc7732 100644 --- a/src/simudator/gui/cpu_graphics_scene.py +++ b/src/simudator/gui/cpu_graphics_scene.py @@ -1,6 +1,7 @@ from PyQt5.QtWidgets import QGraphicsItem, QGraphicsScene from simudator.core.processor import Processor +from simudator.gui.color_scheme import ColorScheme from simudator.gui.module_graphics_item.module_graphics_item import ModuleGraphicsItem from simudator.gui.signal_graphics_item import SignalGraphicsItem @@ -19,6 +20,7 @@ class CpuGraphicsScene(QGraphicsScene): self.cpu = cpu self.module_graphics_items = dict() self.signal_graphics_items = [] + self.setBackgroundBrush(ColorScheme.Window) def resetSignals(self) -> None: """ diff --git a/src/simudator/gui/module_graphics_item/mia/mia_memory_graphic.py b/src/simudator/gui/module_graphics_item/mia/mia_memory_graphic.py index a5cf3fcfb5de54d0c95a99130decc8d6bdfa53d5..75a1141011062eba2c673c9fa4fb0ca10da82c53 100644 --- a/src/simudator/gui/module_graphics_item/mia/mia_memory_graphic.py +++ b/src/simudator/gui/module_graphics_item/mia/mia_memory_graphic.py @@ -10,6 +10,7 @@ from PyQt5.QtWidgets import ( ) from simudator.core.modules import Memory +from simudator.gui.color_scheme import ColorScheme as CS from simudator.gui.module_graphics_item.module_graphics_item import ModuleGraphicsItem from simudator.gui.orientation import Orientation from simudator.gui.port_graphics_item import PortGraphicsItem @@ -64,6 +65,8 @@ class MemoryGraphicsItem(ModuleGraphicsItem): # Create base backgrond rect self.baserect = QGraphicsRectItem(0, 0, self.RECT_WIDTH, self.RECT_HEIGHT, self) + self.baserect.setPen(CS.ModuleOutline) + self.baserect.setBrush(CS.ModuleBackground) # Make ports self.input = PortGraphicsItem(self.module.get_input_signal(), diff --git a/src/simudator/gui/module_graphics_item/module_graphics_item.py b/src/simudator/gui/module_graphics_item/module_graphics_item.py index 2884b68070e1f186f6a3c7b481d822799bd2d0c2..aa7e750d03552b946c13975be01483a5716a8881 100644 --- a/src/simudator/gui/module_graphics_item/module_graphics_item.py +++ b/src/simudator/gui/module_graphics_item/module_graphics_item.py @@ -14,6 +14,7 @@ from PyQt5.QtWidgets import ( ) from simudator.core.module import Module +from simudator.gui.color_scheme import ColorScheme as CS from simudator.gui.gui import pyqtSignal from simudator.gui.orientation import Orientation from simudator.gui.port_graphics_item import PortGraphicsItem @@ -98,8 +99,15 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem): members_height) width = longest_line_len * self.CHAR_LEN * 2 + 2 * self.WIDTH_MARGIN + # Shadow + self.shadow = QGraphicsRectItem(0, 0, width, height, self) + self.shadow.setBrush(CS.ModuleShadow) + self.shadow.setPen(CS.ModuleShadow) + self.shadow.setPos(self.pos() + QtCore.QPointF(5, 10)) + # Create base background rectangle self.baserect = QGraphicsRectItem(0, 0, width, height, self) + self.baserect.setBrush(CS.ModuleBackground) # Add ports for input signals self.draw_ports() @@ -107,6 +115,7 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem): # Create name lable name_text = QGraphicsSimpleTextItem(self.state["name"], self) name_text.setPos(width/2-len(self.state["name"])*self.CHAR_LEN, 0) + name_text.setBrush(CS.ModuleText) # Create state lables self.state_lables = {} @@ -117,6 +126,7 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem): state_text = QGraphicsSimpleTextItem(text, self) state_text.setPos(width/20, state_tuple[0]*self.CHAR_HEIGHT) + state_text.setBrush(CS.ModuleText) self.state_lables[state_tuple[1]] = state_text def draw_ports(self) -> None: @@ -275,8 +285,5 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem): def get_scene_pos(self): return self.scenePos() - def get_ports(self) -> None: - return self.listeners - def getName(self) -> str: return self.name diff --git a/src/simudator/gui/port_graphics_item.py b/src/simudator/gui/port_graphics_item.py index 43856d2ab12c32587fb7d16934aeb29f3bdbe786..2dfd45c0930b1b4a513dc3596008c227427b11b2 100644 --- a/src/simudator/gui/port_graphics_item.py +++ b/src/simudator/gui/port_graphics_item.py @@ -12,6 +12,7 @@ from PyQt5.QtWidgets import ( ) from simudator.core.signal import Signal +from simudator.gui.color_scheme import ColorScheme from simudator.gui.orientation import Orientation @@ -93,6 +94,11 @@ class PortGraphicsItem(QGraphicsItemGroup): font.setPointSize(self.FONT_SIZE) self.name_label.setFont(font) + # Set colors + self.vertical_line.setPen(ColorScheme.Port) + self.horizontal_line.setPen(ColorScheme.Port) + self.name_label.setBrush(ColorScheme.PortLabel) + self.addToGroup(self.vertical_line) self.addToGroup(self.horizontal_line) self.addToGroup(self.name_label) diff --git a/src/simudator/gui/signal_graphics_item.py b/src/simudator/gui/signal_graphics_item.py index 22bde5b312f33cd2acf6f47d0ffeec06604b3824..e9ddc3922662ad66ecb42193ebc5ae8c24c1df4f 100644 --- a/src/simudator/gui/signal_graphics_item.py +++ b/src/simudator/gui/signal_graphics_item.py @@ -6,6 +6,7 @@ from PyQt5.QtCore import QPointF, Qt from PyQt5.QtGui import QCursor from PyQt5.QtWidgets import QGraphicsItem, QGraphicsLineItem, QGraphicsSceneMouseEvent +from simudator.gui.color_scheme import ColorScheme from simudator.gui.port_graphics_item import PortGraphicsItem SHORTEST_LINE_LEN = 400 @@ -117,6 +118,7 @@ class SignalGraphicsItem(QGraphicsItem): x2 = point.x() y2 = point.y() line = QGraphicsLineItem(x1, y1, x2, y2, self) + line.setPen(ColorScheme.Signal) self.lines.append(line) prev_point = point