From:
http://gentoo.osuosl.org/distfiles/wmfortune-0.241.tar.gz
---
wmfortune/CHANGES | 34 +
wmfortune/INSTALL | 17 +
wmfortune/Makefile | 35 +
wmfortune/README | 28 +
wmfortune/TODO | 2 +
wmfortune/XPM/panel.xpm | 1143 ++++++++++++++++++++++++++++++++
wmfortune/XPM/panel_button_pressed.xpm | 1083 ++++++++++++++++++++++++++++++
wmfortune/XPM/panel_window.xpm | 70 ++
wmfortune/dockapp.c | 565 ++++++++++++++++
wmfortune/dockapp.h | 230 +++++++
wmfortune/wmfortune.c | 222 +++++++
11 files changed, 3429 insertions(+)
create mode 100644 wmfortune/CHANGES
create mode 100644 wmfortune/INSTALL
create mode 100644 wmfortune/Makefile
create mode 100644 wmfortune/README
create mode 100644 wmfortune/TODO
create mode 100644 wmfortune/XPM/panel.xpm
create mode 100644 wmfortune/XPM/panel_button_pressed.xpm
create mode 100644 wmfortune/XPM/panel_window.xpm
create mode 100644 wmfortune/dockapp.c
create mode 100644 wmfortune/dockapp.h
create mode 100644 wmfortune/wmfortune.c
diff --git a/wmfortune/CHANGES b/wmfortune/CHANGES
new file mode 100644
index 0000000..0feeb3c
--- /dev/null
+++ b/wmfortune/CHANGES
@@ -0,0 +1,34 @@
+
+RCS file: RCS/wmfortune.c,v
+Working file: wmfortune.c
+head: 0.24
+branch:
+locks: strict
+access list:
+symbolic names:
+keyword substitution: kv
+total revisions: 5; selected revisions: 5
+description:
+wmfortune: DockApp that shows the fortune messages.
+----------------------------
+revision 0.24
+date: 2000/03/28 01:49:58; author: sugano; state: Exp; lines: +4 -2
+found the small bug arround the button press.
+----------------------------
+revision 0.23
+date: 2000/03/27 00:18:55; author: sugano; state: Exp; lines: +6 -6
+changed the UI a little.
+----------------------------
+revision 0.22
+date: 2000/03/26 23:39:58; author: sugano; state: Exp; lines: +30 -27
+very stable, but UI's not finished.
+----------------------------
+revision 0.21
+date: 2000/03/25 17:03:52; author: sugano; state: Exp; lines: +136 -87
+beautifulized the code a little.
+much better to read.
+----------------------------
+revision 0.20
+date: 2000/03/25 14:50:27; author: sugano; state: Exp;
+Started using the RCS.
+=============================================================================
diff --git a/wmfortune/INSTALL b/wmfortune/INSTALL
new file mode 100644
index 0000000..5039c03
--- /dev/null
+++ b/wmfortune/INSTALL
@@ -0,0 +1,17 @@
+WMFORTUNE INSTALLATION
+
+Before installation.
+
+ Make sure fortune command is in your path.
+
+
+To compile and install wmfortune.
+
+ (1) Edit Makefile as you like.
+ (2) Type "make"
+ (3) Then type "make install"
+
+
+To uninstall.
+
+ Just type "make uninstall".
diff --git a/wmfortune/Makefile b/wmfortune/Makefile
new file mode 100644
index 0000000..000cd71
--- /dev/null
+++ b/wmfortune/Makefile
@@ -0,0 +1,35 @@
+### Edit here as you like :)
+BINDIR = /usr/local/bin
+############################
+
+DEST = wmfortune
+
+# Programs used to move the binary to the proper place.
+INSTALL = /usr/bin/install
+INSTALL_PROGRAM = ${INSTALL} -m 755
+UNINSTALL_PROGRAM = rm -f
+
+CC = gcc
+OPTIMIZE = -O2
+XLIBDIR = /usr/X11R6/lib
+#XLIB = -ldockapp -lXpm -lXext -lX11
+XLIB = -lXpm -lXext -lX11
+OBJ = wmfortune.o dockapp.o
+
+$(DEST) : $(OBJ)
+ $(CC) $(OBJ) -L$(XLIBDIR) $(XLIB) -o $(DEST)
+
+dockapp.o: dockapp.c
+ $(CC) $(OPTIMIZE) $< -c
+
+wmfortune.o: wmfortune.c
+ $(CC) $(OPTIMIZE) $< -c
+
+install:
+ $(INSTALL_PROGRAM) ./$(DEST) $(BINDIR)/$(DEST)
+
+uninstall:
+ $(UNINSTALL_PROGRAM) $(BINDIR)/$(DEST)
+
+clean:
+ rm -rf $(DEST) $(OBJ) *~
diff --git a/wmfortune/README b/wmfortune/README
new file mode 100644
index 0000000..71472e2
--- /dev/null
+++ b/wmfortune/README
@@ -0,0 +1,28 @@
+
+ WMFORTUNE
+ Copyrigth(C) 2000, Makoto SUGANO.
+ ([email protected])
+
+
+What is this?
+============
+
+ It's a dock-app that shows you forune messages.
+
+ The latest version will be in available in:
+ http://www.01.246.ne.jp/~m-sugano/apps.html
+
+
+
+How I install it?
+=================
+
+ Read INSTALL files.
+
+
+License?
+========
+
+ wmfortune is based on GPL'ed software.
+ This program is distributed under the GPL license.
+
diff --git a/wmfortune/TODO b/wmfortune/TODO
new file mode 100644
index 0000000..9b6653d
--- /dev/null
+++ b/wmfortune/TODO
@@ -0,0 +1,2 @@
+2000 JAN 25
+ ...
diff --git a/wmfortune/XPM/panel.xpm b/wmfortune/XPM/panel.xpm
new file mode 100644
index 0000000..f13b989
--- /dev/null
+++ b/wmfortune/XPM/panel.xpm
@@ -0,0 +1,1143 @@
+/* XPM */
+static char * panel_xpm[] = {
+"64 64 1076 2",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #555555",
+"# c #E7C69A",
+"$ c #DCBD93",
+"% c #D3B48A",
+"& c #D9BC90",
+"* c #D7BD91",
+"= c #E2C59A",
+"- c #D7BE92",
+"; c #DBC598",
+"> c #EAD1A4",
+", c #E5CDA1",
+"' c #E0C89F",
+") c #E4CAA3",
+"! c #E2C9A2",
+"~ c #E1C599",
+"{ c #DEC297",
+"] c #E2C79B",
+"^ c #EED6A5",
+"/ c #DCC291",
+"( c #DFC797",
+"_ c #DDC598",
+": c #DFC397",
+"< c #D8B98F",
+"[ c #E0BD91",
+"} c #E7C495",
+"| c #EFCF9F",
+"1 c #ECCF9E",
+"2 c #EBCD9C",
+"3 c #E1C292",
+"4 c #E2C493",
+"5 c #E7C798",
+"6 c #E9CA9A",
+"7 c #E6C99B",
+"8 c #DFC698",
+"9 c #E0C99C",
+"0 c #DDC599",
+"a c #DFC799",
+"b c #DFC79A",
+"c c #F1D8AB",
+"d c #E6CB9F",
+"e c #DCBE94",
+"f c #D9BA8F",
+"g c #D1B389",
+"h c #DCC095",
+"i c #D9BD91",
+"j c #E0C398",
+"k c #D7C093",
+"l c #E0C99D",
+"m c #EAD2A5",
+"n c #E1C89D",
+"o c #E4CDA5",
+"p c #DEC49D",
+"q c #B5A180",
+"r c #E7C79C",
+"s c #D1B289",
+"t c #D9BC95",
+"u c #DDC199",
+"v c #DABF96",
+"w c #D9BE95",
+"x c #D5BB92",
+"y c #DAC39A",
+"z c #CCB78E",
+"A c #CFB78F",
+"B c #D2B68F",
+"C c #D2B78F",
+"D c #CDB38A",
+"E c #D4B890",
+"F c #D2B68D",
+"G c #D8BC93",
+"H c #D0B691",
+"I c #D3B992",
+"J c #D5BA95",
+"K c #CFB58C",
+"L c #D2B88F",
+"M c #D1B690",
+"N c #CDAA86",
+"O c #CFAD88",
+"P c #CEAF89",
+"Q c #D8BA92",
+"R c #CFB188",
+"S c #D2B48A",
+"T c #CCB084",
+"U c #CBAF87",
+"V c #CCB088",
+"W c #C8AB80",
+"X c #CBB48C",
+"Y c #D9C196",
+"Z c #DBC49C",
+"` c #D3BA90",
+" . c #C7AE86",
+".. c #CDB48B",
+"+. c #D1B38C",
+"@. c #CBAD86",
+"#. c #DEC199",
+"$. c #DCC199",
+"%. c #D8BD94",
+"&. c #D8BD95",
+"*. c #D7BE94",
+"=. c #D6C197",
+"-. c #CBB58C",
+";. c #D2B690",
+">. c #D4B88F",
+",. c #C1A984",
+"'. c #625542",
+"). c #E0C096",
+"!. c #C0A580",
+"~. c #C0A683",
+"{. c #B69A78",
+"]. c #BBA07E",
+"^. c #BDA17E",
+"/. c #BFA784",
+"(. c #C3AD88",
+"_. c #BEA681",
+":. c #BAA37E",
+"<. c #BAA27E",
+"[. c #C3AA85",
+"}. c #C3AA88",
+"|. c #B89E7B",
+"1. c #BAA07D",
+"2. c #C5AA88",
+"3. c #B89E7E",
+"4. c #B29879",
+"5. c #B49C7C",
+"6. c #B19B78",
+"7. c #BEA682",
+"8. c #B89B79",
+"9. c #BA9B7B",
+"0. c #B79A7A",
+"a. c #BCA380",
+"b. c #BCA37D",
+"c. c #BDA37F",
+"d. c #BEA480",
+"e. c #BEA481",
+"f. c #BEA484",
+"g. c #B89D7A",
+"h. c #BCA480",
+"i. c #B8A17C",
+"j. c #B69F7A",
+"k. c #C5AD89",
+"l. c #BFA581",
+"m. c #BDA481",
+"n. c #C0A682",
+"o. c #B79E7A",
+"p. c #BCA17E",
+"q. c #BDA380",
+"r. c #B69C7A",
+"s. c #BCA07E",
+"t. c #C2AA85",
+"u. c #C2AC87",
+"v. c #BDA47F",
+"w. c #B29B7B",
+"x. c #514638",
+"y. c #E9CBA1",
+"z. c #BCA17C",
+"A. c #BBA27F",
+"B. c #C1A381",
+"C. c #BC9F7E",
+"D. c #BDA07D",
+"E. c #C3A684",
+"F. c #C1AA87",
+"G. c #C2A986",
+"H. c #C4AB86",
+"I. c #C6AB85",
+"J. c #BFA47F",
+"K. c #BDA27D",
+"L. c #C5A886",
+"M. c #BD9F7E",
+"N. c #C2A381",
+"O. c #C2A682",
+"P. c #C0A782",
+"Q. c #C1A985",
+"R. c #C3AC88",
+"S. c #BEA17D",
+"T. c #C3A680",
+"U. c #C5AB84",
+"V. c #C3AA83",
+"W. c #BFA685",
+"X. c #B59A77",
+"Y. c #BEA683",
+"Z. c #B89D7E",
+"`. c #B39978",
+" + c #B49979",
+".+ c #B8A07D",
+"++ c #BCA482",
+"@+ c #BBA37F",
+"#+ c #C2A784",
+"$+ c #C0A584",
+"%+ c #BFA583",
+"&+ c #B39976",
+"*+ c #C0A280",
+"=+ c #BC9E7C",
+"-+ c #BFA280",
+";+ c #C2A885",
+">+ c #C2AA86",
+",+ c #C1A986",
+"'+ c #C5AB86",
+")+ c #C5A984",
+"!+ c #AD9472",
+"~+ c #524738",
+"{+ c #DBBA8F",
+"]+ c #C5AA86",
+"^+ c #C4A986",
+"/+ c #BBA07A",
+"(+ c #B69B75",
+"_+ c #B39974",
+":+ c #B59B76",
+"<+ c #B29976",
+"[+ c #BEA581",
+"}+ c #B69C78",
+"|+ c #B69B78",
+"1+ c #BC9F7A",
+"2+ c #BA9F7C",
+"3+ c #B89D79",
+"4+ c #B79C78",
+"5+ c #B89E79",
+"6+ c #B49975",
+"7+ c #B49876",
+"8+ c #BC9F7D",
+"9+ c #BDA17F",
+"0+ c #BCA27E",
+"a+ c #BEA57D",
+"b+ c #C6AD87",
+"c+ c #C4AC83",
+"d+ c #C7AC86",
+"e+ c #BFA682",
+"f+ c #BEA580",
+"g+ c #C0A886",
+"h+ c #C5AB88",
+"i+ c #BDA080",
+"j+ c #B19B77",
+"k+ c #BFA883",
+"l+ c #BAA480",
+"m+ c #AF9773",
+"n+ c #B9A07C",
+"o+ c #B79F7B",
+"p+ c #BFA582",
+"q+ c #BA9E79",
+"r+ c #B49A74",
+"s+ c #B49A75",
+"t+ c #B49B79",
+"u+ c #C0A784",
+"v+ c #BAA17D",
+"w+ c #B59B77",
+"x+ c #A88E6E",
+"y+ c #4E4333",
+"z+ c #E2C198",
+"A+ c #C1A580",
+"B+ c #B79E7B",
+"C+ c #B69B79",
+"D+ c #BEA684",
+"E+ c #C7AE8B",
+"F+ c #C3AC87",
+"G+ c #BAA37F",
+"H+ c #B8A07C",
+"I+ c #C3A885",
+"J+ c #C3A583",
+"K+ c #BCA27D",
+"L+ c #C1A881",
+"M+ c #C1A783",
+"N+ c #B99F7C",
+"O+ c #BAA07B",
+"P+ c #C0A381",
+"Q+ c #BEA27F",
+"R+ c #BA9E7A",
+"S+ c #B69B77",
+"T+ c #B69B76",
+"U+ c #BBA17D",
+"V+ c #B29974",
+"W+ c #BBA17B",
+"X+ c #C1A781",
+"Y+ c #BA9E7C",
+"Z+ c #B8A27D",
+"`+ c #B8A37E",
+" @ c #B59F7A",
+".@ c #B59E79",
+"+@ c #C6AD89",
+"@@ c #C0A885",
+"#@ c #BCA17F",
+"$@ c #B99E7B",
+"%@ c #B79D7B",
+"&@ c #C3AA87",
+"*@ c #C5AE8B",
+"=@ c #C3AA86",
+"-@ c #C0A883",
+";@ c #B7A07D",
+">@ c #BBA27E",
+",@ c #B39A7A",
+"'@ c #514535",
+")@ c #EFD0A6",
+"!@ c #CAAF8B",
+"~@ c #BFA383",
+"{@ c #BEA385",
+"]@ c #C0A587",
+"^@ c #C1A887",
+"/@ c #C5AD88",
+"(@ c #C0A884",
+"_@ c #C4AD88",
+":@ c #C4AD8A",
+"<@ c #C2A985",
+"[@ c #BFA380",
+"}@ c #C0A681",
+"|@ c #C6AB86",
+"1@ c #C6AC88",
+"2@ c #C1A784",
+"3@ c #BEA483",
+"4@ c #B89F7C",
+"5@ c #B89E7D",
+"6@ c #B79C79",
+"7@ c #C3A482",
+"8@ c #B09270",
+"9@ c #B99C7A",
+"0@ c #BAA07E",
+"a@ c #C4A381",
+"b@ c #C0A481",
+"c@ c #CCB792",
+"d@ c #C8AC8A",
+"e@ c #C5AC89",
+"f@ c #C2A683",
+"g@ c #C5AB89",
+"h@ c #BFA683",
+"i@ c #BEA384",
+"j@ c #BFA485",
+"k@ c #C0A588",
+"l@ c #C5AC88",
+"m@ c #C5AF8A",
+"n@ c #AF9978",
+"o@ c #4F4535",
+"p@ c #CEB28D",
+"q@ c #BBA17F",
+"r@ c #BDA480",
+"s@ c #AB9375",
+"t@ c #958063",
+"u@ c #B7A07E",
+"v@ c #C4AC8A",
+"w@ c #CBB590",
+"x@ c #CAB892",
+"y@ c #C6B08C",
+"z@ c #C2A782",
+"A@ c #C3A984",
+"B@ c #BEA47F",
+"C@ c #C2A886",
+"D@ c #B79D79",
+"E@ c #BBA481",
+"F@ c #C4AC86",
+"G@ c #BEA583",
+"H@ c #C0A686",
+"I@ c #B99F7F",
+"J@ c #B99E7D",
+"K@ c #BA9F7E",
+"L@ c #BDA482",
+"M@ c #B79E79",
+"N@ c #B19672",
+"O@ c #BAA17E",
+"P@ c #BBA07F",
+"Q@ c #BFA482",
+"R@ c #C5A786",
+"S@ c #C7AA88",
+"T@ c #C6A986",
+"U@ c #C7AD8A",
+"V@ c #C1A683",
+"W@ c #BCA280",
+"X@ c #C0A783",
+"Y@ c #C6AE8B",
+"Z@ c #CDB893",
+"`@ c #C8B58F",
+" # c #B39E7E",
+".# c #514637",
+"+# c #D9C094",
+"@# c #C3AD87",
+"## c #BFAC85",
+"$# c #C3AD85",
+"%# c #8F7B5F",
+"&# c #2B251C",
+"*# c #1A1510",
+"=# c #1B1813",
+"-# c #B7A17F",
+";# c #BFA884",
+"># c #C0AB85",
+",# c #BBA37D",
+"'# c #C4AD85",
+")# c #BB9E7D",
+"!# c #BCA37F",
+"~# c #C1A882",
+"{# c #C5AD85",
+"]# c #C0A881",
+"^# c #C3AC83",
+"/# c #BAA37B",
+"(# c #BBA57E",
+"_# c #BAA681",
+":# c #BBA784",
+"<# c #C1AC83",
+"[# c #BBA37E",
+"}# c #B19773",
+"|# c #B49B78",
+"1# c #C3A985",
+"2# c #B49C77",
+"3# c #B7A079",
+"4# c #B59D78",
+"5# c #B8A27E",
+"6# c #B9A680",
+"7# c #C4B08B",
+"8# c #C0A87F",
+"9# c #C0A77E",
+"0# c #C2A87F",
+"a# c #C3A986",
+"b# c #C6B08D",
+"c# c #C1AA85",
+"d# c #BFA983",
+"e# c #AA9472",
+"f# c #534938",
+"g# c #E5CCA0",
+"h# c #CCB58F",
+"i# c #C7B08C",
+"j# c #342D23",
+"k# c #42372B",
+"l# c #786853",
+"m# c #020201",
+"n# c #927D60",
+"o# c #B29B79",
+"p# c #B9A07D",
+"q# c #B7A07B",
+"r# c #BCA680",
+"s# c #BEAA82",
+"t# c #BEA582",
+"u# c #BF9F81",
+"v# c #C0A684",
+"w# c #BCA580",
+"x# c #BDA67D",
+"y# c #B49E76",
+"z# c #BAA27B",
+"A# c #BEA67F",
+"B# c #AC9770",
+"C# c #B29A75",
+"D# c #BDA782",
+"E# c #BBA27C",
+"F# c #C2AC86",
+"G# c #C2A984",
+"H# c #C4AB81",
+"I# c #C2AB88",
+"J# c #BCA882",
+"K# c #B4A17B",
+"L# c #B9A17D",
+"M# c #B59D7B",
+"N# c #BCA180",
+"O# c #B9A07B",
+"P# c #BDA680",
+"Q# c #C4AF8A",
+"R# c #C0A984",
+"S# c #BA9C7A",
+"T# c #BEA784",
+"U# c #B39C7A",
+"V# c #AE9573",
+"W# c #A79270",
+"X# c #514837",
+"Y# c #E9C79F",
+"Z# c #C7A883",
+"`# c #B19574",
+" $ c #B79D7E",
+".$ c #0C0A08",
+"+$ c #2D261E",
+"@$ c #A78F6F",
+"#$ c #938166",
+"$$ c #BDA583",
+"%$ c #B69F7D",
+"&$ c #B8A280",
+"*$ c #B39A79",
+"=$ c #C5AA87",
+"-$ c #BEA07E",
+";$ c #BAA181",
+">$ c #B9A07A",
+",$ c #B89F7D",
+"'$ c #BDA585",
+")$ c #BBA283",
+"!$ c #584C3E",
+"~$ c #5D4F3D",
+"{$ c #B09371",
+"]$ c #B69C79",
+"^$ c #B39B77",
+"/$ c #B8A07B",
+"($ c #B69F76",
+"_$ c #AF9876",
+":$ c #B7A480",
+"<$ c #C5B08B",
+"[$ c #B59879",
+"}$ c #B5987A",
+"|$ c #BBA07D",
+"1$ c #BA9C79",
+"2$ c #B39675",
+"3$ c #B99E7F",
+"4$ c #BDA283",
+"5$ c #B89C7E",
+"6$ c #BBA382",
+"7$ c #B49C7A",
+"8$ c #A89374",
+"9$ c #4C4232",
+"0$ c #E7C69D",
+"a$ c #C5A985",
+"b$ c #BEA280",
+"c$ c #A3896C",
+"d$ c #050403",
+"e$ c #16130F",
+"f$ c #A38F70",
+"g$ c #B19A79",
+"h$ c #BBA381",
+"i$ c #B0997A",
+"j$ c #8D785F",
+"k$ c #9D896F",
+"l$ c #B39B7D",
+"m$ c #B59B7A",
+"n$ c #B89D78",
+"o$ c #A99275",
+"p$ c #917C5F",
+"q$ c #BBA380",
+"r$ c #AF9779",
+"s$ c #907D64",
+"t$ c #0F0D0B",
+"u$ c #504436",
+"v$ c #A48C6D",
+"w$ c #C0A482",
+"x$ c #B59E7D",
+"y$ c #988467",
+"z$ c #AC9574",
+"A$ c #BAA17B",
+"B$ c #B6A081",
+"C$ c #A49174",
+"D$ c #B19F7D",
+"E$ c #BCA381",
+"F$ c #977F64",
+"G$ c #A1896D",
+"H$ c #B9A080",
+"I$ c #9B866D",
+"J$ c #A48C6E",
+"K$ c #B99D7B",
+"L$ c #B99C7C",
+"M$ c #938065",
+"N$ c #958367",
+"O$ c #A99372",
+"P$ c #BEA786",
+"Q$ c #B49B7B",
+"R$ c #B69B7B",
+"S$ c #B19B7E",
+"T$ c #4E4436",
+"U$ c #DDBF94",
+"V$ c #645642",
+"W$ c #080706",
+"X$ c #4A4234",
+"Y$ c #9B876A",
+"Z$ c #9B8669",
+"`$ c #2C261E",
+" % c #3E362A",
+".% c #433C2F",
+"+% c #29231C",
+"@% c #8C775E",
+"#% c #554938",
+"$% c #352E24",
+"%% c #635745",
+"&% c #100E0B",
+"*% c #6E614C",
+"=% c #342F25",
+"-% c #221E18",
+";% c #5A503E",
+">% c #85745C",
+",% c #26211A",
+"'% c #14120E",
+")% c #917D62",
+"!% c #938162",
+"~% c #28221B",
+"{% c #161310",
+"]% c #796C54",
+"^% c #988666",
+"/% c #2F281F",
+"(% c #14110E",
+"_% c #625646",
+":% c #453D31",
+"<% c #1D1914",
+"[% c #A08A6C",
+"}% c #BDA580",
+"|% c #AF9472",
+"1% c #41372A",
+"2% c #332D23",
+"3% c #423B2F",
+"4% c #252018",
+"5% c #9D896B",
+"6% c #B8A07F",
+"7% c #B7A080",
+"8% c #AA9577",
+"9% c #4E4335",
+"0% c #E3C79F",
+"a% c #B9A17E",
+"b% c #B69E7C",
+"c% c #BDA684",
+"d% c #B09876",
+"e% c #2F2920",
+"f% c #0D0B09",
+"g% c #AA9775",
+"h% c #B6A582",
+"i% c #11100C",
+"j% c #2E291F",
+"k% c #968568",
+"l% c #080705",
+"m% c #1E1914",
+"n% c #010100",
+"o% c #7B6D57",
+"p% c #786B54",
+"q% c #5B5141",
+"r% c #C6B390",
+"s% c #342D25",
+"t% c #958368",
+"u% c #B7A47F",
+"v% c #4E4535",
+"w% c #726651",
+"x% c #BAA683",
+"y% c #554D3D",
+"z% c #2A251E",
+"A% c #8F7E64",
+"B% c #41392D",
+"C% c #635644",
+"D% c #B79F7C",
+"E% c #635643",
+"F% c #8C7B62",
+"G% c #AD9778",
+"H% c #030302",
+"I% c #40372B",
+"J% c #B9A37F",
+"K% c #BFAA85",
+"L% c #B3A480",
+"M% c #514939",
+"N% c #D8BB92",
+"O% c #C1A886",
+"P% c #C8AF8E",
+"Q% c #060504",
+"R% c #BFA989",
+"S% c #A48F70",
+"T% c #29241B",
+"U% c #BFAB87",
+"V% c #2E2921",
+"W% c #A3906F",
+"X% c #A48F6E",
+"Y% c #0F0D0A",
+"Z% c #191611",
+"`% c #9D8768",
+" & c #6D5D48",
+".& c #AF9878",
+"+& c #73624D",
+"@& c #5D5342",
+"#& c #BFAA87",
+"$& c #BCA784",
+"%& c #3E362B",
+"&& c #958267",
+"*& c #5A4F3D",
+"=& c #776753",
+"-& c #5F513F",
+";& c #6B5E4B",
+">& c #C7B08E",
+",& c #81715A",
+"'& c #4F4436",
+")& c #302A22",
+"!& c #0A0807",
+"~& c #B7A180",
+"{& c #BAA485",
+"]& c #12100C",
+"^& c #13100C",
+"/& c #BBA67F",
+"(& c #B2A080",
+"_& c #4E4435",
+":& c #DDC097",
+"<& c #C2A987",
+"[& c #B9A17F",
+"}& c #B29A79",
+"|& c #B8A17F",
+"1& c #948267",
+"2& c #040303",
+"3& c #3F382C",
+"4& c #C2AC89",
+"5& c #C3AB86",
+"6& c #483E32",
+"7& c #937F64",
+"8& c #211D16",
+"9& c #B39C7B",
+"0& c #B8A17D",
+"a& c #7B6C56",
+"b& c #5B5140",
+"c& c #BFAC88",
+"d& c #B7A280",
+"e& c #3A3226",
+"f& c #C1AB87",
+"g& c #5E5240",
+"h& c #786B55",
+"i& c #C2A989",
+"j& c #665A48",
+"k& c #70624E",
+"l& c #8A7963",
+"m& c #050404",
+"n& c #574C3E",
+"o& c #4E4537",
+"p& c #C5AF8C",
+"q& c #C0A986",
+"r& c #B49E7C",
+"s& c #504536",
+"t& c #E4C89F",
+"u& c #D4BB97",
+"v& c #C7AF8D",
+"w& c #17130F",
+"x& c #BBA584",
+"y& c #938167",
+"z& c #3F382D",
+"A& c #C0A985",
+"B& c #42372A",
+"C& c #88745A",
+"D& c #9F8668",
+"E& c #0E0C09",
+"F& c #1F1C16",
+"G& c #B4A680",
+"H& c #BAA882",
+"I& c #B3A07A",
+"J& c #5A4F3E",
+"K& c #BAA783",
+"L& c #BFAA88",
+"M& c #423A30",
+"N& c #98856C",
+"O& c #5F5643",
+"P& c #70644E",
+"Q& c #B09E79",
+"R& c #615644",
+"S& c #756753",
+"T& c #B9A281",
+"U& c #807058",
+"V& c #574D3E",
+"W& c #B8A181",
+"X& c #14110D",
+"Y& c #090807",
+"Z& c #A38D71",
+"`& c #A59075",
+" * c #A18E71",
+".* c #A79376",
+"+* c #C4AD89",
+"@* c #A89070",
+"#* c #4A3E2F",
+"$* c #D8BB90",
+"%* c #C3AB87",
+"&* c #C6AF89",
+"** c #17140F",
+"=* c #B69D79",
+"-* c #9A8365",
+";* c #060503",
+">* c #2F291F",
+",* c #B6A27D",
+"'* c #C1AB86",
+")* c #393228",
+"!* c #9E8C6D",
+"~* c #A39170",
+"{* c #211E17",
+"]* c #BEAD89",
+"^* c #B29B7A",
+"/* c #756651",
+"(* c #544836",
+"_* c #B9A181",
+":* c #BFA786",
+"<* c #3E3629",
+"[* c #958A6C",
+"}* c #BFAA84",
+"|* c #584E3C",
+"1* c #6E614B",
+"2* c #BFA984",
+"3* c #635742",
+"4* c #B59F79",
+"5* c #7E6E54",
+"6* c #504637",
+"7* c #BEA785",
+"8* c #241F18",
+"9* c #AD9976",
+"0* c #B89E7A",
+"a* c #B89B78",
+"b* c #A68D6E",
+"c* c #B39B76",
+"d* c #AF9C7B",
+"e* c #524839",
+"f* c #E9CDA1",
+"g* c #B9A17C",
+"h* c #050503",
+"i* c #171410",
+"j* c #B8A27F",
+"k* c #B7A27C",
+"l* c #1A1611",
+"m* c #1B1812",
+"n* c #B49F7D",
+"o* c #A79271",
+"p* c #201C15",
+"q* c #B09B78",
+"r* c #B69F7C",
+"s* c #B8A07E",
+"t* c #7A6E58",
+"u* c #483F32",
+"v* c #C5AD8C",
+"w* c #B89E80",
+"x* c #625744",
+"y* c #BDA784",
+"z* c #70624B",
+"A* c #655A46",
+"B* c #776A54",
+"C* c #86775C",
+"D* c #4D4233",
+"E* c #B9A27E",
+"F* c #4B4131",
+"G* c #010000",
+"H* c #695C48",
+"I* c #C4AB88",
+"J* c #A48F71",
+"K* c #473E30",
+"L* c #C1AA84",
+"M* c #A89472",
+"N* c #524838",
+"O* c #EBCFA3",
+"P* c #CAB18B",
+"Q* c #BDA582",
+"R* c #78684F",
+"S* c #050504",
+"T* c #72644E",
+"U* c #73654E",
+"V* c #090806",
+"W* c #645844",
+"X* c #675B46",
+"Y* c #0B0907",
+"Z* c #72634D",
+"`* c #655742",
+" = c #0C0B08",
+".= c #B6A07E",
+"+= c #A38F73",
+"@= c #0A0907",
+"#= c #070605",
+"$= c #383127",
+"%= c #AB9679",
+"&= c #766852",
+"*= c #232019",
+"== c #2D281F",
+"-= c #393227",
+";= c #8C7C62",
+">= c #342E24",
+",= c #AE9A77",
+"'= c #574C3B",
+")= c #2A251D",
+"!= c #9E896B",
+"~= c #938063",
+"{= c #13110D",
+"]= c #242019",
+"^= c #89775A",
+"/= c #BAA57F",
+"(= c #A89372",
+"_= c #524939",
+":= c #E5C79B",
+"<= c #C7AD88",
+"[= c #89775D",
+"}= c #7A6954",
+"|= c #766650",
+"1= c #82735A",
+"2= c #AE9A75",
+"3= c #C0AB87",
+"4= c #988769",
+"5= c #605542",
+"6= c #655945",
+"7= c #8F7C61",
+"8= c #BEA382",
+"9= c #837159",
+"0= c #7E6D55",
+"a= c #796850",
+"b= c #817058",
+"c= c #BCA481",
+"d= c #B49D7B",
+"e= c #C3AB8A",
+"f= c #81725A",
+"g= c #917D60",
+"h= c #B8A081",
+"i= c #B7A882",
+"j= c #6C614B",
+"k= c #9D8B6C",
+"l= c #A59373",
+"m= c #7E7057",
+"n= c #786A51",
+"o= c #8D7C60",
+"p= c #807158",
+"q= c #7C6E56",
+"r= c #B8A380",
+"s= c #807057",
+"t= c #7C6D54",
+"u= c #7C6C55",
+"v= c #9F8B6B",
+"w= c #BCA382",
+"x= c #958166",
+"y= c #615442",
+"z= c #5C5240",
+"A= c #958366",
+"B= c #C4AE89",
+"C= c #AF9B79",
+"D= c #E6CD9F",
+"E= c #B49C7B",
+"F= c #BEA987",
+"G= c #B5A17E",
+"H= c #B19C79",
+"I= c #B7A37F",
+"J= c #BAA881",
+"K= c #B29F79",
+"L= c #B09A75",
+"M= c #C0AA87",
+"N= c #BBA581",
+"O= c #BDA681",
+"P= c #BBA682",
+"Q= c #B49C79",
+"R= c #B7A27B",
+"S= c #C6AF88",
+"T= c #BDA67E",
+"U= c #C0A882",
+"V= c #B8A57E",
+"W= c #C4B18A",
+"X= c #B5A27D",
+"Y= c #C2AE89",
+"Z= c #BDA77F",
+"`= c #BCA67F",
+" - c #C3AD86",
+".- c #BBA680",
+"+- c #B29D7C",
+"@- c #BEA584",
+"#- c #B19978",
+"$- c #BDA685",
+"%- c #BCA785",
+"&- c #B6A17D",
+"*- c #B4A07D",
+"=- c #B19C78",
+"-- c #BAA682",
+";- c #A89673",
+">- c #4B4232",
+",- c #CAB38E",
+"'- c #C4AC8B",
+")- c #B9A180",
+"!- c #BAA27F",
+"~- c #B69E7D",
+"{- c #C2AA88",
+"]- c #C3AC89",
+"^- c #BCAA84",
+"/- c #BEAA85",
+"(- c #C8B38E",
+"_- c #C8B38F",
+":- c #BBA781",
+"<- c #B49F7A",
+"[- c #B9A37E",
+"}- c #B7A27D",
+"|- c #B5A17C",
+"1- c #C4B08A",
+"2- c #BFA783",
+"3- c #BEA883",
+"4- c #C7B08B",
+"5- c #B9A27D",
+"6- c #B29A74",
+"7- c #C2AC83",
+"8- c #C3AB85",
+"9- c #C2AC84",
+"0- c #BFAB86",
+"a- c #B39F7C",
+"b- c #B49E7D",
+"c- c #C4AE8B",
+"d- c #C1AA89",
+"e- c #B69D7B",
+"f- c #BDA683",
+"g- c #B79E7D",
+"h- c #C3AC8A",
+"i- c #BFA885",
+"j- c #B9A580",
+"k- c #A79473",
+"l- c #52493A",
+"m- c #E2C69D",
+"n- c #C7AE8A",
+"o- c #B69D7C",
+"p- c #BAA17F",
+"q- c #BFA785",
+"r- c #C2AC88",
+"s- c #C5AE89",
+"t- c #C0AD88",
+"u- c #C2AD88",
+"v- c #C5B08A",
+"w- c #B9A480",
+"x- c #C3AE88",
+"y- c #CAB18D",
+"z- c #BFA680",
+"A- c #BEA780",
+"B- c #BDA780",
+"C- c #BAA37D",
+"D- c #BCA682",
+"E- c #C3AB8B",
+"F- c #BDA786",
+"G- c #C1A989",
+"H- c #B79E7C",
+"I- c #BDA484",
+"J- c #C4AC89",
+"K- c #BAA280",
+"L- c #C4AE8A",
+"M- c #B39F7D",
+"N- c #53493A",
+"O- c #D2B393",
+"P- c #948066",
+"Q- c #816E54",
+"R- c #827058",
+"S- c #7D6C53",
+"T- c #8D7A61",
+"U- c #85725A",
+"V- c #8A775F",
+"W- c #837057",
+"X- c #89785D",
+"Y- c #8A785D",
+"Z- c #8B7A60",
+"`- c #89785F",
+" ; c #87765C",
+".; c #86755B",
+"+; c #8A7B60",
+"@; c #87775B",
+"#; c #8C7E63",
+"$; c #8B7D62",
+"%; c #87775C",
+"&; c #88775D",
+"*; c #8A7A5E",
+"=; c #84745A",
+"-; c #89795F",
+";; c #86745A",
+">; c #84735A",
+",; c #8D7C61",
+"'; c #8B7A5B",
+"); c #857557",
+"!; c #847258",
+"~; c #88775E",
+"{; c #817057",
+"]; c #8D7D63",
+"^; c #8A7A60",
+"/; c #8A785F",
+"(; c #87745E",
+"_; c #88755C",
+":; c #826F54",
+"<; c #806F56",
+"[; c #7E6D54",
+"}; c #84735B",
+"|; c #8B7860",
+"1; c #89775E",
+"2; c #8A795F",
+"3; c #817157",
+"4; c #958165",
+"5; c #504738",
+"6; c #4E4637",
+"7; c #4D4434",
+"8; c #4C4334",
+"9; c #4D4536",
+"0; c #4B4233",
+"a; c #4C4233",
+"b; c #4C4234",
+"c; c #4A4031",
+"d; c #493F30",
+"e; c #4D4334",
+"f; c #4A4133",
+"g; c #4B4334",
+"h; c #493F31",
+"i; c #4D4435",
+"j; c #4B4132",
+"k; c #4B4134",
+"l; c #473C2E",
+"m; c #494032",
+"n; c #494031",
+"o; c #493D30",
+"p; c #463E2E",
+"q; c #4A4233",
+"r; c #463D2E",
+"s; c #483E2E",
+"t; c #4D4537",
+"u; c #4F4637",
+"v; c #4C4333",
+"w; c #4C4433",
+"x; c #4D4535",
+"y; c #635743",
+"
",
+"
",
+"
",
+"
",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" . @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
+" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + ",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+" # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8
9 0 a b c d e f g h i j k l m n o p q ",
+" r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X
Y Z ` ...x +.@.#.$.%.&.*.=.-.;.>.,.'. ",
+"
).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.1.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.q.t.u.h.:.v.w.x.
",
+" y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.O.P.Q.R.d.S.T.U.V.W.X.Y.Z.`.
+.+++@+7.p.#+$+%+&+e.*+=+-+;+>+,+'+)+!+~+ ",
+"
{+]+^+/+(+_+:+<+[+[+}+|+1+2+3+4+c.5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+A.j+k+l+m+n+o+|+G.p+q+r+s+:+t+u+v+w+x+y+
",
+"
z+A+p+B+C+D+E+F+Q.G+H+I+J+K+L+M+N+a.O+8.P+Q+R+S+T+U+V+W+X+Y+w+u+Z+`+
@.@+@@@#@$@U+p+t+%@&@*@=@-@;@>@,@'@ ",
+"
)@!@e.~@{@]@^@/@(@_@:@<@[@<.}@|@1@2@3@}@4@5@6@7@8@9@%@e.0@a@b@c@G.&@H.d@e@f@;+g@[email protected]@j@k@&@l@@@[email protected]@o@
",
+"
)@p@q@r@h@s@t@u@v@w@x@y@/.z@A@B@C@;+D@E@<.F@[email protected]@I@J@K@q@e+L@M@N@O@P@Q@R@S@T@U@V@[email protected]@#@h.G.Y@Z@`@
#.# ",
+"
+#@###$#%#&#*#=#-#;#>#,#-@'#z@)#!#~#v.{#]#^#/#(#_#:#H+B+e@<#[#}#|#1#S+N+2#3#4#5#6#7#8#9#0#a#b#Q.c#d#e#f#
",
+"
g#h#i#F+j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#u.E#F#G#H#I#J#K#L#M#N#.+O#P#c#Q#y@R#t+S#T#U#V#M#H+W#X#
",
+" Y#Z#`#
$.$+$@$#$$$%$|#&$*$o+=$-$;$O@>$,$'$)$!$~${$]$^$:./$($_$:$<$F+@+[$}$|$p.f@1$2$3$4$5$<+6$Y.M#7$8$9$
",
+"
0$a$b$c$d$e$f$g$h$i$j$k$l$m$t#n$o$p$q$k$r$s$t$u$v$w$x$y$z$A$B$C$D$>+E$F$G$H$I$J$%+K$L$J@M$N$O$P$Q$R$S$T$
",
+" U$G#h.V$m#W$X$Y$Z$`$ %.%+%@%e.#%=#$%%%&%*%=%.
-%;%>%,%'%)%!%~%{%]%^%/%(%_%:%&%<%[%}%|%1%2%3%4%5%6%7%8%9% ",
+" 0%u+a%b%d$e$c%d%e%f%g%h%i%j%_#k%.$l%m%n%o%p%. q%r%q s%. t%u%v%.
w%x%y%. z%A%B%. C%D%E%d$F%G%H%I%J%K%L%M% ",
+" N%h+O%P%Q%e$R%S%l%T%`+U%V%H%W%X%Y%Z%`% &.&+&. @&#&$&%&. &&!#*&.
=&++-&. ;&>&,&. '&g+)&!&~&{&]&^&/./&(&_& ",
+" :&<&[&}&d$e$|&1&2&3&4&5&6&. 7&_$&%8&9&0&7.a&. b&c&d&e&. 1&f&g&.
h&i&j&. k&T#l&. '&.&e$m&n&o&f%&%p&q&r&s& ",
+" t&u&v&%@d$w&x&y&H%z&A&<.B&. C&D&E&F&G&H&I&]%. J&K&L&M&. N&J#O&.
P&Q&R&. S&T&U&. V&W&X&Y&Z&`& *.*+*T#@*#* ",
+" $*[.%*&*Q%**=*-*;*>*,*'*)*. !*~*Y%{*]*f&^*/*. (*_*:*<*. [*}*|*.
1*2*3*. 1*4*5*. 6*7*8*l%9*0*a*b*c*D#d*e* ",
+" f*O#a%g*h*i*@@D+Z%Z%j*k*l*m*n*o*Y%p*q*r*s*t*. u*v*w*I%. x*y*2%.
z*F+A*. B*+*C*. D*E*F*G*H*I*J*K*:.L*M*N* ",
+" O*P*Q*R*m#S*T*a%U*V*W*X*Y*Z*.+`*d$ =B*.=s*+=@=#=$=%=&=. d$*===.
-=;=>=. 3&,='=. )=!=~={=#=)&]=^=5#/=(=_= ",
+"
:=<=a%[=}=|=1=2=3=4=5=6=7=8=C+9=0=a=b=c=d=e=f=C%g=h=i=j=g&k=l=m=n=o=1=p=q=r=s=t=u=v=w=x=y=z=A=B=K%R#C=.#
",
+"
D=(@C=$$E=[&F=,*G=H=I=J=K=L=Z+M=N=i.O=P='*Q=Q=c#E@G+R=S=T=T=U=Q.V=W=X=Y=Z=`=
-.-x$+-@-#-$-%-&-*-=---;->- ",
+"
O*,-'-)-!-~-{-]-u@]-^-&-/-(-_-:-<-[-}-|-1-2-E*3-4-5-6-/@P#7-8-r@9-0-a-b-c-J%]-(.d-e=e-f-g-h-i-)-Q#j-k-l-
",
+"
m-n-o-p-q-v@q-q$E$h.r-B=s-s-(-m@@#R#F+t-u-R#p#v-w-x-y-q&h.z-A-~#B-C-D-E-F-g$G-w=++H-I-W.J-D+K-++w#L-M-N-
",
+" O-P-Q-R-S-s=T-U-V-W-X-Y-Z-X-`-
;.;+;@;#;$;%;&;*;=;-;Z-;;>;;=,;';);!;~;{;];^;/;(;_;:;<;[;};|;U-1;W-2;3;6*
",
+"
4;5;6;7;8;8;7;6;9;7;9$0;7;a;_&b;c;d;e;f;g;h;i;0;j;k;b;f;l;m;n;o;p;q;r;i;T$s;j;m;t;u;v;8;i;w;u;x;e;0;a;y;
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
"};
diff --git a/wmfortune/XPM/panel_button_pressed.xpm
b/wmfortune/XPM/panel_button_pressed.xpm
new file mode 100644
index 0000000..4970c7e
--- /dev/null
+++ b/wmfortune/XPM/panel_button_pressed.xpm
@@ -0,0 +1,1083 @@
+/* XPM */
+static char * panel_button_pressed_xpm[] = {
+"64 64 1016 2",
+" c None",
+". c #5F513F",
+"+ c #493E30",
+"@ c #453B2D",
+"# c #494031",
+"$ c #484031",
+"% c #4A4133",
+"& c #463E2F",
+"* c #494233",
+"= c #4C4435",
+"- c #4D4536",
+"; c #4B4336",
+"> c #4B4235",
+", c #4A4132",
+"' c #473E2F",
+") c #4E4636",
+"! c #463E2D",
+"~ c #494232",
+"{ c #494132",
+"] c #473D2F",
+"^ c #493E2F",
+"/ c #4C4131",
+"( c #504536",
+"_ c #4E4432",
+": c #4F4534",
+"< c #4B4131",
+"[ c #4C4231",
+"} c #4D4332",
+"| c #4E4434",
+"1 c #4E4535",
+"2 c #4B4334",
+"3 c #484132",
+"4 c #4F4739",
+"5 c #493F31",
+"6 c #473D2E",
+"7 c #494032",
+"8 c #473F30",
+"9 c #4A4334",
+"0 c #4C4535",
+"a c #4B4435",
+"b c #4C4437",
+"c c #4D4437",
+"d c #9C8A6D",
+"e c #4D4233",
+"f c #7A6850",
+"g c #8D7A61",
+"h c #8F7D63",
+"i c #8D7C62",
+"j c #8A785F",
+"k c #87765B",
+"l c #8C7D62",
+"m c #7E7056",
+"n c #84745A",
+"o c #87755B",
+"p c #87765C",
+"q c #837358",
+"r c #89765C",
+"s c #8A775D",
+"t c #8A785E",
+"u c #86745D",
+"v c #87765E",
+"w c #8B7A62",
+"x c #86755A",
+"y c #89785D",
+"z c #89775E",
+"A c #856E57",
+"B c #846E57",
+"C c #836F57",
+"D c #8B785F",
+"E c #837156",
+"F c #887459",
+"G c #837054",
+"H c #847158",
+"I c #86735A",
+"J c #85755C",
+"K c #8B7C60",
+"L c #8D7E64",
+"M c #8A7A60",
+"N c #827258",
+"O c #837257",
+"P c #88775C",
+"Q c #87745B",
+"R c #837056",
+"S c #907E64",
+"T c #8E7C62",
+"U c #8B7A60",
+"V c #897A5F",
+"W c #7D6F54",
+"X c #86755C",
+"Y c #88765B",
+"Z c #8F7D61",
+"` c #D2B88F",
+" . c #4F4334",
+".. c #A89070",
+"+. c #C0A683",
+"@. c #B69A78",
+"#. c #BBA07E",
+"$. c #BDA17E",
+"%. c #BFA784",
+"&. c #C3AD88",
+"*. c #BEA681",
+"=. c #BAA37E",
+"-. c #BAA27E",
+";. c #C3AA85",
+">. c #C3AA88",
+",. c #B89E7B",
+"'. c #BAA07D",
+"). c #C5AA88",
+"!. c #B89E7E",
+"~. c #B29879",
+"{. c #B49C7C",
+"]. c #B19B78",
+"^. c #BEA682",
+"/. c #B89B79",
+"(. c #BA9B7B",
+"_. c #B79A7A",
+":. c #BCA380",
+"<. c #BCA37D",
+"[. c #BDA37F",
+"}. c #BEA480",
+"|. c #BEA481",
+"1. c #BEA484",
+"2. c #B89D7A",
+"3. c #BCA480",
+"4. c #B8A17C",
+"5. c #B69F7A",
+"6. c #C5AD89",
+"7. c #BFA581",
+"8. c #BDA481",
+"9. c #C0A682",
+"0. c #B79E7A",
+"a. c #BCA17E",
+"b. c #BDA380",
+"c. c #B69C7A",
+"d. c #BCA07E",
+"e. c #C2AA85",
+"f. c #C2AC87",
+"g. c #BDA47F",
+"h. c #CCB28D",
+"i. c #E8CAA1",
+"j. c #524738",
+"k. c #A38B6B",
+"l. c #BBA27F",
+"m. c #E8C89D",
+"n. c #4D4132",
+"o. c #AC9676",
+"p. c #C4A986",
+"q. c #C1A381",
+"r. c #BC9F7E",
+"s. c #BDA07D",
+"t. c #C3A684",
+"u. c #C1AA87",
+"v. c #C2A986",
+"w. c #C4AB86",
+"x. c #C6AB85",
+"y. c #BFA47F",
+"z. c #BDA27D",
+"A. c #C5A886",
+"B. c #BD9F7E",
+"C. c #C2A381",
+"D. c #C2A682",
+"E. c #C0A782",
+"F. c #C1A985",
+"G. c #C3AC88",
+"H. c #BEA17D",
+"I. c #C3A680",
+"J. c #C5AB84",
+"K. c #C3AA83",
+"L. c #BFA685",
+"M. c #B59A77",
+"N. c #BEA683",
+"O. c #B89D7E",
+"P. c #B39978",
+"Q. c #B49979",
+"R. c #B8A07D",
+"S. c #BCA482",
+"T. c #BBA37F",
+"U. c #C2A784",
+"V. c #C0A584",
+"W. c #BFA583",
+"X. c #B39976",
+"Y. c #C0A280",
+"Z. c #BC9E7C",
+"`. c #BFA280",
+" + c #C2A885",
+".+ c #C2AA86",
+"++ c #C1A986",
+"@+ c #C5AB86",
+"#+ c #C5A984",
+"$+ c #E1BF92",
+"%+ c #504436",
+"&+ c #BFA582",
+"*+ c #BBA07A",
+"=+ c #B69B75",
+"-+ c #B39974",
+";+ c #B59B76",
+">+ c #B29976",
+",+ c #BEA581",
+"'+ c #B69C78",
+")+ c #B69B78",
+"!+ c #BC9F7A",
+"~+ c #BA9F7C",
+"{+ c #B89D79",
+"]+ c #B79C78",
+"^+ c #B89E79",
+"/+ c #B49975",
+"(+ c #B49876",
+"_+ c #BC9F7D",
+":+ c #BDA17F",
+"<+ c #BCA27E",
+"[+ c #BEA57D",
+"}+ c #C6AD87",
+"|+ c #C4AC83",
+"1+ c #C7AC86",
+"2+ c #BFA682",
+"3+ c #BEA580",
+"4+ c #C0A886",
+"5+ c #C5AB88",
+"6+ c #BDA080",
+"7+ c #B19B77",
+"8+ c #BFA883",
+"9+ c #BAA480",
+"0+ c #AF9773",
+"a+ c #B9A07C",
+"b+ c #B79F7B",
+"c+ c #BA9E79",
+"d+ c #B49A74",
+"e+ c #B49A75",
+"f+ c #B49B79",
+"g+ c #C0A784",
+"h+ c #BAA17D",
+"i+ c #B59B77",
+"j+ c #E7C59A",
+"k+ c #54493B",
+"l+ c #AF9879",
+"m+ c #B79E7B",
+"n+ c #B69B79",
+"o+ c #BEA684",
+"p+ c #C7AE8B",
+"q+ c #C3AC87",
+"r+ c #BAA37F",
+"s+ c #B8A07C",
+"t+ c #C3A885",
+"u+ c #C3A583",
+"v+ c #BCA27D",
+"w+ c #C1A881",
+"x+ c #C1A783",
+"y+ c #B99F7C",
+"z+ c #BAA07B",
+"A+ c #C0A381",
+"B+ c #BEA27F",
+"C+ c #BA9E7A",
+"D+ c #B69B77",
+"E+ c #B69B76",
+"F+ c #BBA17D",
+"G+ c #B29974",
+"H+ c #BBA17B",
+"I+ c #C1A781",
+"J+ c #BA9E7C",
+"K+ c #B8A27D",
+"L+ c #B8A37E",
+"M+ c #B59F7A",
+"N+ c #B59E79",
+"O+ c #C6AD89",
+"P+ c #C0A885",
+"Q+ c #BCA17F",
+"R+ c #B99E7B",
+"S+ c #B79D7B",
+"T+ c #C3AA87",
+"U+ c #C5AE8B",
+"V+ c #C3AA86",
+"W+ c #C0A883",
+"X+ c #B7A07D",
+"Y+ c #BBA27E",
+"Z+ c #E3C497",
+"`+ c #544939",
+" @ c #B39A7A",
+".@ c #BBA17F",
+"+@ c #BFA383",
+"@@ c #BEA385",
+"#@ c #C0A587",
+"$@ c #C1A887",
+"%@ c #C5AD88",
+"&@ c #C0A884",
+"*@ c #C4AD88",
+"=@ c #C4AD8A",
+"-@ c #C2A985",
+";@ c #BFA380",
+">@ c #C0A681",
+",@ c #C6AB86",
+"'@ c #C6AC88",
+")@ c #C1A784",
+"!@ c #BEA483",
+"~@ c #B89F7C",
+"{@ c #B89E7D",
+"]@ c #B79C79",
+"^@ c #C3A482",
+"/@ c #B09270",
+"(@ c #B99C7A",
+"_@ c #BAA07E",
+":@ c #C4A381",
+"<@ c #C0A481",
+"[@ c #CCB792",
+"}@ c #C8AC8A",
+"|@ c #C5AC89",
+"1@ c #C2A683",
+"2@ c #C5AB89",
+"3@ c #BFA683",
+"4@ c #BEA384",
+"5@ c #BFA485",
+"6@ c #C0A588",
+"7@ c #C5AC88",
+"8@ c #C5AF8A",
+"9@ c #E6C99D",
+"0@ c #4C4334",
+"a@ c #AA9775",
+"b@ c #BFAC85",
+"c@ c #BDA480",
+"d@ c #AB9375",
+"e@ c #958063",
+"f@ c #B7A07E",
+"g@ c #C4AC8A",
+"h@ c #CBB590",
+"i@ c #CAB892",
+"j@ c #C6B08C",
+"k@ c #C2A782",
+"l@ c #C3A984",
+"m@ c #BEA47F",
+"n@ c #C2A886",
+"o@ c #B79D79",
+"p@ c #BBA481",
+"q@ c #C4AC86",
+"r@ c #BEA583",
+"s@ c #C0A686",
+"t@ c #B99F7F",
+"u@ c #B99E7D",
+"v@ c #BA9F7E",
+"w@ c #BDA482",
+"x@ c #B79E79",
+"y@ c #B19672",
+"z@ c #BAA17E",
+"A@ c #BBA07F",
+"B@ c #BFA482",
+"C@ c #C5A786",
+"D@ c #C7AA88",
+"E@ c #C6A986",
+"F@ c #C7AD8A",
+"G@ c #C1A683",
+"H@ c #BCA280",
+"I@ c #C0A783",
+"J@ c #C6AE8B",
+"K@ c #CDB893",
+"L@ c #C8B58F",
+"M@ c #ECCFA2",
+"N@ c #514838",
+"O@ c #B29E7D",
+"P@ c #C7B08C",
+"Q@ c #C3AD85",
+"R@ c #8F7B5F",
+"S@ c #2B251C",
+"T@ c #1A1510",
+"U@ c #1B1813",
+"V@ c #B7A17F",
+"W@ c #BFA884",
+"X@ c #C0AB85",
+"Y@ c #BBA37D",
+"Z@ c #C4AD85",
+"`@ c #BB9E7D",
+" # c #BCA37F",
+".# c #C1A882",
+"+# c #C5AD85",
+"@# c #C0A881",
+"## c #C3AC83",
+"$# c #BAA37B",
+"%# c #BBA57E",
+"&# c #BAA681",
+"*# c #BBA784",
+"=# c #C1AC83",
+"-# c #BBA37E",
+";# c #B19773",
+"># c #B49B78",
+",# c #C3A985",
+"'# c #B49C77",
+")# c #B7A079",
+"!# c #B59D78",
+"~# c #B8A27E",
+"{# c #B9A680",
+"]# c #C4B08B",
+"^# c #C0A87F",
+"/# c #C0A77E",
+"(# c #C2A87F",
+"_# c #C3A986",
+":# c #C6B08D",
+"<# c #C1AA85",
+"[# c #BFA983",
+"}# c #E4CC9C",
+"|# c #524637",
+"1# c #AD9272",
+"2# c #B19574",
+"3# c #342D23",
+"4# c #42372B",
+"5# c #786853",
+"6# c #020201",
+"7# c #927D60",
+"8# c #B29B79",
+"9# c #B9A07D",
+"0# c #B7A07B",
+"a# c #BCA680",
+"b# c #BEAA82",
+"c# c #BEA582",
+"d# c #BF9F81",
+"e# c #C0A684",
+"f# c #BCA580",
+"g# c #BDA67D",
+"h# c #B49E76",
+"i# c #BAA27B",
+"j# c #BEA67F",
+"k# c #AC9770",
+"l# c #B29A75",
+"m# c #BDA782",
+"n# c #BBA27C",
+"o# c #C2AC86",
+"p# c #C2A984",
+"q# c #C4AB81",
+"r# c #C2AB88",
+"s# c #BCA882",
+"t# c #B4A17B",
+"u# c #B9A17D",
+"v# c #B59D7B",
+"w# c #BCA180",
+"x# c #B9A07B",
+"y# c #BDA680",
+"z# c #C4AF8A",
+"A# c #C0A984",
+"B# c #BA9C7A",
+"C# c #BEA784",
+"D# c #B39C7A",
+"E# c #AE9573",
+"F# c #D7BB91",
+"G# c #524537",
+"H# c #AD9475",
+"I# c #BEA280",
+"J# c #B79D7E",
+"K# c #0C0A08",
+"L# c #2D261E",
+"M# c #A78F6F",
+"N# c #938166",
+"O# c #BDA583",
+"P# c #B69F7D",
+"Q# c #B8A280",
+"R# c #B39A79",
+"S# c #C5AA87",
+"T# c #BEA07E",
+"U# c #BAA181",
+"V# c #B9A07A",
+"W# c #B89F7D",
+"X# c #BDA585",
+"Y# c #BBA283",
+"Z# c #584C3E",
+"`# c #5D4F3D",
+" $ c #B09371",
+".$ c #B69C79",
+"+$ c #B39B77",
+"@$ c #B8A07B",
+"#$ c #B69F76",
+"$$ c #AF9876",
+"%$ c #B7A480",
+"&$ c #C5B08B",
+"*$ c #B59879",
+"=$ c #B5987A",
+"-$ c #BBA07D",
+";$ c #BA9C79",
+">$ c #B39675",
+",$ c #B99E7F",
+"'$ c #BDA283",
+")$ c #B89C7E",
+"!$ c #BBA382",
+"~$ c #B49C7A",
+"{$ c #E1C29C",
+"]$ c #4E4334",
+"^$ c #A99473",
+"/$ c #A3896C",
+"($ c #050403",
+"_$ c #16130F",
+":$ c #A38F70",
+"<$ c #B19A79",
+"[$ c #BBA381",
+"}$ c #B0997A",
+"|$ c #8D785F",
+"1$ c #9D896F",
+"2$ c #B39B7D",
+"3$ c #B59B7A",
+"4$ c #B89D78",
+"5$ c #A99275",
+"6$ c #917C5F",
+"7$ c #BBA380",
+"8$ c #AF9779",
+"9$ c #907D64",
+"0$ c #0F0D0B",
+"a$ c #A48C6D",
+"b$ c #C0A482",
+"c$ c #B59E7D",
+"d$ c #988467",
+"e$ c #AC9574",
+"f$ c #BAA17B",
+"g$ c #B6A081",
+"h$ c #A49174",
+"i$ c #B19F7D",
+"j$ c #BCA381",
+"k$ c #977F64",
+"l$ c #A1896D",
+"m$ c #B9A080",
+"n$ c #9B866D",
+"o$ c #A48C6E",
+"p$ c #B99D7B",
+"q$ c #B99C7C",
+"r$ c #938065",
+"s$ c #958367",
+"t$ c #A99372",
+"u$ c #BEA786",
+"v$ c #B49B7B",
+"w$ c #B69B7B",
+"x$ c #DFC299",
+"y$ c #504638",
+"z$ c #A89274",
+"A$ c #B9A17E",
+"B$ c #645642",
+"C$ c #080706",
+"D$ c #4A4234",
+"E$ c #9B876A",
+"F$ c #9B8669",
+"G$ c #2C261E",
+"H$ c #3E362A",
+"I$ c #433C2F",
+"J$ c #29231C",
+"K$ c #8C775E",
+"L$ c #554938",
+"M$ c #352E24",
+"N$ c #635745",
+"O$ c #100E0B",
+"P$ c #6E614C",
+"Q$ c #342F25",
+"R$ c #000000",
+"S$ c #221E18",
+"T$ c #5A503E",
+"U$ c #85745C",
+"V$ c #26211A",
+"W$ c #14120E",
+"X$ c #917D62",
+"Y$ c #938162",
+"Z$ c #28221B",
+"`$ c #161310",
+" % c #796C54",
+".% c #988666",
+"+% c #2F281F",
+"@% c #14110E",
+"#% c #625646",
+"$% c #453D31",
+"%% c #1D1914",
+"&% c #A08A6C",
+"*% c #BDA580",
+"=% c #AF9472",
+"-% c #41372A",
+";% c #332D23",
+">% c #423B2F",
+",% c #252018",
+"'% c #9D896B",
+")% c #B8A07F",
+"!% c #B7A080",
+"~% c #E8D2A5",
+"{% c #4B4133",
+"]% c #AC9677",
+"^% c #C1A886",
+"/% c #B69E7C",
+"(% c #BDA684",
+"_% c #B09876",
+":% c #2F2920",
+"<% c #0D0B09",
+"[% c #B6A582",
+"}% c #11100C",
+"|% c #2E291F",
+"1% c #968568",
+"2% c #080705",
+"3% c #1E1914",
+"4% c #010100",
+"5% c #7B6D57",
+"6% c #786B54",
+"7% c #5B5141",
+"8% c #C6B390",
+"9% c #B5A180",
+"0% c #342D25",
+"a% c #958368",
+"b% c #B7A47F",
+"c% c #726651",
+"d% c #BAA683",
+"e% c #554D3D",
+"f% c #2A251E",
+"g% c #8F7E64",
+"h% c #41392D",
+"i% c #635644",
+"j% c #B79F7C",
+"k% c #635643",
+"l% c #8C7B62",
+"m% c #AD9778",
+"n% c #030302",
+"o% c #40372B",
+"p% c #B9A37F",
+"q% c #BFAA85",
+"r% c #DEC598",
+"s% c #4E4335",
+"t% c #A99376",
+"u% c #B9A17F",
+"v% c #C8AF8E",
+"w% c #060504",
+"x% c #BFA989",
+"y% c #A48F70",
+"z% c #29241B",
+"A% c #BFAB87",
+"B% c #2E2921",
+"C% c #A3906F",
+"D% c #A48F6E",
+"E% c #0F0D0A",
+"F% c #191611",
+"G% c #9D8768",
+"H% c #6D5D48",
+"I% c #AF9878",
+"J% c #73624D",
+"K% c #5D5342",
+"L% c #BFAA87",
+"M% c #BCA784",
+"N% c #3E362B",
+"O% c #958267",
+"P% c #5A4F3D",
+"Q% c #776753",
+"R% c #6B5E4B",
+"S% c #C7B08E",
+"T% c #81715A",
+"U% c #4F4436",
+"V% c #302A22",
+"W% c #0A0807",
+"X% c #B7A180",
+"Y% c #BAA485",
+"Z% c #12100C",
+"`% c #13100C",
+" & c #BBA67F",
+".& c #E3C59A",
+"+& c #BAA484",
+"@& c #C7AF8D",
+"#& c #B29A79",
+"$& c #B8A17F",
+"%& c #948267",
+"&& c #040303",
+"*& c #3F382C",
+"=& c #C2AC89",
+"-& c #C3AB86",
+";& c #483E32",
+">& c #937F64",
+",& c #211D16",
+"'& c #B39C7B",
+")& c #B8A17D",
+"!& c #7B6C56",
+"~& c #5B5140",
+"{& c #BFAC88",
+"]& c #B7A280",
+"^& c #3A3226",
+"/& c #C1AB87",
+"(& c #5E5240",
+"_& c #786B55",
+":& c #C2A989",
+"<& c #665A48",
+"[& c #70624E",
+"}& c #8A7963",
+"|& c #050404",
+"1& c #574C3E",
+"2& c #4E4537",
+"3& c #C5AF8C",
+"4& c #C0A986",
+"5& c #D4B288",
+"6& c #4C4132",
+"7& c #AB9474",
+"8& c #C3AB87",
+"9& c #17130F",
+"0& c #BBA584",
+"a& c #938167",
+"b& c #3F382D",
+"c& c #C0A985",
+"d& c #42372A",
+"e& c #88745A",
+"f& c #9F8668",
+"g& c #0E0C09",
+"h& c #1F1C16",
+"i& c #B4A680",
+"j& c #BAA882",
+"k& c #B3A07A",
+"l& c #5A4F3E",
+"m& c #BAA783",
+"n& c #BFAA88",
+"o& c #423A30",
+"p& c #98856C",
+"q& c #5F5643",
+"r& c #70644E",
+"s& c #B09E79",
+"t& c #615644",
+"u& c #756753",
+"v& c #B9A281",
+"w& c #807058",
+"x& c #574D3E",
+"y& c #B8A181",
+"z& c #14110D",
+"A& c #090807",
+"B& c #A38D71",
+"C& c #A59075",
+"D& c #A18E71",
+"E& c #A79376",
+"F& c #C4AD89",
+"G& c #E9CFA3",
+"H& c #524839",
+"I& c #A18C6B",
+"J& c #C6AF89",
+"K& c #17140F",
+"L& c #B69D79",
+"M& c #9A8365",
+"N& c #060503",
+"O& c #2F291F",
+"P& c #B6A27D",
+"Q& c #C1AB86",
+"R& c #393228",
+"S& c #9E8C6D",
+"T& c #A39170",
+"U& c #211E17",
+"V& c #BEAD89",
+"W& c #B29B7A",
+"X& c #756651",
+"Y& c #544836",
+"Z& c #B9A181",
+"`& c #BFA786",
+" * c #3E3629",
+".* c #958A6C",
+"+* c #BFAA84",
+"@* c #584E3C",
+"#* c #6E614B",
+"$* c #BFA984",
+"%* c #635742",
+"&* c #B59F79",
+"** c #7E6E54",
+"=* c #504637",
+"-* c #BEA785",
+";* c #241F18",
+">* c #AD9976",
+",* c #B89E7A",
+"'* c #B89B78",
+")* c #A68D6E",
+"!* c #B39B76",
+"~* c #E8CDA1",
+"{* c #534939",
+"]* c #B09B79",
+"^* c #BDA582",
+"/* c #B9A17C",
+"(* c #050503",
+"_* c #171410",
+":* c #B8A27F",
+"<* c #B7A27C",
+"[* c #1A1611",
+"}* c #1B1812",
+"|* c #B49F7D",
+"1* c #A79271",
+"2* c #201C15",
+"3* c #B09B78",
+"4* c #B69F7C",
+"5* c #B8A07E",
+"6* c #7A6E58",
+"7* c #483F32",
+"8* c #C5AD8C",
+"9* c #B89E80",
+"0* c #625744",
+"a* c #BDA784",
+"b* c #70624B",
+"c* c #655A46",
+"d* c #776A54",
+"e* c #86775C",
+"f* c #B9A27E",
+"g* c #010000",
+"h* c #695C48",
+"i* c #C4AB88",
+"j* c #A48F71",
+"k* c #473E30",
+"l* c #C1AA84",
+"m* c #514636",
+"n* c #AD9776",
+"o* c #78684F",
+"p* c #050504",
+"q* c #72644E",
+"r* c #73654E",
+"s* c #090806",
+"t* c #645844",
+"u* c #675B46",
+"v* c #0B0907",
+"w* c #72634D",
+"x* c #655742",
+"y* c #0C0B08",
+"z* c #B6A07E",
+"A* c #A38F73",
+"B* c #0A0907",
+"C* c #070605",
+"D* c #383127",
+"E* c #AB9679",
+"F* c #766852",
+"G* c #232019",
+"H* c #2D281F",
+"I* c #393227",
+"J* c #8C7C62",
+"K* c #342E24",
+"L* c #AE9A77",
+"M* c #574C3B",
+"N* c #2A251D",
+"O* c #9E896B",
+"P* c #938063",
+"Q* c #13110D",
+"R* c #242019",
+"S* c #89775A",
+"T* c #BAA57F",
+"U* c #E5C69C",
+"V* c #A79373",
+"W* c #AF9B79",
+"X* c #89775D",
+"Y* c #7A6954",
+"Z* c #766650",
+"`* c #82735A",
+" = c #AE9A75",
+".= c #C0AB87",
+"+= c #988769",
+"@= c #605542",
+"#= c #655945",
+"$= c #8F7C61",
+"%= c #BEA382",
+"&= c #837159",
+"*= c #7E6D55",
+"== c #796850",
+"-= c #817058",
+";= c #BCA481",
+">= c #B49D7B",
+",= c #C3AB8A",
+"'= c #81725A",
+")= c #917D60",
+"!= c #B8A081",
+"~= c #B7A882",
+"{= c #6C614B",
+"]= c #9D8B6C",
+"^= c #A59373",
+"/= c #7E7057",
+"(= c #786A51",
+"_= c #8D7C60",
+":= c #807158",
+"<= c #7C6E56",
+"[= c #B8A380",
+"}= c #807057",
+"|= c #7C6D54",
+"1= c #7C6C55",
+"2= c #9F8B6B",
+"3= c #BCA382",
+"4= c #958166",
+"5= c #615442",
+"6= c #5C5240",
+"7= c #958366",
+"8= c #C4AE89",
+"9= c #D5BD8F",
+"0= c #AF9B7C",
+"a= c #C4AC8B",
+"b= c #B49C7B",
+"c= c #BEA987",
+"d= c #B5A17E",
+"e= c #B19C79",
+"f= c #B7A37F",
+"g= c #BAA881",
+"h= c #B29F79",
+"i= c #B09A75",
+"j= c #C0AA87",
+"k= c #BBA581",
+"l= c #BDA681",
+"m= c #BBA682",
+"n= c #B49C79",
+"o= c #B7A27B",
+"p= c #C6AF88",
+"q= c #BDA67E",
+"r= c #C0A882",
+"s= c #B8A57E",
+"t= c #C4B18A",
+"u= c #B5A27D",
+"v= c #C2AE89",
+"w= c #BDA77F",
+"x= c #BCA67F",
+"y= c #C3AD86",
+"z= c #BBA680",
+"A= c #B29D7C",
+"B= c #BEA584",
+"C= c #B19978",
+"D= c #BDA685",
+"E= c #BCA785",
+"F= c #B6A17D",
+"G= c #B4A07D",
+"H= c #B19C78",
+"I= c #BAA682",
+"J= c #E8D0A4",
+"K= c #AD9879",
+"L= c #B69D7C",
+"M= c #B9A180",
+"N= c #BAA27F",
+"O= c #B69E7D",
+"P= c #C2AA88",
+"Q= c #C3AC89",
+"R= c #BCAA84",
+"S= c #BEAA85",
+"T= c #C8B38E",
+"U= c #C8B38F",
+"V= c #BBA781",
+"W= c #B49F7A",
+"X= c #B9A37E",
+"Y= c #B7A27D",
+"Z= c #B5A17C",
+"`= c #C4B08A",
+" - c #BFA783",
+".- c #BEA883",
+"+- c #C7B08B",
+"@- c #B9A27D",
+"#- c #B29A74",
+"$- c #C2AC83",
+"%- c #C3AB85",
+"&- c #C2AC84",
+"*- c #BFAB86",
+"=- c #B39F7C",
+"-- c #B49E7D",
+";- c #C4AE8B",
+">- c #C1AA89",
+",- c #B69D7B",
+"'- c #BDA683",
+")- c #B79E7D",
+"!- c #C3AC8A",
+"~- c #BFA885",
+"{- c #B9A580",
+"]- c #EDD1A5",
+"^- c #625344",
+"/- c #C8AD8A",
+"(- c #C8AB82",
+"_- c #BAA17F",
+":- c #BFA785",
+"<- c #C2AC88",
+"[- c #C5AE89",
+"}- c #C3AD87",
+"|- c #C0AD88",
+"1- c #C2AD88",
+"2- c #C5B08A",
+"3- c #B9A480",
+"4- c #C3AE88",
+"5- c #CAB18D",
+"6- c #BFA680",
+"7- c #BEA780",
+"8- c #BDA780",
+"9- c #BAA37D",
+"0- c #BCA682",
+"a- c #C3AB8B",
+"b- c #BDA786",
+"c- c #C1A989",
+"d- c #B79E7C",
+"e- c #BDA484",
+"f- c #C4AC89",
+"g- c #BAA280",
+"h- c #C4AE8A",
+"i- c #EFD2A6",
+"j- c #AE9876",
+"k- c #DDC29A",
+"l- c #EBD1A4",
+"m- c #EAD09F",
+"n- c #E9CEA2",
+"o- c #E7CBA0",
+"p- c #E8CC9E",
+"q- c #EACFA3",
+"r- c #E4CA9D",
+"s- c #E5C89B",
+"t- c #E5C79B",
+"u- c #E2C499",
+"v- c #E2C398",
+"w- c #ECCDA1",
+"x- c #E6C89E",
+"y- c #DCC092",
+"z- c #D4B88A",
+"A- c #E3C69A",
+"B- c #DFC698",
+"C- c #E2CA9E",
+"D- c #D7BC90",
+"E- c #DFC498",
+"F- c #E4C79B",
+"G- c #DDC197",
+"H- c #DBBF95",
+"I- c #DEC199",
+"J- c #D4B48D",
+"K- c #DFC296",
+"L- c #E0C096",
+"M- c #DCC393",
+"N- c #E4C99E",
+"O- c #D5B78D",
+"P- c #E8CB9F",
+"Q- c #ECD1A3",
+"R- c #DCBF90",
+"S- c #E1C497",
+"T- c #DABE95",
+"U- c #E2C79E",
+"V- c #EED3A6",
+"W- c #E8CE9E",
+"X- c #E8CDA2",
+"Y- c #E9CCA2",
+"Z- c #E7CC9D",
+"`- c #EACEA2",
+" ; c #E3C99A",
+".; c #E6C89C",
+"+; c #E4C69A",
+"@; c #EECFA1",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
",
+" . + @ # $ % & * = - ; ; > , ' # ) ! ~ { , ] ^ / ( _ : < [ } | 1 2
* 3 * % 4 2 5 6 @ % $ 7 8 9 0 a b c d ",
+" e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I E J
K L M N O P Q R S T U z y V W X Y Z ` ",
+"
...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^.'./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.b.e.f.3.=.g.h.i.
",
+"
j.k.l.+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^.'./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.b.e.f.3.=.g.m.
",
+"
n.o.p.l.q.r.s.t.u.v.w.x.y.z.A.B.C.D.D.E.F.G.}.H.I.J.K.L.M.N.O.P.Q.R.S.T.^.a.U.V.W.X.|.Y.Z.`.
+.+++@+#+$+ ",
+"
%+..&+p.*+=+-+;+>+,+,+'+)+!+~+{+]+[.^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+l.7+8+9+0+a+b+)+v.&+c+d+e+;+f+g+h+i+j+
",
+"
k+l+|.&+m+n+o+p+q+F.r+s+t+u+v+w+x+y+:.z+/.A+B+C+D+E+F+G+H+I+J+i+g+K+L+M+N+O+P+Q+R+F+&+f+S+T+U+V+W+X+Y+Z+
",
+" `+
@.@|.+@@@#@$@%@&@*@=@-@;@-.>@,@'@)@!@>@~@{@]@^@/@(@S+|._@:@<@[@v.T+w.}@|@1@
+2@3@}.4@5@6@T+7@[email protected]@ ",
+" 0@a@b@.@c@3@d@e@f@g@h@i@j@%.k@l@m@n@
+o@[email protected]@[email protected]@t@u@v@.@2+w@x@y@z@A@B@C@D@E@F@G@[email protected]@Q+3.v.J@K@L@M@
",
+" N@O@P@b@Q@R@S@T@U@V@W@X@Y@W+Z@k@`@
#.#g.+#@###$#%#&#*#s+m+|@=#-#;#>#,#D+y+'#)#!#~#{#]#^#/#(#_#:#F.<#[#}#
",
+"
|#1#2#P@q+3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#f.n#o#p#q#r#s#t#u#v#w#R.x#y#<#z#j@A#f+B#C#D#E#v#s+F#
",
+" G#H#I#2#J#K#L#M#N#O#P#>#Q#R#b+S#T#U#z@V#W#X#Y#Z#`#
$.$+$=.@$#$$$%$&$q+T.*$=$-$a.1@;$>$,$'$)$>+!$N.v#~${$ ",
+"
]$^$3.I#/$($_$:$<$[$}$|$1$2$3$c#4$5$6$7$1$8$9$0$%+a$b$c$d$e$f$g$h$i$.+j$k$l$m$n$o$W.p$q$u@r$s$t$u$v$w$x$
",
+"
y$z$A$3.B$6#C$D$E$F$G$H$I$J$K$|.L$U@M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$
%.%+%@%#%$%O$%%&%*%=%-%;%>%,%'%)%!%~% ",
+" {%]%^%A$/%($_$(%_%:%<%a@[%}%|%%K#2%3%4%5%6%R$7%8%9%0%R$a%b%1
R$c%d%e%R$f%g%h%R$i%j%k%($l%m%n%o%p%q%r% ",
+" s%t%u%^%v%w%_$x%y%2%z%L+A%B%n%C%D%E%F%G%H%I%J%R$K%L%M%N%R$O%
#P%R$Q%S.. R$R%S%T%R$U%4+V%W%X%Y%Z%`%%. &.& ",
+"
y$+&@&u%#&($_$$&%&&&*&=&-&;&R$>&$$O$,&'&)&^.!&R$~&{&]&^&R$%&/&(&R$_&:&<&R$[&C#}&R$U%I%_$|&1&2&<%O$3&4&5&
",
+" 6&7&8&@&S+($9&0&a&n%b&c&-.d&R$e&f&g&h&i&j&k&
%R$l&m&n&o&R$p&s#q&R$r&s&t&R$u&v&w&R$x&y&z&A&B&C&D&E&F&C#G& ",
+" H&I&A$8&J&w%K&L&M&N&O&P&Q&R&R$S&T&E%U&V&/&W&X&R$Y&Z&`&
*R$.*+*@*R$#*$*%*R$#*&***R$=*-*;*2%>*,*'*)*!*m#~* ",
+"
{*]*^*A$/*(*_*P+o+F%F%:*<*[*}*|*1*E%2*3*4*5*6*R$7*8*9*o%R$0*a*;%R$b*q+c*R$d*F&e*R$e
f*< g*h*i*j*k*=.l*G& ",
+"
m*n*A$^*o*6#p*q*A$r*s*t*u*v*w*R.x*($y*d*z*5*A*B*C*D*E*F*R$($G*H*R$I*J*K*R$*&L*M*R$N*O*P*Q*C*V%R*S*~#T*U*
",
+" N@V*W*A$X*Y*Z*`*
=.=+=@=#=$=%=n+&=*===-=;=>=,='=i%)=!=~={=(&]=^=/=(=_=`*:=<=[=}=|=1=2=3=4=5=6=7=8=q%A#9=
",
+"
{*0=a=W*O#b=u%c=P&d=e=f=g=h=i=K+j=k=4.l=m=Q&n=n=<#p@r+o=p=q=q=r=F.s=t=u=v=w=x=y=z=c$A=B=C=D=E=F=G=H=I=J=
",
+" =*K=L=a=M=N=O=P=Q=f@Q=R=F=S=T=U=V=W=X=Y=Z=`=
-f*.-+-@-#-%@y#$-%-c@&-*-=---;-p%Q=&.>-,=,-'-)-!-~-M=z#{-]- ",
+"
^-/-(-L=_-:-g@:-7$j$3.<-8=[-[-T=8@}-A#q+|-1-A#9#2-3-4-5-4&3.6-7-.#8-9-0-a-b-<$c-3=S.d-e-L.f-o+g-S.f#h-i-
",
+"
j-k-l-m-n-o-p-q-r-s-t-u-s-v-w-x-y-z-A-B-C-D-E-E-F-G-H-I-J-K-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-`-
;.;+;F-@; ",
+"
",
+"
",
+"
",
+"
",
+"
",
+"
"};
diff --git a/wmfortune/XPM/panel_window.xpm b/wmfortune/XPM/panel_window.xpm
new file mode 100644
index 0000000..db83b24
--- /dev/null
+++ b/wmfortune/XPM/panel_window.xpm
@@ -0,0 +1,70 @@
+/* XPM */
+static char * panel_window_xpm[] = {
+"64 64 3 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+" ",
+" ",
+" ",
+" ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" .......................................................+ ",
+" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/wmfortune/dockapp.c b/wmfortune/dockapp.c
new file mode 100644
index 0000000..59850df
--- /dev/null
+++ b/wmfortune/dockapp.c
@@ -0,0 +1,565 @@
+/*
+ *
+ * Copyright (c) 1999 Alfredo K. Kojima
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+
+#include "dockapp.h"
+
+#include <string.h>
+#include <X11/extensions/shape.h>
+#include <X11/Xatom.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+
+static char *progName = NULL;
+static unsigned d_width, d_height;
+static DACallbacks d_callbacks = {NULL, NULL, NULL, NULL, NULL, NULL};
+static int d_iswmaker = 0;
+static int d_timeout = 0;
+
+Display *DADisplay = NULL;
+Window DAWindow = None;
+Window DALeader = None;
+int DADepth = 0;
+Visual *DAVisual = NULL;
+
+
+static unsigned char*
+PropGetCheckProperty(Display *dpy, Window window, Atom hint, Atom type,
+ int format, int count, int *retCount)
+{
+ Atom type_ret;
+ int fmt_ret;
+ unsigned long nitems_ret;
+ unsigned long bytes_after_ret;
+ unsigned char *data;
+ int tmp;
+
+ if (count <= 0)
+ tmp = 0xffffff;
+ else
+ tmp = count;
+
+ if (XGetWindowProperty(dpy, window, hint, 0, tmp, False, type,
+ &type_ret, &fmt_ret, &nitems_ret, &bytes_after_ret,
+ (unsigned char **)&data)!=Success || !data)
+ return NULL;
+
+ if ((type!=AnyPropertyType && type!=type_ret)
+ || (count > 0 && nitems_ret != count)
+ || (format != 0 && format != fmt_ret)) {
+ XFree(data);
+ return NULL;
+ }
+
+ if (retCount)
+ *retCount = nitems_ret;
+
+ return data;
+}
+
+
+static Bool
+iswmaker(Display *dpy)
+{
+ Atom *data;
+ Atom atom;
+ Atom noticeboard;
+ int i, count;
+
+ atom = XInternAtom(dpy, "_WINDOWMAKER_WM_PROTOCOLS", False);
+ noticeboard = XInternAtom(dpy, "_WINDOWMAKER_NOTICEBOARD", False);
+
+ data = (Atom*)PropGetCheckProperty(dpy, DefaultRootWindow(dpy), atom,
+ XA_ATOM, 32, -1, &count);
+
+ if (!data)
+ return False;
+
+ for (i = 0; i < count; i++) {
+ if (data[i] == noticeboard) {
+ Window *win;
+ void *d;
+
+ XFree(data);
+
+ win = (Window*)PropGetCheckProperty(dpy, DefaultRootWindow(dpy),
+ noticeboard, XA_WINDOW, 32, -1,
+ &count);
+
+ if (!win) {
+ return False;
+ }
+
+ d = PropGetCheckProperty(dpy, *win, noticeboard, XA_WINDOW, 32, 1,
+ NULL);
+ if (d) {
+ XFree(d);
+
+ return True;
+ }
+ return False;
+ }
+ }
+
+ XFree(data);
+
+ /* not 100% sure */
+ return True;
+}
+
+
+
+void
+DAInitialize(char *display, char *name, unsigned width, unsigned height,
+ int argc, char **argv)
+{
+ XClassHint *chint;
+ XWMHints *hints;
+
+ d_width = width;
+ d_height = height;
+
+ progName = argv[0];
+
+ DADisplay = XOpenDisplay(display);
+ if (!DADisplay) {
+ printf("%s: could not open display %s!\n", progName,
+ XDisplayName(display));
+
+ exit(1);
+ }
+
+ DAWindow = XCreateSimpleWindow(DADisplay, DefaultRootWindow(DADisplay),
+ 0, 0, width, height, 0, 0, 0);
+
+ DALeader = XCreateSimpleWindow(DADisplay, DefaultRootWindow(DADisplay),
+ 0, 0, 1, 1, 0, 0, 0);
+ chint = XAllocClassHint();
+ if (!chint) {
+ printf("%s: cant allocate memory for class hints!\n", progName);
+ exit(1);
+ }
+ chint->res_class = name;
+ chint->res_name = strrchr(argv[0], '/');
+ if (!chint->res_name)
+ chint->res_name = argv[0];
+ else
+ chint->res_name++;
+
+ XSetClassHint(DADisplay, DALeader, chint);
+ XFree(chint);
+
+ hints = XAllocWMHints();
+ if (!hints) {
+ printf("%s: cant allocate memory for hints!\n", progName);
+ exit(1);
+ }
+ hints->flags = IconWindowHint|WindowGroupHint;
+
+ d_iswmaker = iswmaker(DADisplay);
+ if (d_iswmaker) {
+ hints->flags |= StateHint;
+ hints->initial_state = WithdrawnState;
+ }
+ hints->window_group = DALeader;
+ hints->icon_window = DAWindow;
+
+ XSetWMHints(DADisplay, DALeader, hints);
+
+ XSetCommand(DADisplay, DALeader, argv, argc);
+
+ DADepth = DefaultDepth(DADisplay, DefaultScreen(DADisplay));
+ DAVisual = DefaultVisual(DADisplay, DefaultScreen(DADisplay));
+
+
+ XFlush(DADisplay);
+}
+
+
+void
+DASetShape(Pixmap shapeMask)
+{
+ XShapeCombineMask(DADisplay, DAWindow, ShapeBounding, 0, 0, shapeMask,
+ ShapeSet);
+ XFlush(DADisplay);
+}
+
+
+void
+DASetPixmap(Pixmap pixmap)
+{
+ XSetWindowBackgroundPixmap(DADisplay, DAWindow, pixmap);
+ XClearWindow(DADisplay, DAWindow);
+ XFlush(DADisplay);
+}
+
+
+Pixmap
+DAMakePixmap()
+{
+ Pixmap p;
+
+ p = XCreatePixmap(DADisplay, DAWindow, d_width, d_height,
+ DefaultDepth(DADisplay, DefaultScreen(DADisplay)));
+
+ return p;
+}
+
+
+
+Bool
+DAMakePixmapFromData(char **data, Pixmap *pixmap, Pixmap *mask,
+ unsigned *width, unsigned *height)
+{
+ XpmAttributes xpmat;
+
+ xpmat.valuemask = XpmCloseness;
+ xpmat.closeness = 40000;
+
+ if (XpmCreatePixmapFromData(DADisplay, DAWindow, data, pixmap, mask,
+ &xpmat)!=0) {
+ return False;
+ }
+
+ *width = xpmat.width;
+ *height = xpmat.height;
+
+ return True;
+}
+
+
+void
+DAShow()
+{
+ if (d_iswmaker) {
+ XMapRaised(DADisplay, DALeader);
+ } else {
+ XMapRaised(DADisplay, DAWindow);
+ }
+
+ XFlush(DADisplay);
+}
+
+
+void
+DASetCallbacks(DACallbacks *callbacks)
+{
+ long mask = 0;
+
+ d_callbacks = *callbacks;
+
+ if (callbacks->buttonPress)
+ mask |= ButtonPressMask;
+
+ if (callbacks->buttonRelease)
+ mask |= ButtonReleaseMask;
+
+ XSelectInput(DADisplay, DAWindow, mask);
+ XFlush(DADisplay);
+}
+
+
+Bool
+DAProcessEvent(XEvent *event)
+{
+ if (event->xany.window != DAWindow
+ && event->xany.window != DALeader)
+ return False;
+
+ switch (event->type) {
+ case DestroyNotify:
+ if (d_callbacks.destroy) {
+ (*d_callbacks.destroy)();
+ }
+ exit(0);
+ break;
+
+ case ButtonPress:
+ if (d_callbacks.buttonPress) {
+ (*d_callbacks.buttonPress)(event->xbutton.button,
event->xbutton.state,
+ event->xbutton.x, event->xbutton.y);
+ }
+ break;
+
+ case ButtonRelease:
+ if (d_callbacks.buttonRelease) {
+ (*d_callbacks.buttonRelease)(event->xbutton.button,
event->xbutton.state,
+ event->xbutton.x, event->xbutton.y);
+ }
+ break;
+
+ case MotionNotify:
+ if (d_callbacks.motion) {
+ (*d_callbacks.motion)(event->xbutton.x, event->xbutton.y);
+ }
+ break;
+
+ case EnterNotify:
+ if (d_callbacks.enter) {
+ (*d_callbacks.enter)();
+ }
+ break;
+
+ case LeaveNotify:
+ if (d_callbacks.leave) {
+ (*d_callbacks.leave)();
+ }
+ break;
+
+ default:
+ return False;
+ break;
+ }
+
+ return True;
+}
+
+
+void
+DAEventLoop()
+{
+ XEvent ev;
+
+ for (;;) {
+ if (d_timeout >= 0) {
+ if (!DANextEventOrTimeout(&ev, d_timeout)) {
+ if (d_callbacks.timeout)
+ (*d_callbacks.timeout)();
+ continue;
+ }
+ } else {
+ XNextEvent(DADisplay, &ev);
+ }
+ DAProcessEvent(&ev);
+ }
+}
+
+
+static DAProgramOption defaultOptions[]= {
+ {"-h", "--help", "shows this help text and exit", DONone, False,
+ {NULL}},
+ {"-v", "--version", "shows program version and exit", DONone, False,
+ {NULL}}
+};
+
+
+static void
+printHelp(char *prog, char *description, DAProgramOption *options,
+ int count)
+{
+ int j;
+
+ printf("Usage: %s [OPTIONS]\n", prog);
+ if (description)
+ puts(description);
+
+ for (j = 0; j < count + 2; j++) {
+ char blank[35];
+ int c;
+ int i;
+
+ if (j >= count) {
+ options = defaultOptions;
+ i = j - count;
+ } else {
+ i = j;
+ }
+
+ if (options[i].shortForm && options[i].longForm)
+ c = printf(" %s, %s", options[i].shortForm, options[i].longForm);
+ else if (options[i].shortForm)
+ c = printf(" %s", options[i].shortForm);
+ else if (options[i].longForm)
+ c = printf(" %s", options[i].longForm);
+ else
+ continue;
+
+ if (options[i].type != DONone) {
+ switch (options[i].type) {
+ case DOInteger:
+ c += printf(" <integer>");
+ break;
+ case DOString:
+ c += printf(" <string>");
+ break;
+ case DONatural:
+ c+= printf(" <number>");
+ break;
+ }
+ }
+
+ memset(blank, ' ', 30);
+ if (c > 29)
+ c = 1;
+ blank[30-c] = 0;
+ printf("%s %s\n", blank, options[i].description);
+ }
+}
+
+
+void
+DAParseArguments(int argc, char **argv, DAProgramOption *options,
+ int count, char *programDescription, char *versionDescription)
+{
+ int i, j;
+ int found = 0;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-h")==0 || strcmp(argv[i], "--help")==0) {
+
+ printHelp(argv[0], programDescription, options, count);
+ exit(0);
+
+ } else if (strcmp(argv[i], "--version")==0) {
+
+ puts(versionDescription);
+ exit(0);
+
+ }
+
+ found = 0;
+ for (j = 0; j < count; j++) {
+ if ((options[j].shortForm
+ && strcmp(options[j].shortForm, argv[i])==0)
+ ||
+ (options[j].longForm
+ && strcmp(options[j].longForm, argv[i])==0)) {
+
+ found = 1;
+
+ options[j].used = True;
+
+ if (options[j].type == DONone)
+ break;
+
+ i++;
+ if (i >= argc) {
+ printf("%s: missing argument for option '%s'\n", argv[0],
+ argv[i-1]);
+ exit(1);
+ }
+
+ switch (options[j].type) {
+ case DOInteger:
+ {
+ int integer;
+
+ if (sscanf(argv[i], "%i", &integer)!=1) {
+ printf("%s: error parsing argument for option %s\n",
+ argv[0], argv[i-1]);
+ exit(1);
+ }
+ *options[j].value.integer = integer;
+ }
+ break;
+ case DONatural:
+ {
+ int integer;
+
+ if (sscanf(argv[i], "%i", &integer)!=1) {
+ printf("%s: error parsing argument for option %s\n",
+ argv[0], argv[i-1]);
+ exit(1);
+ }
+ if (integer < 0) {
+ printf("%s: argument %s must be >= 0\n",
+ argv[0], argv[i-1]);
+ exit(1);
+ }
+ *options[j].value.integer = integer;
+ }
+ break;
+ case DOString:
+ *options[j].value.string = argv[i];
+ break;
+ }
+ break;
+ }
+ }
+ if (!found) {
+ printf("%s: unrecognized option '%s'\n", argv[0], argv[i]);
+ printHelp(argv[0], programDescription, options, count);
+ exit(1);
+ }
+ }
+}
+
+
+unsigned long
+DAGetColor(char *colorName)
+{
+ XColor color;
+
+ if (!XParseColor(DADisplay,
+ DefaultColormap(DADisplay, DefaultScreen(DADisplay)),
+ colorName, &color)) {
+ printf("%s: could not parse color %s\n", progName, colorName);
+ exit(1);
+ }
+
+ if (!XAllocColor(DADisplay, DefaultColormap(DADisplay,
DefaultScreen(DADisplay)),
+ &color)) {
+ printf("%s: could not allocate color %s. Using black\n", progName,
colorName);
+ return BlackPixel(DADisplay, DefaultScreen(DADisplay));
+ }
+
+ return color.pixel;
+}
+
+
+void
+DASetTimeout(int milliseconds)
+{
+ d_timeout = milliseconds;
+}
+
+
+
+Bool
+DANextEventOrTimeout(XEvent *event, unsigned long millisec)
+{
+ struct timeval timeout;
+ fd_set rset;
+
+ XSync(DADisplay, False);
+ if (XPending(DADisplay)) {
+ XNextEvent(DADisplay, event);
+ return True;
+ }
+
+ timeout.tv_sec = millisec/1000;
+ timeout.tv_usec = (millisec%1000)*10;
+
+ FD_ZERO(&rset);
+ FD_SET(ConnectionNumber(DADisplay), &rset);
+
+ if (select(ConnectionNumber(DADisplay)+1, &rset, NULL, NULL,
+ &timeout) > 0) {
+ XNextEvent(DADisplay, event);
+ return True;
+ }
+ return False;
+}
+
diff --git a/wmfortune/dockapp.h b/wmfortune/dockapp.h
new file mode 100644
index 0000000..e8e313c
--- /dev/null
+++ b/wmfortune/dockapp.h
@@ -0,0 +1,230 @@
+/*
+ *
+ * Copyright (c) 1999 Alfredo K. Kojima
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef _DOCKAPP_H_
+#define _DOCKAPP_H_
+
+
+/*
+ * This is a simple (trivial) library for writing Window Maker dock
+ * applications, or dockapps (those that only show up in the dock), easily.
+ *
+ * It is very limited and can be only used for dockapps that open a single
+ * appicon for process in only one single display, but this seems to be
+ * enough for most, if not all, dockapps.
+ */
+
+
+#include <X11/Xlib.h>
+#include <X11/xpm.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+
+
+extern Display *DADisplay;
+
+extern Window DAWindow;
+
+extern int DADepth;
+
+extern Visual *DAVisual;
+
+
+/* the callbacks for events related to the dockapp window your program wants
+ * to handle */
+typedef struct {
+ /* the dockapp window was destroyed */
+ void (*destroy)();
+ /* button pressed */
+ void (*buttonPress)(int button, int state, int x, int y);
+ /* button released */
+ void (*buttonRelease)(int button, int state, int x, int y);
+ /* pointer motion */
+ void (*motion)(int x, int y);
+ /* pointer entered dockapp window */
+ void (*enter)();
+ /* pointer leaved dockapp window */
+ void (*leave)();
+ /* timer expired */
+ void (*timeout)();
+} DACallbacks;
+
+
+/* option argument types */
+enum {
+ DONone, /* simple on/off flag */
+ DOInteger, /* an integer number */
+ DOString, /* a string */
+ DONatural /* positive integer number */
+};
+
+
+typedef struct {
+ char *shortForm; /* short form for option, like -w */
+ char *longForm; /* long form for option, like
--withdrawn */
+ char *description; /* description for the option */
+
+ short type; /* type of argument */
+
+ Bool used; /* if the argument was passed in the
+ cmd line */
+ /* the following are only set if the "used" field is True */
+ union { /* a ptr for the value that was passed
+ in the command line */
+ void *ptr;
+
+ int *integer;
+
+ char **string;
+ } value;
+} DAProgramOption;
+
+
+
+/*
+ * DAParseArguments-
+ * Command line argument parser. The program is exited if there are
+ * syntax errors.
+ *
+ * -h, --help and --version are automatically handled (causing the program
+ * to exit)
+ *
+ */
+void DAParseArguments(int argc, char **argv, DAProgramOption *options,
+ int count, char *programDescription,
+ char *versionDescription);
+
+
+/*
+ * DAInitialize-
+ * Initialize the dockapp, open a connection to the X server,
+ * create the needed windows and setup them to become an appicon window.
+ * It will automatically detect if Window Maker is present and use
+ * an appropriate form form
+ *
+ * You must call this always before calling anything else (except for
+ * DAParseArguments())
+ *
+ * Arguments:
+ * display - the name of the display to connect to. Use "" to use the
+ * default value
+ * name - the name of your dockapp, used as the class name for
+ * the WM_CLASS hint. Like WMYAClock
+ * width, height - the size of the dockapp window. 48x48 is the
+ * preferred size
+ * argc, argv - the program arguments. argv[0] will be used as the
+ * instance name for the WM_CLASS hint.
+ */
+void DAInitialize(char *display, char *name, unsigned width, unsigned height,
+ int argc, char **argv);
+
+/*
+ * DASetShape-
+ * Sets the shape mask of the dockapp to the specified one. This is
+ * optional. If you pass None as shapeMask, the dockapp will become
+ * non-shaped.
+ *
+ * This is only needed if you want the dockapp to be shaped.
+ */
+void DASetShape(Pixmap shapeMask);
+
+/*
+ * DASetPixmap-
+ * Sets the image pixmap for the dockapp. Once you set the image with
+ * it, you don't need to handle expose events.
+ */
+void DASetPixmap(Pixmap pixmap);
+
+/*
+ * DAMakePixmap-
+ * Creates a pixmap suitable for using with DASetPixmap()
+ */
+Pixmap DAMakePixmap();
+
+
+
+/*
+ * DAMakePixmapFromData-
+ * Creates a pixmap and mask from XPM data
+ */
+Bool DAMakePixmapFromData(char **data, Pixmap *pixmap, Pixmap *mask,
+ unsigned *width, unsigned *height);
+
+
+/*
+ * Returns a color.
+ */
+unsigned long DAGetColor(char *colorName);
+/*
+ * DAShow-
+ * Opens the dockapp.
+ *
+ * Always call this function or the dockapp won't show up.
+ */
+void DAShow();
+
+/*
+ * DASetCallbacks-
+ * Register a set of callbacks for events like mouse clicks.
+ *
+ * Only needed if you want to receive some event.
+ */
+void DASetCallbacks(DACallbacks *callbacks);
+
+/*
+ * DASetTimeout-
+ * Sets a timeout for the DAEventLoop(). The timeout callback
+ * will be called whenever the app doens't get any events from the
+ * X server in the specified time.
+ */
+void DASetTimeout(int milliseconds);
+
+
+/*
+ * DANextEventOrTimeout-
+ * Waits until an event is received or the timeout limit is
+ * expired. Returns True if an event was received.
+ */
+Bool DANextEventOrTimeout(XEvent *event, unsigned long millisec);
+
+
+/*
+ * DAProcessEvent-
+ * Processes an event. Returns True if the event was handled and
+ * False otherwise.
+ *
+ * Must be called from your event loop, unless you use DAEventLoop()
+ */
+Bool DAProcessEvent(XEvent *event);
+
+/*
+ * DAEventLoop-
+ * Enters an event loop where events are processed until the dockapp
+ * is closed. This function never returns.
+ */
+void DAEventLoop();
+
+
+
+#endif
diff --git a/wmfortune/wmfortune.c b/wmfortune/wmfortune.c
new file mode 100644
index 0000000..2f00601
--- /dev/null
+++ b/wmfortune/wmfortune.c
@@ -0,0 +1,222 @@
+/*
+ * $Id: wmfortune.c,v 0.24 2000/03/28 01:49:58 sugano Exp $
+ * wmfortune Copyright (c) 2000 Makoto Sugano
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+#define BUFF_SIZE 1024
+#define SCROLL_DEFAULT_SPEED 1000
+
+#include <unistd.h>
+#include <stdio.h>
+#include "dockapp.h"
+#include "XPM/panel.xpm"
+#include "XPM/panel_button_pressed.xpm"
+#include "XPM/panel_window.xpm"
+
+/* WINDOW: window for showing the messages */
+#define WINDOW_X 4
+#define WINDOW_Y 4
+#define WINDOW_WIDTH 56
+#define WINDOW_HEIGHT 22
+
+/* BUTTON: button for the new fortune message */
+#define BUTTON_X 6
+#define BUTTON_Y 32
+#define BUTTON_WIDTH 52
+#define BUTTON_HEIGHT 28
+
+/* 6 pixels are used to draw a letter */
+#define PIXELS_PER_LETTER 6
+
+#define STRING_Y 18
+
+/*
+ * pixel lag between the last letter of the previous message
+ * and the first letter of the next message.
+ * if set to 0, the messages appear quickly after
+ * the previous messages ends.
+ */
+#define MESSAGE_LAG 5
+
+char *displayName = "";
+int speed = SCROLL_DEFAULT_SPEED;
+
+/* global variables for main() and callbacks */
+FILE *fortune;
+Pixmap pixmap;
+Pixmap panel_button_pressed_pixmap;
+Pixmap panel_pixmap, panel_mask;
+GC gc;
+int c;
+char buff[BUFF_SIZE];
+
+/*
+ * i: used to count the number of letters in fill_buff().
+ * j: the number that points the message starting pixel.
+ */
+int i, j;
+
+/* fill the buffer with the fortune message. */
+static void
+fill_buff (void)
+{
+ i = 0;
+
+ memset(buff, '\0', BUFF_SIZE);
+ if (!(fortune = popen("fortune -s", "r")))
+ {
+ perror("fortune");
+ exit(0);
+ }
+
+ while (( c = fgetc(fortune)) != EOF)
+ {
+ if (c == '\n')
+ {
+ buff[i++] = ' ';
+ }
+ else if (c == '\t')
+ {
+ buff[i++] = ' ';
+ buff[i++] = ' ';
+ buff[i++] = ' ';
+ }
+ else
+ {
+ buff[i++] = c;
+ }
+ }
+
+ j = i + MESSAGE_LAG;
+ pclose(fortune);
+}
+
+static DAProgramOption options[] = {
+ {"-d", "--displayname", "display to use.", DOString, False, {&displayName}},
+ {"-s", "--speed", "scrolling speed. (default 1000 dot/ms)", DOInteger,
False, {&speed}},
+};
+
+static void
+buttonReleaseCallback (int button, int state, int x, int y)
+{
+ if (button == 1 && BUTTON_X < x &&
+ x < (BUTTON_X + BUTTON_WIDTH) &&
+ BUTTON_Y < y && y < (BUTTON_Y + BUTTON_HEIGHT))
+ {
+ fill_buff();
+ }
+ XCopyArea(DADisplay, panel_pixmap, pixmap, gc,
+ BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT,
+ BUTTON_X, BUTTON_Y);
+}
+
+static void
+buttonPressCallback (int button, int state, int x, int y)
+{
+ if (button == 1 && BUTTON_X < x &&
+ x < (BUTTON_X + BUTTON_WIDTH) &&
+ BUTTON_Y < y && y < (BUTTON_Y + BUTTON_HEIGHT))
+ {
+ XCopyArea(DADisplay, panel_button_pressed_pixmap, pixmap, gc,
+ BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT,
+ BUTTON_X, BUTTON_Y);
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ Pixmap panel_window_pixmap;
+
+ int w = 64, h = 64;
+
+ DACallbacks callbacks = {NULL,buttonPressCallback
+ ,buttonReleaseCallback,NULL,NULL,NULL,NULL};
+
+ DAParseArguments(argc, argv, options,
+ sizeof(options)/sizeof(DAProgramOption),
+ "dockapp that shows the messages from fortune command.",
"$Id: wmfortune.c,v 0.24 2000/03/28 01:49:58 sugano Exp $");
+
+ fill_buff();
+
+ DAInitialize(displayName, "wmfortune", 64, 64, argc, argv);
+ pixmap = DAMakePixmap();
+
+ /* making pixmap for the panel */
+ DAMakePixmapFromData(panel_xpm, &panel_pixmap,
+ &panel_mask, &w, &h);
+ DAMakePixmapFromData(panel_button_pressed_xpm,
+ &panel_button_pressed_pixmap, NULL, &w, &h);
+ DAMakePixmapFromData(panel_window_xpm,
+ &panel_window_pixmap, NULL, &w, &h);
+
+ /* setting up the mask for the panel */
+ DASetShape(panel_mask);
+ DASetPixmap(panel_pixmap);
+
+ /* setting up the graphic context */
+ gc = DefaultGC(DADisplay, DefaultScreen(DADisplay));
+
+ DASetCallbacks(&callbacks);
+ DAShow();
+
+ /* drawing the button */
+ XCopyArea(DADisplay, panel_pixmap, pixmap, gc,
+ BUTTON_X, BUTTON_Y, BUTTON_WIDTH, BUTTON_HEIGHT,
+ BUTTON_X, BUTTON_Y);
+
+ while (1)
+ {
+ XEvent ev;
+
+ /* sets the foreground color green */
+ XSetForeground(DADisplay, gc, DAGetColor("green"));
+ XCopyArea(DADisplay, panel_window_pixmap, pixmap, gc,
+ WINDOW_X, WINDOW_Y, WINDOW_WIDTH, WINDOW_HEIGHT,
+ WINDOW_X, WINDOW_Y);
+ XDrawString(DADisplay, pixmap, gc, j, STRING_Y, buff, strlen(buff));
+
+ DASetPixmap(pixmap);
+
+ /* scroll the message by a pixel to left */
+ i--;
+ j = i + MESSAGE_LAG;
+
+ /*
+ * starts scrolling the messages from the beginning
+ * if the message ends.
+ */
+ if (j == - (PIXELS_PER_LETTER) * strlen(buff))
+ {
+ /* if not 64, message suddenly appears in the window */
+ i = 64;
+ j = i + MESSAGE_LAG;
+ }
+
+ /* handle all pending X events */
+ while (XPending(DADisplay))
+ {
+ XNextEvent(DADisplay, &ev);
+ DAProcessEvent(&ev);
+ }
+ usleep(speed);
+ }
+ return 0;
+}
--
2.7.4
--
To unsubscribe, send mail to [email protected].