Window: minWidth/minHeight/setMinSize and maxWidth/maxHeight/setMaxSize

This commit is contained in:
Josh Tynjala
2023-04-11 09:46:10 -07:00
parent f43173b942
commit f07e94708b
10 changed files with 214 additions and 0 deletions

View File

@@ -48,6 +48,8 @@ namespace lime {
virtual void Move (int x, int y) = 0;
virtual void ReadPixels (ImageBuffer *buffer, Rectangle *rect) = 0;
virtual void Resize (int width, int height) = 0;
virtual void SetMinimumSize (int width, int height) = 0;
virtual void SetMaximumSize (int width, int height) = 0;
virtual bool SetBorderless (bool borderless) = 0;
virtual void SetCursor (Cursor cursor) = 0;
virtual void SetDisplayMode (DisplayMode* displayMode) = 0;

View File

@@ -3518,6 +3518,38 @@ namespace lime {
}
void lime_window_set_minimum_size (value window, int width, int height) {
Window* targetWindow = (Window*)val_data (window);
targetWindow->SetMinimumSize (width, height);
}
HL_PRIM void HL_NAME(hl_window_set_minimum_size) (HL_CFFIPointer* window, int width, int height) {
Window* targetWindow = (Window*)window->ptr;
targetWindow->SetMinimumSize (width, height);
}
void lime_window_set_maximum_size (value window, int width, int height) {
Window* targetWindow = (Window*)val_data (window);
targetWindow->SetMaximumSize (width, height);
}
HL_PRIM void HL_NAME(hl_window_set_maximum_size) (HL_CFFIPointer* window, int width, int height) {
Window* targetWindow = (Window*)window->ptr;
targetWindow->SetMaximumSize (width, height);
}
bool lime_window_set_borderless (value window, bool borderless) {
Window* targetWindow = (Window*)val_data (window);
@@ -3986,6 +4018,8 @@ namespace lime {
DEFINE_PRIME3v (lime_window_move);
DEFINE_PRIME3 (lime_window_read_pixels);
DEFINE_PRIME3v (lime_window_resize);
DEFINE_PRIME3v (lime_window_set_minimum_size);
DEFINE_PRIME3v (lime_window_set_maximum_size);
DEFINE_PRIME2 (lime_window_set_borderless);
DEFINE_PRIME2v (lime_window_set_cursor);
DEFINE_PRIME2 (lime_window_set_display_mode);
@@ -4173,6 +4207,8 @@ namespace lime {
DEFINE_HL_PRIM (_VOID, hl_window_move, _TCFFIPOINTER _I32 _I32);
DEFINE_HL_PRIM (_DYN, hl_window_read_pixels, _TCFFIPOINTER _TRECTANGLE _TIMAGEBUFFER);
DEFINE_HL_PRIM (_VOID, hl_window_resize, _TCFFIPOINTER _I32 _I32);
DEFINE_HL_PRIM (_VOID, hl_window_set_minimum_size, _TCFFIPOINTER _I32 _I32);
DEFINE_HL_PRIM (_VOID, hl_window_set_maximum_size, _TCFFIPOINTER _I32 _I32);
DEFINE_HL_PRIM (_BOOL, hl_window_set_borderless, _TCFFIPOINTER _BOOL);
DEFINE_HL_PRIM (_VOID, hl_window_set_cursor, _TCFFIPOINTER _I32);
DEFINE_HL_PRIM (_VOID, hl_window_set_display_mode, _TCFFIPOINTER _TDISPLAYMODE _TDISPLAYMODE);

View File

@@ -745,6 +745,20 @@ namespace lime {
}
void SDLWindow::SetMinimumSize (int width, int height) {
SDL_SetWindowMinimumSize (sdlWindow, width, height);
}
void SDLWindow::SetMaximumSize (int width, int height) {
SDL_SetWindowMaximumSize (sdlWindow, width, height);
}
bool SDLWindow::SetBorderless (bool borderless) {
if (borderless) {

View File

@@ -42,6 +42,8 @@ namespace lime {
virtual void Move (int x, int y);
virtual void ReadPixels (ImageBuffer *buffer, Rectangle *rect);
virtual void Resize (int width, int height);
virtual void SetMinimumSize (int width, int height);
virtual void SetMaximumSize (int width, int height);
virtual bool SetBorderless (bool borderless);
virtual void SetCursor (Cursor cursor);
virtual void SetDisplayMode (DisplayMode* displayMode);