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

BIN
Asuro.iso

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -759,7 +759,34 @@ begin
{ Handle any Clicks that have happened since last redraw } { Handle any Clicks that have happened since last redraw }
if UnhandledClick then begin if UnhandledClick then begin
if UnhandledClickLeft then begin if UnhandledClickLeft then begin
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
if SelectedWindow <> 0 then begin
if WindowManager.Windows[SelectedWindow] <> nil then begin
if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow);
end;
end else begin
SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
if SelectedWindow <> 0 then begin
closeWindow(SelectedWindow);
end else begin
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin
if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin
if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin
deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X;
deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y;
WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true);
end;
end;
if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin
FocusZOrder(SelectedWindow);
end;
end;
end;
end;
{SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin
//OnClickHandler(Left) //OnClickHandler(Left)
if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin
@ -773,7 +800,7 @@ begin
FocusZOrder(SelectedWindow); FocusZOrder(SelectedWindow);
end; end;
end else begin end else begin
if SelectedWindow = 0 then SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
if SelectedWindow <> 0 then begin if SelectedWindow <> 0 then begin
if WindowManager.Windows[SelectedWindow] <> nil then begin if WindowManager.Windows[SelectedWindow] <> nil then begin
if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow);
@ -783,7 +810,9 @@ begin
if SelectedWindow <> 0 then begin if SelectedWindow <> 0 then begin
closeWindow(SelectedWindow); closeWindow(SelectedWindow);
end; end;
end; end;}
end; end;
if not UnhandledClickLeft then begin if not UnhandledClickLeft then begin
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];

View File

@ -3,16 +3,18 @@ unit shell;
interface interface
uses uses
Console, RTC, terminal; Console, RTC, terminal, strings;
procedure init(); procedure init();
implementation implementation
var var
Handle : HWND = 0; TaskBarHandle : HWND = 0;
Colors : uint32; DesktopHandle : HWND = 0;
Takbar_Colors : uint32;
Explore_Colors : uint32; Explore_Colors : uint32;
Desktop_Colors : uint32;
procedure Draw(); procedure Draw();
var var
@ -23,30 +25,30 @@ var
begin begin
DateTime:= getDateTime; DateTime:= getDateTime;
console.clearWNDEx(Handle, colors); console.clearWNDEx(TaskBarHandle, Takbar_Colors);
console.setCursorPosWND(0, 0, Handle); console.setCursorPosWND(0, 0, TaskBarHandle);
console.writeStringExWND(' TERMINAL ', Explore_Colors, Handle); console.writeStringExWND(' TERMINAL ', Explore_Colors, TaskBarHandle);
console.writeCharExWND(#6, Colors, Handle); console.writeCharExWND(#6, Takbar_Colors, TaskBarHandle);
for i:=0 to 9 do begin for i:=0 to 9 do begin
s:= getWindowName(i); s:= getWindowName(i);
if s <> nil then begin if s <> nil then begin
console.writeStringExWND(s, Colors, Handle); console.writeStringExWND(s, Takbar_Colors, TaskBarHandle);
console.writeCharExWND(' ', Colors, Handle); console.writeCharExWND(' ', Takbar_Colors, TaskBarHandle);
console.writeCharExWND(#6, Colors, Handle); console.writeCharExWND(#6, Takbar_Colors, TaskBarHandle);
end; end;
end; end;
console.setCursorPosWND(150, 0, Handle); console.setCursorPosWND(150, 0, TaskBarHandle);
if DateTime.Hours < 10 then writeIntExWND(0, Colors, Handle); if DateTime.Hours < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle);
writeIntExWND(DateTime.Hours, Colors, Handle); writeIntExWND(DateTime.Hours, Takbar_Colors, TaskBarHandle);
writeStringExWND(':', Colors, Handle); writeStringExWND(':', Takbar_Colors, TaskBarHandle);
if DateTime.Minutes < 10 then writeIntExWND(0, Colors, Handle); if DateTime.Minutes < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle);
writeIntExWND(DateTime.Minutes, Colors, Handle); writeIntExWND(DateTime.Minutes, Takbar_Colors, TaskBarHandle);
writeStringExWND(':', Colors, Handle); writeStringExWND(':', Takbar_Colors, TaskBarHandle);
if DateTime.Seconds < 10 then writeIntExWND(0, Colors, Handle); if DateTime.Seconds < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle);
writeIntExWND(DateTime.Seconds, Colors, Handle); writeIntExWND(DateTime.Seconds, Takbar_Colors, TaskBarHandle);
end; end;
procedure OnMouseClick(x : uint32; y : uint32; left : boolean); procedure OnMouseClick(x : uint32; y : uint32; left : boolean);
@ -62,20 +64,50 @@ end;
procedure onBaseDraw(); procedure onBaseDraw();
begin 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; end;
procedure init(); procedure init();
begin begin
colors:= console.combinecolors($0000, $FFFF); Takbar_Colors:= console.combinecolors($0000, $FFFF);
Explore_Colors:= console.combinecolors($01C3, $07EE); Explore_Colors:= console.combinecolors($01C3, $07EE);
Handle:= Console.newWindow(0, 63, 159, 1, 'SHELL'); Desktop_Colors:= console.combinecolors($01C3, $A55F);
console.bordersEnabled(Handle, false);
//console.clearWNDEx(Handle, colors); DesktopHandle:= Console.newWindow(0, 0, 159, 63, 'DESKTOP');
console.setShellWindow(Handle, false); TaskBarHandle:= Console.newWindow(0, 63, 159, 1, 'SHELL');
console.registerEventHandler(Handle, EVENT_DRAW, void(@Draw));
console.registerEventHandler(Handle, EVENT_MOUSE_CLICK, void(@OnMouseClick)); console.bordersEnabled(TaskBarHandle, false);
console.registerEventHandler(0, EVENT_DRAW, void(@onBaseDraw)); 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;
end. end.