mouse->show();
int Modal_gump	(	Modal_gump_object *gump,	// What the user interacts with.	Mouse::Mouse_shapes shape	// Mouse shape to use.	)	{	Mouse::Mouse_shapes saveshape = mouse->get_shape();	if (shape != Mouse::dontchange)		mouse->set_shape(shape);	int escaped = 0;					// Get area to repaint when done.	Rectangle box = gwin->get_gump_rect(gump);	box.enlarge(2);	box = gwin->clip_to_win(box);					// Create buffer to backup background.	Image_buffer *back = gwin->get_win()->create_buffer(box.w, box.h);#ifdef MOUSE	mouse->hide();			// Turn off mouse.#endif					// Save background.	gwin->get_win()->get(back, box.x, box.y);	gump->paint(gwin);		// Paint gump.	gwin->show();	do		{		Delay();		// Wait a fraction of a second.#ifdef MOUSE		mouse->hide();		// Turn off mouse.#endif		SDL_Event event;		while (!escaped && !gump->is_done() && SDL_PollEvent(&event))			escaped = !Handle_gump_event(gump, event);#ifdef MOUSE		mouse->show();		// Re-display mouse.#endif		gwin->show();		// Blit to screen if necessary.		}	while (!gump->is_done() && !escaped);	mouse->hide();					// Restore background.	gwin->get_win()->put(back, box.x, box.y);	delete back;	mouse->set_shape(saveshape);	mouse->show();	gwin->set_painted();	gwin->show();	return (!escaped);	}