Window in the center

How can I see my window in the center of the screen?
tnx

NighTiger wrote:

How can I see my window in the center of the screen?
tnx


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

Try this:

void CenterWindow()
{
SDL_Surface *screen=SDL_GetVideoSurface();
SDL_SysWMinfo info;

SDL_VERSION(&info.version);
if ( SDL_GetWMInfo(&info) > 0 ) {
    #ifdef __unix
        if ( info.subsystem == SDL_SYSWM_X11 ) {
            info.info.x11.lock_func();
            int w = DisplayWidth(info.info.x11.display,
                             DefaultScreen(info.info.x11.display));
            int h = DisplayHeight(info.info.x11.display,
                             DefaultScreen(info.info.x11.display));
            int x = (w - screen->w)/2;
            int y = (h - screen->h)/2;
            XMoveWindow(info.info.x11.display, 

info.info.x11.wmwindow, x, y);
info.info.x11.unlock_func();
}
#endif // unix
#ifdef WIN32
{
RECT rc;
HWND hwnd = info.window;
int w=GetSystemMetrics(SM_CXSCREEN);
int h=GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(hwnd, &rc);
int x = (w - (rc.right-rc.left))/2;
int y = (h - (rc.bottom-rc.top))/2;
SetWindowPos(hwnd, NULL, x, y, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
}
#endif
}
}

I am not sure what to do in the case of Macs or general other systems.

Or try this:

#include <stdlib.h>

putenv(“SDL_VIDEO_CENTERED=1”);

In Linux, it centers the window every time SDL_SetVideoMode() is called.
In Windows, it centers the window upon program invocation, but not for
subsequent SDL_SetVideoMode() calls (within the same run).

SteveOn May 12, 2004 05:30 pm, TomT64 wrote:

NighTiger wrote:

How can I see my window in the center of the screen?
tnx


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

Try this:

void CenterWindow()
{
SDL_Surface *screen=SDL_GetVideoSurface();
SDL_SysWMinfo info;

SDL_VERSION(&info.version);
if ( SDL_GetWMInfo(&info) > 0 ) {
    #ifdef __unix
        if ( info.subsystem == SDL_SYSWM_X11 ) {
            info.info.x11.lock_func();
            int w = DisplayWidth(info.info.x11.display,

DefaultScreen(info.info.x11.display)); int h =
DisplayHeight(info.info.x11.display,
DefaultScreen(info.info.x11.display)); int x = (w - screen->w)/2;
int y = (h - screen->h)/2;
XMoveWindow(info.info.x11.display,
info.info.x11.wmwindow, x, y);
info.info.x11.unlock_func();
}
#endif // unix
#ifdef WIN32
{
RECT rc;
HWND hwnd = info.window;
int w=GetSystemMetrics(SM_CXSCREEN);
int h=GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(hwnd, &rc);
int x = (w - (rc.right-rc.left))/2;
int y = (h - (rc.bottom-rc.top))/2;
SetWindowPos(hwnd, NULL, x, y, 0, 0,
SWP_NOSIZE|SWP_NOZORDER); }
#endif
}
}

I am not sure what to do in the case of Macs or general other
systems.


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl