From: John F. Fay Date: Wed, 19 Sep 2007 04:42:25 +0000 (+0000) Subject: Implementing first part of Windows version of "GLUT_CAPTIONLESS" and "GLUT_BORDERLESS... X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=commitdiff_plain;h=813252e0cc95b0fe2611cf3528fda118b3d34287;p=freeglut Implementing first part of Windows version of "GLUT_CAPTIONLESS" and "GLUT_BORDERLESS" per feature request "[ 1197016 ] need GLUT_CAPTIONLESS window option". Needs more work; menus are slightly mispositioned, X11 version does not support it, banner appears at beginning but disappears on window resize. But this is a start. git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@723 7f0cb862-5218-0410-a997-914c9d46530a --- diff --git a/include/GL/freeglut_std.h b/include/GL/freeglut_std.h index 15b113f..0545e64 100644 --- a/include/GL/freeglut_std.h +++ b/include/GL/freeglut_std.h @@ -169,6 +169,8 @@ #define GLUT_MULTISAMPLE 0x0080 #define GLUT_STEREO 0x0100 #define GLUT_LUMINANCE 0x0200 +#define GLUT_CAPTIONLESS 0x0400 +#define GLUT_BORDERLESS 0x0800 /* * GLUT API macro definitions -- windows and menu related definitions diff --git a/src/freeglut_window.c b/src/freeglut_window.c index 91d4a71..181c58d 100644 --- a/src/freeglut_window.c +++ b/src/freeglut_window.c @@ -608,6 +608,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, DWORD flags; DWORD exFlags = 0; ATOM atom; + int WindowStyle = 0; /* Grab the window class we have registered on glutInit(): */ atom = GetClassInfo( fgDisplay.Instance, _T("FREEGLUT"), &wc ); @@ -735,6 +736,25 @@ void fgOpenWindow( SFG_Window* window, const char* title, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE ); + + /* Hack to remove the caption (title bar) and/or border + * and all the system menu controls. + */ + WindowStyle = GetWindowLong(window->Window.Handle, GWL_STYLE); + if ( fgState.DisplayMode & GLUT_CAPTIONLESS ) + { + SetWindowLong ( window->Window.Handle, GWL_STYLE, + WindowStyle & ~(WS_DLGFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)); + } + else if ( fgState.DisplayMode & GLUT_BORDERLESS ) + { + SetWindowLong ( window->Window.Handle, GWL_STYLE, + WindowStyle & ~(WS_BORDER | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)); + } +//SetWindowPos(window->Window.Handle, NULL, 0, 0, 0, 0, +// SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); + + #if defined(_WIN32_WCE) ShowWindow( window->Window.Handle, SW_SHOW ); #else