mirror of
https://github.com/seekrs/MacroLibX.git
synced 2026-01-11 14:43:34 +00:00
adding support for changing window position
mlx_set_window_position(void *mlx, void *win, int x, int y)
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/10/04 16:56:35 by maldavid #+# #+# */
|
||||
/* Updated: 2024/01/18 14:36:12 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/09/12 01:28:12 by tdelage ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -53,6 +53,17 @@ MLX_API void* mlx_init();
|
||||
*/
|
||||
MLX_API void* mlx_new_window(void* mlx, int w, int h, const char* title);
|
||||
|
||||
/**
|
||||
* @brief Creates a new window
|
||||
*
|
||||
* @param mlx Internal MLX application
|
||||
* @param win Internal window to move
|
||||
* @param x New x position
|
||||
* @param y New y position
|
||||
*
|
||||
*/
|
||||
MLX_API void mlx_set_window_position(void *mlx, void *win, int x, int y);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Gives a function to be executed at each loop turn
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/10/04 21:49:46 by maldavid #+# #+# */
|
||||
/* Updated: 2024/01/26 11:26:54 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/09/12 01:30:35 by tdelage ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -45,6 +45,7 @@ namespace mlx::core
|
||||
inline void* newGraphicsSuport(std::size_t w, std::size_t h, const char* title);
|
||||
inline void clearGraphicsSupport(void* win);
|
||||
inline void destroyGraphicsSupport(void* win);
|
||||
inline void setWindowPosition(void *win, int x, int y);
|
||||
|
||||
inline void pixelPut(void* win, int x, int y, std::uint32_t color) const noexcept;
|
||||
inline void stringPut(void* win, int x, int y, std::uint32_t color, char* str);
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include <SDL2/SDL_video.h>
|
||||
#include <algorithm>
|
||||
#include <core/application.h>
|
||||
|
||||
@@ -71,6 +72,16 @@ namespace mlx::core
|
||||
_in->onEvent(_graphics[*static_cast<int*>(win)]->getWindow()->getID(), event, funct_ptr, param);
|
||||
}
|
||||
|
||||
void Application::setWindowPosition(void *win, int x, int y) {
|
||||
CHECK_WINDOW_PTR(win);
|
||||
if(!_graphics[*static_cast<int*>(win)]->hasWindow())
|
||||
{
|
||||
error::report(e_kind::warning, "trying to move a window that is targeting an image and not a real window, this is not allowed");
|
||||
return;
|
||||
}
|
||||
SDL_SetWindowPosition(_graphics[*static_cast<int*>(win)]->getWindow()->getNativeWindow(), x, y);
|
||||
}
|
||||
|
||||
void Application::getScreenSize(void* win, int* w, int* h) noexcept
|
||||
{
|
||||
CHECK_WINDOW_PTR(win);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* By: maldavid <kbz_8.dev@akel-engine.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2022/10/04 17:35:20 by maldavid #+# #+# */
|
||||
/* Updated: 2024/02/23 22:37:24 by maldavid ### ########.fr */
|
||||
/* Updated: 2024/09/12 01:29:33 by tdelage ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@@ -62,6 +62,12 @@ extern "C"
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mlx_set_window_position(void *mlx, void *win, int x, int y)
|
||||
{
|
||||
MLX_CHECK_APPLICATION_POINTER(mlx);
|
||||
static_cast<mlx::core::Application*>(mlx)->setWindowPosition(win, x, y);
|
||||
}
|
||||
|
||||
int mlx_loop(void* mlx)
|
||||
{
|
||||
MLX_CHECK_APPLICATION_POINTER(mlx);
|
||||
|
||||
Reference in New Issue
Block a user