Files
unnamed-cad-software/src/MainWindow.h
T
2026-02-20 09:28:23 -07:00

60 lines
1.2 KiB
C++

// Unnamed CAD Software
//
// License: GPLv3 (or later)
// Language: C++17
// Notes:
// - use a right-handed, Z-up coordinate system to match Open CASCADE
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QEvent;
class ViewportWidget;
class Document;
class Feature;
class QTabWidget;
class QWidget;
class ApplicationController;
class DebugWindow;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(ApplicationController* appController, QWidget *parent = nullptr);
private slots:
void newFile();
void open();
bool save();
bool saveAs();
void createSketch();
void saveSketch();
void showDebugWindow();
void updateDebugInfo();
void enterSketchMode();
void exitSketchMode();
void updateWindowTitle(const QString& filePath);
protected:
bool eventFilter(QObject *watched, QEvent *event) override;
private:
ApplicationController* m_appController;
ViewportWidget *m_viewport;
DebugWindow* m_debugWindow;
QTabWidget *m_tabWidget;
QWidget *m_solidTab;
QWidget *m_surfaceTab;
QWidget *m_toolsTab;
QWidget *m_sketchTab;
};
#endif // MAINWINDOW_H