tool_panel.h 736 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <QListWidget>
  3. #include <QWidget>
  4. namespace MapEditor {
  5. enum class ToolType {
  6. Select,
  7. Hill,
  8. Mountain,
  9. River,
  10. Road,
  11. Bridge,
  12. Firecamp,
  13. Barracks,
  14. Village,
  15. Eraser
  16. };
  17. class ToolPanel : public QWidget {
  18. Q_OBJECT
  19. public:
  20. explicit ToolPanel(QWidget *parent = nullptr);
  21. [[nodiscard]] ToolType currentTool() const { return m_currentTool; }
  22. void clearSelection();
  23. signals:
  24. void toolSelected(ToolType tool);
  25. private slots:
  26. void onItemClicked(QListWidgetItem *item);
  27. private:
  28. void setupUI();
  29. void addToolItem(const QString &name, const QString &iconChar, ToolType tool);
  30. QListWidget *m_toolList = nullptr;
  31. ToolType m_currentTool = ToolType::Select;
  32. };
  33. } // namespace MapEditor