|
|
|
/*
|
|
|
|
* Copyright © 2015-2017 Antergos
|
|
|
|
*
|
|
|
|
* LightDMObjects.js
|
|
|
|
*
|
|
|
|
* This file is part of lightdm-webkit2-greeter
|
|
|
|
*
|
|
|
|
* lightdm-webkit2-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.
|
|
|
|
*
|
|
|
|
* lightdm-webkit2-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.
|
|
|
|
*
|
|
|
|
* @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`](#dl-LightDM-Greeter) 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`](#dl-LightDM-Greeter) 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`](#dl-LightDM-Greeter) 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`](#dl-LightDM-Greeter) 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;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***Deprecated!*** See {@link LightDM.User#username}.
|
|
|
|
* @deprecated
|
|
|
|
* @type {string}
|
|
|
|
* @readonly
|
|
|
|
*/
|
|
|
|
get name() {
|
|
|
|
return this._name;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ***Deprecated!*** See {@link LightDM.User#display_name}.
|
|
|
|
* @deprecated
|
|
|
|
* @type {string}
|
|
|
|
* @readonly
|
|
|
|
*/
|
|
|
|
get real_name() {
|
|
|
|
return this._real_name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|