git-svn-id: https://spexeah.com:8443/svn/Asuro@644 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
parent
e8508fb22f
commit
4cf64375f8
BIN
bin/kernel.bin
BIN
bin/kernel.bin
Binary file not shown.
Binary file not shown.
BIN
lib/asuro.ppu
BIN
lib/asuro.ppu
Binary file not shown.
BIN
lib/console.o
BIN
lib/console.o
Binary file not shown.
BIN
lib/console.ppu
BIN
lib/console.ppu
Binary file not shown.
BIN
lib/kernel.ppu
BIN
lib/kernel.ppu
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/shell.ppu
BIN
lib/shell.ppu
Binary file not shown.
BIN
lib/terminal.ppu
BIN
lib/terminal.ppu
Binary file not shown.
@ -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)];
|
||||
|
@ -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.
|
Loading…
x
Reference in New Issue
Block a user