mirror of
https://github.com/lxsang/antos-frontend.git
synced 2024-12-27 09:48:21 +01:00
Add features:
This commit is contained in:
parent
26a35a6c70
commit
d384a65b73
Binary file not shown.
@ -61,10 +61,10 @@ namespace OS {
|
|||||||
* process in the dock
|
* process in the dock
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @type {application.BaseApplication}
|
* @type {AppDockItemType}
|
||||||
* @memberof AppDockTag
|
* @memberof AppDockTag
|
||||||
*/
|
*/
|
||||||
private _selectedApp: application.BaseApplication;
|
private _selectedItem: AppDockItemType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*Creates an instance of AppDockTag.
|
*Creates an instance of AppDockTag.
|
||||||
@ -152,24 +152,39 @@ namespace OS {
|
|||||||
* @memberof AppDockTag
|
* @memberof AppDockTag
|
||||||
*/
|
*/
|
||||||
set selectedApp(v: application.BaseApplication) {
|
set selectedApp(v: application.BaseApplication) {
|
||||||
this._selectedApp = v;
|
|
||||||
let el = undefined;
|
let el = undefined;
|
||||||
for (let it of this.items) {
|
for (let it of this.items) {
|
||||||
it.app.blur();
|
it.app.blur();
|
||||||
$(it.domel).removeClass();
|
$(it.domel).removeClass();
|
||||||
if (v && v === it.app) {
|
if (v && v === it.app) {
|
||||||
el = it.domel;
|
el = it;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this._selectedItem = el;
|
||||||
if (!el) {
|
if (!el) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$(el).addClass("selected");
|
$(el.domel).addClass("selected");
|
||||||
($(Ant.OS.GUI.workspace)[0] as FloatListTag).unselect();
|
($(Ant.OS.GUI.workspace)[0] as FloatListTag).unselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
get selectedApp(): application.BaseApplication {
|
get selectedApp(): application.BaseApplication {
|
||||||
return this._selectedApp;
|
if(!this._selectedItem)
|
||||||
|
return undefined;
|
||||||
|
return this._selectedItem.app;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get selected item of the dock
|
||||||
|
*
|
||||||
|
* @readonly
|
||||||
|
* @type {AppDockItemType}
|
||||||
|
* @memberof AppDockTag
|
||||||
|
*/
|
||||||
|
get selectedItem(): AppDockItemType
|
||||||
|
{
|
||||||
|
return this._selectedItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -267,6 +282,41 @@ namespace OS {
|
|||||||
return m.show(e);
|
return m.show(e);
|
||||||
};
|
};
|
||||||
announcer.trigger("sysdockloaded", undefined);
|
announcer.trigger("sysdockloaded", undefined);
|
||||||
|
GUI.bindKey("CTRL-ALT-2", (e) =>{
|
||||||
|
if(!this.items || this.items.length === 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let index = this.items.indexOf(this.selectedItem);
|
||||||
|
if(index < 0)
|
||||||
|
{
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index >= this.items.length)
|
||||||
|
index = 0;
|
||||||
|
this.items[index].app.trigger("focus");
|
||||||
|
});
|
||||||
|
GUI.bindKey("CTRL-ALT-1", (e) =>{
|
||||||
|
if(!this.items || this.items.length === 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let index = this.items.indexOf(this.selectedItem);
|
||||||
|
index--;
|
||||||
|
if(index < 0)
|
||||||
|
{
|
||||||
|
index = this.items.length - 1;
|
||||||
|
}
|
||||||
|
if(index < 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.items[index].app.trigger("focus");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
define("afx-apps-dock", AppDockTag);
|
define("afx-apps-dock", AppDockTag);
|
||||||
|
@ -30,6 +30,21 @@ namespace OS {
|
|||||||
*/
|
*/
|
||||||
private _view: boolean;
|
private _view: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store pending loading task
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @type {number[]}
|
||||||
|
* @memberof SystemPanelTag
|
||||||
|
*/
|
||||||
|
private _pending_task: number[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loading animation check timeout
|
||||||
|
*
|
||||||
|
* @memberof SystemPanelTag
|
||||||
|
*/
|
||||||
|
private _loading_toh: any;
|
||||||
/**
|
/**
|
||||||
* Place holder for a private callback function
|
* Place holder for a private callback function
|
||||||
*
|
*
|
||||||
@ -49,6 +64,8 @@ namespace OS {
|
|||||||
iconclass: "fa fa-circle",
|
iconclass: "fa fa-circle",
|
||||||
};
|
};
|
||||||
this._view = false;
|
this._view = false;
|
||||||
|
this._pending_task = [];
|
||||||
|
this._loading_toh = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -342,6 +359,23 @@ namespace OS {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the loading tasks ended,
|
||||||
|
* if it the case, stop the animation
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @memberof SystemPanelTag
|
||||||
|
*/
|
||||||
|
private animation_check(): void {
|
||||||
|
if(this._pending_task.length === 0)
|
||||||
|
{
|
||||||
|
$(this.refs.panel).removeClass("loading");
|
||||||
|
$(GUI.workspace).css("cursor", "auto");
|
||||||
|
}
|
||||||
|
if(this._loading_toh)
|
||||||
|
clearTimeout(this._loading_toh);
|
||||||
|
this._loading_toh = undefined;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Mount the tag bind some basic event
|
* Mount the tag bind some basic event
|
||||||
*
|
*
|
||||||
@ -435,6 +469,24 @@ namespace OS {
|
|||||||
announcer.observable.on("app-pinned", (d) => {
|
announcer.observable.on("app-pinned", (d) => {
|
||||||
this.RefreshPinnedApp();
|
this.RefreshPinnedApp();
|
||||||
});
|
});
|
||||||
|
announcer.observable.on("loading", (o) => {
|
||||||
|
this._pending_task.push(o.id);
|
||||||
|
if(!$(this.refs.panel).hasClass("loading"))
|
||||||
|
$(this.refs.panel).addClass("loading");
|
||||||
|
$(GUI.workspace).css("cursor", "wait");
|
||||||
|
});
|
||||||
|
|
||||||
|
announcer.observable.on("loaded", (o) => {
|
||||||
|
const i = this._pending_task.indexOf(o.id);
|
||||||
|
if (i >= 0) {
|
||||||
|
this._pending_task.splice(i, 1);
|
||||||
|
}
|
||||||
|
if (this._pending_task.length === 0) {
|
||||||
|
// set time out
|
||||||
|
if(!this._loading_toh)
|
||||||
|
this._loading_toh = setTimeout(() => this.animation_check(),1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
this.RefreshPinnedApp();
|
this.RefreshPinnedApp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,11 +75,9 @@ namespace OS {
|
|||||||
if (b && this.iconclass === "fa fa-bars") {
|
if (b && this.iconclass === "fa fa-bars") {
|
||||||
this.iconclass = "fa fa-spinner fa-spin";
|
this.iconclass = "fa fa-spinner fa-spin";
|
||||||
this.update();
|
this.update();
|
||||||
$(this._gui.workspace).css("cursor", "wait");
|
|
||||||
} else if (!b && this.iconclass === "fa fa-spinner fa-spin") {
|
} else if (!b && this.iconclass === "fa fa-spinner fa-spin") {
|
||||||
this.iconclass = "fa fa-bars";
|
this.iconclass = "fa fa-bars";
|
||||||
this.update();
|
this.update();
|
||||||
$(this._gui.workspace).css("cursor", "auto");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,50 @@ afx-sys-panel > div{
|
|||||||
margin:0;
|
margin:0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
afx-sys-panel > div.loading::before{
|
||||||
|
background-color: orangered;
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
height: 2px;
|
||||||
|
width: 0%;
|
||||||
|
}
|
||||||
|
|
||||||
|
afx-sys-panel > div.loading::before {
|
||||||
|
right: 0;
|
||||||
|
bottom:0;
|
||||||
|
animation: sys-loading 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes sys-loading {
|
||||||
|
0% {
|
||||||
|
right: auto;
|
||||||
|
left: 0;
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
25% {
|
||||||
|
right: auto;
|
||||||
|
left: 25%;
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
right: auto;
|
||||||
|
left: 50%;
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
right: auto;
|
||||||
|
left: 75%;
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
right: auto;
|
||||||
|
left: 100%;
|
||||||
|
width: 12.5%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
afx-sys-panel .afx-panel-os-menu {
|
afx-sys-panel .afx-panel-os-menu {
|
||||||
padding:0;
|
padding:0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user