mirror of
https://github.com/glfw/glfw.git
synced 2024-11-14 02:31:46 +00:00
Cocoa: Make frame autosave hint a string
This commit is contained in:
parent
6158801aeb
commit
9da2285b14
@ -162,7 +162,7 @@ information on what to include when reporting a bug.
|
|||||||
- Added `GLFW_JOYSTICK_HAT_BUTTONS` init hint (#889)
|
- Added `GLFW_JOYSTICK_HAT_BUTTONS` init hint (#889)
|
||||||
- Added `GLFW_LOCK_KEY_MODS` input mode and `GLFW_MOD_*_LOCK` mod bits (#946)
|
- Added `GLFW_LOCK_KEY_MODS` input mode and `GLFW_MOD_*_LOCK` mod bits (#946)
|
||||||
- Added macOS specific `GLFW_COCOA_RETINA_FRAMEBUFFER` window hint
|
- Added macOS specific `GLFW_COCOA_RETINA_FRAMEBUFFER` window hint
|
||||||
- Added macOS specific `GLFW_COCOA_FRAME_AUTOSAVE` window hint (#195)
|
- Added macOS specific `GLFW_COCOA_FRAME_NAME` window hint (#195)
|
||||||
- Added macOS specific `GLFW_COCOA_GRAPHICS_SWITCHING` window hint (#377,#935)
|
- Added macOS specific `GLFW_COCOA_GRAPHICS_SWITCHING` window hint (#377,#935)
|
||||||
- Added macOS specific `GLFW_COCOA_CHDIR_RESOURCES` init hint
|
- Added macOS specific `GLFW_COCOA_CHDIR_RESOURCES` init hint
|
||||||
- Added macOS specific `GLFW_COCOA_MENUBAR` init hint
|
- Added macOS specific `GLFW_COCOA_MENUBAR` init hint
|
||||||
|
@ -443,10 +443,10 @@ __GLFW_COCOA_RETINA_FRAMEBUFFER__ specifies whether to use full resolution
|
|||||||
framebuffers on Retina displays. Possible values are `GLFW_TRUE` and
|
framebuffers on Retina displays. Possible values are `GLFW_TRUE` and
|
||||||
`GLFW_FALSE`. This is ignored on other platforms.
|
`GLFW_FALSE`. This is ignored on other platforms.
|
||||||
|
|
||||||
@anchor GLFW_COCOA_FRAME_AUTOSAVE_hint
|
@anchor GLFW_COCOA_FRAME_NAME_hint
|
||||||
__GLFW_COCOA_FRAME_AUTOSAVE__ specifies whether to activate frame autosaving
|
__GLFW_COCOA_FRAME_NAME__ specifies the UTF-8 encoded name to use for autosaving
|
||||||
using the window title specified at window creation. Possible values are
|
the window frame, or if empty disables frame autosaving for the window. This is
|
||||||
`GLFW_TRUE` and `GLFW_FALSE`. This is ignored on other platforms.
|
ignored on other platforms. This is set with @ref glfwWindowHintString.
|
||||||
|
|
||||||
@anchor GLFW_COCOA_GRAPHICS_SWITCHING_hint
|
@anchor GLFW_COCOA_GRAPHICS_SWITCHING_hint
|
||||||
__GLFW_COCOA_GRAPHICS_SWITCHING__ specifies whether to in Automatic Graphics
|
__GLFW_COCOA_GRAPHICS_SWITCHING__ specifies whether to in Automatic Graphics
|
||||||
@ -515,7 +515,7 @@ GLFW_OPENGL_FORWARD_COMPAT | `GLFW_FALSE` | `GLFW_TRUE` or `GL
|
|||||||
GLFW_OPENGL_DEBUG_CONTEXT | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
|
GLFW_OPENGL_DEBUG_CONTEXT | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
|
||||||
GLFW_OPENGL_PROFILE | `GLFW_OPENGL_ANY_PROFILE` | `GLFW_OPENGL_ANY_PROFILE`, `GLFW_OPENGL_COMPAT_PROFILE` or `GLFW_OPENGL_CORE_PROFILE`
|
GLFW_OPENGL_PROFILE | `GLFW_OPENGL_ANY_PROFILE` | `GLFW_OPENGL_ANY_PROFILE`, `GLFW_OPENGL_COMPAT_PROFILE` or `GLFW_OPENGL_CORE_PROFILE`
|
||||||
GLFW_COCOA_RETINA_FRAMEBUFFER | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE`
|
GLFW_COCOA_RETINA_FRAMEBUFFER | `GLFW_TRUE` | `GLFW_TRUE` or `GLFW_FALSE`
|
||||||
GLFW_COCOA_FRAME_AUTOSAVE | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
|
GLFW_COCOA_FRAME_NAME | `""` | A UTF-8 encoded frame autosave name
|
||||||
GLFW_COCOA_GRAPHICS_SWITCHING | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
|
GLFW_COCOA_GRAPHICS_SWITCHING | `GLFW_FALSE` | `GLFW_TRUE` or `GLFW_FALSE`
|
||||||
GLFW_X11_CLASS_NAME | `""` | An ASCII encoded `WM_CLASS` class name
|
GLFW_X11_CLASS_NAME | `""` | An ASCII encoded `WM_CLASS` class name
|
||||||
GLFW_X11_INSTANCE_NAME | `""` | An ASCII encoded `WM_CLASS` instance name
|
GLFW_X11_INSTANCE_NAME | `""` | An ASCII encoded `WM_CLASS` instance name
|
||||||
|
@ -964,7 +964,7 @@ extern "C" {
|
|||||||
#define GLFW_CONTEXT_CREATION_API 0x0002200B
|
#define GLFW_CONTEXT_CREATION_API 0x0002200B
|
||||||
|
|
||||||
#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
|
#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
|
||||||
#define GLFW_COCOA_FRAME_AUTOSAVE 0x00023002
|
#define GLFW_COCOA_FRAME_NAME 0x00023002
|
||||||
#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
|
#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
|
||||||
|
|
||||||
#define GLFW_X11_CLASS_NAME 0x00024001
|
#define GLFW_X11_CLASS_NAME 0x00024001
|
||||||
@ -2360,9 +2360,8 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value);
|
|||||||
* `CMake/MacOSXBundleInfo.plist.in` in the source tree.
|
* `CMake/MacOSXBundleInfo.plist.in` in the source tree.
|
||||||
*
|
*
|
||||||
* @remark @macos When activating frame autosaving with
|
* @remark @macos When activating frame autosaving with
|
||||||
* [GLFW_COCOA_FRAME_AUTOSAVE](@ref GLFW_COCOA_FRAME_AUTOSAVE_hint), the
|
* [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified
|
||||||
* specified window size may be overriden by a previously saved size and
|
* window size and position may be overriden by previously saved values.
|
||||||
* position.
|
|
||||||
*
|
*
|
||||||
* @remark @x11 Some window managers will not respect the placement of
|
* @remark @x11 Some window managers will not respect the placement of
|
||||||
* initially hidden windows.
|
* initially hidden windows.
|
||||||
|
@ -1096,8 +1096,8 @@ static GLFWbool createNativeWindow(_GLFWwindow* window,
|
|||||||
[window->ns.object zoom:nil];
|
[window->ns.object zoom:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wndconfig->ns.frame)
|
if (strlen(wndconfig->ns.frameName))
|
||||||
[window->ns.object setFrameAutosaveName:[NSString stringWithUTF8String:wndconfig->title]];
|
[window->ns.object setFrameAutosaveName:[NSString stringWithUTF8String:wndconfig->ns.frameName]];
|
||||||
|
|
||||||
window->ns.view = [[GLFWContentView alloc] initWithGlfwWindow:window];
|
window->ns.view = [[GLFWContentView alloc] initWithGlfwWindow:window];
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ struct _GLFWwndconfig
|
|||||||
GLFWbool centerCursor;
|
GLFWbool centerCursor;
|
||||||
struct {
|
struct {
|
||||||
GLFWbool retina;
|
GLFWbool retina;
|
||||||
GLFWbool frame;
|
char frameName[256];
|
||||||
} ns;
|
} ns;
|
||||||
struct {
|
struct {
|
||||||
char className[256];
|
char className[256];
|
||||||
|
@ -349,9 +349,6 @@ GLFWAPI void glfwWindowHint(int hint, int value)
|
|||||||
case GLFW_COCOA_RETINA_FRAMEBUFFER:
|
case GLFW_COCOA_RETINA_FRAMEBUFFER:
|
||||||
_glfw.hints.window.ns.retina = value ? GLFW_TRUE : GLFW_FALSE;
|
_glfw.hints.window.ns.retina = value ? GLFW_TRUE : GLFW_FALSE;
|
||||||
return;
|
return;
|
||||||
case GLFW_COCOA_FRAME_AUTOSAVE:
|
|
||||||
_glfw.hints.window.ns.frame = value ? GLFW_TRUE : GLFW_FALSE;
|
|
||||||
return;
|
|
||||||
case GLFW_COCOA_GRAPHICS_SWITCHING:
|
case GLFW_COCOA_GRAPHICS_SWITCHING:
|
||||||
_glfw.hints.context.nsgl.offline = value ? GLFW_TRUE : GLFW_FALSE;
|
_glfw.hints.context.nsgl.offline = value ? GLFW_TRUE : GLFW_FALSE;
|
||||||
return;
|
return;
|
||||||
@ -404,6 +401,10 @@ GLFWAPI void glfwWindowHintString(int hint, const char* value)
|
|||||||
|
|
||||||
switch (hint)
|
switch (hint)
|
||||||
{
|
{
|
||||||
|
case GLFW_COCOA_FRAME_NAME:
|
||||||
|
strncpy(_glfw.hints.window.ns.frameName, value,
|
||||||
|
sizeof(_glfw.hints.window.ns.frameName) - 1);
|
||||||
|
return;
|
||||||
case GLFW_X11_CLASS_NAME:
|
case GLFW_X11_CLASS_NAME:
|
||||||
strncpy(_glfw.hints.window.x11.className, value,
|
strncpy(_glfw.hints.window.x11.className, value,
|
||||||
sizeof(_glfw.hints.window.x11.className) - 1);
|
sizeof(_glfw.hints.window.x11.className) - 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user