Fetcher: Proper desktop icons!
This commit is contained in:
parent
20e25f963e
commit
7d4918041b
1
Makefile
1
Makefile
|
@ -25,6 +25,7 @@ base_image/terminal.fxf: applications/terminal/main.asm $(wildcard applications/
|
||||||
$(FOX32ASM) $< $@
|
$(FOX32ASM) $< $@
|
||||||
|
|
||||||
base_image/fetcher.fxf: applications/fetcher/Fetcher.okm $(wildcard applications/fetcher/*.okm)
|
base_image/fetcher.fxf: applications/fetcher/Fetcher.okm $(wildcard applications/fetcher/*.okm)
|
||||||
|
$(GFX2INC) 32 32 applications/fetcher/icons/disk.png applications/fetcher/icons/disk.inc
|
||||||
lua $(OKAMERON) -arch=fox32 -startup=applications/fetcher/start.asm $< \
|
lua $(OKAMERON) -arch=fox32 -startup=applications/fetcher/start.asm $< \
|
||||||
applications/fetcher/Browser.okm \
|
applications/fetcher/Browser.okm \
|
||||||
applications/fetcher/Desktop.okm \
|
applications/fetcher/Desktop.okm \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
MODULE Browser;
|
MODULE Browser;
|
||||||
IMPORT OS;
|
IMPORT OS, Desktop;
|
||||||
|
|
||||||
VAR browserRunning: CHAR;
|
VAR browserRunning: CHAR;
|
||||||
browserWindow: ARRAY 36 OF CHAR;
|
browserWindow: ARRAY 36 OF CHAR;
|
||||||
|
@ -36,7 +36,7 @@ MODULE Browser;
|
||||||
draw_filled_rectangle_to_overlay(x, y, w, h, 0, get_window_overlay_number(desktopWin));
|
draw_filled_rectangle_to_overlay(x, y, w, h, 0, get_window_overlay_number(desktopWin));
|
||||||
i := i + 1;
|
i := i + 1;
|
||||||
END;
|
END;
|
||||||
draw_widgets_to_window(desktopWin);
|
DrawDesktopIcons(desktopWin);
|
||||||
END;
|
END;
|
||||||
ELSIF eventArgs[2] <| 16 THEN
|
ELSIF eventArgs[2] <| 16 THEN
|
||||||
start_dragging_window(PTROF(browserWindow));
|
start_dragging_window(PTROF(browserWindow));
|
||||||
|
|
|
@ -5,6 +5,8 @@ MODULE Desktop;
|
||||||
desktopWindow: ARRAY 36 OF CHAR;
|
desktopWindow: ARRAY 36 OF CHAR;
|
||||||
desktopIcons: ARRAY 5 OF Fox32OSButtonWidget;
|
desktopIcons: ARRAY 5 OF Fox32OSButtonWidget;
|
||||||
|
|
||||||
|
EXTERN diskIcon: ARRAY 1024 OF INT;
|
||||||
|
|
||||||
PROCEDURE DesktopMain();
|
PROCEDURE DesktopMain();
|
||||||
BEGIN
|
BEGIN
|
||||||
desktopRunning := 1;
|
desktopRunning := 1;
|
||||||
|
@ -12,11 +14,11 @@ MODULE Desktop;
|
||||||
(* set up the desktop icon widgets *)
|
(* set up the desktop icon widgets *)
|
||||||
SetupDesktopIconStructs();
|
SetupDesktopIconStructs();
|
||||||
|
|
||||||
(* create the window and make it fully transparent, draw the button widgets to it, and mark it as "always background *)
|
(* create the window and make it fully transparent, mark it as "always background", and draw the icons to it *)
|
||||||
new_window(PTROF(desktopWindow), "Desktop", 640, 448, 0, 16, 0, PTROF(desktopIcons));
|
new_window(PTROF(desktopWindow), "Desktop", 640, 448, 0, 16, 0, PTROF(desktopIcons));
|
||||||
fill_overlay(000000000H, get_window_overlay_number(PTROF(desktopWindow)));
|
fill_overlay(000000000H, get_window_overlay_number(PTROF(desktopWindow)));
|
||||||
draw_widgets_to_window(PTROF(desktopWindow));
|
|
||||||
set_window_flags(000000001H, PTROF(desktopWindow));
|
set_window_flags(000000001H, PTROF(desktopWindow));
|
||||||
|
DrawDesktopIcons(PTROF(desktopWindow));
|
||||||
|
|
||||||
WHILE desktopRunning DO
|
WHILE desktopRunning DO
|
||||||
GetNextWindowEvent(PTROF(desktopWindow));
|
GetNextWindowEvent(PTROF(desktopWindow));
|
||||||
|
@ -53,7 +55,7 @@ MODULE Desktop;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
(* redraw the icons *)
|
(* redraw the icons *)
|
||||||
draw_widgets_to_window(PTROF(desktopWindow));
|
DrawDesktopIcons(PTROF(desktopWindow));
|
||||||
|
|
||||||
(* launch a new instance of Fetcher *)
|
(* launch a new instance of Fetcher *)
|
||||||
IF launch_fxf_from_disk("fetcher.fxf", get_boot_disk_id(), 0FFFFFFFFH, buttonId, icon^.x, icon^.y, PTROF(desktopWindow)) = 0FFFFFFFFH THEN
|
IF launch_fxf_from_disk("fetcher.fxf", get_boot_disk_id(), 0FFFFFFFFH, buttonId, icon^.x, icon^.y, PTROF(desktopWindow)) = 0FFFFFFFFH THEN
|
||||||
|
@ -61,6 +63,26 @@ MODULE Desktop;
|
||||||
END;
|
END;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
PROCEDURE DrawDesktopIcons(desktopWin: PTR;);
|
||||||
|
VAR i, y, overlay: INT;
|
||||||
|
BEGIN
|
||||||
|
IF desktopWin = 0 THEN RETURN(); END;
|
||||||
|
|
||||||
|
(* draw the buttons themselves *)
|
||||||
|
draw_widgets_to_window(desktopWin);
|
||||||
|
|
||||||
|
(* set the tilemap and draw the icons! *)
|
||||||
|
set_tilemap(PTROF(diskIcon), 32, 32);
|
||||||
|
overlay := get_window_overlay_number(desktopWin);
|
||||||
|
i := 5;
|
||||||
|
y := 16;
|
||||||
|
WHILE i DO
|
||||||
|
draw_tile_to_overlay(0, 592, y, overlay);
|
||||||
|
y := y + 64;
|
||||||
|
i := i - 1;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
PROCEDURE SetupDesktopIconStructs();
|
PROCEDURE SetupDesktopIconStructs();
|
||||||
VAR desktopIcon: POINTER TO Fox32OSButtonWidget;
|
VAR desktopIcon: POINTER TO Fox32OSButtonWidget;
|
||||||
prevDesktopIcon: POINTER TO Fox32OSButtonWidget;
|
prevDesktopIcon: POINTER TO Fox32OSButtonWidget;
|
||||||
|
|
|
@ -3,7 +3,7 @@ MODULE OS;
|
||||||
draw_widgets_to_window, draw_filled_rectangle_to_overlay, GetNextWindowEvent, DrawPixel,
|
draw_widgets_to_window, draw_filled_rectangle_to_overlay, GetNextWindowEvent, DrawPixel,
|
||||||
save_state_and_yield_task, start_dragging_window, handle_widget_click, fill_window, fill_overlay,
|
save_state_and_yield_task, start_dragging_window, handle_widget_click, fill_window, fill_overlay,
|
||||||
set_window_flags, menu_update_event, menu_bar_click_event, close_menu, new_messagebox,
|
set_window_flags, menu_update_event, menu_bar_click_event, close_menu, new_messagebox,
|
||||||
launch_fxf_from_disk, get_boot_disk_id, string_to_int: INT;
|
launch_fxf_from_disk, get_boot_disk_id, string_to_int, set_tilemap, draw_tile_to_overlay: INT;
|
||||||
|
|
||||||
EXTERN PROCEDURE brk: INT;
|
EXTERN PROCEDURE brk: INT;
|
||||||
|
|
||||||
|
|
1
applications/fetcher/icons/.gitignore
vendored
Normal file
1
applications/fetcher/icons/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.inc
|
BIN
applications/fetcher/icons/disk.png
Normal file
BIN
applications/fetcher/icons/disk.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
|
@ -34,10 +34,7 @@ brk:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
PortIn:
|
PortIn:
|
||||||
push r1
|
in r0, r0
|
||||||
in r1, r0
|
|
||||||
mov r0, r1
|
|
||||||
pop r1
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
eventArgs: data.fill 0, 32
|
eventArgs: data.fill 0, 32
|
||||||
|
@ -47,5 +44,8 @@ arg1Ptr: data.32 0
|
||||||
arg2Ptr: data.32 0
|
arg2Ptr: data.32 0
|
||||||
arg3Ptr: data.32 0
|
arg3Ptr: data.32 0
|
||||||
|
|
||||||
|
diskIcon:
|
||||||
|
#include "icons/disk.inc"
|
||||||
|
|
||||||
#include "../../../fox32rom/fox32rom.def"
|
#include "../../../fox32rom/fox32rom.def"
|
||||||
#include "../../fox32os.def"
|
#include "../../fox32os.def"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user