git-svn-id: https://spexeah.com:8443/svn/Asuro@644 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

This commit is contained in:
kieron
2018-05-01 19:14:26 +00:00
parent e8508fb22f
commit 4cf64375f8
14 changed files with 92 additions and 31 deletions

View File

@ -3,16 +3,18 @@ unit shell;
interface
uses
Console, RTC, terminal;
Console, RTC, terminal, strings;
procedure init();
implementation
var
Handle : HWND = 0;
Colors : uint32;
TaskBarHandle : HWND = 0;
DesktopHandle : HWND = 0;
Takbar_Colors : uint32;
Explore_Colors : uint32;
Desktop_Colors : uint32;
procedure Draw();
var
@ -23,30 +25,30 @@ var
begin
DateTime:= getDateTime;
console.clearWNDEx(Handle, colors);
console.clearWNDEx(TaskBarHandle, Takbar_Colors);
console.setCursorPosWND(0, 0, Handle);
console.writeStringExWND(' TERMINAL ', Explore_Colors, Handle);
console.writeCharExWND(#6, Colors, Handle);
console.setCursorPosWND(0, 0, TaskBarHandle);
console.writeStringExWND(' TERMINAL ', Explore_Colors, TaskBarHandle);
console.writeCharExWND(#6, Takbar_Colors, TaskBarHandle);
for i:=0 to 9 do begin
s:= getWindowName(i);
if s <> nil then begin
console.writeStringExWND(s, Colors, Handle);
console.writeCharExWND(' ', Colors, Handle);
console.writeCharExWND(#6, Colors, Handle);
console.writeStringExWND(s, Takbar_Colors, TaskBarHandle);
console.writeCharExWND(' ', Takbar_Colors, TaskBarHandle);
console.writeCharExWND(#6, Takbar_Colors, TaskBarHandle);
end;
end;
console.setCursorPosWND(150, 0, Handle);
if DateTime.Hours < 10 then writeIntExWND(0, Colors, Handle);
writeIntExWND(DateTime.Hours, Colors, Handle);
writeStringExWND(':', Colors, Handle);
if DateTime.Minutes < 10 then writeIntExWND(0, Colors, Handle);
writeIntExWND(DateTime.Minutes, Colors, Handle);
writeStringExWND(':', Colors, Handle);
if DateTime.Seconds < 10 then writeIntExWND(0, Colors, Handle);
writeIntExWND(DateTime.Seconds, Colors, Handle);
console.setCursorPosWND(150, 0, TaskBarHandle);
if DateTime.Hours < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle);
writeIntExWND(DateTime.Hours, Takbar_Colors, TaskBarHandle);
writeStringExWND(':', Takbar_Colors, TaskBarHandle);
if DateTime.Minutes < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle);
writeIntExWND(DateTime.Minutes, Takbar_Colors, TaskBarHandle);
writeStringExWND(':', Takbar_Colors, TaskBarHandle);
if DateTime.Seconds < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle);
writeIntExWND(DateTime.Seconds, Takbar_Colors, TaskBarHandle);
end;
procedure OnMouseClick(x : uint32; y : uint32; left : boolean);
@ -62,20 +64,50 @@ end;
procedure onBaseDraw();
begin
clearWNDEx(0, console.combinecolors($01C3, $A55F));
clearWNDEx(DesktopHandle, Desktop_Colors);
end;
procedure Command_Background(Params : PParamList);
var
p1 : PChar;
begin
if ParamCount(Params) > 0 then begin
p1:= GetParam(0, Params);
if StringEquals(p1, 'show') then begin
console.setWNDVisible(DesktopHandle, true);
console.writestringlnWND('Background enabled.', getTerminalHWND);
end else if StringEquals(p1, 'hide') then begin
console.setWNDVisible(DesktopHandle, false);
console.writestringlnWND('Background disabled.', getTerminalHWND);
end else begin
console.writestringlnWND('Invalid option.', getTerminalHWND);
end;
end else begin
console.writestringlnWND('Invalid number of parameters.', getTerminalHWND);
end;
end;
procedure init();
begin
colors:= console.combinecolors($0000, $FFFF);
Takbar_Colors:= console.combinecolors($0000, $FFFF);
Explore_Colors:= console.combinecolors($01C3, $07EE);
Handle:= Console.newWindow(0, 63, 159, 1, 'SHELL');
console.bordersEnabled(Handle, false);
//console.clearWNDEx(Handle, colors);
console.setShellWindow(Handle, false);
console.registerEventHandler(Handle, EVENT_DRAW, void(@Draw));
console.registerEventHandler(Handle, EVENT_MOUSE_CLICK, void(@OnMouseClick));
console.registerEventHandler(0, EVENT_DRAW, void(@onBaseDraw));
Desktop_Colors:= console.combinecolors($01C3, $A55F);
DesktopHandle:= Console.newWindow(0, 0, 159, 63, 'DESKTOP');
TaskBarHandle:= Console.newWindow(0, 63, 159, 1, 'SHELL');
console.bordersEnabled(TaskBarHandle, false);
console.setShellWindow(TaskBarHandle, false);
console.bordersEnabled(DesktopHandle, false);
console.setShellWindow(DesktopHandle, false);
console.registerEventHandler(TaskBarHandle, EVENT_DRAW, void(@Draw));
console.registerEventHandler(TaskBarHandle, EVENT_MOUSE_CLICK, void(@OnMouseClick));
console.registerEventHandler(DesktopHandle, EVENT_DRAW, void(@onBaseDraw));
terminal.registerCommand('BACKGROUND', @Command_Background, 'Hide/Show background - usage: BACKGROUND <hide/show>');
end;
end.