aboutsummaryrefslogtreecommitdiffstats
path: root/src/top_menu.cpp
diff options
context:
space:
mode:
authornathan <thenathansmithsmith@gmail.com>2023-03-20 06:34:54 +0000
committernathan <thenathansmithsmith@gmail.com>2023-03-20 06:34:54 +0000
commitdd98918fe32b9dcdfc482a2c68481e93ceb50623 (patch)
treebf2ea0e4f4e47facde93c0cf277adb2031f7b3ec /src/top_menu.cpp
downloadfltk_snake-dd98918fe32b9dcdfc482a2c68481e93ceb50623.tar.gz
fltk_snake-dd98918fe32b9dcdfc482a2c68481e93ceb50623.tar.bz2
fltk_snake-dd98918fe32b9dcdfc482a2c68481e93ceb50623.zip
first commitHEADmain
Diffstat (limited to 'src/top_menu.cpp')
-rw-r--r--src/top_menu.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/top_menu.cpp b/src/top_menu.cpp
new file mode 100644
index 0000000..97b9861
--- /dev/null
+++ b/src/top_menu.cpp
@@ -0,0 +1,25 @@
+#include "top_menu.h"
+
+
+void new_game_cb(Fl_Widget * w, void * d) {
+ MainData * mdata = (MainData*)d;
+
+ mdata->snake_map->reset_all();
+}
+
+void pause_cb(Fl_Widget * w, void * d) {
+ MainData * mdata = (MainData*)d;
+
+ // Get button.
+ Fl_Menu_Bar * menu_bar = (Fl_Menu_Bar*)w;
+ const Fl_Menu_Item * button = menu_bar->mvalue();
+
+ // Set paused.
+ mdata->paused = (bool)button->value();
+}
+
+void add_menu_items(MainData * mdata, Fl_Menu_Bar * top_menu) {
+ // Game.
+ top_menu->add("&game/New game", FL_CTRL + 'n', (Fl_Callback*)new_game_cb, (void*)mdata);
+ top_menu->add("&game/pause", 'p', (Fl_Callback*)pause_cb, (void*)mdata, FL_MENU_TOGGLE | (mdata->paused ? FL_MENU_VALUE : 0x0));
+}