// Copyright (c) 2026 - 2026 kio@little-bat.de
// BSD-2-Clause license
// https://opensource.org/licenses/BSD-2-Clause

#pragma once
#include "Pixmap.h"
#include <QMainWindow>


class MainWindow : public QMainWindow
{
	Q_OBJECT
	using super = QMainWindow;

public:
	kilipili::RCPtr<kilipili::Graphics::Pixmap_i8> pixmap {nullptr};

	int zoom {1};
	int hpos {0}, vpos {0}; // position of top left corner (window coordinates at zoom=1)

protected:
	void keyPressEvent(QKeyEvent*) override;
	void keyReleaseEvent(QKeyEvent*) override;
	void showEvent(QShowEvent*) override;
	void hideEvent(QHideEvent*) override;
	void paintEvent(QPaintEvent*) override;
	void focusInEvent(QFocusEvent*) override;
	void focusOutEvent(QFocusEvent*) override;
	void resizeEvent(QResizeEvent*) override;
	void wheelEvent(QWheelEvent*) override;
	void mousePressEvent(QMouseEvent*) override;
	void mouseReleaseEvent(QMouseEvent*) override;
	void mouseMoveEvent(QMouseEvent*) override;

public:
	MainWindow(int w, int h, QWidget* parent = nullptr);
	~MainWindow() {}

	void setZoom(int);
	void setCanvasSize(int w, int h);
	void clear();

	static QVector<QString> names; // of tests
	void					runTest(int i);

public slots:
	//void slotQuitAppl();
signals:
	//	void focusChanged(bool);
	//	void resized();
};
