from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGridLayout, QPushButton, QTabWidget, QLabel from editortool.map.chunkpanel import ChunkPanel from editortool.map.entitypanel import EntityPanel class MapLeftPanel(QWidget): def __init__(self, parent): super().__init__(parent) self.parent = parent layout = QVBoxLayout(self) self.setLayout(layout) # Nav buttons self.chunkInfoLabel = QLabel("Tile Information") layout.addWidget(self.chunkInfoLabel) grid = QGridLayout() self.btnUp = QPushButton("U") self.btnN = QPushButton("N") self.btnDown = QPushButton("D") self.btnW = QPushButton("W") self.btnS = QPushButton("S") self.btnE = QPushButton("E") grid.addWidget(self.btnUp, 0, 0) grid.addWidget(self.btnN, 0, 1) grid.addWidget(self.btnDown, 0, 2) grid.addWidget(self.btnW, 1, 0) grid.addWidget(self.btnS, 1, 1) grid.addWidget(self.btnE, 1, 2) layout.addLayout(grid) # Panels self.chunkPanel = ChunkPanel(self.parent) self.entityPanel = EntityPanel(self.parent) # Tabs self.tabs = QTabWidget() self.tabs.addTab(self.chunkPanel, "Tiles") self.tabs.addTab(self.entityPanel, "Entities") self.tabs.addTab(None, "Triggers") layout.addWidget(self.tabs) # Event subscriptions self.btnN.clicked.connect(lambda: self.parent.map.moveRelative(0, -1, 0)) self.btnS.clicked.connect(lambda: self.parent.map.moveRelative(0, 1, 0)) self.btnE.clicked.connect(lambda: self.parent.map.moveRelative(1, 0, 0)) self.btnW.clicked.connect(lambda: self.parent.map.moveRelative(-1, 0, 0)) self.btnUp.clicked.connect(lambda: self.parent.map.moveRelative(0, 0, 1)) self.btnDown.clicked.connect(lambda: self.parent.map.moveRelative(0, 0, -1))