You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
316 lines
5.8 KiB
316 lines
5.8 KiB
/* |
|
* Copyright © 2015-2017 Antergos |
|
* |
|
* LightDMObjects.js |
|
* |
|
* This file is part of Web Greeter |
|
* |
|
* Web Greeter is free software: you can redistribute it and/or modify |
|
* it under the terms of the GNU General Public License as published by |
|
* the Free Software Foundation, either version 3 of the License, |
|
* or any later version. |
|
* |
|
* Web Greeter is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
* GNU General Public License for more details. |
|
* |
|
* The following additional terms are in effect as per Section 7 of the license: |
|
* |
|
* The preservation of all legal notices and author attributions in |
|
* the material or in the Appropriate Legal Notices displayed |
|
* by works containing it is required. |
|
* |
|
* You should have received a copy of the GNU General Public License |
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
*/ |
|
|
|
/** |
|
* The global window object. |
|
* |
|
* @name window |
|
* @type {object} |
|
* @global |
|
*/ |
|
|
|
/** |
|
* The greeter's Theme JavaScript API. |
|
* Accesible through `lightdm` global variable. |
|
* |
|
* @namespace LightDM |
|
*/ |
|
|
|
|
|
/** |
|
* Interface for object that holds info about a session. Session objects are not |
|
* created by the theme's code, but rather by the [`LightDM.Greeter`](Greeter.md) class. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class Session { |
|
constructor( { comment, key, name } ) { |
|
this._comment = comment; |
|
this._key = key; |
|
this._name = name; |
|
} |
|
|
|
/** |
|
* The name for the session. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get name() { |
|
return this._name; |
|
} |
|
|
|
/** |
|
* The key for the session. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get key() { |
|
return this._key; |
|
} |
|
|
|
/** |
|
* The comment for the session. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get comment() { |
|
return this._comment; |
|
} |
|
} |
|
|
|
|
|
/** |
|
* Interface for object that holds info about a language on the system. Language objects are not |
|
* created by the theme's code, but rather by the [`LightDM.Greeter`](Greeter.md) class. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class Language { |
|
constructor( { code, name, territory } ) { |
|
this._code = code; |
|
this._name = name; |
|
this._territory = territory; |
|
} |
|
|
|
/** |
|
* The code for the language. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get code() { |
|
return this._code; |
|
} |
|
|
|
/** |
|
* The name for the layout. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get name() { |
|
return this._name; |
|
} |
|
|
|
/** |
|
* The territory for the language. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get territory() { |
|
return this._territory; |
|
} |
|
} |
|
|
|
|
|
/** |
|
* Interface for object that holds info about a keyboard layout on the system. Language |
|
* objects are not created by the theme's code, but rather by the [`LightDM.Greeter`](Greeter.md) class. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class Layout { |
|
constructor( { description, name, short_description } ) { |
|
this._description = description; |
|
this._name = name; |
|
this._short_description = short_description; |
|
} |
|
|
|
/** |
|
* The description for the layout. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get description() { |
|
return this._description; |
|
} |
|
|
|
/** |
|
* The name for the layout. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get name() { |
|
return this._name; |
|
} |
|
|
|
/** |
|
* The territory for the layout. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get short_description() { |
|
return this._short_description; |
|
} |
|
} |
|
|
|
|
|
/** |
|
* Interface for object that holds info about a user account on the system. User |
|
* objects are not created by the theme's code, but rather by the [`LightDM.Greeter`](Greeter.md) class. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class User { |
|
constructor( user_info ) { |
|
Object.keys(user_info).forEach( key => { |
|
this[`_${key}`] = user_info[key]; |
|
} ); |
|
} |
|
|
|
/** |
|
* The display name for the user. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get display_name() { |
|
return this._display_name; |
|
} |
|
|
|
/** |
|
* The language for the user. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get language() { |
|
return this._language; |
|
} |
|
|
|
/** |
|
* The keyboard layout for the user. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get layout() { |
|
return this._layout; |
|
} |
|
|
|
/** |
|
* The image for the user. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get image() { |
|
return this._image; |
|
} |
|
|
|
/** |
|
* The home_directory for the user. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get home_directory() { |
|
return this._home_directory; |
|
} |
|
|
|
/** |
|
* The username for the user. |
|
* @type {String} |
|
* @readonly |
|
*/ |
|
get username() { |
|
return this._username; |
|
} |
|
|
|
/** |
|
* Whether or not the user is currently logged in. |
|
* @type {Boolean} |
|
* @readonly |
|
*/ |
|
get logged_in() { |
|
return this._logged_in; |
|
} |
|
|
|
/** |
|
* The last session that the user logged into. |
|
* @type {String|Null} |
|
* @readonly |
|
*/ |
|
get session() { |
|
return this._session; |
|
} |
|
} |
|
|
|
/** |
|
* Interface for object that holds info about the battery on the system. This object is not created by the theme's code, but rather by the [`LightDM.Greeter`]{@link Greeter.md} class. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class Battery { |
|
constructor( {level, name, state} ) { |
|
this._level = level; |
|
this._name = name; |
|
this._state = state; |
|
} |
|
|
|
/** |
|
* The battery level. |
|
* @type {String|Null} |
|
* @readonly |
|
*/ |
|
get level() { |
|
return this._level; |
|
} |
|
|
|
/** |
|
* The battery's name. |
|
* @type {String|Null} |
|
* @readonly |
|
*/ |
|
get name() { |
|
return this._name; |
|
} |
|
|
|
/** |
|
* The state for the battery |
|
* @type {String|Null} |
|
* @readonly |
|
*/ |
|
get state() { |
|
return this._state; |
|
} |
|
} |
|
|
|
|
|
/** |
|
* Interface for signals connected to LightDM itself. This is not created by the theme's code, but rather by Web Greeter. |
|
* When Web Greeter triggers the signal, all calbacks are executed. |
|
* |
|
* @memberOf LightDM |
|
*/ |
|
class Signal { |
|
|
|
/** |
|
* Connects a callback to the signal. |
|
* @param {Function} callback The callback to attach. |
|
*/ |
|
connect( callback ) {} |
|
|
|
/** |
|
* Disconnects a callback to the signal. |
|
* @param {Function} callback The callback to disattach. |
|
*/ |
|
disconnect( callback ) {} |
|
}
|
|
|