dxx-rebirth/common/include/fwd-window.h
Chris Taylor f117df9eee Allow dcx::window struct to be subclassed - step 2
Allow dcx::window struct to be subclassed step 2. This step renames and reconfigures window_create in window.cpp to be the main constructor. Also add a template constructor that allows an event handler that takes a subclass of window.
2016-10-02 14:49:22 +08:00

56 lines
1.5 KiB
C++

/*
* This file is part of the DXX-Rebirth project <http://www.dxx-rebirth.com/>.
* It is copyright by its individual contributors, as recorded in the
* project's Git history. See COPYING.txt at the top level for license
* terms and a link to the Git history.
*/
#pragma once
#ifdef __cplusplus
#include "fwd-event.h"
#include "fwd-gr.h"
#ifdef dsx
namespace dsx {
void arch_init();
}
#endif
namespace dcx {
struct window;
enum class window_event_result : uint8_t;
template <typename T>
using window_subfunction = window_event_result (*)(window *menu,const d_event &event, T *userdata);
template <typename T>
using window_subclass_subfunction = window_event_result (*)(T *menu,const d_event &event, void*);
class unused_window_userdata_t;
/* No declaration for embed_window_pointer_t or ignore_window_pointer_t
* since every user needs the full definition.
*/
int window_close(window *wind);
int window_exists(window *wind);
window *window_get_front();
window *window_get_first();
window *window_get_next(window &wind);
window *window_get_prev(window &wind);
void window_select(window &wind);
window *window_set_visible(window &wind, int visible);
grs_canvas &window_get_canvas(window &wind);
#if !DXX_USE_OGL
void window_update_canvases();
#endif
window_event_result window_send_event(window &wind,const d_event &event);
int window_is_modal(window &wind);
#define WINDOW_SEND_EVENT(w, e) (event.type = e, (WINDOW_SEND_EVENT)(*w, event, __FILE__, __LINE__, #e))
}
#endif