mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-25 23:10:32 +00:00
Merge e24f121ad6
into 8773bd95f0
This commit is contained in:
commit
a00dc8cf05
4 changed files with 1276 additions and 0 deletions
64
src/Demo/Graphics/WallPaperImage.ZC
Normal file
64
src/Demo/Graphics/WallPaperImage.ZC
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#include "::/Home/Wallpapers/Images/Lib/uPNG";
|
||||||
|
|
||||||
|
U0 (*old_wall_paper)(CTask *task);
|
||||||
|
RegDefault("Wallpapers/Images/Current", "1;\n");
|
||||||
|
RegExe("Wallpapers/Images/Current");
|
||||||
|
|
||||||
|
CDC *image;
|
||||||
|
|
||||||
|
U0 WallPaperSet(I8 direction) {
|
||||||
|
CDirEntry *tmpde1;
|
||||||
|
// read the current wallpaper index from the registry
|
||||||
|
I64 current = RegExe("Wallpapers/Images/Current");
|
||||||
|
I64 max = 0;
|
||||||
|
|
||||||
|
// SysLog("Reading current wallpaper index from registry: %d\n", current);
|
||||||
|
|
||||||
|
// search the wallpapers directory for .DD files
|
||||||
|
tmpde1 = FilesFind("::/Home/Wallpapers/Images/1024/*.png", 1);
|
||||||
|
if (tmpde1) {
|
||||||
|
do {
|
||||||
|
max++;
|
||||||
|
tmpde1 = tmpde1->next;
|
||||||
|
} while (tmpde1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// move to the next/previous wallpaper
|
||||||
|
current += direction;
|
||||||
|
if (current < 1)
|
||||||
|
current = max; // wrap around to the end
|
||||||
|
if (current > max)
|
||||||
|
current = 1; // wrap around to the start
|
||||||
|
|
||||||
|
// write the new current index back to the registry
|
||||||
|
RegWrite("Wallpapers/Images/Current", "%d;\n", current);
|
||||||
|
|
||||||
|
// SysLog("Current: %d\n", current);
|
||||||
|
// Change the wallpaper
|
||||||
|
Sys("WallPaperImageInit(\"::/Home/Wallpapers/Images/1024/%d.png\");\n", current);
|
||||||
|
}
|
||||||
|
|
||||||
|
U0 WallPaperImage(CTask *task) {
|
||||||
|
CDC *dc = DCAlias(gr.dc2, task);
|
||||||
|
// TODO: dont call PNGRead everyframe, should only be called once;
|
||||||
|
GrBlot(dc, 0, 0, image);
|
||||||
|
DCDel(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
U0 WallPaperImageInit(I64 filepath="::/Home/Wallpapers/Images/1024/1.png")
|
||||||
|
{
|
||||||
|
if (Fs != sys_task)
|
||||||
|
{
|
||||||
|
"\nMust be System Included. (SHIFT-F5 / RightClick->System Include) \n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
old_wall_paper = gr.fp_wall_paper;
|
||||||
|
|
||||||
|
image = PNGRead(filepath);
|
||||||
|
|
||||||
|
// wallpaper_doc->win_task = sys_winmgr_task;
|
||||||
|
|
||||||
|
gr.fp_wall_paper = &WallPaperImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
WallPaperSet(1);
|
BIN
src/Home/Wallpapers/Images/1024/1.png
Normal file
BIN
src/Home/Wallpapers/Images/1024/1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 MiB |
BIN
src/Home/Wallpapers/Images/1024/2.png
Normal file
BIN
src/Home/Wallpapers/Images/1024/2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
1212
src/Home/Wallpapers/Images/Lib/uPNG.ZC
Normal file
1212
src/Home/Wallpapers/Images/Lib/uPNG.ZC
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue