diff options
Diffstat (limited to 'src/top_menu.cpp')
-rw-r--r-- | src/top_menu.cpp | 25 |
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)); +} |