From 76dd0bf4d83e9e6375993dea7d12d3a4bb372eca Mon Sep 17 00:00:00 2001 From: Dustin Falgout Date: Sat, 3 Dec 2016 01:34:31 -0600 Subject: [PATCH] ... --- src/gresource/js/LightDMObjects.js | 330 +++++++++++++++++------------ 1 file changed, 192 insertions(+), 138 deletions(-) diff --git a/src/gresource/js/LightDMObjects.js b/src/gresource/js/LightDMObjects.js index a35fefe..db5da68 100644 --- a/src/gresource/js/LightDMObjects.js +++ b/src/gresource/js/LightDMObjects.js @@ -42,178 +42,232 @@ /** * Interface for object that holds info about a session. Session objects are not - * created by the theme's code, but rather by the {@link LightDM.Greeter} class. + * created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. * * @memberOf LightDM */ class Session { - constructor( { comment, key, name } ) { - /** - * The comment for the session. - * @type {string} - * @readonly - */ - this.comment = comment; - - /** - * The key for the session. - * @type {string} - * @readonly - */ - this.key = key; - - /** - * The name for the session. - * @type {string} - * @readonly - */ - this.name = name; + 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 {@link LightDM.Greeter} class. + * created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. * * @memberOf LightDM */ class Language { - constructor( { code, name, territory } ) { - /** - * The code for the language. - * @type {string} - * @readonly - */ - this.code = code; - - /** - * The name for the language. - * @type {string} - * @readonly - */ - this.name = name; - - /** - * The territory for the language. - * @type {string} - * @readonly - */ - this.territory = territory; + 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 {@link LightDM.Greeter} class. + * 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 } ) { - /** - * The description for the layout. - * @type {string} - * @readonly - */ - this.description = description; - - /** - * The name for the layout. - * @type {string} - * @readonly - */ - this.name = name; - - /** - * The territory for the layout. - * @type {string} - * @readonly - */ - this.short_description = short_description; + 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 {@link LightDM.Greeter} class. + * 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 ) { - /** - * The display name for the user. - * @type {string} - * @readonly - */ - this.display_name = user_info.display_name; - - /** - * The language for the user. - * @type {string} - * @readonly - */ - this.language = user_info.language; - - /** - * The keyboard layout for the user. - * @type {string} - * @readonly - */ - this.layout = user_info.layout; - - /** - * The image for the user. - * @type {string} - * @readonly - */ - this.image = user_info.image; - - /** - * The home_directory for the user. - * @type {string} - * @readonly - */ - this.home_directory = user_info.home_directory; - - /** - * The username for the user. - * @type {string} - * @readonly - */ - this.username = user_info.username; - - /** - * Whether or not the user is currently logged in. - * @type {boolean} - * @readonly - */ - this.logged_in = user_info.logged_in; - - /** - * The last session that the user logged into. - * @type {string|null} - * @readonly - */ - this.session = user_info.session; - - /** - * ***Deprecated!*** See {@link LightDM.User#username}. - * @deprecated - * @type {string} - * @readonly - */ - this.name = user_info.name; - - /** - * ***Deprecated!*** See {@link LightDM.User#display_name}. - * @deprecated - * @type {string} - * @readonly - */ - this.real_name = user_info.real_name; + 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; } }