}
}
-
/* Computes position of corners of window Rect (outer position including
* decorations) based on the provided client rect and based on the style
* of the window in question.
fghComputeWindowRectFromClientArea_UseStyle(clientRect, windowStyle, windowExStyle, posIsOutside);
}
-
/* Gets the rect describing the client area (drawable area) of the
* specified window. Output is position of corners of client area (drawable area) on the screen.
* Does not touch clientRect if window pointer or window handle is NULL.
void fghGetClientArea( RECT *clientRect, const SFG_Window *window )
{
POINT topLeftClient = {0,0};
- POINT topLeftWindow = {0,0};
freeglut_return_if_fail((window && window->Window.Handle));
OffsetRect(clientRect,topLeftClient.x,topLeftClient.y);
}
+
#if(WINVER >= 0x500)
typedef struct
{
if( !( window->Window.Handle ) )
fgError( "Failed to create a window (%s)!", title );
+ /* Store title */
+ {
+ window->State.pWState.WindowTitle = malloc (strlen(title) + 1);
+ strcpy(window->State.pWState.WindowTitle, title);
+ }
+
#if !defined(_WIN32_WCE)
/* Need to set requested style again, apparently Windows doesn't listen when requesting windows without title bar or borders */
SetWindowLong(window->Window.Handle, GWL_STYLE, flags);
}
DestroyWindow( window->Window.Handle );
+
+ /* clean up copied title text(s) */
+ if (window->State.pWState.WindowTitle)
+ free(window->State.pWState.WindowTitle);
+ if (window->State.pWState.IconTitle)
+ free(window->State.pWState.IconTitle);
}
#else
SetWindowText( fgStructure.CurrentWindow->Window.Handle, title );
#endif
+
+ /* Make copy of string to refer to later */
+ if (fgStructure.CurrentWindow->State.pWState.WindowTitle)
+ free(fgStructure.CurrentWindow->State.pWState.WindowTitle);
+ fgStructure.CurrentWindow->State.pWState.WindowTitle = malloc (strlen(title) + 1);
+ strcpy(fgStructure.CurrentWindow->State.pWState.WindowTitle, title);
}
/*
* Set the current window's iconified title
- * There really isn't a way to set the icon name separate from the
- * windows name in Win32, so, just set the windows name.
*/
void fgPlatformGlutSetIconTitle( const char* title )
{
-#ifdef _WIN32_WCE
- {
- wchar_t* wstr = fghWstrFromStr(title);
- SetWindowText( fgStructure.CurrentWindow->Window.Handle, wstr );
- free(wstr);
- }
-#else
- SetWindowText( fgStructure.CurrentWindow->Window.Handle, title );
-#endif
+ /* Make copy of string to refer to later */
+ if (fgStructure.CurrentWindow->State.pWState.IconTitle)
+ free(fgStructure.CurrentWindow->State.pWState.IconTitle);
+ fgStructure.CurrentWindow->State.pWState.IconTitle = malloc (strlen(title) + 1);
+ strcpy(fgStructure.CurrentWindow->State.pWState.IconTitle, title);
}
/*