1 /* -copyright-
2 #-#
3 #-# xsnow: let it snow on your desktop
4 #-# Copyright (C) 1984,1988,1990,1993-1995,2000-2001 Rick Jansen
5 #-# 	      2019,2020,2021 Willem Vermin
6 #-#
7 #-# This program is free software: you can redistribute it and/or modify
8 #-# it under the terms of the GNU General Public License as published by
9 #-# the Free Software Foundation, either version 3 of the License, or
10 #-# (at your option) any later version.
11 #-#
12 #-# This program is distributed in the hope that it will be useful,
13 #-# but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #-# GNU General Public License for more details.
16 #-#
17 #-# You should have received a copy of the GNU General Public License
18 #-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 #-#
20  *
21 */
22 #pragma once
23 
24 #include <X11/Xlib.h>
25 #include <X11/Intrinsic.h>
26 #include <gtk/gtk.h>
27 #include <stdlib.h>
28 #include "xsnow.h"
29 
30 
31 extern void   UpdateFallenSnowPartial(FallenSnow *fsnow, int x, int w); // used in snow.c
32 extern int    HandleFallenSnow(FallenSnow *fsnow);
33 extern void   fallensnow_init(void);
34 extern void   fallensnow_draw(cairo_t *cr);
35 extern void   fallensnow_erase(void);
36 extern void   fallensnow_ui(void);
37 extern void   CleanFallenArea(FallenSnow *fsnow, int x, int w);
38 extern void   CleanFallen(Window id);
39 extern void   DrawFallen(FallenSnow *fsnow);
40 extern void   GenerateFlakesFromFallen(FallenSnow *fsnow, int x, int w, float vy);
41 extern void   InitFallenSnow(void);
42 extern void   UpdateFallenSnowWithWind(FallenSnow *fsnow,int w, int h);
43 extern int    do_fallen(void *);
44 extern void   SetMaxScreenSnowDepth(void);
45 extern void   UpdateFallenSnowAtBottom(void);
46 
47 
48 // insert a node at the start of the list
49 extern void PushFallenSnow(FallenSnow **first, WinInfo *win, int x, int y, int w, int h);
50 
51 // pop first element
52 extern int PopFallenSnow(FallenSnow **list);
53 
54 // remove by id
55 extern int RemoveFallenSnow(FallenSnow **list, Window id);
56 
57 // print list
58 extern void PrintFallenSnow(FallenSnow *list);
59 
60 // free fallen
61 extern void FreeFallenSnow(FallenSnow *fallen);
62 
63 // find fallensnow with id
64 extern FallenSnow *FindFallen(FallenSnow *first, Window id);
65 
66