From 1d38c1aa4c7fda8e55325783596df26e54a9777e Mon Sep 17 00:00:00 2001 From: Daniel Jones Date: Thu, 11 Jun 2020 01:57:18 +0930 Subject: initial progress --- MainWindow.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 MainWindow.h (limited to 'MainWindow.h') diff --git a/MainWindow.h b/MainWindow.h new file mode 100644 index 0000000..1eb3514 --- /dev/null +++ b/MainWindow.h @@ -0,0 +1,78 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include "Board.h" +#include "icons.h" + +class MainWindow : public FXMainWindow +{ + FXDECLARE(MainWindow) + + public: + explicit MainWindow(FXApp* a); + ~MainWindow(); + virtual void create(); + + /* Event system */ + // Messages for our class + enum { + UI_Tile = FXMainWindow::ID_LAST, + UI_New, + }; + + /* Event handlers */ + long on_Tile_Click(FXObject *sender, FXSelector sel, void *data); + long on_New_Click(FXObject *sender, FXSelector sel, void *data); + FXApp *get_app(){ return app; }; + + + protected: + // Required constructor for FXObject + MainWindow(){} + + private: + void create_ui(); + void new_game(int width, int height, int minecount); + void draw_buttons(); + FXHorizontalFrame *contents; // Content frame + FXVerticalFrame *canvasFrame; // Canvas frame + FXVerticalFrame *buttonFrame; // Button frame + FXScrollWindow *scroll_area; + FXApp *app; + Board *board; + FXMatrix *matrix; + std::vector> tile_buttons; + /* icons */ + FXIcon *bomb_icon; + FXIcon *empty_icon; + FXIcon *tile_1_icon; + FXIcon *tile_2_icon; + FXIcon *tile_3_icon; + FXIcon *tile_4_icon; + FXIcon *tile_5_icon; + FXIcon *tile_6_icon; + FXIcon *tile_7_icon; + FXIcon *tile_8_icon; + + +}; + +#endif // MAINWINDOW_H -- cgit v1.2.3