2.2.0 (2025-01-06) * Added functions: * Shell_copyTextToClipboard() * Shell_getClipboardText() * Shell_getDisplayDPI() * Shell_getDisplayRefreshRate() * Shell_getDisplayScaleFactor() * Shell_needsDisplay() * Shell_openFileDialogMultiple() * Shell_chooseFolderDialog() * Shell_executeOnMainThread() * Shell_getMouseDeltaMode() * Shell_getMousePosition() * Shell_setMousePosition() * Shell_getModifierKeys() * Shell_getButtonMask() * Shell_registerCustomCursor() * Shell_setDrawThrottleRate() * Shell_msleep() * Shell_preciseSleep() * Shell_mouseLeaveFunc() * Shell_moveWindow() * Shell_resizeWindow() * Shell_moveResizeWindow() * Shell_setUnhideCursorMovementThreshold() * Shell_cursorUnhiddenFunc() * Shell_getKeyLabel() * Shell_getKeyboardLayoutName() * Shell_keyboardLayoutChangedFunc() * isModifierKey() * Added arguments cursorX, cursorY, and buttonMask to scrollWheel callback * Added deltaX and deltaY arguments to mouseMoved and mouseDragged callbacks * Added buttonMask argument to mouseDown and mouseUp callbacks * Added referenceTime argument to all shell callback functions * Added modifiers argument to all mouse-related shell callback functions * Added lastModifiers argument to keyModifiersChanged callback function * Added captureDisplay argument to Shell_enterFullScreen() * Added SHELL_TIMER_INVALID constant * Added MODIFIER_PLATFORM_MENU_COMMAND_BIT, MODIFIER_ALTGR_BIT, and MODIFIER_ANY_ALT_BIT to ShellKeyCodes.h * Added MOUSE_BUTTON_NUMBER_LEFT, MOUSE_BUTTON_NUMBER_RIGHT, and MOUSE_BUTTON_NUMBER_MIDDLE constants to ShellKeyCodes.h * Added key codes NON_US_POUND, NON_US_PUNCT, APPLICATION, POWER, F16-F24, EXECUTE, HELP, MUTE, VOLUME_UP, and VOLUME_DOWN to ShellKeyCodes.h * Added ShellBatteryState_notCharging to ShellBatteryInfo.h * Renamed most constants in ShellKeyCodes.h, and removed several unused ones * File dialog functions now return string pointers owned by the shell, rather than writing into a caller-provided buffer * File dialog functions now accept a list of allowed file extensions to use as a filter * File dialog functions now take an initial window title argument * Shell_openFileDialog() now accepts an optional file name to be selected by default in the default directory * File dialog functions now return their resulting file path directly, rather than a redundant boolean value and out parameter * Shell_setTimer()'s second argument is now a flagset instead of a single boolean, with flags TIMER_FLAG_REPEAT, TIMER_FLAG_RUN_IN_BACKGROUND, and TIMER_FLAG_RUN_DURING_FILE_DIALOGS defined. Existing calls passing true for this argument will still repeat without any changes, but may have different behavior than previously when the application is in the background or displaying a file dialog. 2.1.0 (2014-12-13) * Added vsync API. Call Shell_setVSync to specify whether to wait for vertical blank when swapping buffers. * Added Shell_getSafeWindowRect, an alternative to Shell_getDisplayBounds when used for window positioning. * Added Shell_systemBeep * Added file dialog API. Call Shell_openFileDialog to browse for files, and Shell_saveFileDialog to specify the path and name of a file to save. * Added Shell_confirmQuitFunc to allow quitting to be temporarily delayed if the user has unsaved work. * Added isRepeat boolean to Shell_keyDownFunc callback signature 2.0.0 (2014-10-17) * Target_* callbacks other than Target_init() are no longer directly linked. Instead, each one can be individually opted into by calling Shell_*Func() to register a callback for the event. * Target.h has been renamed to ShellCallbacks.h * Added multiple display support. See Shell_getDisplayCount(), Shell_getDisplayIndexFromWindow(), and Shell_getDisplayBounds(), which replaces Shell_getMainScreenSize(). * Shell_setFullScreen() has been replaced by Shell_enterFullScreen() and Shell_exitFullScreen(), the former of which takes a display index. * Added scroll wheel event callbacks 1.2.0 (2014-01-20) * Added Shell_openURL() * Added C++ header guards 1.1.0 (2013-12-25) * Added Shell_getSupportPath() * Added typedef for ShellTimer 1.0.0 (2013-07-13) * Added thread API * Changed project structure to standard stem library rather than naked header files Stable_2012-06-09 * Added Shell_setMouseDeltaMode() * Made Shell_setCursorVisible(), Shell_hideCursorUntilMouseMoves(), and Shell_setCursor() part of the core shell API (previously were implemented by individual shells as extensions) Stable_2012-02-04 * Added Shell_setTimer and Shell_cancelTimer * Target_draw now returns a bool, and can opt not to swap buffers by returning false Stable_2011-10-23 * Target_keyUp() no longer receives charCode parameter * Added Shell_getMainScreenSize() Stable_2011-07-04 * Added key modifiers * Added background and foreground notifications Stable_2010-05-18 * Removed Target_getName() * Removed argc and argv from Target_init() Stable_2010-03-31 * Added documentation * Added battery info API * Added full screen mode Stable_2009-11-24 * Initial version