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 }
if UnhandledClick 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
//OnClickHandler(Left)
if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin
@ -773,7 +800,7 @@ begin
FocusZOrder(SelectedWindow);
end;
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 WindowManager.Windows[SelectedWindow] <> nil then begin
if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow);
@ -783,7 +810,9 @@ begin
if SelectedWindow <> 0 then begin
closeWindow(SelectedWindow);
end;
end;
end;}
end;
if not UnhandledClickLeft then begin
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];

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.