docs: systemPreferences
authorCheng Zhao <zcbenz@gmail.com>
Mon, 25 Apr 2016 06:36:38 +0000 (15:36 +0900)
committerCheng Zhao <zcbenz@gmail.com>
Mon, 25 Apr 2016 06:36:38 +0000 (15:36 +0900)
docs/README.md
docs/api/app.md
docs/api/system-preferences.md [new file with mode: 0644]

index 428d2f8..c8bd425 100644 (file)
@@ -62,6 +62,7 @@ an issue:
 * [powerSaveBlocker](api/power-save-blocker.md)
 * [protocol](api/protocol.md)
 * [session](api/session.md)
+* [systemPreferences](api/system-preferences.md)
 * [webContents](api/web-contents.md)
 * [Tray](api/tray.md)
 
index 8a2cdcf..dbe65d0 100644 (file)
@@ -480,40 +480,6 @@ app.on('ready', function() {
 
 Changes the [Application User Model ID][app-user-model-id] to `id`.
 
-### `app.isAeroGlassEnabled()` _Windows_
-
-This method returns `true` if [DWM composition](https://msdn.microsoft.com/en-us/library/windows/desktop/aa969540.aspx)
-(Aero Glass) is enabled, and `false` otherwise. You can use it to determine if
-you should create a transparent window or not (transparent windows won't work
-correctly when DWM composition is disabled).
-
-Usage example:
-
-```javascript
-let browserOptions = {width: 1000, height: 800};
-
-// Make the window transparent only if the platform supports it.
-if (process.platform !== 'win32' || app.isAeroGlassEnabled()) {
-  browserOptions.transparent = true;
-  browserOptions.frame = false;
-}
-
-// Create the window.
-win = new BrowserWindow(browserOptions);
-
-// Navigate.
-if (browserOptions.transparent) {
-  win.loadURL('file://' + __dirname + '/index.html');
-} else {
-  // No transparency, so we load a fallback that uses basic styles.
-  win.loadURL('file://' + __dirname + '/fallback.html');
-}
-```
-
-### `app.isDarkMode()` _OS X_
-
-This method returns `true` if the system is in Dark Mode, and `false` otherwise.
-
 ### `app.importCertificate(options, callback)` _LINUX_
 
 * `options` Object
diff --git a/docs/api/system-preferences.md b/docs/api/system-preferences.md
new file mode 100644 (file)
index 0000000..8fdd2b5
--- /dev/null
@@ -0,0 +1,79 @@
+# systemPreferences
+
+> Get system preferences.
+
+## Methods
+
+### `systemPreferences.isDarkMode()` _OS X_
+
+This method returns `true` if the system is in Dark Mode, and `false` otherwise.
+
+### `systemPreferences.subscribeNotification(event, callback)` _OS X_
+
+* `event` String
+* `callback` Function
+
+Subscribes to native notifications of OS X, `callback` will be called when the
+corresponding `event` happens. The `id` of the subscriber is returned, which can
+be used to unsubscribe the `event`.
+
+Under the hood this API subscribes to `NSDistributedNotificationCenter`,
+possible values of `event` are:
+
+* `AppleInterfaceThemeChangedNotification`
+* `AppleAquaColorVariantChanged`
+* `AppleColorPreferencesChangedNotification`
+* `AppleShowScrollBarsSettingChanged`
+
+### `systemPreferences.unsubscribeNotification(id)` _OS X_
+
+* `id` Integer
+
+Removes the subscriber with `id`.
+
+### `systemPreferences.getUserDefault(key, type)` _OS X_
+
+* `key` String
+* `type` String - Can be `string`, `boolean`, `integer`, `float`, `double`,
+  `url`.
+
+Get the value of `key` in system preferences.
+
+This API reads from `NSUserDefaults` on OS X, some popular `key` and `type`s
+are:
+
+* `AppleInterfaceStyle: string`
+* `AppleAquaColorVariant: integer`
+* `AppleHighlightColor: string`
+* `AppleShowScrollBars: string`
+
+### `systemPreferences.isAeroGlassEnabled()` _Windows_
+
+This method returns `true` if [DWM composition][dwm-composition] (Aero Glass) is
+enabled, and `false` otherwise.
+
+An example of using it to determine if you should create a transparent window or
+not (transparent windows won't work correctly when DWM composition is disabled):
+
+```javascript
+let browserOptions = {width: 1000, height: 800};
+
+// Make the window transparent only if the platform supports it.
+if (process.platform !== 'win32' || app.isAeroGlassEnabled()) {
+  browserOptions.transparent = true;
+  browserOptions.frame = false;
+}
+
+// Create the window.
+let win = new BrowserWindow(browserOptions);
+
+// Navigate.
+if (browserOptions.transparent) {
+  win.loadURL('file://' + __dirname + '/index.html');
+} else {
+  // No transparency, so we load a fallback that uses basic styles.
+  win.loadURL('file://' + __dirname + '/fallback.html');
+}
+```
+
+[dwm-composition]:https://msdn.microsoft.com/en-us/library/windows/desktop/aa969540.aspx