From 01f2932824f1e81ec0913d760743602c6c8fde8c Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 15 Oct 2016 00:53:20 +0000 Subject: [PATCH] Pass grs_canvas &to window_create --- common/arch/sdl/window.cpp | 5 ++--- common/include/window.h | 10 +++++----- common/ui/dialog.cpp | 2 +- common/ui/menubar.cpp | 2 +- d2x-rebirth/main/escort.cpp | 3 +-- d2x-rebirth/main/movie.cpp | 4 ++-- similar/editor/info.cpp | 4 +--- similar/main/automap.cpp | 2 +- similar/main/console.cpp | 4 +--- similar/main/credits.cpp | 2 +- similar/main/game.cpp | 3 +-- similar/main/gamecntl.cpp | 2 +- similar/main/gameseq.cpp | 2 +- similar/main/kconfig.cpp | 2 +- similar/main/kmatrix.cpp | 3 +-- similar/main/menu.cpp | 4 ++-- similar/main/newmenu.cpp | 5 ++--- similar/main/scores.cpp | 2 +- similar/main/titles.cpp | 7 ++----- 19 files changed, 28 insertions(+), 40 deletions(-) diff --git a/common/arch/sdl/window.cpp b/common/arch/sdl/window.cpp index b882f6193..844641ffe 100644 --- a/common/arch/sdl/window.cpp +++ b/common/arch/sdl/window.cpp @@ -25,16 +25,15 @@ namespace dcx { static window *FrontWindow = nullptr; static window *FirstWindow = nullptr; -window::window(grs_canvas *src, int x, int y, int w, int h, window_subfunction event_callback, void *data, const void *createdata) : +window::window(grs_canvas &src, int x, int y, int w, int h, window_subfunction event_callback, void *data, const void *createdata) : // Default to visible and modal w_callback(event_callback), w_visible(1), w_modal(1), w_data(data), prev(FrontWindow), next(nullptr) { window *prev_front = window_get_front(); d_create_event event; window *wind = this; - Assert(src != nullptr); Assert(event_callback != nullptr); - gr_init_sub_canvas(wind->w_canv, *src, x, y, w, h); + gr_init_sub_canvas(wind->w_canv, src, x, y, w, h); if (FirstWindow == nullptr) FirstWindow = wind; diff --git a/common/include/window.h b/common/include/window.h index f96d608e6..7f533ed4a 100644 --- a/common/include/window.h +++ b/common/include/window.h @@ -65,17 +65,17 @@ class window public: // For creating the window, there are two ways - using the (older) window_create function // or using the constructor, passing an event handler that takes a subclass of window. - explicit window(grs_canvas *src, int x, int y, int w, int h, window_subfunction event_callback, void *data, const void *createdata); + explicit window(grs_canvas &src, int x, int y, int w, int h, window_subfunction event_callback, void *data, const void *createdata); template - window(grs_canvas *src, int x, int y, int w, int h, window_subclass_subfunction event_callback) : + window(grs_canvas &src, const int x, const int y, const int w, const int h, const window_subclass_subfunction event_callback) : window(src, x, y, w, h, reinterpret_cast>(event_callback), nullptr, nullptr) {} ~window(); // Declaring as friends to keep function syntax, for historical reasons (for now at least) // Intended to transition to the class method form - friend window *window_create(grs_canvas *src, int x, int y, int w, int h, window_subfunction event_callback, void *userdata, const void *createdata); + friend window *window_create(grs_canvas &src, int x, int y, int w, int h, window_subfunction event_callback, void *userdata, const void *createdata); friend int window_close(window *wind); friend int window_exists(window *wind); @@ -143,7 +143,7 @@ public: }; template -static inline window *window_create(grs_canvas *src, int x, int y, int w, int h, window_subfunction event_callback, T1 *data, T2 *createdata = nullptr) +static inline window *window_create(grs_canvas &src, int x, int y, int w, int h, window_subfunction event_callback, T1 *data, T2 *createdata = nullptr) { auto win = new window(src, x, y, w, h, reinterpret_cast>(event_callback), static_cast(data), static_cast(createdata)); set_embedded_window_pointer(data, win); @@ -151,7 +151,7 @@ static inline window *window_create(grs_canvas *src, int x, int y, int w, int h, } template -static inline window *window_create(grs_canvas *src, int x, int y, int w, int h, window_subfunction event_callback, const T1 *userdata, T2 *createdata = nullptr) +static inline window *window_create(grs_canvas &src, int x, int y, int w, int h, window_subfunction event_callback, const T1 *userdata, T2 *createdata = nullptr) { return new window(src, x, y, w, h, reinterpret_cast>(event_callback), static_cast(const_cast(userdata)), static_cast(createdata)); } diff --git a/common/ui/dialog.cpp b/common/ui/dialog.cpp index df6fe2667..7458dff79 100644 --- a/common/ui/dialog.cpp +++ b/common/ui/dialog.cpp @@ -173,7 +173,7 @@ d_callback(callback), gadget(nullptr), keyboard_focus_gadget(nullptr), d_userdat D_HEIGHT = h; selected_gadget = NULL; - dlg->wind = window_create(&grd_curscreen->sc_canvas, + dlg->wind = window_create(grd_curscreen->sc_canvas, x + ((flags & DF_BORDER) ? BORDER_WIDTH : 0), y + ((flags & DF_BORDER) ? BORDER_WIDTH : 0), req_w, req_h, ui_dialog_handler, dlg, createdata); diff --git a/common/ui/menubar.cpp b/common/ui/menubar.cpp index c384931e8..7e2b6908f 100644 --- a/common/ui/menubar.cpp +++ b/common/ui/menubar.cpp @@ -146,7 +146,7 @@ static void menu_show( MENU * menu ) { if (!menu->wind) { - menu->wind = window_create(&grd_curscreen->sc_canvas, menu->x, menu->y, menu->w, menu->h, + menu->wind = window_create(grd_curscreen->sc_canvas, menu->x, menu->y, menu->w, menu->h, ((menu == &Menu[0]) ? menubar_handler : menu_handler), menu); if (!menu->wind) return; diff --git a/d2x-rebirth/main/escort.cpp b/d2x-rebirth/main/escort.cpp index b6d852aba..af73152d9 100644 --- a/d2x-rebirth/main/escort.cpp +++ b/d2x-rebirth/main/escort.cpp @@ -1710,7 +1710,6 @@ void do_escort_menu(void) const char *goal_txt; const char *tstr; escort_menu *menu; - window *wind; if (Game_mode & GM_MULTI) { HUD_init_message_literal(HM_DEFAULT, "No Guide-Bot in Multiplayer!"); @@ -1735,7 +1734,7 @@ void do_escort_menu(void) return; // Just make it the full screen size and let show_escort_menu figure it out - wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, escort_menu_handler, menu); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, escort_menu_handler, menu); if (!wind) { d_free(menu); diff --git a/d2x-rebirth/main/movie.cpp b/d2x-rebirth/main/movie.cpp index a1b720af6..1a36f08e9 100644 --- a/d2x-rebirth/main/movie.cpp +++ b/d2x-rebirth/main/movie.cpp @@ -342,7 +342,7 @@ static window_event_result MovieHandler(window *, const d_event &event, movie *m // If PAUSE pressed, then pause movie if ((key == KEY_PAUSE) || (key == KEY_COMMAND + KEY_P)) { - if (window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, show_pause_message, unused_window_userdata)) + if (window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, show_pause_message, unused_window_userdata)) MVE_rmHoldMovie(); return window_event_result::handled; } @@ -402,7 +402,7 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy) return MOVIE_NOT_PLAYED; } const auto reshow = hide_menus(); - const auto wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, MovieHandler, &m); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, MovieHandler, &m); if (!wind) { if (reshow) diff --git a/similar/editor/info.cpp b/similar/editor/info.cpp index 4fa336d25..5e9946843 100644 --- a/similar/editor/info.cpp +++ b/similar/editor/info.cpp @@ -345,9 +345,7 @@ static window_event_result info_display_all(window *wind,const d_event &event, c // ------------------------------------------------------------------------------------ window *info_window_create(void) { - window *wind; - - wind = window_create(Canv_editor, PAD_X + 250, PAD_Y + 8, 180, 160, info_display_all, unused_window_userdata); + const auto wind = window_create(*Canv_editor, PAD_X + 250, PAD_Y + 8, 180, 160, info_display_all, unused_window_userdata); if (wind) window_set_modal(wind, 0); diff --git a/similar/main/automap.cpp b/similar/main/automap.cpp index 764459a4e..07f337f1f 100644 --- a/similar/main/automap.cpp +++ b/similar/main/automap.cpp @@ -985,7 +985,7 @@ void do_automap() int pcx_error; palette_array_t pal; automap *am = new automap{}; - window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, automap_handler, am); + window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, automap_handler, am); am->leave_mode = 0; am->pause_game = 1; // Set to 1 if everything is paused during automap...No pause during net. am->max_segments_away = 0; diff --git a/similar/main/console.cpp b/similar/main/console.cpp index 831842070..d98eab7b1 100644 --- a/similar/main/console.cpp +++ b/similar/main/console.cpp @@ -297,11 +297,9 @@ static window_event_result con_handler(window *wind,const d_event &event, const void con_showup(void) { - window *wind; - game_flush_inputs(); con_state = CON_STATE_OPENING; - wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, con_handler, unused_window_userdata); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, con_handler, unused_window_userdata); if (!wind) { diff --git a/similar/main/credits.cpp b/similar/main/credits.cpp index ba5984280..4d2f1c9e9 100644 --- a/similar/main/credits.cpp +++ b/similar/main/credits.cpp @@ -257,7 +257,7 @@ static void credits_show_common(RAIIPHYSFS_File file, const int have_bin_file) key_flush(); credits *pcr = cr.get(); - const auto wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, credits_handler, cr.release()); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, credits_handler, cr.release()); if (!wind) { d_event event = { EVENT_WINDOW_CLOSE }; diff --git a/similar/main/game.cpp b/similar/main/game.cpp index 41a555a41..15445589b 100644 --- a/similar/main/game.cpp +++ b/similar/main/game.cpp @@ -1166,13 +1166,12 @@ namespace dsx { window *game_setup(void) { - window *game_wind; PlayerCfg.CockpitMode[1] = PlayerCfg.CockpitMode[0]; last_drawn_cockpit = -1; // Force cockpit to redraw next time a frame renders. Endlevel_sequence = 0; - game_wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, game_handler, unused_window_userdata); + const auto game_wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, game_handler, unused_window_userdata); if (!game_wind) return NULL; diff --git a/similar/main/gamecntl.cpp b/similar/main/gamecntl.cpp index f2f7d4c73..afe2ac838 100644 --- a/similar/main/gamecntl.cpp +++ b/similar/main/gamecntl.cpp @@ -409,7 +409,7 @@ static int do_game_pause() snprintf(&p->msg[0], p->msg.size(), "PAUSE\n\nSkill level: %s\nHostages on board: %d\n", MENU_DIFFICULTY_TEXT(Difficulty_level), player_info.mission.hostages_on_board); set_screen_mode(SCREEN_MENU); - if (!window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, pause_handler, p)) + if (!window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, pause_handler, p)) delete p; return 0 /*key*/; // Keycode returning ripped out (kreatordxx) diff --git a/similar/main/gameseq.cpp b/similar/main/gameseq.cpp index 62acec5b0..39ad4d287 100644 --- a/similar/main/gameseq.cpp +++ b/similar/main/gameseq.cpp @@ -536,7 +536,7 @@ void editor_reset_stuff_on_level() compute_slide_segs(); #endif if (!Game_wind) - Game_wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, game_handler, unused_window_userdata); + Game_wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, game_handler, unused_window_userdata); } #endif diff --git a/similar/main/kconfig.cpp b/similar/main/kconfig.cpp index 63734e298..f75b1e368 100644 --- a/similar/main/kconfig.cpp +++ b/similar/main/kconfig.cpp @@ -1330,7 +1330,7 @@ static void kconfig_sub(const char *litems, const kc_item * items,kc_mitem *mite const auto &&fspacx = FSPACX(); const auto &&fspacy = FSPACY(); - if (!(menu->wind = window_create(&grd_curscreen->sc_canvas, (SWIDTH - fspacx(320)) / 2, (SHEIGHT - fspacy(200)) / 2, fspacx(320), fspacy(200), + if (!(menu->wind = window_create(grd_curscreen->sc_canvas, (SWIDTH - fspacx(320)) / 2, (SHEIGHT - fspacy(200)) / 2, fspacx(320), fspacy(200), kconfig_handler, menu))) delete menu; } diff --git a/similar/main/kmatrix.cpp b/similar/main/kmatrix.cpp index 8f168db22..951b94498 100644 --- a/similar/main/kmatrix.cpp +++ b/similar/main/kmatrix.cpp @@ -387,7 +387,6 @@ static window_event_result kmatrix_handler(window *, const d_event &event, kmatr kmatrix_result kmatrix_view(int network) { - window *wind; kmatrix_screen km; gr_init_bitmap_data(km.background); if (pcx_read_bitmap(STARS_BACKGROUND, km.background, gr_palette) != PCX_ERROR_NONE) @@ -408,7 +407,7 @@ kmatrix_result kmatrix_view(int network) if (i.objnum != object_none) digi_kill_sound_linked_to_object(vcobjptridx(i.objnum)); - wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, kmatrix_handler, &km); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, kmatrix_handler, &km); if (!wind) { return kmatrix_result::abort; diff --git a/similar/main/menu.cpp b/similar/main/menu.cpp index 46a7c30a4..c774121dc 100644 --- a/similar/main/menu.cpp +++ b/similar/main/menu.cpp @@ -2366,7 +2366,7 @@ static window_event_result polygon_models_viewer_handler(window *, const d_event static void polygon_models_viewer() { - window *wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, polygon_models_viewer_handler, unused_window_userdata); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, polygon_models_viewer_handler, unused_window_userdata); if (!wind) { d_event event = { EVENT_WINDOW_CLOSE }; @@ -2445,7 +2445,7 @@ static window_event_result gamebitmaps_viewer_handler(window *, const d_event &e static void gamebitmaps_viewer() { - window *wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, gamebitmaps_viewer_handler, unused_window_userdata); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, gamebitmaps_viewer_handler, unused_window_userdata); if (!wind) { d_event event = { EVENT_WINDOW_CLOSE }; diff --git a/similar/main/newmenu.cpp b/similar/main/newmenu.cpp index 96ee665b8..b604dcff8 100644 --- a/similar/main/newmenu.cpp +++ b/similar/main/newmenu.cpp @@ -1574,7 +1574,6 @@ static window_event_result newmenu_handler(window *wind,const d_event &event, ne newmenu *newmenu_do4( const char * title, const char * subtitle, uint_fast32_t nitems, newmenu_item * item, newmenu_subfunction subfunction, void *userdata, int citem, const char * filename, int TinyMode, int TabsFlag ) { - window *wind = NULL; newmenu *menu = new newmenu{}; menu->citem = citem; menu->scroll_offset = 0; @@ -1608,7 +1607,7 @@ newmenu *newmenu_do4( const char * title, const char * subtitle, uint_fast32_t n newmenu_create_structure(menu); // Create the basic window - wind = window_create(&grd_curscreen->sc_canvas, menu->x, menu->y, menu->w, menu->h, newmenu_handler, menu); + const auto wind = window_create(grd_curscreen->sc_canvas, menu->x, menu->y, menu->w, menu->h, newmenu_handler, menu); if (!wind) { @@ -2094,7 +2093,7 @@ listbox *newmenu_listbox1(const char *const title, const uint_fast32_t nitems, c listbox_create_structure(lb.get()); - wind = window_create(&grd_curscreen->sc_canvas, lb->box_x-BORDERX, lb->box_y-lb->title_height-BORDERY, lb->box_w+2*BORDERX, lb->height+2*BORDERY, listbox_handler, lb.get()); + wind = window_create(grd_curscreen->sc_canvas, lb->box_x-BORDERX, lb->box_y-lb->title_height-BORDERY, lb->box_w+2*BORDERX, lb->height+2*BORDERY, listbox_handler, lb.get()); if (!wind) { lb.reset(); diff --git a/similar/main/scores.cpp b/similar/main/scores.cpp index 21ddee201..2de98bc43 100644 --- a/similar/main/scores.cpp +++ b/similar/main/scores.cpp @@ -482,6 +482,6 @@ void scores_view(stats_info *last_game, int citem) const auto &&fspacx320 = FSPACX(320); const auto &&fspacy200 = FSPACY(200); - window_create(&grd_curscreen->sc_canvas, (SWIDTH - fspacx320) / 2, (SHEIGHT - fspacy200) / 2, fspacx320, fspacy200, + window_create(grd_curscreen->sc_canvas, (SWIDTH - fspacx320) / 2, (SHEIGHT - fspacy200) / 2, fspacx320, fspacy200, scores_handler, menu); } diff --git a/similar/main/titles.cpp b/similar/main/titles.cpp index 96236db52..6ccb3763a 100644 --- a/similar/main/titles.cpp +++ b/similar/main/titles.cpp @@ -156,7 +156,6 @@ static window_event_result title_handler(window *, const d_event &event, title_s static void show_title_screen(const char * filename, int allow_keys, int from_hog_only ) { - window *wind; int pcx_error; char new_filename[PATH_MAX] = ""; @@ -181,7 +180,7 @@ static void show_title_screen(const char * filename, int allow_keys, int from_ho gr_palette_load( gr_palette ); - wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, title_handler, ts.get()); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, title_handler, ts.get()); if (!wind) { gr_free_bitmap_data(ts->title_bm); @@ -1566,8 +1565,6 @@ namespace dsx { void do_briefing_screens(const d_fname &filename, int level_num) { - window *wind; - if (!*static_cast(filename)) return; @@ -1579,7 +1576,7 @@ void do_briefing_screens(const d_fname &filename, int level_num) return; } - wind = window_create(&grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, briefing_handler, br.get()); + const auto wind = window_create(grd_curscreen->sc_canvas, 0, 0, SWIDTH, SHEIGHT, briefing_handler, br.get()); if (!wind) { return;