From 5716cd3e6a2ad006b10bc07b54143960bd9fa23b Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Tue, 3 Jan 2023 15:25:34 -0500 Subject: [PATCH 1/9] Add xpms, xbm for 80x80 This is incomplete. It lacks command line args, other options don't work, etc. But icon display looks good at 80x80. Untested at 64x64 --- wmbutton/backdrop-80x80.xpm | 142 ++++ wmbutton/buttons-80x80.xpm | 1412 +++++++++++++++++++++++++++++++++++ wmbutton/mask-80c80.xbm | 85 +++ wmbutton/wmbutton.c | 6 +- 4 files changed, 1642 insertions(+), 3 deletions(-) create mode 100644 wmbutton/backdrop-80x80.xpm create mode 100644 wmbutton/buttons-80x80.xpm create mode 100644 wmbutton/mask-80c80.xbm diff --git a/wmbutton/backdrop-80x80.xpm b/wmbutton/backdrop-80x80.xpm new file mode 100644 index 00000000..d656fc8c --- /dev/null +++ b/wmbutton/backdrop-80x80.xpm @@ -0,0 +1,142 @@ +/* XPM */ +static char * backdrop_xpm[] = { +"80 80 59 1", +" c None", +". c #F3F3F3", +"+ c #000000", +"@ c #E0E0E0", +"# c #516161", +"$ c #A2A2B2", +"% c #A2A2A2", +"& c #A292B2", +"* c #92A2A2", +"= c #A292A2", +"- c #9292A2", +"; c #929292", +"> c #9282A2", +", c #829292", +"' c #928292", +") c #828292", +"! c #828282", +"~ c #827192", +"{ c #615161", +"] c #92A2B2", +"^ c #9292B2", +"/ c #8292A2", +"( c #8282A2", +"_ c #718292", +": c #718282", +"< c #282828", +"[ c #515161", +"} c #858595", +"| c #C7C3C7", +"1 c #515151", +"2 c #827182", +"3 c #415151", +"4 c #514151", +"5 c #717192", +"6 c #717182", +"7 c #717171", +"8 c #414151", +"9 c #617182", +"0 c #415141", +"a c #716182", +"b c #414141", +"c c #617171", +"d c #413041", +"e c #304141", +"f c #716171", +"g c #616171", +"h c #616182", +"i c #303030", +"j c #616161", +"k c #303041", +"l c #516171", +"m c #304130", +"n c #615171", +"o c #203030", +"p c #302030", +"q c #515171", +"r c #202030", +"s c #202020", +"t c #413051", +"...............................................................................+", +".@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+", +".@$%$%&%&%&%&*=-&*=-=-=- --=--;>;>;>;>,>,>,')',')')'))!)))!~!~!{+", +".@$$*$]$*$*$*&*&*^*-*-*- *-*-/---,-,-,>,>,(,>,(,),),)))))_)_):)#+", +".@$%<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~![+", +".@]$<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:~1+", +".@&%<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|~:[+", +".@*$<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:~1+", +".@&%<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|2:[+", +".@*&<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:~3+", +".@=%<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|~:4+", +".@*$<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:53+", +".@&*<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|264+", +".@*&<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:63+", +".@=-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|264+", +".@*=<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:63+", +".@=*<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|264+", +".@*^<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|:63+", +".@=-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|664+", +".@*-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|663+", +".@=-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|674+", +".@--<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|668+", +".@=-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|674+", +".@*-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|960+", +".@-;<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|a78+", +".@--<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|96b+", +".@>;<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|acd+", +".@--<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cab+", +".@-;<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|a7b+", +".@,-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cae+", +".@>;<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|acd+", +".@,-<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cae+", +".@>,<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fcd+", +".@>,<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fcd+", +".@,><}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cae+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|agd+", +".@,><}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|che+", +".@>,<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@,><}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cge+", +".@')<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|ggd+", +".@,'<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|cge+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@',<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|fgd+", +".@,(<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|ggi+", +".@')<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|gjk+", +".@,)<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|lgm+", +".@'!<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|njk+", +".@))<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|ggo+", +".@))<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|njp+", +".@))<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#go+", +".@)!<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|nji+", +".@))<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|lgo+", +".@~!<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|n#p+", +".@_)<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#no+", +".@)!<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|njp+", +".@:~<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#no+", +".@~!<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|n#p+", +".@:)<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#qo+", +".@~:<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|{[p+", +".@:~<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|#no+", +".@~:<}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|{[p+", +".@:~|||||||||||||||||||| ||||||||||||||||||||||||||||||||||||#qo+", +".@~:262626262667a767a7ac a7acfcfcfgfgfggjgggjnjnjnjn#n#n#{[{[{[r+", +".@:5:~:5:666666666c696ca cacacachcgggcggggglglg#nln#n#n#q#q[q#[s+", +".@{1[1[1[141434340484b4b 8btb8bdbdededmdikikikipipipipoprpspsrsr+", +".+++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++"}; diff --git a/wmbutton/buttons-80x80.xpm b/wmbutton/buttons-80x80.xpm new file mode 100644 index 00000000..febb060a --- /dev/null +++ b/wmbutton/buttons-80x80.xpm @@ -0,0 +1,1412 @@ +/* XPM */ +static char * buttons_xpm[] = { +"66 66 1343 2", +" c None", +". c #FFFFFF", +"+ c #000000", +"@ c #AEAAAE", +"# c #727272", +"$ c #A86666", +"% c #AE7575", +"& c #B17878", +"* c #B37979", +"= c #B57979", +"- c #B87979", +"; c #BA7979", +"> c #BC7A7A", +", c #BF7A7A", +"' c #C27C7C", +") c #C37C7C", +"! c #C57A7A", +"~ c #BB8585", +"{ c #ABABAB", +"] c #B4B4B4", +"^ c #6F6F6F", +"/ c #737373", +"( c #5D5D5D", +"_ c #595959", +": c #717170", +"< c #91908F", +"[ c #8D8C8B", +"} c #858683", +"| c #92928E", +"1 c #9B9D98", +"2 c #B0AEA8", +"3 c #9B9C96", +"4 c #71736A", +"5 c #59594B", +"6 c #474743", +"7 c #B5B5B5", +"8 c #6F706F", +"9 c #686868", +"0 c #969696", +"a c #9B9B9B", +"b c #9F9F9F", +"c c #A3A3A3", +"d c #A8A8A8", +"e c #ACACAC", +"f c #B1B1B1", +"g c #FF7474", +"h c #FFB9B9", +"i c #FFB1B1", +"j c #FFAAAA", +"k c #FF9C9C", +"l c #FF8D8D", +"m c #FF7F7F", +"n c #FF6565", +"o c #FF5A5A", +"p c #FF5757", +"q c #FF0404", +"r c #D90000", +"s c #8E8E8E", +"t c #EEEDEA", +"u c #FFFBF7", +"v c #FCFBF7", +"w c #F5F7F2", +"x c #E7E8E2", +"y c #D5D4CB", +"z c #BEBFB8", +"A c #AAA99F", +"B c #91928D", +"C c #767879", +"D c #6E7265", +"E c #90917F", +"F c #1A1D12", +"G c #BABABA", +"H c #514E5A", +"I c #1A1729", +"J c #201A30", +"K c #23203B", +"L c #232039", +"M c #211E37", +"N c #616161", +"O c #AE7676", +"P c #FFC4C4", +"Q c #FFFCFC", +"R c #FFD9D9", +"S c #FFA6A6", +"T c #FF9595", +"U c #FF8686", +"V c #FF6F6F", +"W c #FFC0C0", +"X c #FFABAB", +"Y c #FF3333", +"Z c #B60000", +"` c #797979", +" . c #A9A9A9", +".. c #787878", +"+. c #878585", +"@. c #9F99A7", +"#. c #4E4271", +"$. c #342C55", +"%. c #1A1141", +"&. c #10043F", +"*. c #0C0438", +"=. c #080435", +"-. c #080430", +";. c #060428", +">. c #000424", +",. c #353647", +"'. c #A8A99C", +"). c #212516", +"!. c #BEBEBE", +"~. c #5B566C", +"{. c #353056", +"]. c #423968", +"^. c #48416C", +"/. c #484066", +"(. c #413969", +"_. c #B9B9B9", +":. c #B17979", +"<. c #FFB3B3", +"[. c #FFF3F3", +"}. c #FFE3E3", +"|. c #FF8484", +"1. c #FF7777", +"2. c #FF6464", +"3. c #FF8888", +"4. c #FFD7D7", +"5. c #FF0000", +"6. c #C40000", +"7. c #7A7A7A", +"8. c #7D7D7D", +"9. c #888785", +"0. c #787186", +"a. c #170450", +"b. c #100448", +"c. c #100444", +"d. c #10043E", +"e. c #0B0438", +"f. c #353749", +"g. c #ADAC9E", +"h. c #2B2E1D", +"i. c #ADADAD", +"j. c #615C75", +"k. c #423A61", +"l. c #4F4D70", +"m. c #594E85", +"n. c #493F66", +"o. c #B37A7A", +"p. c #FFADAD", +"q. c #FFE1E1", +"r. c #FFF1F1", +"s. c #FF7676", +"t. c #FF6868", +"u. c #FF6060", +"v. c #FF4949", +"w. c #FFCFCF", +"x. c #FFBCBC", +"y. c #FFC5C5", +"z. c #CB0000", +"A. c #7E7E7E", +"B. c #818181", +"C. c #888887", +"D. c #787187", +"E. c #110448", +"F. c #080436", +"G. c #070428", +"H. c #35374A", +"I. c #ADAEA0", +"J. c #3B3E2B", +"K. c #61625F", +"L. c #635C75", +"M. c #3D3660", +"N. c #494169", +"O. c #4B4669", +"P. c #4F4A6A", +"Q. c #8D8F8D", +"R. c #C2C2C2", +"S. c #B67B7B", +"T. c #FF9F9F", +"U. c #FFCECE", +"V. c #FFBABA", +"W. c #FF4C4C", +"X. c #FF4848", +"Y. c #FF6262", +"Z. c #FFB4B4", +"`. c #FFCBCB", +" + c #C70000", +".+ c #808080", +"++ c #AFAFAF", +"@+ c #868686", +"#+ c #898A89", +"$+ c #757084", +"%+ c #2A185A", +"&+ c #291D44", +"*+ c #2E2648", +"=+ c #170A45", +"-+ c #B1B3A6", +";+ c #51533D", +">+ c #4F514D", +",+ c #5D5871", +"'+ c #333158", +")+ c #3D3460", +"!+ c #423E65", +"~+ c #515171", +"{+ c #9D9E9D", +"]+ c #626262", +"^+ c #8A8A8A", +"/+ c #B87C7C", +"(+ c #FF8E8E", +"_+ c #FFC1C1", +":+ c #FFA7A7", +"<+ c #FF3535", +"[+ c #FF2929", +"}+ c #FFD3D3", +"|+ c #FFCCCC", +"1+ c #838383", +"2+ c #B2B2B2", +"3+ c #8B8B8B", +"4+ c #8A8B8A", +"5+ c #777085", +"6+ c #3A334E", +"7+ c #0C0A0C", +"8+ c #141414", +"9+ c #373151", +"0+ c #0C0439", +"a+ c #080437", +"b+ c #393C4C", +"c+ c #B8B9AC", +"d+ c #64664F", +"e+ c #565751", +"f+ c #28233D", +"g+ c #2E2749", +"h+ c #373051", +"i+ c #393561", +"j+ c #393259", +"k+ c #352C52", +"l+ c #6E6E6E", +"m+ c #BA7B7B", +"n+ c #FF8989", +"o+ c #FF2121", +"p+ c #FFD1D1", +"q+ c #CA0000", +"r+ c #878787", +"s+ c #B8B8B8", +"t+ c #8F8F8F", +"u+ c #8C8C8A", +"v+ c #797487", +"w+ c #5F5A6C", +"x+ c #847A4D", +"y+ c #817D76", +"z+ c #282634", +"A+ c #0E083E", +"B+ c #060429", +"C+ c #000425", +"D+ c #3C3E50", +"E+ c #BDBFB1", +"F+ c #767860", +"G+ c #595A54", +"H+ c #8D8D8D", +"I+ c #929292", +"J+ c #959497", +"K+ c #ACABAE", +"L+ c #737473", +"M+ c #302A4F", +"N+ c #3F3C64", +"O+ c #4B4274", +"P+ c #4F4876", +"Q+ c #3F3C69", +"R+ c #BD7C7C", +"S+ c #FAA8A8", +"T+ c #E93B3B", +"U+ c #F2C6C6", +"V+ c #EB9191", +"W+ c #D12E2E", +"X+ c #D50000", +"Y+ c #E88E8E", +"Z+ c #FFD0D0", +"`+ c #CE0000", +" @ c #898989", +".@ c #BCBCBC", +"+@ c #949494", +"@@ c #8D8D8C", +"#@ c #7C788C", +"$@ c #776960", +"%@ c #E6C019", +"&@ c #B1993D", +"*@ c #26242E", +"=@ c #171045", +"-@ c #07042B", +";@ c #3D3F52", +">@ c #C6C5B7", +",@ c #818368", +"'@ c #595A53", +")@ c #393052", +"!@ c #494261", +"~@ c #52497A", +"{@ c #4F487A", +"]@ c #4D4669", +"^@ c #463E69", +"/@ c #BC7B7B", +"(@ c #E86C6C", +"_@ c #E1A2A2", +":@ c #DFA2A2", +"<@ c #C34141", +"[@ c #C54343", +"}@ c #F0D8D8", +"|@ c #A80000", +"1@ c #AD0000", +"2@ c #AB0000", +"3@ c #AA0000", +"4@ c #BB0000", +"5@ c #999999", +"6@ c #8F8E8C", +"7@ c #8F8C9A", +"8@ c #959398", +"9@ c #E5E4DF", +"0@ c #FBF8F4", +"a@ c #383437", +"b@ c #38334F", +"c@ c #0B0639", +"d@ c #06042B", +"e@ c #47495A", +"f@ c #C7C8BB", +"g@ c #858770", +"h@ c #5C5D57", +"i@ c #14D121", +"j@ c #332C54", +"k@ c #3D3A69", +"l@ c #494266", +"m@ c #494666", +"n@ c #494363", +"o@ c #3F3B66", +"p@ c #979897", +"q@ c #AE7D7D", +"r@ c #CD6262", +"s@ c #EABFBF", +"t@ c #EFCBCB", +"u@ c #C94646", +"v@ c #C02929", +"w@ c #FCF5F5", +"x@ c #C63A3A", +"y@ c #B10000", +"z@ c #B50000", +"A@ c #B70000", +"B@ c #A10000", +"C@ c #BDBDBD", +"D@ c #9E9E9E", +"E@ c #90908E", +"F@ c #707170", +"G@ c #DEDDDA", +"H@ c #FEFBF8", +"I@ c #FAF7F4", +"J@ c #969592", +"K@ c #1B1A1C", +"L@ c #807D8A", +"M@ c #767580", +"N@ c #75737C", +"O@ c #707279", +"P@ c #939496", +"Q@ c #C7C5B7", +"R@ c #797E67", +"S@ c #999A99", +"T@ c #58576C", +"U@ c #5C5874", +"V@ c #5E5576", +"W@ c #5C597A", +"X@ c #5E5778", +"Y@ c #5C5570", +"Z@ c #646464", +"`@ c #B07C7C", +" # c #DB8282", +".# c #ECBABA", +"+# c #E7AFAF", +"@# c #DA7F7F", +"## c #BA0D0D", +"$# c #BD1616", +"%# c #B00000", +"&# c #B40000", +"*# c #BA0000", +"=# c #A20000", +"-# c #C1C1C1", +";# c #A2A2A2", +"># c #626362", +",# c #737270", +"'# c #FFFBF8", +")# c #FDFBF8", +"!# c #FFFCFA", +"~# c #E4E1DE", +"{# c #060406", +"]# c #ACAEAC", +"^# c #EFEEEC", +"/# c #EEEDE8", +"(# c #E7EAE5", +"_# c #E4E2DD", +":# c #B9BAAC", +"<# c #676C55", +"[# c #E9E9E9", +"}# c #6B6C6D", +"|# c #828282", +"1# c #B07B7B", +"2# c #D36060", +"3# c #CD4D4D", +"4# c #C63434", +"5# c #B80000", +"6# c #B90000", +"7# c #9E0000", +"8# c #C8C8C8", +"9# c #5B543A", +"0# c #A19054", +"a# c #FDFBF7", +"b# c #FCFAF6", +"c# c #F2E6B8", +"d# c #090608", +"e# c #807E6E", +"f# c #9A9A8E", +"g# c #95958B", +"h# c #565947", +"i# c #70715E", +"j# c #78786D", +"k# c #91928E", +"l# c #EDEDED", +"m# c #A4A4A4", +"n# c #B1B0B4", +"o# c #B1AFB4", +"p# c #858587", +"q# c #6B6A6B", +"r# c #757475", +"s# c #787678", +"t# c #7C7A7C", +"u# c #AC7171", +"v# c #8B0000", +"w# c #920000", +"x# c #980000", +"y# c #970000", +"z# c #9A0000", +"A# c #990000", +"B# c #8F0000", +"C# c #880000", +"D# c #979797", +"E# c #D5D5D5", +"F# c #534820", +"G# c #EFC522", +"H# c #EFC610", +"I# c #7D755E", +"J# c #FEFBF7", +"K# c #E4C261", +"L# c #B78C0D", +"M# c #C2A92E", +"N# c #2C2D1E", +"O# c #26281A", +"P# c #515341", +"Q# c #727370", +"R# c #A4A5A3", +"S# c #F2F2F2", +"T# c #CDBC6E", +"U# c #AE6E22", +"V# c #6B6A6C", +"W# c #A7A6A6", +"X# c #8A5858", +"Y# c #745050", +"Z# c #755050", +"`# c #785353", +" $ c #795454", +".$ c #7B5656", +"+$ c #7E5959", +"@$ c #805B5B", +"#$ c #815C5C", +"$$ c #845F5F", +"%$ c #876363", +"&$ c #8F6868", +"*$ c #A58181", +"=$ c #E7E7E7", +"-$ c #63511C", +";$ c #F3C410", +">$ c #F7CF10", +",$ c #D7B540", +"'$ c #A6A3A3", +")$ c #787773", +"!$ c #956E0F", +"~$ c #F6CA10", +"{$ c #D4B328", +"]$ c #7F7A62", +"^$ c #4E4E46", +"/$ c #2D2E24", +"($ c #4C4C40", +"_$ c #90918A", +":$ c #F7F7F7", +"<$ c #9B9B9D", +"[$ c #6E6C6F", +"}$ c #A7A7A7", +"|$ c #AAAAAA", +"1$ c #B3B3B3", +"2$ c #B6B6B6", +"3$ c #CBCBCB", +"4$ c #D4D4D4", +"5$ c #DFDFDF", +"6$ c #FAFAFA", +"7$ c #494847", +"8$ c #373022", +"9$ c #755E2F", +"0$ c #695024", +"a$ c #2D2B23", +"b$ c #292921", +"c$ c #664D24", +"d$ c #6F5624", +"e$ c #40403D", +"f$ c #C6C6C6", +"g$ c #E4E4E4", +"h$ c #FCFCFC", +"i$ c #C7C7C7", +"j$ c #696869", +"k$ c #000001", +"l$ c #FEFEFE", +"m$ c #020202", +"n$ c #5C5C5C", +"o$ c #7F7F7F", +"p$ c #858585", +"q$ c #888888", +"r$ c #707070", +"s$ c #919397", +"t$ c #9B9EA4", +"u$ c #9DA0A7", +"v$ c #9FA2A9", +"w$ c #A0A4AB", +"x$ c #A1A5AD", +"y$ c #A3A6AB", +"z$ c #A6A6A6", +"A$ c #B0B0B0", +"B$ c #2C2C2C", +"C$ c #F1F1F1", +"D$ c #878D94", +"E$ c #868D94", +"F$ c #888E94", +"G$ c #858C93", +"H$ c #858B92", +"I$ c #848A91", +"J$ c #959595", +"K$ c #82827A", +"L$ c #A48E74", +"M$ c #817A73", +"N$ c #C3C6CC", +"O$ c #FEFFFF", +"P$ c #F8FAFF", +"Q$ c #EEF1FA", +"R$ c #E0E5F2", +"S$ c #B3BDD1", +"T$ c #AFB2B9", +"U$ c #E5E5E5", +"V$ c #939393", +"W$ c #A1805D", +"X$ c #FFCD81", +"Y$ c #DD9B55", +"Z$ c #89827B", +"`$ c #C4C7CD", +" % c #FAFCFF", +".% c #F1F4FC", +"+% c #E5EAF4", +"@% c #DAE0ED", +"#% c #B4B7BE", +"$% c #202020", +"%% c #829BB6", +"&% c #F0F0F0", +"*% c #EFEFEF", +"=% c #ECECEC", +"-% c #EBEBEB", +";% c #A87E53", +">% c #F5800D", +",% c #FFCF81", +"'% c #DE9E58", +")% c #C9C4C3", +"!% c #FBFDFF", +"~% c #F5F7FD", +"{% c #E9EDF7", +"]% c #F5F8FD", +"^% c #D9DFED", +"/% c #BABDC4", +"(% c #92D0F5", +"_% c #10161B", +":% c #1D2931", +"<% c #3B5462", +"[% c #75A6C4", +"}% c #98D3F5", +"|% c #7590AE", +"1% c #EEEEEE", +"2% c #EAEAEA", +"3% c #919191", +"4% c #9D9D9D", +"5% c #A88665", +"6% c #FF931E", +"7% c #F57F0D", +"8% c #FFC87E", +"9% c #EBA863", +"0% c #F5EEE7", +"a% c #FDFFFF", +"b% c #F7F9FE", +"c% c #EDF0F9", +"d% c #A3AFC7", +"e% c #41ACFD", +"f% c #256391", +"g% c #3286C5", +"h% c #348ACB", +"i% c #163B57", +"j% c #3081BE", +"k% c #A1A1A1", +"l% c #926F59", +"m% c #E16E0D", +"n% c #FF8F16", +"o% c #FFBF64", +"p% c #E89F5B", +"q% c #F8F0EA", +"r% c #EFF3FA", +"s% c #E6EAF5", +"t% c #DADDE4", +"u% c #ABB5CC", +"v% c #61BAFA", +"w% c #172B3A", +"x% c #040608", +"y% c #091016", +"z% c #5CB1EE", +"A% c #D9D9D9", +"B% c #B8B5B5", +"C% c #7E7775", +"D% c #B3AEAD", +"E% c #CACACA", +"F% c #E8E8E8", +"G% c #909090", +"H% c #82726B", +"I% c #903400", +"J% c #E26C0A", +"K% c #FC890D", +"L% c #FF8808", +"M% c #FDB683", +"N% c #EEC297", +"O% c #FFF6F4", +"P% c #F8FBFF", +"Q% c #B4BDD1", +"R% c #0E2537", +"S% c #0A1A26", +"T% c #B07B6F", +"U% c #C46755", +"V% c #E1705A", +"W% c #DA6A53", +"X% c #D16650", +"Y% c #B35846", +"Z% c #975C50", +"`% c #544441", +" & c #7F6A62", +".& c #8F3200", +"+& c #E26600", +"@& c #FF7902", +"#& c #FD9D66", +"$& c #FFF0D8", +"%& c #FEDBCA", +"&& c #F9FBFF", +"*& c #ECF0F9", +"=& c #E1E6F2", +"-& c #BBC3D6", +";& c #08131D", +">& c #716E7A", +",& c #D3705C", +"'& c #E06C56", +")& c #DD6B55", +"!& c #D76851", +"~& c #CF644F", +"{& c #C7614D", +"]& c #C05D4A", +"^& c #B85A47", +"/& c #AE5745", +"(& c #66443E", +"_& c #7E6861", +":& c #8C3301", +"<& c #C05410", +"[& c #D86E3A", +"}& c #FABE97", +"|& c #FFE1C6", +"1& c #F0E5E7", +"2& c #E8ECF6", +"3& c #E5E9F4", +"4& c #C0C8DA", +"5& c #C0C0C0", +"6& c #225B85", +"7& c #3FA6F5", +"8& c #CB7462", +"9& c #DF6C55", +"0& c #DB6A53", +"a& c #D36750", +"b& c #CB634E", +"c& c #C45F4B", +"d& c #BC5B48", +"e& c #B55946", +"f& c #AD5544", +"g& c #A65241", +"h& c #A15443", +"i& c #948886", +"j& c #6A6A6A", +"k& c #757575", +"l& c #6E5A53", +"m& c #4D301B", +"n& c #75451E", +"o& c #C97750", +"p& c #FBCAA9", +"q& c #F8D4C8", +"r& c #EBEFF8", +"s& c #C3CBDC", +"t& c #C4C4C4", +"u& c #E9F6FD", +"v& c #333334", +"w& c #4C4C4C", +"x& c #606E80", +"y& c #E27E67", +"z& c #D76852", +"A& c #CF654F", +"B& c #C8614D", +"C& c #B37357", +"D& c #6C777D", +"E& c #647276", +"F& c #5D6B6F", +"G& c #566668", +"H& c #4F6062", +"I& c #7F817F", +"J& c #6D6D6D", +"K& c #777777", +"L& c #7E7F84", +"M& c #5F5B57", +"N& c #5C3219", +"O& c #BD7552", +"P& c #EEAE8B", +"Q& c #E1E0E2", +"R& c #EAEEF7", +"S& c #C5CCDD", +"T& c #D2ECFB", +"U& c #3B4246", +"V& c #E5937F", +"W& c #CC634E", +"X& c #C45F4C", +"Y& c #BD5C49", +"Z& c #CEB660", +"`& c #5B9F93", +" * c #26849B", +".* c #1F7B90", +"+* c #197386", +"@* c #297988", +"#* c #505F61", +"$* c #747474", +"%* c #919398", +"&* c #9A9B9E", +"** c #665D5A", +"=* c #4A3423", +"-* c #86847E", +";* c #EBEFF7", +">* c #E7EBF5", +",* c #C6CDDE", +"'* c #CCCCCC", +")* c #597F96", +"!* c #989898", +"~* c #B48A80", +"{* c #D47B68", +"]* c #B95A47", +"^* c #B25845", +"/* c #AE5E46", +"(* c #D2D468", +"_* c #AEC16D", +":* c #237D90", +"<* c #197487", +"[* c #2C7A89", +"}* c #2F5A62", +"|* c #6F7272", +"1* c #8C8C8C", +"2* c #999CA0", +"3* c #B2B4B9", +"4* c #B0B3B7", +"5* c #9D9FA4", +"6* c #565759", +"7* c #CDD1D8", +"8* c #D0D0D0", +"9* c #5E879F", +"0* c #555352", +"a* c #916B62", +"b* c #C37968", +"c* c #AD5D4D", +"d* c #B48451", +"e* c #CCCF68", +"f* c #C5C769", +"g* c #6B957C", +"h* c #39727D", +"i* c #274B53", +"j* c #2D3739", +"k* c #CACDD2", +"l* c #F0F0F2", +"m* c #E8EBF1", +"n* c #E5E8EF", +"o* c #E3E6EE", +"p* c #E2E6EE", +"q* c #E4E8F1", +"r* c #E6EBF5", +"s* c #C6CEDE", +"t* c #AEAEAE", +"u* c #796D6A", +"v* c #765149", +"w* c #8C764A", +"x* c #97974E", +"y* c #838447", +"z* c #586347", +"A* c #293B3F", +"B* c #565858", +"C* c #BBBBBB", +"D* c #CFD3DA", +"E* c #D7DCE7", +"F* c #D3DAE6", +"G* c #D2D8E5", +"H* c #D1D7E5", +"I* c #CFD6E3", +"J* c #CDD4E3", +"K* c #CBD2E1", +"L* c #C9D0E0", +"M* c #C7CFDF", +"N* c #B6BFD2", +"O* c #D8D8D8", +"P* c #C3C3C3", +"Q* c #B7B7B7", +"R* c #A0A0A0", +"S* c #A5A5A5", +"T* c #BFBFBF", +"U* c #0B0B0B", +"V* c #090909", +"W* c #D9D499", +"X* c #E4D08D", +"Y* c #EABE8D", +"Z* c #E3B26B", +"`* c #E3B982", +" = c #BDA385", +".= c #C6C6D5", +"+= c #9494AD", +"@= c #787879", +"#= c #78787D", +"$= c #838386", +"%= c #80807B", +"&= c #79786A", +"*= c #868568", +"== c #8C8C6B", +"-= c #888874", +";= c #EDE1C3", +">= c #ECC48A", +",= c #F69854", +"'= c #F78E42", +")= c #EB9D54", +"!= c #FFC280", +"~= c #DA776F", +"{= c #EA3166", +"]= c #DE2F66", +"^= c #D57F6A", +"/= c #BBA97D", +"(= c #F3C3BC", +"_= c #ED6B56", +":= c #E8E1E3", +"<= c #EEEEF2", +"[= c #EAEAF0", +"}= c #DEDEE7", +"|= c #E0E0E9", +"1= c #7F7F83", +"2= c #A7A7AE", +"3= c #D2D2CB", +"4= c #EDEDC5", +"5= c #FDF9AE", +"6= c #EDE98B", +"7= c #D2CF66", +"8= c #ADA84D", +"9= c #8E8B4B", +"0= c #9D9986", +"a= c #EED392", +"b= c #FFCF86", +"c= c #FBBB57", +"d= c #E92F00", +"e= c #EB2F00", +"f= c #D85025", +"g= c #F3B366", +"h= c #E6466F", +"i= c #FF0061", +"j= c #DD7075", +"k= c #D6B275", +"l= c #B89A77", +"m= c #C6BFCC", +"n= c #F36C55", +"o= c #EB3517", +"p= c #DCBAB7", +"q= c #EDEFF4", +"r= c #EDEDF2", +"s= c #E1E1E9", +"t= c #C9C9D7", +"u= c #767675", +"v= c #8C8B7D", +"w= c #D7D7B9", +"x= c #FFFFF0", +"y= c #FFFFFA", +"z= c #FFFDD8", +"A= c #FFFAB0", +"B= c #FFF88D", +"C= c #FFF566", +"D= c #FFF746", +"E= c #D1C336", +"F= c #82723E", +"G= c #9A8F7E", +"H= c #F1DCB7", +"I= c #FDCF86", +"J= c #FFCF72", +"K= c #F8BB57", +"L= c #D02F00", +"M= c #DF2F00", +"N= c #EF4310", +"O= c #F6B661", +"P= c #E44D6C", +"Q= c #F00877", +"R= c #F80677", +"S= c #DD7179", +"T= c #CEA764", +"U= c #CE9B60", +"V= c #C6C3D1", +"W= c #F3806D", +"X= c #ED2F11", +"Y= c #D9BCB9", +"Z= c #EDEFF3", +"`= c #E4E4EB", +" - c #7D7D6B", +".- c #D7D79A", +"+- c #FFFBBF", +"@- c #FFFEDB", +"#- c #FFFEE4", +"$- c #FFFBB2", +"%- c #FFF986", +"&- c #FFF658", +"*- c #FDEF36", +"=- c #D6B832", +"-- c #926E35", +";- c #6F5642", +">- c #B5B1AC", +",- c #F3D269", +"'- c #F8D334", +")- c #FFDC45", +"!- c #FAC75D", +"~- c #DF7D3B", +"{- c #E97A2A", +"]- c #E7843C", +"^- c #EDBD61", +"/- c #E3947A", +"(- c #DE6C79", +"_- c #DB3686", +":- c #CE7E9D", +"<- c #CE8BA6", +"[- c #CE8188", +"}- c #996D74", +"|- c #D1D1D1", +"1- c #F3CDC6", +"2- c #E93E23", +"3- c #DED3D3", +"4- c #F1F1F5", +"5- c #E6E6ED", +"6- c #DBDBE5", +"7- c #CDCDDA", +"8- c #BFBFD0", +"9- c #76756C", +"0- c #A9A669", +"a- c #FFF992", +"b- c #FFF9A4", +"c- c #FFFEE3", +"d- c #FDFDED", +"e- c #F5F2B4", +"f- c #F9F477", +"g- c #FFF23D", +"h- c #D6BA31", +"i- c #A97B33", +"j- c #A67133", +"k- c #826137", +"l- c #A08C69", +"m- c #FFEB19", +"n- c #FFFF00", +"o- c #FFF709", +"p- c #F2D135", +"q- c #E5C26F", +"r- c #D3CE77", +"s- c #D1B165", +"t- c #CFB875", +"u- c #AF7C77", +"v- c #B1306F", +"w- c #961766", +"x- c #9D36B5", +"y- c #9F09D6", +"z- c #A406CC", +"A- c #A55DB4", +"B- c #F5EAE9", +"C- c #EE391C", +"D- c #DCB3AE", +"E- c #F0F1F6", +"F- c #F0F0F4", +"G- c #E7E7EE", +"H- c #E3E3EA", +"I- c #D0D0DC", +"J- c #C4C4D3", +"K- c #C2C2D1", +"L- c #89865A", +"M- c #D2CC62", +"N- c #FFF676", +"O- c #FFF785", +"P- c #FFFA9D", +"Q- c #FCFABC", +"R- c #E2E3DA", +"S- c #C9C9C7", +"T- c #BFC0A2", +"U- c #CEB94A", +"V- c #A5732D", +"W- c #AD7933", +"X- c #C79333", +"Y- c #AD8735", +"Z- c #907A4A", +"`- c #CDCDCD", +" ; c #FBEF0C", +".; c #FFF70C", +"+; c #DFD148", +"@; c #DDC063", +"#; c #D0C261", +"$; c #D5B46A", +"%; c #907059", +"&; c #421B10", +"*; c #7B0947", +"=; c #7C0642", +"-; c #B43ED9", +";; c #A90BFD", +">; c #B853C8", +",; c #9F7258", +"'; c #F0D5D0", +"); c #EA3A1C", +"!; c #E05A44", +"~; c #E5E5E8", +"{; c #E8E8EE", +"]; c #CBCBD9", +"^; c #C8C8D6", +"/; c #868247", +"(; c #EDE54C", +"_; c #FFF753", +":; c #FFF85C", +"<; c #FDF76B", +"[; c #EBEAC1", +"}; c #BCBCC5", +"|; c #686875", +"1; c #878895", +"2; c #BFB9B6", +"3; c #BE903A", +"4; c #D5A730", +"5; c #DCB433", +"6; c #D1AF34", +"7; c #7F713F", +"8; c #FAD739", +"9; c #F3ED24", +"0; c #F8E533", +"a; c #D8C763", +"b; c #EBA76F", +"c; c #D1C260", +"d; c #C7A65C", +"e; c #311F0F", +"f; c #0C0000", +"g; c #390012", +"h; c #5F1B24", +"i; c #AA36BA", +"j; c #9B0BD5", +"k; c #9D0BD9", +"l; c #A4569D", +"m; c #EDA093", +"n; c #D68678", +"o; c #E36B58", +"p; c #D78F85", +"q; c #E4E7EE", +"r; c #DCDCE5", +"s; c #D6D6E1", +"t; c #D2D2DE", +"u; c #D1D1DD", +"v; c #CECEDB", +"w; c #78703B", +"x; c #F0DF34", +"y; c #F2E135", +"z; c #F2E034", +"A; c #E5D645", +"B; c #D9D9D3", +"C; c #6E6F7D", +"D; c #A4A5A6", +"E; c #696976", +"F; c #DDDFE8", +"G; c #DFCE66", +"H; c #F4D925", +"I; c #F3DC31", +"J; c #F2DC32", +"K; c #79703C", +"L; c #D6D6D6", +"M; c #EAC46F", +"N; c #F0CB6C", +"O; c #D8B36A", +"P; c #D1BD6E", +"Q; c #D3B375", +"R; c #CBB260", +"S; c #B28866", +"T; c #0C0706", +"U; c #020206", +"V; c #2B1010", +"W; c #5E3D1F", +"X; c #CB8B8D", +"Y; c #B78394", +"Z; c #C27794", +"`; c #B0747D", +" > c #C3BECB", +".> c #E56E5B", +"+> c #D6C5C5", +"@> c #EAD4D4", +"#> c #DE4C37", +"$> c #CFAEAF", +"%> c #D9D0D8", +"&> c #D5D4DF", +"*> c #D4D4E0", +"=> c #72643C", +"-> c #B59434", +";> c #BA9332", +">> c #B48A30", +",> c #AD8336", +"'> c #B7B1AD", +")> c #888A97", +"!> c #6A6B78", +"~> c #A3A4AB", +"{> c #EDE871", +"]> c #FFF53F", +"^> c #FFF23F", +"/> c #EDE03B", +"(> c #8D863F", +"_> c #DBDBDB", +":> c #E5C895", +"<> c #DCAF6C", +"[> c #D8C065", +"}> c #CEBF61", +"|> c #C5B677", +"1> c #ACA385", +"2> c #9E9899", +"3> c #434340", +"4> c #3F3D1C", +"5> c #744232", +"6> c #BA7D50", +"7> c #9B7687", +"8> c #313FDB", +"9> c #1E3DF1", +"0> c #494FBA", +"a> c #C0ABB4", +"b> c #DA7767", +"c> c #E3CBC9", +"d> c #E9C7C4", +"e> c #D76A5D", +"f> c #D7341C", +"g> c #D35847", +"h> c #D36858", +"i> c #CABCC2", +"j> c #D7D7E2", +"k> c #705B4A", +"l> c #886035", +"m> c #A77333", +"n> c #B37E33", +"o> c #C8952D", +"p> c #CAAE4C", +"q> c #C1C0AE", +"r> c #D0D0D7", +"s> c #E7E7EC", +"t> c #F3F1DA", +"u> c #FDF792", +"v> c #FFF67B", +"w> c #FFF468", +"x> c #D2C957", +"y> c #A6A058", +"z> c #D3BB6C", +"A> c #CFB869", +"B> c #D0BB6C", +"C> c #B1A5A1", +"D> c #8A94A5", +"E> c #2D3945", +"F> c #444823", +"G> c #A17741", +"H> c #CF9A61", +"I> c #887F9F", +"J> c #0B2FFD", +"K> c #002FFD", +"L> c #324AD8", +"M> c #9C725C", +"N> c #B0ACAB", +"O> c #BE7570", +"P> c #DF5F48", +"Q> c #D98075", +"R> c #D2837B", +"S> c #CCB3B2", +"T> c #D6A19E", +"U> c #D45341", +"V> c #C75E4F", +"W> c #BFB9C0", +"X> c #D9D9E3", +"Y> c #857A70", +"Z> c #846337", +"`> c #CA9633", +" , c #D4A533", +"., c #E2BE33", +"+, c #F6DD2B", +"@, c #F3EA4E", +"#, c #E1DF9A", +"$, c #EBEAD0", +"%, c #FDFCE5", +"&, c #FFFBBE", +"*, c #FFF8A1", +"=, c #FFF68A", +"-, c #AFA965", +";, c #C3BF82", +">, c #C6A47F", +",, c #A69F87", +"', c #3A364D", +"), c #525141", +"!, c #A67E41", +"~, c #C88B53", +"{, c #CF9061", +"], c #C88761", +"^, c #897F90", +"/, c #0F2FF3", +"(, c #082FF7", +"_, c #4047D8", +":, c #81645A", +"<, c #CA9C95", +"[, c #E25240", +"}, c #B74331", +"|, c #D9A49B", +"1, c #D8CED0", +"2, c #DDDCE2", +"3, c #E4E6ED", +"4, c #DCC8CD", +"5, c #BDB4BA", +"6, c #C5C9D2", +"7, c #DADAE4", +"8, c #9C9B9A", +"9, c #826D48", +"0, c #B89535", +"a, c #F0D632", +"b, c #FEEF37", +"c, c #FFF75B", +"d, c #FFFB91", +"e, c #FFFDC8", +"f, c #FFFFF1", +"g, c #FFFDDB", +"h, c #FFFABD", +"i, c #D7D292", +"j, c #A39F72", +"k, c #DFDEC6", +"l, c #B27F5B", +"m, c #D4A77A", +"n, c #8C6636", +"o, c #72491F", +"p, c #9D7A45", +"q, c #CC9A61", +"r, c #CF9361", +"s, c #C99061", +"t, c #A97E5C", +"u, c #906D5F", +"v, c #808185", +"w, c #8F7885", +"x, c #A16773", +"y, c #6D4C42", +"z, c #B0ABAA", +"A, c #D77B6D", +"B, c #CB4F40", +"C, c #D51E0F", +"D, c #AC8183", +"E, c #E9EFF2", +"F, c #E5E5EC", +"G, c #D7D8E1", +"H, c #9E9787", +"I, c #8D7C3D", +"J, c #C9B434", +"K, c #FBEA34", +"L, c #FFF349", +"M, c #FFF56D", +"N, c #FFF798", +"O, c #FFFDE8", +"P, c #FFFEF3", +"Q, c #D7D5B9", +"R, c #9F9C85", +"S, c #D0CFB3", +"T, c #99714C", +"U, c #DBA97B", +"V, c #7B5029", +"W, c #767361", +"X, c #BBA07C", +"Y, c #CA9E68", +"Z, c #CA9561", +"`, c #CF8761", +" ' c #B3805C", +".' c #322841", +"+' c #413759", +"@' c #8D7963", +"#' c #A7735A", +"$' c #A26453", +"%' c #DE6253", +"&' c #CE2B1C", +"*' c #C84030", +"=' c #BE5245", +"-' c #B8BBC9", +";' c #F3F3F6", +">' c #DFDFE8", +",' c #AFA77E", +"'' c #9A9144", +")' c #AFA73D", +"!' c #D2C851", +"~' c #EDE470", +"{' c #FDF598", +"]' c #EDE8AF", +"^' c #D2D0BC", +"/' c #AFAFB3", +"(' c #A3A3A1", +"_' c #D0CFC1", +":' c #937257", +"<' c #DBAA7B", +"[' c #714D25", +"}' c #C69D70", +"|' c #BE8D61", +"1' c #A77F54", +"2' c #443251", +"3' c #606492", +"4' c #A39EA3", +"5' c #A46959", +"6' c #96734D", +"7' c #DD6557", +"8' c #DC3121", +"9' c #C16F64", +"0' c #C1C8C8", +"a' c #BAB9AC", +"b' c #B3B072", +"c' c #A29E61", +"d' c #8C885F", +"e' c #7D7B64", +"f' c #8C8A78", +"g' c #A6A499", +"h' c #C3C3C2", +"i' c #DFDFDE", +"j' c #D5A96D", +"k' c #775529", +"l' c #A17E63", +"m' c #AC825F", +"n' c #936958", +"o' c #AC97A9", +"p' c #C9B4B3", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . # $ % & * = - ; > , ' ) ! ~ { ] + . . . . ^ / ( _ : < [ } | 1 2 3 4 5 6 7 + . . . . 8 8 8 8 8 8 8 8 9 0 a b c d e f . . . + ", +". . . . $ g h i j k l m g n o p q r s f + . . . . / : t u v w x y z A B C D E F G + . . . . 8 H I J K L M 8 N a b c d e f 7 . . . + ", +". . . . O P . Q R h S T U V W X Y Z ` .+ . . . . ..+.@.#.$.%.&.*.=.-.;.>.,.'.).!.+ . . . . 8 ~.{.].^./.(.8 N b c d e f 7 _.. . . + ", +". . . . :.<.[.. }.l |.1.2.3.. 4.5.6.7. .+ . . . . 8.9.0.a.b.c.d.e.=.-.;.>.f.g.h.i.+ . . . . 8 j.k.l.m.l.n.8 N c d e f 7 _.!.. . . + ", +". . . . o.p.q.r.. s.t.u.v.w.x.y.5.z.A.e + . . . . B.C.D.a.E.c.d.e.F.-.G.>.H.I.J.K.+ . . . . 8 L.M.N.O.P.m.8 Q.d e f 7 _.!.R.. . . + ", +". . . . S.T.U.i . V.W.X.Y.|.Z.`.5. +.++++ . . . . @+#+$+%+&+*+=+e.F.-.;.>.H.-+;+>++ . . . . 8 ,+'+)+!+~+{+{+{+{+{+{+{+{+]+^+. . . + ", +". . . . /+(+_+:+V.. <+[+}+5._+|+5. +1+2++ . . . . 3+4+5+6+7+8+9+0+a+-.G.>.b+c+d+e++ . . . . 8 8 8 8 8 8 {+f+g+h+i+j+k+{+N l+. . . + ", +". . . . m+m Z.:+W.. n+o+p+5.w.p+5.q+r+s++ . . . . t+u+v+w+x+y+z+A+F.-.B+C+D+E+F+G++ . . . . H+I+J+K+8 L+{+M+N+O+P+N.Q+{+N l+. . . + ", +". . . . R+g p.S+T+U+. V+W+X+Y+Z+5.`+ @.@+ . . . . +@@@#@$@%@&@*@=@a+-.-@C+;@>@,@'@+ . . . . {+{+{+{+{+{+{+)@!@~@{@]@^@{+N l+. . . + ", +". . . . /@(@_@:@<@[@. }@|@1@2@3@4@Z ^+G + . . . . 5@6@7@8@9@0@a@b@c@-.d@C+e@f@g@h@+ . . . . {+i@{+{+{+{+{+j@k@l@m@n@o@{+N p@. . . + ", +". . . . q@r@s@t@u@v@w@x@y@z@z@z@A@B@H+C@+ . . . . D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@+ . . . . {+{+{+{+{+{+{+T@U@V@W@X@Y@{+Z@r+. . . + ", +". . . . `@ #.#+#@###$#%#&#Z Z A@*#=#t+-#+ . . . . ;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#+ . . . . b c d }#f 7 {+{+{+{+{+{+{+{+{+|#. . . + ", +". . . . 1#2#3#4#5#z@A@5#5#6#5#Z 5#7#t+8#+ . . . . / 9#0#a#b#u c#d#e#f#g#h#i#j#k#l#+ . . . . c d e }#7 _.d m#n#o#p#q#r#s#t#9 . . . + ", +". . . . u#=#v#w#x#y#y#z#A#x#B#C#B#A#D#E#+ . . . . F#G#H#I#J#u K#L#M#N#O#P#Q#R#l#S#+ . . . . d e T#U#T#!.{+{+{+{+{+{+{+{+V#_ . . . + ", +". . . . W#X#Y#Z#`# $.$+$@$#$$$%$&$*$i.=$+ . . . . -$;$>$,$'$)$!$~${$]$^$/$($_$S#:$+ . . . . }#}#U#U#U#}#{+i@{+{+{+{+{+<$[$_ . . . + ", +". . . . 2+ .;#c }$|$i.1$2$_.R.3$4$5$=$6$+ . . . . 7$8$9$0$a$b$c$d$e$f$g$[#l#S#:$h$+ . . . . f 7 T#U#T#i${+{+{+{+{+{+{+{+j$^ . . . + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . k$", +". . . . l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$m$. . . . ^ n$8.o$.+|#1+p$@+q$^+3+H+s r$d + . . . . ^ / ..8.s$t$u$v$w$x$x$y$z$e A$7 . . . + ", +". . . . l$l$l$l$l$l$l$l$l$l$l$l$+ B$C$C$+ . . . . / 8.+ D$E$+ F$G$H$+ H$I$I$+ +@J$+ . . . . K$L$M$B.N$. . O$P$Q$R$S$T$++7 G . . . + ", +". . . . l$l$l$l$l$l$l$l$l$l$U$+ 9 l$l$l$+ . . . . ..o$+ + + + + + + + + + + + V$J$+ . . . . W$X$Y$Z$`$. . . %.%+%S$@%#%_.!.. . . + ", +". . . . l$l$l$l$l$l$l$+ + $%+ o$l$l$l$l$+ . . . . 8..++ %%%%+ C$&%*%+ l#=%-%+ I+5@+ . . . . ;%>%,%'%)%. . . !%~%{%S$]%^%/%R.. . . + ", +". . . . (%(%(%(%(%(%_%:%<%[%+ (%(%(%}%}%+ . . . . B.|#+ |%|%+ &%*%1%+ =%-%2%+ 3%4%+ . . . . 5%6%7%8%9%0%. . a%b%c%S$S$S$d%.@. . . + ", +". . . . e%e%e%e%e%f%g%e%e%h%i%j%e%e%e%e%+ . . . . @+1++ + + + + + + + + + + + 3%k%+ . . . . l%m%n%>%o%p%q%. O$P$r%s%t%t%u%7 . . . + ", +". . . . v%v%v%v%v%v%v%w%x%y%z%v%v%v%v%v%+ . . . . 3+p$+ |%|%+ 1%A%B%C%D%E%F%+ G%m#+ . . . . H%I%J%K%L%M%N%O%O$P%c%s%t%t%Q%s+. . . + ", +". . . . e%e%e%e%e%e%R%+ S%e%e%e%e%e%e%e%+ . . . . t+@++ + + + T%U%V%W%X%Y%Z%`%H+d + . . . . H+ &.&+&@&#&$&%&&&*&=&s%t%t%-&.@. . . + ", +". . . . e%e%e%e%e%e%+ ;&h%e%e%e%e%e%e%e%+ . . . . +@q$+ |%>&,&'&)&!&~&{&]&^&/&(&|$+ . . . . ` r+_&:&<&[&}&|&1&2&3&s%t%t%4&5&. . . + ", +". . . . e%e%e%6&;&+ + 7&e%e%e%e%e%e%e%e%+ . . . . 5@^++ + 8&9&0&a&b&c&d&e&f&g&h&i&+ . . . . j&^ k&l&m&n&o&p&q&r&2&s%t%t%s&t&. . . + ", +". . . . u&u&x%+ v&w&B$u&u&u&u&u&u&u&u&u&+ . . . . D@3++ x&y&z&A&B&]&C&D&E&F&G&H&I&+ . . . . J&r$/ K&L&M&N&O&P&Q&R&s%t%t%S&8#. . . + ", +". . . . T&x%U&T&T&T&T&T&T&T&T&T&T&T&T&T&+ . . . . ;#H++ + V&W&X&Y&e&Z&`& *.*+*@*#*+ . . . . $*k&K&7.%*f &***=*-*;*>*t%t%,*'*. . . + ", +". . . . )*<%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . }$s + !*~*{*]*^*/*(*_*:*<*[*}*|*+ . . . . a J$1*@+2*_.3*4*5*6*7*>*t%t%,*8*. . . + ", +". . . . 9*(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . e k&+ + 0*a*b*c*d*e*f*g*h*i*j*.@+ . . . . e A$1$] k*l*m*n*o*p*q*r*t%t%s*4$. . . + ", +". . . . (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . A$t*d |$t*k%u*v*w*x*y*z*A*B*C*-%+ . . . . A$7 G !.D*E*F*G*H*I*J*K*L*M*N*O*. . . + ", +". . . . (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . 7 G !.P*8#3$i$G D#A.A.J$C*A%C$h$+ . . . . 7 G !.P*Q*R*;#S* .e ++1$2$_.T*F%. . . + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + U*V*V*+ + + + + + + + + + + + + + + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . k$. . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . ^ / ..8.B.@+W*X*Y*Z*`* =e e A$7 + . . . . ^ / ..8..=.=.=.=.=.=.=.=+=e A$7 + . . . . ^ / ..@=#=$=%=&=*===-=a }$e A$7 . . . + ", +". . . . / ..;=>=,='=)=!=~={=]=^=/=.@7 G + . . . . / ..8.B..=(=_=:=<=[=}=|=+=+=7 G + . . . . / ..K&1=2=3=4=5=6=7=8=9=0=A$7 G . . . + ", +". . . . / a=b=c=d=e=f=g=h=i=i=j=k=l=G !.+ . . . . ..8.B.@+m=n=o=p=q=r=s=|=+=t=+=!.+ . . . . ..u=v=w=x=y=z=A=B=C=D=E=F=G=G !.. . . + ", +". . . . H=I=J=K=L=M=N=O=P=Q=R=S=T=U=l=P*+ . . . . 8.B.@+3+V=W=X=Y=Z=<=`=|=+=+=+=+=+ . . . . @= -.-+-@-y=#-$-%-&-*-=---;->-P*. . . + ", +". . . . ,-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-+ . . . . B.@+3+t+.=1-2-3-4-<=5-|=6-7-8-+=+ . . . . 9-0-a-b-+-c-d-e-f-g-h-i-j-k-l-8#. . . + ", +". . . . m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-l=+ . . . . @+3+t++@.=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-`-. . . + ", +". . . . ;n-.;+;@;#;$;%;&;*;=;-;;;;;>;,;+ . . . . 3+t++@5@.=';);!;~;F-{;|=];^;.=+=+ . . . . /;(;_;:;<;[;};|;1;2;3;4;5;6;7;|-. . . + ", +". . . . 8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;,;+ . . . . t++@5@D@.=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;`;,;+ . . . . +@5@D@;# >.>+>@>#>$>%>%>&>*>t;+=+ . . . . =>->;>>>,>'>)>!>~>4-{>]>^>/>(>_>. . . + ", +". . . . :><>[>}>|>1>2>3>4>5>6>7>8>9>0>,;+ . . . . 5@D@;#}$a>b>c>d>e>f>g>h>i>j>s;+=+ . . . . k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>5$. . . + ", +". . . . ;#z>A>B>C>D>E>F>G>H>H>I>J>K>L>M>+ . . . . D@;#}$N>O>P>Q>R>S>T>U>V>W>X>s;+=+ . . . . Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,g$. . . + ", +". . . . ;#}$;#>,,,',),!,~,{,],^,/,(,_,:,+ . . . . ;#}$<,[,},|,1,2,3,`=4,5,6,7,j>+=+ . . . . 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,[={;5-F,H-}=G,7,j>+=+ . . . . }$H,I,J,K,L,M,N,h,O,P,Q,R,S,[#l#. . . + ", +". . . . ;#T,U,V,W,X,Y,Z,`, '.'+'@'#'$'l=+ . . . . %'&'*'='-';'{;G-F,`=s=>'6-7,j>+=+ . . . . e A$,''')'!'~'{']'^'/'('_'[#l#S#. . . + ", +". . . . :'<'['!.P*8#|-}'|'1'2'3'4'5'6':$+ . . . . 7'8'9'0'.=F-{;{;5-`=|=>'r;7,j>+=+ . . . . A$7 G a'b'c'd'e'f'g'h'i'[#l#S#:$. . . + ", +". . . . j'k'!.P*8#`-|-|-l'm'n'o'p'l=:$h$+ . . . . 7 G !.P*+=+=+=+=+=+=+=+=+=+=+=+=+ . . . . 7 G !.P*8#`-|-L;_>5$g$[#l#S#:$h$. . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; diff --git a/wmbutton/mask-80c80.xbm b/wmbutton/mask-80c80.xbm new file mode 100644 index 00000000..6bc2b6c1 --- /dev/null +++ b/wmbutton/mask-80c80.xbm @@ -0,0 +1,85 @@ +#define mask_width 80 +#define mask_height 80 + +static char mask_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/wmbutton/wmbutton.c b/wmbutton/wmbutton.c index 8e1d6780..1df2004a 100644 --- a/wmbutton/wmbutton.c +++ b/wmbutton/wmbutton.c @@ -130,8 +130,8 @@ int main(int argc, char **argv) fg_pixel = BlackPixel(display, screen); xsizehints.flags = USSize | USPosition; - xsizehints.width = 64; - xsizehints.height = 64; + xsizehints.width = 80; + xsizehints.height = 80; /* Parse Geometry string and fill in sizehints fields */ XWMGeometry(display, screen, @@ -415,7 +415,7 @@ int main(int argc, char **argv) * main window and the icon window which is the main window's icon image.) ***********************************************************************/ void redraw() { - int n, i, j, dest_x, dest_y, space, offset, bsize = 18; + int n, i, j, dest_x, dest_y, space, offset, bsize = 22; /* 18 for 54pixel grid, 22 for 66pixel grid 80x80 */ if (Config.Verbose) fprintf(stdout, "In Redraw()\n"); From 9eea2cc0ccb95fe3acc62372c3630ecd24c33053 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Thu, 5 Jan 2023 15:10:35 -0500 Subject: [PATCH 2/9] Two versions of xpm, plus command line Created dual versions of the xpm and xbm files. Converted height, width from macro to variable. Created command line switch Verified command line works, old version works the same, new version does not display properly. --- wmbutton/backdrop-80x80.xpm | 2 +- wmbutton/buttons-80x80.xpm | 2 +- wmbutton/mask-80x80.xbm | 82 +++++++++++++++++++++++++++++++++++++ wmbutton/mask.xbm | 3 -- wmbutton/wmb_libs.c | 5 ++- wmbutton/wmbutton.c | 82 ++++++++++++++++++++++++++++++------- wmbutton/wmbutton.h | 1 + 7 files changed, 156 insertions(+), 21 deletions(-) create mode 100644 wmbutton/mask-80x80.xbm diff --git a/wmbutton/backdrop-80x80.xpm b/wmbutton/backdrop-80x80.xpm index d656fc8c..75919326 100644 --- a/wmbutton/backdrop-80x80.xpm +++ b/wmbutton/backdrop-80x80.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * backdrop_xpm[] = { +static char * backdrop_80x80_xpm[] = { "80 80 59 1", " c None", ". c #F3F3F3", diff --git a/wmbutton/buttons-80x80.xpm b/wmbutton/buttons-80x80.xpm index febb060a..8aa587e6 100644 --- a/wmbutton/buttons-80x80.xpm +++ b/wmbutton/buttons-80x80.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * buttons_xpm[] = { +static char * buttons_80x80_xpm[] = { "66 66 1343 2", " c None", ". c #FFFFFF", diff --git a/wmbutton/mask-80x80.xbm b/wmbutton/mask-80x80.xbm new file mode 100644 index 00000000..8a022836 --- /dev/null +++ b/wmbutton/mask-80x80.xbm @@ -0,0 +1,82 @@ +static char mask_80x80_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/wmbutton/mask.xbm b/wmbutton/mask.xbm index bfee9228..6bffaf5d 100644 --- a/wmbutton/mask.xbm +++ b/wmbutton/mask.xbm @@ -1,6 +1,3 @@ -#define mask_width 64 -#define mask_height 64 - static char mask_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/wmbutton/wmb_libs.c b/wmbutton/wmb_libs.c index edfbd269..ca85a76c 100644 --- a/wmbutton/wmb_libs.c +++ b/wmbutton/wmb_libs.c @@ -33,7 +33,7 @@ void parseargs(int argc, char **argv) int current; char *Home = getenv("HOME"); - while (-1 != (current = getopt(argc, argv, "vhnmsF:b:g:d:f:"))) { + while (-1 != (current = getopt(argc, argv, "vhnmsF:b:g:d:f:I"))) { switch (current) { case 'v': Config.Verbose = 1; @@ -66,6 +66,9 @@ void parseargs(int argc, char **argv) case 'b': Config.buttonfile = strdup(optarg); break; + case 'I': + Config.bigicon = 1; + break; } } diff --git a/wmbutton/wmbutton.c b/wmbutton/wmbutton.c index 1df2004a..7b891fe9 100644 --- a/wmbutton/wmbutton.c +++ b/wmbutton/wmbutton.c @@ -44,6 +44,11 @@ #include "backdrop.xpm" /* background graphic */ #include "buttons.xpm" /* graphic of 9 buttons */ #include "mask.xbm" /* Border Graphic */ +#include "backdrop-80x80.xpm" /* 80x80 icon versions */ +#include "buttons-80x80.xpm" +#include "mask-80x80.xbm" + + /*************** Function Prototypes ***********************************/ void redraw(void); @@ -106,10 +111,19 @@ int main(int argc, char **argv) long nTooltipHideTimer = -1; long nNow; int nTooltipButton = 0, nTooltipX = 0, nTooltipY = 0; + int mask_width, mask_height; /* Parse Command Line Arguments */ parseargs(argc, argv); + if (Config.bigicon == 1) { + /* printf( "Big icon\n");*/ + mask_width = 80; + mask_height = 80; + } else { + mask_width = 64; + mask_height = 64; + } /* Catch fire if no configuration file exists */ if (!canOpenFile(Config.configfile)) { if(!canOpenFile(CONFIGGLOBAL)) { @@ -522,43 +536,81 @@ void getPixmaps() if (Config.Verbose) fprintf(stdout, "In getPixmaps\n"); - /* Template Pixmap. Never Drawn To. */ - if (XpmCreatePixmapFromData(display, rootwin, backdrop_xpm, + if (Config.bigicon == 0) { + /* Template Pixmap. Never Drawn To. */ + if (XpmCreatePixmapFromData(display, rootwin, backdrop_xpm, &template.pixmap, &template.mask, &template.attributes) != XpmSuccess) err_mess(FAILTMPL, NULL); /* Visible Pixmap. Copied from template Pixmap and then drawn to. */ - if (XpmCreatePixmapFromData(display, rootwin, backdrop_xpm, + if (XpmCreatePixmapFromData(display, rootwin, backdrop_xpm, &visible.pixmap, &visible.mask, &visible.attributes) != XpmSuccess) err_mess(FAILVIS, NULL); /* Button Pixmap. */ - if (access(Config.buttonfile, R_OK) == 0) { + if (access(Config.buttonfile, R_OK) == 0) { /* load buttons from file */ - if (XpmReadFileToPixmap(display, rootwin, Config.buttonfile, + if (XpmReadFileToPixmap(display, rootwin, Config.buttonfile, &buttons.pixmap, &buttons.mask, &buttons.attributes) != XpmSuccess) err_mess(FAILBUT, NULL); - else + else loaded = 1; - } + } - if (!loaded) { + if (!loaded) { /* Use Builtin Button Pixmap. */ - if (Config.Verbose) - fprintf(stdout, "Using builtin buttons pixmap\n"); + if (Config.Verbose) + fprintf(stdout, "Using builtin buttons pixmap\n"); - if (XpmCreatePixmapFromData(display, rootwin, buttons_xpm, - &buttons.pixmap, &buttons.mask, - &buttons.attributes) != XpmSuccess) + if (XpmCreatePixmapFromData(display, rootwin, buttons_xpm, + &buttons.pixmap, &buttons.mask, + &buttons.attributes) != XpmSuccess) err_mess(FAILBUT, NULL); - } + } - if (Config.Verbose) + if (Config.Verbose) fprintf(stdout, "Leaving getPixmaps\n"); + } else { + /* Template Pixmap. Never Drawn To. */ + if (XpmCreatePixmapFromData(display, rootwin, backdrop_80x80_xpm, + &template.pixmap, &template.mask, + &template.attributes) != XpmSuccess) + err_mess(FAILTMPL, NULL); + + /* Visible Pixmap. Copied from template Pixmap and then drawn to. */ + if (XpmCreatePixmapFromData(display, rootwin, backdrop_80x80_xpm, + &visible.pixmap, &visible.mask, + &visible.attributes) != XpmSuccess) + err_mess(FAILVIS, NULL); + + /* Button Pixmap. */ + if (access(Config.buttonfile, R_OK) == 0) { + /* load buttons from file */ + if (XpmReadFileToPixmap(display, rootwin, Config.buttonfile, + &buttons.pixmap, &buttons.mask, + &buttons.attributes) != XpmSuccess) + err_mess(FAILBUT, NULL); + else + loaded = 1; + } + if (!loaded) { + /* Use Builtin Button Pixmap. */ + if (Config.Verbose) + fprintf(stdout, "Using builtin buttons pixmap\n"); + + if (XpmCreatePixmapFromData(display, rootwin, buttons_80x80_xpm, + &buttons.pixmap, &buttons.mask, + &buttons.attributes) != XpmSuccess) + err_mess(FAILBUT, NULL); + } + + if (Config.Verbose) + fprintf(stdout, "Leaving getPixmaps\n"); + } } /*********************************************************************/ diff --git a/wmbutton/wmbutton.h b/wmbutton/wmbutton.h index b0627d79..df01c4e7 100644 --- a/wmbutton/wmbutton.h +++ b/wmbutton/wmbutton.h @@ -72,6 +72,7 @@ struct Config_t { char* szTooltipFont; int bTooltipSwapColors; int bTooltipDisable; + int bigicon; }; /****** Function Prototyes *******************************************/ From 3fe9de54c31b611adc02c2a5a6dee4e243706303 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Thu, 5 Jan 2023 21:37:04 -0500 Subject: [PATCH 3/9] Fix mask usage for 80x80 Update mask usage to have 64x64 path and 80x80 path --- wmbutton/wmbutton.c | 51 +++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/wmbutton/wmbutton.c b/wmbutton/wmbutton.c index 7b891fe9..e01ea681 100644 --- a/wmbutton/wmbutton.c +++ b/wmbutton/wmbutton.c @@ -124,6 +124,9 @@ int main(int argc, char **argv) mask_width = 64; mask_height = 64; } + + + /* Catch fire if no configuration file exists */ if (!canOpenFile(Config.configfile)) { if(!canOpenFile(CONFIGGLOBAL)) { @@ -182,13 +185,24 @@ int main(int argc, char **argv) /* Set up shaped windows */ /* Gives the appicon a border so you can grab and move it. */ - if ((pixmask = XCreateBitmapFromData(display, - win, - mask_bits, - mask_width, - mask_height)) == 0) - err_mess(FAILXPM, NULL); - + if (Config.bigicon == 0) { + /* 64x64 icon path */ + if ((pixmask = XCreateBitmapFromData(display, + win, + mask_bits, + mask_width, + mask_height)) == 0) + err_mess(FAILXPM, NULL); + } else { + /* 80x80 icon path */ + if ((pixmask = XCreateBitmapFromData(display, + win, + mask_80x80_bits, + mask_width, + mask_height)) == 0) + err_mess(FAILXPM, NULL); + } + XShapeCombineMask(display, win, ShapeBounding, 0, 0, pixmask, ShapeSet); XShapeCombineMask(display, iconwin, ShapeBounding, 0, 0, pixmask, ShapeSet); @@ -429,10 +443,15 @@ int main(int argc, char **argv) * main window and the icon window which is the main window's icon image.) ***********************************************************************/ void redraw() { - int n, i, j, dest_x, dest_y, space, offset, bsize = 22; /* 18 for 54pixel grid, 22 for 66pixel grid 80x80 */ + int n, i, j, dest_x, dest_y, space, offset, bsize; if (Config.Verbose) fprintf(stdout, "In Redraw()\n"); + if (Config.bigicon != 1) { /* 18 for 54pixel grid, 22 for 66pixel grid 80x80 */ + bsize = 18; + } else { + bsize = 22; + } space = 0; offset = 5; @@ -536,8 +555,8 @@ void getPixmaps() if (Config.Verbose) fprintf(stdout, "In getPixmaps\n"); - if (Config.bigicon == 0) { - /* Template Pixmap. Never Drawn To. */ + if (Config.bigicon == 0) { + /* 64x64 icon path. Template Pixmap. Never Drawn To. */ if (XpmCreatePixmapFromData(display, rootwin, backdrop_xpm, &template.pixmap, &template.mask, &template.attributes) != XpmSuccess) @@ -563,7 +582,7 @@ void getPixmaps() if (!loaded) { /* Use Builtin Button Pixmap. */ if (Config.Verbose) - fprintf(stdout, "Using builtin buttons pixmap\n"); + fprintf(stdout, "Using builtin buttons pixmap 64x64\n"); if (XpmCreatePixmapFromData(display, rootwin, buttons_xpm, &buttons.pixmap, &buttons.mask, @@ -572,9 +591,9 @@ void getPixmaps() } if (Config.Verbose) - fprintf(stdout, "Leaving getPixmaps\n"); - } else { - /* Template Pixmap. Never Drawn To. */ + fprintf(stdout, "Leaving small icon getPixmaps\n"); + } else { + /* 80x80 icon path. Template Pixmap. Never Drawn To. */ if (XpmCreatePixmapFromData(display, rootwin, backdrop_80x80_xpm, &template.pixmap, &template.mask, &template.attributes) != XpmSuccess) @@ -600,7 +619,7 @@ void getPixmaps() if (!loaded) { /* Use Builtin Button Pixmap. */ if (Config.Verbose) - fprintf(stdout, "Using builtin buttons pixmap\n"); + fprintf(stdout, "Using builtin buttons pixmap 80x80\n"); if (XpmCreatePixmapFromData(display, rootwin, buttons_80x80_xpm, &buttons.pixmap, &buttons.mask, @@ -609,7 +628,7 @@ void getPixmaps() } if (Config.Verbose) - fprintf(stdout, "Leaving getPixmaps\n"); + fprintf(stdout, "Leaving big icon getPixmaps\n"); } } /*********************************************************************/ From 3770e50f99dd493cb1a468a1e81788ae163af6f6 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Thu, 5 Jan 2023 21:45:30 -0500 Subject: [PATCH 4/9] Update wmb_libs.c Fix default geometry for 80x80 --- wmbutton/wmb_libs.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wmbutton/wmb_libs.c b/wmbutton/wmb_libs.c index ca85a76c..1d371596 100644 --- a/wmbutton/wmb_libs.c +++ b/wmbutton/wmb_libs.c @@ -88,8 +88,12 @@ void parseargs(int argc, char **argv) } } - if (!Config.Geometry_str) + if (!Config.Geometry_str) { + if (!Config.bigicon) Config.Geometry_str = "64x64+0+0"; + else + Config.Geometry_str = "80x80+10+10"; + } if (!Config.Display_str) Config.Display_str = ""; From 8a1d945f5779daa033301052e2dc11198e8dacc6 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Sat, 7 Jan 2023 23:16:38 -0500 Subject: [PATCH 5/9] Update buttons-80x80.xpm Use black separator between mini-icons for actions. --- wmbutton/buttons-80x80.xpm | 134 +++++++++++++++++++------------------ 1 file changed, 68 insertions(+), 66 deletions(-) diff --git a/wmbutton/buttons-80x80.xpm b/wmbutton/buttons-80x80.xpm index 8aa587e6..6b03b1ca 100644 --- a/wmbutton/buttons-80x80.xpm +++ b/wmbutton/buttons-80x80.xpm @@ -1344,69 +1344,71 @@ static char * buttons_80x80_xpm[] = { "n' c #936958", "o' c #AC97A9", "p' c #C9B4B3", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . # $ % & * = - ; > , ' ) ! ~ { ] + . . . . ^ / ( _ : < [ } | 1 2 3 4 5 6 7 + . . . . 8 8 8 8 8 8 8 8 9 0 a b c d e f . . . + ", -". . . . $ g h i j k l m g n o p q r s f + . . . . / : t u v w x y z A B C D E F G + . . . . 8 H I J K L M 8 N a b c d e f 7 . . . + ", -". . . . O P . Q R h S T U V W X Y Z ` .+ . . . . ..+.@.#.$.%.&.*.=.-.;.>.,.'.).!.+ . . . . 8 ~.{.].^./.(.8 N b c d e f 7 _.. . . + ", -". . . . :.<.[.. }.l |.1.2.3.. 4.5.6.7. .+ . . . . 8.9.0.a.b.c.d.e.=.-.;.>.f.g.h.i.+ . . . . 8 j.k.l.m.l.n.8 N c d e f 7 _.!.. . . + ", -". . . . o.p.q.r.. s.t.u.v.w.x.y.5.z.A.e + . . . . B.C.D.a.E.c.d.e.F.-.G.>.H.I.J.K.+ . . . . 8 L.M.N.O.P.m.8 Q.d e f 7 _.!.R.. . . + ", -". . . . S.T.U.i . V.W.X.Y.|.Z.`.5. +.++++ . . . . @+#+$+%+&+*+=+e.F.-.;.>.H.-+;+>++ . . . . 8 ,+'+)+!+~+{+{+{+{+{+{+{+{+]+^+. . . + ", -". . . . /+(+_+:+V.. <+[+}+5._+|+5. +1+2++ . . . . 3+4+5+6+7+8+9+0+a+-.G.>.b+c+d+e++ . . . . 8 8 8 8 8 8 {+f+g+h+i+j+k+{+N l+. . . + ", -". . . . m+m Z.:+W.. n+o+p+5.w.p+5.q+r+s++ . . . . t+u+v+w+x+y+z+A+F.-.B+C+D+E+F+G++ . . . . H+I+J+K+8 L+{+M+N+O+P+N.Q+{+N l+. . . + ", -". . . . R+g p.S+T+U+. V+W+X+Y+Z+5.`+ @.@+ . . . . +@@@#@$@%@&@*@=@a+-.-@C+;@>@,@'@+ . . . . {+{+{+{+{+{+{+)@!@~@{@]@^@{+N l+. . . + ", -". . . . /@(@_@:@<@[@. }@|@1@2@3@4@Z ^+G + . . . . 5@6@7@8@9@0@a@b@c@-.d@C+e@f@g@h@+ . . . . {+i@{+{+{+{+{+j@k@l@m@n@o@{+N p@. . . + ", -". . . . q@r@s@t@u@v@w@x@y@z@z@z@A@B@H+C@+ . . . . D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@+ . . . . {+{+{+{+{+{+{+T@U@V@W@X@Y@{+Z@r+. . . + ", -". . . . `@ #.#+#@###$#%#&#Z Z A@*#=#t+-#+ . . . . ;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#+ . . . . b c d }#f 7 {+{+{+{+{+{+{+{+{+|#. . . + ", -". . . . 1#2#3#4#5#z@A@5#5#6#5#Z 5#7#t+8#+ . . . . / 9#0#a#b#u c#d#e#f#g#h#i#j#k#l#+ . . . . c d e }#7 _.d m#n#o#p#q#r#s#t#9 . . . + ", -". . . . u#=#v#w#x#y#y#z#A#x#B#C#B#A#D#E#+ . . . . F#G#H#I#J#u K#L#M#N#O#P#Q#R#l#S#+ . . . . d e T#U#T#!.{+{+{+{+{+{+{+{+V#_ . . . + ", -". . . . W#X#Y#Z#`# $.$+$@$#$$$%$&$*$i.=$+ . . . . -$;$>$,$'$)$!$~${$]$^$/$($_$S#:$+ . . . . }#}#U#U#U#}#{+i@{+{+{+{+{+<$[$_ . . . + ", -". . . . 2+ .;#c }$|$i.1$2$_.R.3$4$5$=$6$+ . . . . 7$8$9$0$a$b$c$d$e$f$g$[#l#S#:$h$+ . . . . f 7 T#U#T#i${+{+{+{+{+{+{+{+j$^ . . . + ", -"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . k$", -". . . . l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$m$. . . . ^ n$8.o$.+|#1+p$@+q$^+3+H+s r$d + . . . . ^ / ..8.s$t$u$v$w$x$x$y$z$e A$7 . . . + ", -". . . . l$l$l$l$l$l$l$l$l$l$l$l$+ B$C$C$+ . . . . / 8.+ D$E$+ F$G$H$+ H$I$I$+ +@J$+ . . . . K$L$M$B.N$. . O$P$Q$R$S$T$++7 G . . . + ", -". . . . l$l$l$l$l$l$l$l$l$l$U$+ 9 l$l$l$+ . . . . ..o$+ + + + + + + + + + + + V$J$+ . . . . W$X$Y$Z$`$. . . %.%+%S$@%#%_.!.. . . + ", -". . . . l$l$l$l$l$l$l$+ + $%+ o$l$l$l$l$+ . . . . 8..++ %%%%+ C$&%*%+ l#=%-%+ I+5@+ . . . . ;%>%,%'%)%. . . !%~%{%S$]%^%/%R.. . . + ", -". . . . (%(%(%(%(%(%_%:%<%[%+ (%(%(%}%}%+ . . . . B.|#+ |%|%+ &%*%1%+ =%-%2%+ 3%4%+ . . . . 5%6%7%8%9%0%. . a%b%c%S$S$S$d%.@. . . + ", -". . . . e%e%e%e%e%f%g%e%e%h%i%j%e%e%e%e%+ . . . . @+1++ + + + + + + + + + + + 3%k%+ . . . . l%m%n%>%o%p%q%. O$P$r%s%t%t%u%7 . . . + ", -". . . . v%v%v%v%v%v%v%w%x%y%z%v%v%v%v%v%+ . . . . 3+p$+ |%|%+ 1%A%B%C%D%E%F%+ G%m#+ . . . . H%I%J%K%L%M%N%O%O$P%c%s%t%t%Q%s+. . . + ", -". . . . e%e%e%e%e%e%R%+ S%e%e%e%e%e%e%e%+ . . . . t+@++ + + + T%U%V%W%X%Y%Z%`%H+d + . . . . H+ &.&+&@&#&$&%&&&*&=&s%t%t%-&.@. . . + ", -". . . . e%e%e%e%e%e%+ ;&h%e%e%e%e%e%e%e%+ . . . . +@q$+ |%>&,&'&)&!&~&{&]&^&/&(&|$+ . . . . ` r+_&:&<&[&}&|&1&2&3&s%t%t%4&5&. . . + ", -". . . . e%e%e%6&;&+ + 7&e%e%e%e%e%e%e%e%+ . . . . 5@^++ + 8&9&0&a&b&c&d&e&f&g&h&i&+ . . . . j&^ k&l&m&n&o&p&q&r&2&s%t%t%s&t&. . . + ", -". . . . u&u&x%+ v&w&B$u&u&u&u&u&u&u&u&u&+ . . . . D@3++ x&y&z&A&B&]&C&D&E&F&G&H&I&+ . . . . J&r$/ K&L&M&N&O&P&Q&R&s%t%t%S&8#. . . + ", -". . . . T&x%U&T&T&T&T&T&T&T&T&T&T&T&T&T&+ . . . . ;#H++ + V&W&X&Y&e&Z&`& *.*+*@*#*+ . . . . $*k&K&7.%*f &***=*-*;*>*t%t%,*'*. . . + ", -". . . . )*<%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . }$s + !*~*{*]*^*/*(*_*:*<*[*}*|*+ . . . . a J$1*@+2*_.3*4*5*6*7*>*t%t%,*8*. . . + ", -". . . . 9*(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . e k&+ + 0*a*b*c*d*e*f*g*h*i*j*.@+ . . . . e A$1$] k*l*m*n*o*p*q*r*t%t%s*4$. . . + ", -". . . . (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . A$t*d |$t*k%u*v*w*x*y*z*A*B*C*-%+ . . . . A$7 G !.D*E*F*G*H*I*J*K*L*M*N*O*. . . + ", -". . . . (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ . . . . 7 G !.P*8#3$i$G D#A.A.J$C*A%C$h$+ . . . . 7 G !.P*Q*R*;#S* .e ++1$2$_.T*F%. . . + ", -"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + U*V*V*+ + + + + + + + + + + + + + + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . k$. . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . ^ / ..8.B.@+W*X*Y*Z*`* =e e A$7 + . . . . ^ / ..8..=.=.=.=.=.=.=.=+=e A$7 + . . . . ^ / ..@=#=$=%=&=*===-=a }$e A$7 . . . + ", -". . . . / ..;=>=,='=)=!=~={=]=^=/=.@7 G + . . . . / ..8.B..=(=_=:=<=[=}=|=+=+=7 G + . . . . / ..K&1=2=3=4=5=6=7=8=9=0=A$7 G . . . + ", -". . . . / a=b=c=d=e=f=g=h=i=i=j=k=l=G !.+ . . . . ..8.B.@+m=n=o=p=q=r=s=|=+=t=+=!.+ . . . . ..u=v=w=x=y=z=A=B=C=D=E=F=G=G !.. . . + ", -". . . . H=I=J=K=L=M=N=O=P=Q=R=S=T=U=l=P*+ . . . . 8.B.@+3+V=W=X=Y=Z=<=`=|=+=+=+=+=+ . . . . @= -.-+-@-y=#-$-%-&-*-=---;->-P*. . . + ", -". . . . ,-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-+ . . . . B.@+3+t+.=1-2-3-4-<=5-|=6-7-8-+=+ . . . . 9-0-a-b-+-c-d-e-f-g-h-i-j-k-l-8#. . . + ", -". . . . m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-l=+ . . . . @+3+t++@.=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-`-. . . + ", -". . . . ;n-.;+;@;#;$;%;&;*;=;-;;;;;>;,;+ . . . . 3+t++@5@.=';);!;~;F-{;|=];^;.=+=+ . . . . /;(;_;:;<;[;};|;1;2;3;4;5;6;7;|-. . . + ", -". . . . 8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;,;+ . . . . t++@5@D@.=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;`;,;+ . . . . +@5@D@;# >.>+>@>#>$>%>%>&>*>t;+=+ . . . . =>->;>>>,>'>)>!>~>4-{>]>^>/>(>_>. . . + ", -". . . . :><>[>}>|>1>2>3>4>5>6>7>8>9>0>,;+ . . . . 5@D@;#}$a>b>c>d>e>f>g>h>i>j>s;+=+ . . . . k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>5$. . . + ", -". . . . ;#z>A>B>C>D>E>F>G>H>H>I>J>K>L>M>+ . . . . D@;#}$N>O>P>Q>R>S>T>U>V>W>X>s;+=+ . . . . Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,g$. . . + ", -". . . . ;#}$;#>,,,',),!,~,{,],^,/,(,_,:,+ . . . . ;#}$<,[,},|,1,2,3,`=4,5,6,7,j>+=+ . . . . 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,[={;5-F,H-}=G,7,j>+=+ . . . . }$H,I,J,K,L,M,N,h,O,P,Q,R,S,[#l#. . . + ", -". . . . ;#T,U,V,W,X,Y,Z,`, '.'+'@'#'$'l=+ . . . . %'&'*'='-';'{;G-F,`=s=>'6-7,j>+=+ . . . . e A$,''')'!'~'{']'^'/'('_'[#l#S#. . . + ", -". . . . :'<'['!.P*8#|-}'|'1'2'3'4'5'6':$+ . . . . 7'8'9'0'.=F-{;{;5-`=|=>'r;7,j>+=+ . . . . A$7 G a'b'c'd'e'f'g'h'i'[#l#S#:$. . . + ", -". . . . j'k'!.P*8#`-|-|-l'm'n'o'p'l=:$h$+ . . . . 7 G !.P*+=+=+=+=+=+=+=+=+=+=+=+=+ . . . . 7 G !.P*8#`-|-L;_>5$g$[#l#S#:$h$. . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . . . . . + ", -"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + . . . . . . . . . . . . . . . . + + + + + . . . . . . . . . . . . . . . . . @ + + + + . . . . . . . . . . . . . . . . . . . . + ", +"+ + + + # $ % & * = - ; > , ' ) ! ~ { ] + + + + + . ^ / ( _ : < [ } | 1 2 3 4 5 6 7 + + + + + . 8 8 8 8 8 8 8 8 9 0 a b c d e f . . . + ", +"+ + + + $ g h i j k l m g n o p q r s f + + + + + . / : t u v w x y z A B C D E F G + + + + + . 8 H I J K L M 8 N a b c d e f 7 . . . + ", +"+ + + + O P . Q R h S T U V W X Y Z ` .+ + + + + . ..+.@.#.$.%.&.*.=.-.;.>.,.'.).!.+ + + + + . 8 ~.{.].^./.(.8 N b c d e f 7 _.. . . + ", +"+ + + + :.<.[.. }.l |.1.2.3.. 4.5.6.7. .+ + + + + . 8.9.0.a.b.c.d.e.=.-.;.>.f.g.h.i.+ + + + + . 8 j.k.l.m.l.n.8 N c d e f 7 _.!.. . . + ", +"+ + + + o.p.q.r.. s.t.u.v.w.x.y.5.z.A.e + + + + + . B.C.D.a.E.c.d.e.F.-.G.>.H.I.J.K.+ + + + + . 8 L.M.N.O.P.m.8 Q.d e f 7 _.!.R.. . . + ", +"+ + + + S.T.U.i . V.W.X.Y.|.Z.`.5. +.++++ + + + + . @+#+$+%+&+*+=+e.F.-.;.>.H.-+;+>++ + + + + . 8 ,+'+)+!+~+{+{+{+{+{+{+{+{+]+^+. . . + ", +"+ + + + /+(+_+:+V.. <+[+}+5._+|+5. +1+2++ + + + + . 3+4+5+6+7+8+9+0+a+-.G.>.b+c+d+e++ + + + + . 8 8 8 8 8 8 {+f+g+h+i+j+k+{+N l+. . . + ", +"+ + + + m+m Z.:+W.. n+o+p+5.w.p+5.q+r+s++ + + + + . t+u+v+w+x+y+z+A+F.-.B+C+D+E+F+G++ + + + + . H+I+J+K+8 L+{+M+N+O+P+N.Q+{+N l+. . . + ", +"+ + + + R+g p.S+T+U+. V+W+X+Y+Z+5.`+ @.@+ + + + + . +@@@#@$@%@&@*@=@a+-.-@C+;@>@,@'@+ + + + + . {+{+{+{+{+{+{+)@!@~@{@]@^@{+N l+. . . + ", +"+ + + + /@(@_@:@<@[@. }@|@1@2@3@4@Z ^+G + + + + + . 5@6@7@8@9@0@a@b@c@-.d@C+e@f@g@h@+ + + + + . {+i@{+{+{+{+{+j@k@l@m@n@o@{+N p@. . . + ", +"+ + + + q@r@s@t@u@v@w@x@y@z@z@z@A@B@H+C@+ + + + + . D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@+ + + + + . {+{+{+{+{+{+{+T@U@V@W@X@Y@{+Z@r+. . . + ", +"+ + + + `@ #.#+#@###$#%#&#Z Z A@*#=#t+-#+ + + + + . ;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#+ + + + + . b c d }#f 7 {+{+{+{+{+{+{+{+{+|#. . . + ", +"+ + + + 1#2#3#4#5#z@A@5#5#6#5#Z 5#7#t+8#+ + + + + . / 9#0#a#b#u c#d#e#f#g#h#i#j#k#l#+ + + + + . c d e }#7 _.d m#n#o#p#q#r#s#t#9 . . . + ", +"+ + + + u#=#v#w#x#y#y#z#A#x#B#C#B#A#D#E#+ + + + + . F#G#H#I#J#u K#L#M#N#O#P#Q#R#l#S#+ + + + + . d e T#U#T#!.{+{+{+{+{+{+{+{+V#_ . . . + ", +"+ + + + W#X#Y#Z#`# $.$+$@$#$$$%$&$*$i.=$+ + + + + . -$;$>$,$'$)$!$~${$]$^$/$($_$S#:$+ + + + + . }#}#U#U#U#}#{+i@{+{+{+{+{+<$[$_ . . . + ", +"+ + + + 2+ .;#c }$|$i.1$2$_.R.3$4$5$=$6$+ + + + + . 7$8$9$0$a$b$c$d$e$f$g$[#l#S#:$h$+ + + + + . f 7 T#U#T#i${+{+{+{+{+{+{+{+j$^ . . . + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + . . . . . . . . . . . . . . . . + + + + + . . . . . . . . . . . . . . . . . + + + + + . . . . . . . . . . . . . . . . . . . . k$", +"+ + + + l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$l$m$+ + + + . ^ n$8.o$.+|#1+p$@+q$^+3+H+s r$d + m$+ m$m$. ^ / ..8.s$t$u$v$w$x$x$y$z$e A$7 . . . + ", +"+ + + + l$l$l$l$l$l$l$l$l$l$l$l$+ B$C$C$+ + + + + . / 8.+ D$E$+ F$G$H$+ H$I$I$+ +@J$+ + + + + . K$L$M$B.N$. . O$P$Q$R$S$T$++7 G . . . + ", +"+ + + + l$l$l$l$l$l$l$l$l$l$U$+ 9 l$l$l$+ + + + + . ..o$+ + + + + + + + + + + + V$J$+ + + + + . W$X$Y$Z$`$. . . %.%+%S$@%#%_.!.. . . + ", +"+ + + + l$l$l$l$l$l$l$+ + $%+ o$l$l$l$l$+ + + + + . 8..++ %%%%+ C$&%*%+ l#=%-%+ I+5@+ + + + + . ;%>%,%'%)%. . . !%~%{%S$]%^%/%R.. . . + ", +"+ + + + (%(%(%(%(%(%_%:%<%[%+ (%(%(%}%}%+ + + + + . B.|#+ |%|%+ &%*%1%+ =%-%2%+ 3%4%+ + + + + . 5%6%7%8%9%0%. . a%b%c%S$S$S$d%.@. . . + ", +"+ + + + e%e%e%e%e%f%g%e%e%h%i%j%e%e%e%e%+ + + + + . @+1++ + + + + + + + + + + + 3%k%+ + + + + . l%m%n%>%o%p%q%. O$P$r%s%t%t%u%7 . . . + ", +"+ + + + v%v%v%v%v%v%v%w%x%y%z%v%v%v%v%v%+ + + + + . 3+p$+ |%|%+ 1%A%B%C%D%E%F%+ G%m#+ + + + + . H%I%J%K%L%M%N%O%O$P%c%s%t%t%Q%s+. . . + ", +"+ + + + e%e%e%e%e%e%R%+ S%e%e%e%e%e%e%e%+ + + + + . t+@++ + + + T%U%V%W%X%Y%Z%`%H+d + + + + + . H+ &.&+&@&#&$&%&&&*&=&s%t%t%-&.@. . . + ", +"+ + + + e%e%e%e%e%e%+ ;&h%e%e%e%e%e%e%e%+ + + + + . +@q$+ |%>&,&'&)&!&~&{&]&^&/&(&|$+ + + + + . ` r+_&:&<&[&}&|&1&2&3&s%t%t%4&5&. . . + ", +"+ + + + e%e%e%6&;&+ + 7&e%e%e%e%e%e%e%e%+ + + + + . 5@^++ + 8&9&0&a&b&c&d&e&f&g&h&i&+ + + + + . j&^ k&l&m&n&o&p&q&r&2&s%t%t%s&t&. . . + ", +"+ + + + u&u&x%+ v&w&B$u&u&u&u&u&u&u&u&u&+ + + + + . D@3++ x&y&z&A&B&]&C&D&E&F&G&H&I&+ + + + + . J&r$/ K&L&M&N&O&P&Q&R&s%t%t%S&8#. . . + ", +"+ + + + T&x%U&T&T&T&T&T&T&T&T&T&T&T&T&T&+ + + + + . ;#H++ + V&W&X&Y&e&Z&`& *.*+*@*#*+ + + + + . $*k&K&7.%*f &***=*-*;*>*t%t%,*'*. . . + ", +"+ + + + )*<%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ + + + + . }$s + !*~*{*]*^*/*(*_*:*<*[*}*|*+ + + + + . a J$1*@+2*_.3*4*5*6*7*>*t%t%,*8*. . . + ", +"+ + + + 9*(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ + + + + . e k&+ + 0*a*b*c*d*e*f*g*h*i*j*.@+ + + + + . e A$1$] k*l*m*n*o*p*q*r*t%t%s*4$. . . + ", +"+ + + + (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ + + + + . A$t*d |$t*k%u*v*w*x*y*z*A*B*C*-%+ + + + + . A$7 G !.D*E*F*G*H*I*J*K*L*M*N*O*. . . + ", +"+ + + + (%(%(%(%(%(%(%(%(%(%(%(%(%(%}%}%+ + + + + . 7 G !.P*8#3$i$G D#A.A.J$C*A%C$h$+ + + + + . 7 G !.P*Q*R*;#S* .e ++1$2$_.T*F%. . . + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + U*V*V*+ + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + U*V*V*+ + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + . . . . . . . . . . . . . . . . + + + + + . . . . . . . . . . . . . . . . . k$+ + + + . . . . . . . . . . . . . . . . . . . . + ", +"+ + + + ^ / ..8.B.@+W*X*Y*Z*`* =e e A$7 + + + + + . ^ / ..8..=.=.=.=.=.=.=.=+=e A$7 + + + + + . ^ / ..@=#=$=%=&=*===-=a }$e A$7 . . . + ", +"+ + + + / ..;=>=,='=)=!=~={=]=^=/=.@7 G + + + + + . / ..8.B..=(=_=:=<=[=}=|=+=+=7 G + + + + + . / ..K&1=2=3=4=5=6=7=8=9=0=A$7 G . . . + ", +"+ + + + / a=b=c=d=e=f=g=h=i=i=j=k=l=G !.+ + + + + . ..8.B.@+m=n=o=p=q=r=s=|=+=t=+=!.+ + + + + . ..u=v=w=x=y=z=A=B=C=D=E=F=G=G !.. . . + ", +"+ + + + H=I=J=K=L=M=N=O=P=Q=R=S=T=U=l=P*+ + + + + . 8.B.@+3+V=W=X=Y=Z=<=`=|=+=+=+=+=+ + + + + . @= -.-+-@-y=#-$-%-&-*-=---;->-P*. . . + ", +"+ + + + ,-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-+ + + + + . B.@+3+t+.=1-2-3-4-<=5-|=6-7-8-+=+ + + + + . 9-0-a-b-+-c-d-e-f-g-h-i-j-k-l-8#. . . + ", +"+ + + + m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-l=+ + + + + . @+3+t++@.=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-`-. . . + ", +"+ + + + ;n-.;+;@;#;$;%;&;*;=;-;;;;;>;,;+ + + + + . 3+t++@5@.=';);!;~;F-{;|=];^;.=+=+ + + + + . /;(;_;:;<;[;};|;1;2;3;4;5;6;7;|-. . . + ", +"+ + + + 8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;,;+ + + + + . t++@5@D@.=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;`;,;+ + + + + . +@5@D@;# >.>+>@>#>$>%>%>&>*>t;+=+ + + + + . =>->;>>>,>'>)>!>~>4-{>]>^>/>(>_>. . . + ", +"+ + + + :><>[>}>|>1>2>3>4>5>6>7>8>9>0>,;+ + + + + . 5@D@;#}$a>b>c>d>e>f>g>h>i>j>s;+=+ + + + + . k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>5$. . . + ", +"+ + + + ;#z>A>B>C>D>E>F>G>H>H>I>J>K>L>M>+ + + + + . D@;#}$N>O>P>Q>R>S>T>U>V>W>X>s;+=+ + + + + . Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,g$. . . + ", +"+ + + + ;#}$;#>,,,',),!,~,{,],^,/,(,_,:,+ + + + + . ;#}$<,[,},|,1,2,3,`=4,5,6,7,j>+=+ + + + + . 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,[={;5-F,H-}=G,7,j>+=+ + + + + . }$H,I,J,K,L,M,N,h,O,P,Q,R,S,[#l#. . . + ", +"+ + + + ;#T,U,V,W,X,Y,Z,`, '.'+'@'#'$'l=+ + + + + . %'&'*'='-';'{;G-F,`=s=>'6-7,j>+=+ + + + + . e A$,''')'!'~'{']'^'/'('_'[#l#S#. . . + ", +"+ + + + :'<'['!.P*8#|-}'|'1'2'3'4'5'6':$+ + + + + . 7'8'9'0'.=F-{;{;5-`=|=>'r;7,j>+=+ + + + + . A$7 G a'b'c'd'e'f'g'h'i'[#l#S#:$. . . + ", +"+ + + + j'k'!.P*8#`-|-|-l'm'n'o'p'l=:$h$+ + + + + . 7 G !.P*+=+=+=+=+=+=+=+=+=+=+=+=+ + + + + . 7 G !.P*8#`-|-L;_>5$g$[#l#S#:$h$. . . + ", +"+ + + + . . . . . . . . . . . . . . . . + + + + + . . . . . . . . . . . . . . . . . @ + + + + . . . . . . . . . . . . . . . . . . . . + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", +"+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "}; From cc0da672a1934973825ed204810d01016db1dbcd Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Thu, 26 Jan 2023 12:09:52 -0500 Subject: [PATCH 6/9] Update help info --- wmbutton/wmb_libs.c | 7 ++++++- wmbutton/wmbutton.1 | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/wmbutton/wmb_libs.c b/wmbutton/wmb_libs.c index 1d371596..957ed8b4 100644 --- a/wmbutton/wmb_libs.c +++ b/wmbutton/wmb_libs.c @@ -98,8 +98,12 @@ void parseargs(int argc, char **argv) if (!Config.Display_str) Config.Display_str = ""; - if (!Config.szTooltipFont) + if (!Config.szTooltipFont) { + if (!Config.bigicon) Config.szTooltipFont = TOOLTIP_FONT; + else + Config.szTooltipFont = TOOLTIP_FONT_18; + } if (!Config.bTooltipDisable) Config.bTooltipDisable = !TOOLTIP_SUPPORT; @@ -127,6 +131,7 @@ void show_usage(void) fprintf(stderr, "-m Disable Middle Mouse functionality.\n"); fprintf(stderr, "-s Swap tooltip colors.\n"); fprintf(stderr, "-n Turn off tooltips.\n"); + fprintf(stderr, "-I Use 80x80 icons.\n"); fprintf(stderr, "\n"); exit(0); } diff --git a/wmbutton/wmbutton.1 b/wmbutton/wmbutton.1 index 00155d37..ad56cb3c 100644 --- a/wmbutton/wmbutton.1 +++ b/wmbutton/wmbutton.1 @@ -65,6 +65,9 @@ Swap tooltip colors. .TP .B \-n Turn off tooltips. +.TP +.B \-I +Use 80x80 icons. .SH CONFIGURATION .TP From f128df3ba18a7186207ab99c633a98127c6096b0 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Thu, 18 May 2023 17:43:41 -0400 Subject: [PATCH 7/9] Update wmbutton.c fix xsizehints --- wmbutton/wmbutton.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wmbutton/wmbutton.c b/wmbutton/wmbutton.c index e01ea681..f8ed22f2 100644 --- a/wmbutton/wmbutton.c +++ b/wmbutton/wmbutton.c @@ -147,8 +147,8 @@ int main(int argc, char **argv) fg_pixel = BlackPixel(display, screen); xsizehints.flags = USSize | USPosition; - xsizehints.width = 80; - xsizehints.height = 80; + xsizehints.width = mask_width; + xsizehints.height = mask_height; /* Parse Geometry string and fill in sizehints fields */ XWMGeometry(display, screen, From ed458b70f6d489ea01aac1b2e5bf70081b935586 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Sun, 22 Sep 2024 21:14:34 -0400 Subject: [PATCH 8/9] Support MailDir folder If the specified mail path is a directory, assume it's a MailDir folder. Assume all "new" emails are unread and use the "S" flag to determine which "cur" files are unread. Depends upon supporting d_type in dirent. --- wmymail/wmymail.c | 91 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 3 deletions(-) diff --git a/wmymail/wmymail.c b/wmymail/wmymail.c index dfe045fa..284df60e 100644 --- a/wmymail/wmymail.c +++ b/wmymail/wmymail.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -54,6 +55,8 @@ int usefetchmail = 0; int flip = 1; int checkInterval = CHECKINTERVAL; time_t lastModifySeconds = 0; +time_t lastModifySecondsNew = 0; +time_t lastModifySecondsCur = 0; off_t lastSize = 0; Pixmap mainPixmap; @@ -102,6 +105,7 @@ static DAProgramOption options[] = { void checkForNewMail(int dummy); void updatePixmap(void); void parseMailFile( struct stat *fileStat ); +void parseMailDir(void); char *getHexColorString( char *colorName ); void putnumber (int number, Pixmap pixmap, Pixmap numbers, int destx, int desty); @@ -116,7 +120,7 @@ void launch (const char *command); int main(int argc, char **argv) { Pixmap mainPixmap_mask; - unsigned width, height; + unsigned short width, height; DACallbacks callbacks = { NULL, &buttonpress, &buttonrelease, NULL, NULL, NULL, NULL }; @@ -353,12 +357,38 @@ void checkfetchmail (void) { */ void checkmbox (void) { - struct stat fileStat; + struct stat fileStat, fileStatNew, fileStatCur; + + char *mailDirNew, *mailDirCur; + + size_t dirsize; + + dirsize = strlen( mailPath) + 6; /* big enough to add the /cur, /new and two nulls */ + mailDirNew = malloc( dirsize); + mailDirCur = malloc( dirsize); + + sprintf(mailDirNew, "%s%s", mailPath, "new"); + sprintf(mailDirCur, "%s%s", mailPath, "cur"); if (stat(mailPath, &fileStat) == -1 || fileStat.st_size == 0) { numMessages = 0; numUnread = 0; - } else if (lastModifySeconds != fileStat.st_mtime || + } + else if (S_ISDIR(fileStat.st_mode)) { /* new stuff. do something about lastModify/lastSize ?*/ + /* TODO need to stat both maildir/cur and maildir/new and check their mtimes for a change */ + /* printf( "New: %s, Cur: %s \n", mailDirNew, mailDirCur); */ + if (stat( mailDirNew, &fileStatNew) != -1 && stat( mailDirCur, &fileStatCur) != -1) { + /* printf( "New time: %ld cur time: %ld\n", fileStatNew.st_mtime, fileStatCur.st_mtime); */ + if (lastModifySecondsNew != fileStatNew.st_mtime || + lastModifySecondsCur != fileStatCur.st_mtime) { + /* printf( "update mail time %ld,%ld\n", fileStatNew.st_mtime, fileStatCur.st_mtime); */ + parseMailDir( ); + lastModifySecondsNew = fileStatNew.st_mtime; + lastModifySecondsCur = fileStatCur.st_mtime; + } + } + } + else if (lastModifySeconds != fileStat.st_mtime || lastSize != fileStat.st_size) { parseMailFile(&fileStat); @@ -543,3 +573,58 @@ void launch (const char *command) { } } +/* + * parseMailDir -- reads the maildir and sets the global variables: + * + * numMessages -- total number of messages (displayed on the right) + * numRead -- messages that have been read + * numUnread -- message not yet read (displayed on the left) + * + * Assumes maildir is well behaved. Just counts the number of files in /new and /cur. + */ + +void parseMailDir () { + + /* count files in mailPath + "/new" as unread, mail + "/cur" as read */ + + DIR * dirp; + struct dirent * entry; + + char *stringa1; + size_t n; + + n = strlen( mailPath) + 5; + stringa1 = (char*) malloc(n*sizeof(char)); + + strcpy( stringa1, mailPath); + strncat( stringa1, "/new", 5); /* add the /new to look in that subdirectory */ + + dirp = opendir(stringa1); /* There should be error handling after this */ + numUnread = 0; + while ((entry = readdir(dirp)) != NULL) { + if (entry->d_type == DT_REG) { /* If the entry is a regular file, works for ext2/3/4 and btrfs */ + numUnread++; + } + } + closedir(dirp); + + strcpy( stringa1, mailPath); + strncat( stringa1, "/cur", 5); /* add the /new to look in that subdirectory */ + + dirp = opendir(stringa1); /* add the /cur. There should be error handling after this */ + numRead = 0; + while ((entry = readdir(dirp)) != NULL) { + if (entry->d_type == DT_REG) { /* If the entry is a regular file, works for ext2/3/4 and btrfs */ + /* need an if. If the filename contains an "S" it's read. */ + if ( strstr( entry->d_name, "S") != NULL) { + numRead++; + } else { + numUnread++; + } + } + } + closedir(dirp); + numMessages = numRead + numUnread; + free( stringa1); /* tidy up */ +} + From f101325183c51a943452d6c5b7225dc4d30c36e3 Mon Sep 17 00:00:00 2001 From: rjhorniii Date: Mon, 23 Sep 2024 08:58:34 -0400 Subject: [PATCH 9/9] Cleanup code, Code cleanup --- wmymail/wmymail.c | 56 ++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/wmymail/wmymail.c b/wmymail/wmymail.c index 284df60e..525a6b90 100644 --- a/wmymail/wmymail.c +++ b/wmymail/wmymail.c @@ -105,7 +105,7 @@ static DAProgramOption options[] = { void checkForNewMail(int dummy); void updatePixmap(void); void parseMailFile( struct stat *fileStat ); -void parseMailDir(void); +void parseMailDir( const char *mailDirNew, const char *mailDirCur); char *getHexColorString( char *colorName ); void putnumber (int number, Pixmap pixmap, Pixmap numbers, int destx, int desty); @@ -352,7 +352,7 @@ void checkfetchmail (void) { } /* * - * checkmbox + * checkmbox (also checks maildir) * */ @@ -363,26 +363,29 @@ void checkmbox (void) { size_t dirsize; - dirsize = strlen( mailPath) + 6; /* big enough to add the /cur, /new and two nulls */ + dirsize = strlen( mailPath) + 6; /* big enough to add the /cur or /new */ mailDirNew = malloc( dirsize); mailDirCur = malloc( dirsize); - sprintf(mailDirNew, "%s%s", mailPath, "new"); - sprintf(mailDirCur, "%s%s", mailPath, "cur"); - if (stat(mailPath, &fileStat) == -1 || fileStat.st_size == 0) { numMessages = 0; numUnread = 0; } - else if (S_ISDIR(fileStat.st_mode)) { /* new stuff. do something about lastModify/lastSize ?*/ - /* TODO need to stat both maildir/cur and maildir/new and check their mtimes for a change */ - /* printf( "New: %s, Cur: %s \n", mailDirNew, mailDirCur); */ + else if (S_ISDIR(fileStat.st_mode)) { /* it's a directory, so treat it as a MailDir.*/ + + /* if it's a mailDir, check whether it ends with "/" or needs that added */ + if (mailPath[strlen(mailPath)-1] == '/') { + sprintf(mailDirNew, "%s%s", mailPath, "new"); + sprintf(mailDirCur, "%s%s", mailPath, "cur"); + } else { + sprintf(mailDirNew, "%s/%s", mailPath, "new"); + sprintf(mailDirCur, "%s/%s", mailPath, "cur"); + } + if (stat( mailDirNew, &fileStatNew) != -1 && stat( mailDirCur, &fileStatCur) != -1) { - /* printf( "New time: %ld cur time: %ld\n", fileStatNew.st_mtime, fileStatCur.st_mtime); */ if (lastModifySecondsNew != fileStatNew.st_mtime || lastModifySecondsCur != fileStatCur.st_mtime) { - /* printf( "update mail time %ld,%ld\n", fileStatNew.st_mtime, fileStatCur.st_mtime); */ - parseMailDir( ); + parseMailDir( mailDirNew, mailDirCur); lastModifySecondsNew = fileStatNew.st_mtime; lastModifySecondsCur = fileStatCur.st_mtime; } @@ -396,6 +399,8 @@ void checkmbox (void) { lastModifySeconds = fileStat.st_mtime; lastSize = fileStat.st_size; } + free( mailDirNew); + free( mailDirCur); } /* @@ -580,26 +585,19 @@ void launch (const char *command) { * numRead -- messages that have been read * numUnread -- message not yet read (displayed on the left) * - * Assumes maildir is well behaved. Just counts the number of files in /new and /cur. + * Assumes maildir is well behaved. It counts all files in /new as + * unread. In /cur it counts files with "S" in the name as read, all + * others unread. */ -void parseMailDir () { - - /* count files in mailPath + "/new" as unread, mail + "/cur" as read */ +void parseMailDir ( const char *mailDirNew, const char *mailDirCur) { DIR * dirp; struct dirent * entry; - char *stringa1; - size_t n; + /* Anything in the "new" directory is assumed to be unread */ - n = strlen( mailPath) + 5; - stringa1 = (char*) malloc(n*sizeof(char)); - - strcpy( stringa1, mailPath); - strncat( stringa1, "/new", 5); /* add the /new to look in that subdirectory */ - - dirp = opendir(stringa1); /* There should be error handling after this */ + dirp = opendir(mailDirNew); /* There should be error handling after this */ numUnread = 0; while ((entry = readdir(dirp)) != NULL) { if (entry->d_type == DT_REG) { /* If the entry is a regular file, works for ext2/3/4 and btrfs */ @@ -608,10 +606,9 @@ void parseMailDir () { } closedir(dirp); - strcpy( stringa1, mailPath); - strncat( stringa1, "/cur", 5); /* add the /new to look in that subdirectory */ - - dirp = opendir(stringa1); /* add the /cur. There should be error handling after this */ + /* In the "cur" directory if the filename constains an "S" it has been read, otherwise it's unread */ + + dirp = opendir(mailDirCur); numRead = 0; while ((entry = readdir(dirp)) != NULL) { if (entry->d_type == DT_REG) { /* If the entry is a regular file, works for ext2/3/4 and btrfs */ @@ -625,6 +622,5 @@ void parseMailDir () { } closedir(dirp); numMessages = numRead + numUnread; - free( stringa1); /* tidy up */ }