33 #include "../../Core/Signals/signal.h"
34 #include "../display_target.h"
37 #if !defined(WIN32) && !defined(__ANDROID__) && !defined(__APPLE__)
40 typedef struct _XDisplay Display;
41 typedef unsigned long Window;
44 #if defined(__ANDROID__)
55 class DisplayWindowMode;
56 class DisplayWindowDescription;
57 struct DisplayWindowHandle;
62 typedef std::shared_ptr<Cursor>
CursorPtr;
63 class DisplayWindowProvider;
64 class DisplayWindow_Impl;
90 #elif defined(__ANDROID__)
92 #elif defined(__APPLE__)
113 static std::shared_ptr<DisplayWindow>
create(
const std::string &
title,
float width,
float height,
bool start_fullscreen =
false,
bool allow_resize =
true,
int flipping_buffers = 2);
129 virtual const GraphicContextPtr &
gc()
const = 0;
132 virtual const InputDevicePtr &
keyboard()
const = 0;
135 virtual const InputDevicePtr &
mouse()
const = 0;
183 virtual std::function<bool(HWND, UINT, WPARAM, LPARAM)> &func_window_message() = 0;
262 virtual void set_size(
float width,
float height,
bool client_area) = 0;
265 virtual void set_minimum_size(
float width,
float height,
bool client_area) = 0;
268 virtual void set_maximum_size(
float width,
float height,
bool client_area) = 0;
284 virtual void show(
bool activate =
true) = 0;
287 virtual void hide() = 0;
305 virtual void flip(
int interval = -1) = 0;
311 virtual void set_cursor(
const CursorPtr &cursor) = 0;
319 virtual void set_cursor_handle(HCURSOR cursor) = 0;
virtual DisplayWindowHandle handle() const =0
Returns an platform-specific internal display window handle object.
virtual bool is_maximized() const =0
Returns true if the window is maximized.
virtual bool is_clipboard_image_available() const =0
Returns true if an image is available in the clipboard.
virtual void set_clipboard_text(const std::string &text)=0
Stores text in the clipboard.
virtual void toggle_fullscreen()=0
virtual void set_cursor(const CursorPtr &cursor)=0
Sets the current cursor icon.
virtual void set_title(const std::string &title)=0
Change window title.
int screen
Definition: display_window.h:96
virtual Signal< void()> & sig_window_restored()=0
Signal emitted when window is restored.
virtual void extend_frame_into_client_area(float left, float top, float right, float bottom)=0
Exend the window frame into the client area.
virtual bool is_visible() const =0
returns true if this display window is visible
virtual void set_position(const Rectf &pos, bool client_area)=0
Set window position and size.
Top-level window class.
Definition: display_window.h:101
virtual std::string title() const =0
Returns the window title.
virtual const InputDevicePtr & keyboard() const =0
Returns the keyboard input device.
virtual void set_maximum_size(float width, float height, bool client_area)=0
Maximum size a window can be resized to by the application user.
virtual bool is_fullscreen() const =0
Returns true if window is currently running fullscreen.
2D (x,y) point structure - Float
Definition: point.h:68
virtual void set_size(float width, float height, bool client_area)=0
Resize window.
virtual Signal< void()> & sig_window_moved()=0
Signal emitted after a window has been moved.
virtual bool has_focus() const =0
Returns true if window has focus.
virtual std::string clipboard_text() const =0
Returns the text stored in the clipboard.
virtual Rectf viewport() const =0
Returns the drawable area of the window (excluding window frame).
virtual Signal< void()> & sig_window_destroy()=0
Signal emitted when window is destroyed.
std::shared_ptr< Cursor > CursorPtr
Definition: cursor.h:52
Pixel data container.
Definition: pixel_buffer.h:52
const InputDevicePtr & input_device(const std::string &device_name) const
Returns the input device with the given device name.
virtual void request_repaint()=0
Invalidates the screen, causing a repaint.
std::shared_ptr< DisplayWindow > DisplayWindowPtr
Definition: canvas.h:41
virtual const InputDevicePtr & mouse() const =0
Returns the mouse input device.
Definition: display_window.h:86
virtual Pointf screen_to_client(const Pointf &screen)=0
Convert from screen coordinates to client coordinates.
virtual Rectf geometry() const =0
Returns the position and size of the window frame.
virtual Pointf client_to_screen(const Pointf &client)=0
Convert from window client coordinates to screen coordinates.
virtual void set_large_icon(const PixelBufferPtr &image)=0
Sets the large icon used for this window.
virtual Signal< void()> & sig_paint()=0
Signal emitted when the window is invalidated.
virtual PixelBufferPtr clipboard_image() const =0
Returns an image stored in the clipboard. Returns a null pixelbuffer if no image is available...
virtual void capture_mouse(bool capture)=0
Capture/Release the mouse.
virtual void restore()=0
Restores the window.
virtual void set_minimum_size(float width, float height, bool client_area)=0
Minimum size a window can be resized to by the application user.
virtual Sizef maximum_size(bool client_area=false)=0
Returns the maximum size the window can be resized to by the application user.
virtual void set_clipboard_image(const PixelBufferPtr &buf)=0
Stores an image in the clipboard.
StandardCursor
Standard Cursor.
Definition: display_window.h:69
virtual void hide_cursor()=0
Hides the mouse cursor.
virtual void bring_to_front()=0
Raises the window on top of other windows.
void set_visible(bool visible, bool activate)
Set visible.
virtual void set_enabled(bool enable)=0
Set enabled.
virtual void enable_alpha_channel(const Rectf &blur_rect)=0
Enable alpha channel for this window.
2D (width,height) size structure - Float
Definition: size.h:180
virtual Signal< void()> & sig_lost_focus()=0
Signal emitted when window lost focus.
virtual Signal< void()> & sig_window_close()=0
Signal emitted when window is closed.
virtual bool is_clipboard_text_available() const =0
Returns true if text is available in the clipboard.
virtual bool is_minimized() const =0
Returns true if the window is minimized.
::Window window
Definition: display_window.h:95
virtual std::function< bool()> & func_minimize_clicked()=0
Callback called when a window is asked to minimize itself.
2D (left,top,right,bottom) rectangle structure - Float
Definition: rect.h:505
virtual Signal< void()> & sig_window_flip()=0
Signal emitted when window flip() was called.
virtual void minimize()=0
Minimizes the window.
virtual Signal< void(float, float)> & sig_resize()=0
Signal emitted when window is resized.
virtual Signal< void()> & sig_window_minimized()=0
Signal emitted when window is minimized.
static std::shared_ptr< DisplayWindow > create(const std::string &title, float width, float height, bool start_fullscreen=false, bool allow_resize=true, int flipping_buffers=2)
Constructs a window.
virtual std::function< void(Rectf &)> & func_window_resize()=0
Callback called when a window is being resized.
::Display * display
Definition: display_window.h:94
virtual void show_cursor()=0
Shows the mouse cursor.
Display window description class.
Definition: display_window_description.h:47
std::shared_ptr< PixelBuffer > PixelBufferPtr
Definition: d3d_target.h:39
std::shared_ptr< GraphicContext > GraphicContextPtr
Definition: d3d_target.h:49
virtual void flip(int interval=-1)=0
Flip back buffer to front, making changes visible on screen.
virtual void show(bool activate=true)=0
Displays the window in its current size and position.
std::shared_ptr< InputDevice > InputDevicePtr
Definition: display_window.h:58
Mouse cursor class.
Definition: cursor.h:40
virtual void hide()=0
Hides the window.
Definition: Application/application.h:35
virtual const GraphicContextPtr & gc() const =0
Return the graphic context for the window.
virtual void maximize()=0
Maximizes the window.
virtual Signal< void()> & sig_window_maximized()=0
Signal emitted when window is maximized.
virtual const std::vector< InputDevicePtr > & game_controllers() const =0
Returns the game controller input device.
virtual void set_small_icon(const PixelBufferPtr &image)=0
Sets the small icon used for this window.
virtual Sizef minimum_size(bool client_area=false)=0
Returns the minimum size the window can be resized to by the application user.
virtual Signal< void()> & sig_got_focus()=0
Signal emitted when window gain focus.