diff -Nu glashctl/AUTHORS /home/nedko/glashctl/AUTHORS --- glashctl/AUTHORS 2006-11-07 01:06:16.000000000 +0200 +++ /home/nedko/glashctl/AUTHORS 2006-11-10 10:27:59.000000000 +0200 @@ -1,3 +1,5 @@ lash_96px.png created by Thorsten Wilms Session renaming and directory changing code added by Florian Schmidt +lash_active.xpm, lash_inactive.xpm and wmaker dockapp code made +by Nedko Arnaudov Everything else written by Lars Luthman Common subdirectories: glashctl/CVS and /home/nedko/glashctl/CVS diff -Nu glashctl/Makefile /home/nedko/glashctl/Makefile --- glashctl/Makefile 2006-11-09 16:40:10.000000000 +0200 +++ /home/nedko/glashctl/Makefile 2006-11-10 08:51:39.000000000 +0200 @@ -12,7 +12,8 @@ lashwrapper.cpp lashwrapper.hpp \ main.cpp \ sessionchooserdialog.cpp sessionchooserdialog.hpp \ - trayicon.cpp trayicon.hpp + trayicon.cpp trayicon.hpp \ + wmdockicon.cpp wmdockicon.hpp trayicon_cpp_CFLAGS = -DDATA_DIR=\"$(pkgdatadir)\" glashctl_CFLAGS = `pkg-config --cflags gtkmm-2.4 lash-1.0 jack` glashctl_LDFLAGS = `pkg-config --libs gtkmm-2.4 lash-1.0 jack` diff -Nu glashctl/lash_active.xpm /home/nedko/glashctl/lash_active.xpm --- glashctl/lash_active.xpm 1970-01-01 02:00:00.000000000 +0200 +++ /home/nedko/glashctl/lash_active.xpm 2006-11-10 09:50:09.000000000 +0200 @@ -0,0 +1,853 @@ +/* XPM */ +static char * lash_active_xpm[] = { +"64 64 786 2", +" c None", +". c #000000", +"+ c #3A3A3A", +"@ c #FFFFFF", +"# c #353535", +"$ c #303030", +"% c #484541", +"& c #666058", +"* c #68625A", +"= c #605B53", +"- c #59544E", +"; c #534F49", +"> c #4B4843", +", c #45423E", +"' c #3E3C39", +") c #363533", +"! c #323130", +"~ c #31302F", +"{ c #2F2E2E", +"] c #2F2F2F", +"^ c #313131", +"/ c #343434", +"( c #363636", +"_ c #383838", +": c #393939", +"< c #322D2D", +"[ c #443636", +"} c #57403F", +"| c #6B4B4A", +"1 c #795958", +"2 c #957471", +"3 c #A1817C", +"4 c #A4857F", +"5 c #A68982", +"6 c #A98D86", +"7 c #AB9189", +"8 c #AE958C", +"9 c #B0998F", +"0 c #B39E92", +"a c #B6A295", +"b c #B9A699", +"c c #B9A89A", +"d c #B7A899", +"e c #B4A798", +"f c #B3A596", +"g c #AFA292", +"h c #AA9E8E", +"i c #A89C8C", +"j c #A69989", +"k c #A39686", +"l c #A09383", +"m c #9A8E7E", +"n c #94897A", +"o c #8F8475", +"p c #887D70", +"q c #80766A", +"r c #7A7166", +"s c #736B60", +"t c #6C645A", +"u c #59534B", +"v c #2A2826", +"w c #373737", +"x c #43403D", +"y c #645D54", +"z c #84796C", +"A c #A39583", +"B c #B4A593", +"C c #BBAA99", +"D c #B8A595", +"E c #B4A091", +"F c #B09A8C", +"G c #AD9588", +"H c #A98F83", +"I c #A5897F", +"J c #A1837A", +"K c #9C7E75", +"L c #987870", +"M c #94726C", +"N c #906C67", +"O c #8C6662", +"P c #88605D", +"Q c #865C5A", +"R c #875A59", +"S c #895958", +"T c #8C5958", +"U c #8F5A59", +"V c #905A59", +"W c #915A58", +"X c #8F5958", +"Y c #8D5857", +"Z c #895756", +"` c #865655", +" . c #855756", +".. c #865A58", +"+. c #875D5A", +"@. c #8A615D", +"#. c #8C6661", +"$. c #8E6963", +"%. c #77615A", +"&. c #685B54", +"*. c #6D6051", +"=. c #725F49", +"-. c #8A7156", +";. c #433C35", +">. c #7D7975", +",. c #B8AC9E", +"'. c #D0C2B2", +"). c #DDCFBD", +"!. c #E3D4C1", +"~. c #E0D2C0", +"{. c #E4D5C3", +"]. c #E6D7C5", +"^. c #E4D6C4", +"/. c #EADBC9", +"(. c #E8DAC8", +"_. c #E9DBC9", +":. c #EDDFCC", +"<. c #EADBC8", +"[. c #ECDCC7", +"}. c #EBD9C4", +"|. c #E9D7C0", +"1. c #EAD7BE", +"2. c #E7D3B9", +"3. c #E7D1B6", +"4. c #E7D0B4", +"5. c #E6D0B3", +"6. c #E4CDB0", +"7. c #DEC8AC", +"8. c #D8C3A8", +"9. c #D0BCA2", +"0. c #C8B59C", +"a. c #C0AE96", +"b. c #B9A791", +"c. c #B4A08B", +"d. c #AE9A86", +"e. c #AA9381", +"f. c #A58D7C", +"g. c #A18676", +"h. c #9C7F71", +"i. c #7D6158", +"j. c #553A36", +"k. c #4F3230", +"l. c #432C2C", +"m. c #4A3232", +"n. c #4F3434", +"o. c #685543", +"p. c #8E7458", +"q. c #8D7458", +"r. c #686058", +"s. c #C6AD8F", +"t. c #C7AE90", +"u. c #C7AF92", +"v. c #C9B296", +"w. c #CCB69B", +"x. c #CCB79E", +"y. c #D0BCA4", +"z. c #D2BFA8", +"A. c #D3C1AC", +"B. c #D7C6B2", +"C. c #D5C5B1", +"D. c #D9C9B5", +"E. c #DACAB7", +"F. c #D8C9B5", +"G. c #DECEBA", +"H. c #DCCCB9", +"I. c #DDCDBA", +"J. c #E2D1BD", +"K. c #DECFBB", +"L. c #E3D3BE", +"M. c #E4D4BF", +"N. c #DFCFBB", +"O. c #877663", +"P. c #74634F", +"Q. c #77634C", +"R. c #8E7559", +"S. c #513D37", +"T. c #503535", +"U. c #675443", +"V. c #423C34", +"W. c #B99F85", +"X. c #C4AA8D", +"Y. c #C1A88B", +"Z. c #6E5B47", +"`. c #8F765A", +" + c #503D36", +".+ c #4E3333", +"++ c #665442", +"@+ c #8D7357", +"#+ c #423B34", +"$+ c #8B6D61", +"%+ c #B69B82", +"&+ c #C6AC8E", +"*+ c #C5AC8D", +"=+ c #C0A78A", +"-+ c #6D5B47", +";+ c #4F3C36", +">+ c #4E3232", +",+ c #665342", +"'+ c #8C7356", +")+ c #7E5E56", +"!+ c #B3987F", +"~+ c #C5AB8D", +"{+ c #C5AB8C", +"]+ c #C0A789", +"^+ c #4F3C35", +"/+ c #665341", +"(+ c #8C7255", +"_+ c #676057", +":+ c #C5AC8E", +"<+ c #704F4B", +"[+ c #B1957D", +"}+ c #C5AA8C", +"|+ c #C4AA8B", +"1+ c #BFA688", +"2+ c #4E3B34", +"3+ c #4D3131", +"4+ c #655240", +"5+ c #413B33", +"6+ c #C3A98B", +"7+ c #634140", +"8+ c #AE927A", +"9+ c #BFA587", +"0+ c #6D5B46", +"a+ c #4E3A34", +"b+ c #4C3131", +"c+ c #8B7155", +"d+ c #BA9F83", +"e+ c #5E3B3B", +"f+ c #AB8F77", +"g+ c #BCA184", +"h+ c #B2967D", +"i+ c #C4A98A", +"j+ c #C3A989", +"k+ c #BEA486", +"l+ c #6C5A46", +"m+ c #4D3A33", +"n+ c #4B3030", +"o+ c #64513F", +"p+ c #8B7154", +"q+ c #413A33", +"r+ c #675F56", +"s+ c #AD9078", +"t+ c #664341", +"u+ c #A88B74", +"v+ c #A48771", +"w+ c #917262", +"x+ c #C3A889", +"y+ c #C3A888", +"z+ c #BEA385", +"A+ c #6C5945", +"B+ c #4D3933", +"C+ c #63503F", +"D+ c #9F816C", +"E+ c #73524A", +"F+ c #A58871", +"G+ c #997B68", +"H+ c #8A6A5C", +"I+ c #C2A788", +"J+ c #C2A787", +"K+ c #BDA383", +"L+ c #6B5944", +"M+ c #4C3932", +"N+ c #4B2F2F", +"O+ c #63503E", +"P+ c #8A7053", +"Q+ c #BFA485", +"R+ c #C1A687", +"S+ c #917261", +"T+ c #816054", +"U+ c #A3856E", +"V+ c #8D6E5E", +"W+ c #836356", +"X+ c #C2A786", +"Y+ c #C2A686", +"Z+ c #BDA282", +"`+ c #6B5844", +" @ c #4C3831", +".@ c #4A2E2E", +"+@ c #62503E", +"@@ c #413A32", +"#@ c #665F55", +"$@ c #8E6E5D", +"%@ c #A78971", +"&@ c #836255", +"*@ c #8F6F5E", +"=@ c #A0816B", +"-@ c #826154", +";@ c #7C5B50", +">@ c #C1A685", +",@ c #C1A585", +"'@ c #BCA181", +")@ c #6A5844", +"!@ c #4B3831", +"~@ c #624F3D", +"{@ c #896F52", +"]@ c #403932", +"^@ c #665E55", +"/@ c #7A594E", +"(@ c #9D7E69", +"_@ c #78574C", +":@ c #997A66", +"<@ c #9D7E68", +"[@ c #77554B", +"}@ c #C1A584", +"|@ c #B19478", +"1@ c #C0A483", +"2@ c #BBA080", +"3@ c #6A5743", +"4@ c #4B3730", +"5@ c #492D2D", +"6@ c #68453F", +"7@ c #947561", +"8@ c #755349", +"9@ c #9C7D67", +"0@ c #9A7A65", +"a@ c #765349", +"b@ c #6A4640", +"c@ c #C0A482", +"d@ c #BBA07F", +"e@ c #695742", +"f@ c #4A3630", +"g@ c #482C2C", +"h@ c #614E3C", +"i@ c #896E51", +"j@ c #403931", +"k@ c #665E54", +"l@ c #C0A484", +"m@ c #BCA080", +"n@ c #BFA382", +"o@ c #5F3B37", +"p@ c #8B6B59", +"q@ c #755348", +"r@ c #9D7F68", +"s@ c #977762", +"t@ c #745247", +"u@ c #BB9E7E", +"v@ c #55302F", +"w@ c #BEA281", +"x@ c #C0A382", +"y@ c #997964", +"z@ c #BFA381", +"A@ c #BB9F7E", +"B@ c #695641", +"C@ c #4A362F", +"D@ c #472B2B", +"E@ c #604D3B", +"F@ c #886E50", +"G@ c #9B7C65", +"H@ c #6E4B42", +"I@ c #B09276", +"J@ c #745147", +"K@ c #826052", +"L@ c #B5987A", +"M@ c #7D5B4E", +"N@ c #9F8068", +"O@ c #94745F", +"P@ c #BCA07F", +"Q@ c #765348", +"R@ c #735046", +"S@ c #AB8D72", +"T@ c #502B2B", +"U@ c #B6997A", +"V@ c #B39678", +"W@ c #6A473F", +"X@ c #BFA281", +"Y@ c #BEA180", +"Z@ c #BFA280", +"`@ c #BA9E7D", +" # c #685641", +".# c #49352E", +"+# c #665D54", +"@# c #6C4840", +"## c #9D7E67", +"$# c #8C6C59", +"%# c #79564A", +"&# c #A7886E", +"*# c #8A6857", +"=# c #A08168", +"-# c #91705C", +";# c #B49678", +"># c #7D5A4D", +",# c #724E44", +"'# c #9A7A64", +")# c #593431", +"!# c #AD8E72", +"~# c #9D7E66", +"{# c #644039", +"]# c #B49677", +"^# c #745145", +"/# c #BEA17F", +"(# c #B99D7C", +"_# c #685541", +":# c #472A2A", +"<# c #5F4C3A", +"[# c #886D50", +"}# c #3F3831", +"|# c #655D54", +"1# c #BA9D7D", +"2# c #BB9D7D", +"3# c #B69879", +"4# c #755246", +"5# c #724F44", +"6# c #896756", +"7# c #A3846A", +"8# c #714E43", +"9# c #987862", +"0# c #967660", +"a# c #A18268", +"b# c #8D6C59", +"c# c #A8896D", +"d# c #866554", +"e# c #BDA07E", +"f# c #896755", +"g# c #876654", +"h# c #5E3A34", +"i# c #95755F", +"j# c #643F38", +"k# c #AD8F71", +"l# c #977760", +"m# c #BEA17E", +"n# c #B99D7B", +"o# c #675540", +"p# c #48342D", +"q# c #462929", +"r# c #5F4B39", +"s# c #876D4F", +"t# c #655D53", +"u# c #A18269", +"v# c #7F5D4E", +"w# c #7B594A", +"x# c #7B584A", +"y# c #704C42", +"z# c #5F3B35", +"A# c #5B3631", +"B# c #785548", +"C# c #5E3934", +"D# c #6F4C41", +"E# c #82604F", +"F# c #876653", +"G# c #7C5A4B", +"H# c #8E6D59", +"I# c #8A6856", +"J# c #714D42", +"K# c #B99B7A", +"L# c #785547", +"M# c #896855", +"N# c #997861", +"O# c #724E43", +"P# c #6A463C", +"Q# c #765346", +"R# c #654038", +"S# c #846251", +"T# c #6B463D", +"U# c #91705A", +"V# c #BDA07D", +"W# c #B89C79", +"X# c #67543F", +"Y# c #48332C", +"Z# c #876C4E", +"`# c #3F3830", +" $ c #8A6855", +".$ c #58322E", +"+$ c #BA9D7B", +"@$ c #6B473D", +"#$ c #734F43", +"$$ c #9B7B62", +"%$ c #8B6A56", +"&$ c #704D41", +"*$ c #724E42", +"=$ c #755144", +"-$ c #603B34", +";$ c #664138", +">$ c #57312D", +",$ c #57322D", +"'$ c #5B3530", +")$ c #5B3630", +"!$ c #5C3731", +"~$ c #69453B", +"{$ c #A18167", +"]$ c #B09172", +"^$ c #B89B79", +"/$ c #66543F", +"($ c #47332C", +"_$ c #452929", +":$ c #5E4B38", +"<$ c #655C52", +"[$ c #BD9F7C", +"}$ c #97765F", +"|$ c #664239", +"1$ c #6D493E", +"2$ c #6E4A3F", +"3$ c #BB9D7A", +"4$ c #A6866A", +"5$ c #846150", +"6$ c #83604F", +"7$ c #7B5849", +"8$ c #AD8E6F", +"9$ c #6C473D", +"0$ c #A48469", +"a$ c #7D5A4A", +"b$ c #714E41", +"c$ c #6A453B", +"d$ c #7C5949", +"e$ c #735043", +"f$ c #7B5848", +"g$ c #704D40", +"h$ c #92715A", +"i$ c #8A6854", +"j$ c #896753", +"k$ c #B89A78", +"l$ c #66533F", +"m$ c #46322B", +"n$ c #442828", +"o$ c #5D4A37", +"p$ c #866B4D", +"q$ c #BC9E7B", +"r$ c #A58569", +"s$ c #785446", +"t$ c #6E493E", +"u$ c #69443A", +"v$ c #A7876A", +"w$ c #815E4C", +"x$ c #765244", +"y$ c #B19272", +"z$ c #9F7F64", +"A$ c #714D40", +"B$ c #5D3831", +"C$ c #866350", +"D$ c #6E4A3E", +"E$ c #9C7B61", +"F$ c #866450", +"G$ c #9F7E63", +"H$ c #B69775", +"I$ c #B79876", +"J$ c #BB9D79", +"K$ c #B79976", +"L$ c #65533E", +"M$ c #46322A", +"N$ c #442727", +"O$ c #5D4937", +"P$ c #3F3730", +"Q$ c #BC9E7A", +"R$ c #B59775", +"S$ c #745042", +"T$ c #674137", +"U$ c #A8896B", +"V$ c #7D5A49", +"W$ c #6D483C", +"X$ c #B89A77", +"Y$ c #86634F", +"Z$ c #876551", +"`$ c #461E1E", +" % c #9B7A60", +".% c #98765D", +"+% c #BB9C78", +"@% c #B69975", +"#% c #65523D", +"$% c #45312A", +"%% c #5C4936", +"&% c #3E372F", +"*% c #645C51", +"=% c #7B5847", +"-% c #734E40", +";% c #AA8A6B", +">% c #7A5646", +",% c #694338", +"'% c #8B6953", +")% c #6F4A3D", +"!% c #916F58", +"~% c #B99B77", +"{% c #492120", +"]% c #B09170", +"^% c #BA9C78", +"/% c #BA9B77", +"(% c #B69874", +"_% c #432626", +":% c #5C4836", +"<% c #856A4C", +"[% c #83604C", +"}% c #805D4A", +"|% c #AB8B6C", +"1% c #765242", +"2% c #674237", +"3% c #906E57", +"4% c #562E29", +"5% c #A28164", +"6% c #5F3830", +"7% c #BA9A76", +"8% c #B59773", +"9% c #64513C", +"0% c #443029", +"a% c #422525", +"b% c #5C4835", +"c% c #856A4B", +"d% c #645B51", +"e% c #BA9B78", +"f% c #8C6953", +"g% c #8F6C55", +"h% c #AD8D6D", +"i% c #704B3C", +"j% c #6A4438", +"k% c #96745A", +"l% c #431A19", +"m% c #B1916F", +"n% c #B49572", +"o% c #B99A75", +"p% c #B59672", +"q% c #443028", +"r% c #5B4734", +"s% c #BA9B76", +"t% c #B69773", +"u% c #B79873", +"v% c #AF8F6D", +"w% c #633D32", +"x% c #714C3D", +"y% c #9C7A5E", +"z% c #4A221E", +"A% c #B99974", +"B% c #B89974", +"C% c #B49571", +"D% c #63503B", +"E% c #432F28", +"F% c #412424", +"G% c #5A4734", +"H% c #84694B", +"I% c #3D362F", +"J% c #645B50", +"K% c #B0906E", +"L% c #542C25", +"M% c #7C5845", +"N% c #A18062", +"O% c #5B332A", +"P% c #B89873", +"Q% c #B49570", +"R% c #432E27", +"S% c #412323", +"T% c #5A4633", +"U% c #84684A", +"V% c #3D362E", +"W% c #B1916D", +"X% c #451B19", +"Y% c #88644D", +"Z% c #B89872", +"`% c #A88766", +" & c #6C4637", +".& c #B79772", +"+& c #B3946F", +"@& c #624F3A", +"#& c #422E27", +"$& c #594533", +"%& c #836849", +"&& c #3F3F3F", +"*& c #3C3C3C", +"=& c #3B3B3B", +"-& c #635A50", +";& c #B2916D", +">& c #3D1312", +",& c #937055", +"'& c #B79771", +")& c #B2926D", +"!& c #B79670", +"~& c #B3936E", +"{& c #624F39", +"]& c #422D26", +"^& c #402222", +"/& c #594532", +"(& c #322B23", +"_& c #272727", +":& c #2C2C2C", +"<& c #4C4C4C", +"[& c #635A4F", +"}& c #B3926E", +"|& c #3C1211", +"1& c #9F7C5E", +"2& c #B6966F", +"3& c #614E39", +"4& c #412D25", +"5& c #3F2222", +"6& c #584431", +"7& c #755C41", +"8& c #211E19", +"9& c #1C1C1C", +"0& c #2B2B2B", +"a& c #424242", +"b& c #B4936D", +"c& c #3B1110", +"d& c #AA8966", +"e& c #B6956F", +"f& c #B6956E", +"g& c #B2916C", +"h& c #412C24", +"i& c #3E2121", +"j& c #624D36", +"k& c #1E1B18", +"l& c #414141", +"m& c #B5946E", +"n& c #3F1412", +"o& c #B3916C", +"p& c #B5946D", +"q& c #B1916B", +"r& c #614D38", +"s& c #402B24", +"t& c #3D2020", +"u& c #281E17", +"v& c #191818", +"w& c #1F1F1F", +"x& c #3D3D3D", +"y& c #63594E", +"z& c #491F19", +"A& c #B4936C", +"B& c #B0906A", +"C& c #604D37", +"D& c #391E1E", +"E& c #1A1111", +"F& c #1A1A1A", +"G& c #5C5348", +"H& c #AF8F6A", +"I& c #593025", +"J& c #B4936B", +"K& c #B4926B", +"L& c #B08F69", +"M& c #3F2A23", +"N& c #301919", +"O& c #161212", +"P& c #312E2B", +"Q& c #3A352E", +"R& c #483F34", +"S& c #574A3A", +"T& c #665540", +"U& c #776147", +"V& c #8B7253", +"W& c #9F825F", +"X& c #AC8C67", +"Y& c #B2916A", +"Z& c #AF8D67", +"`& c #B4926A", +" * c #B3916A", +".* c #B08E68", +"+* c #5F4C36", +"@* c #826748", +"#* c #291E18", +"$* c #161515", +"%* c #1D1D1D", +"&* c #3E3E3E", +"** c #333333", +"=* c #2D2D2D", +"-* c #2F2D2B", +";* c #38332D", +">* c #463D32", +",* c #554738", +"'* c #64523E", +")* c #735E45", +"!* c #876D50", +"~* c #9C7E5C", +"{* c #AA8A64", +"]* c #B08F68", +"^* c #B39169", +"/* c #AF8E67", +"(* c #7A6144", +"_* c #342A20", +":* c #191919", +"<* c #242424", +"[* c #2E2E2D", +"}* c #37322D", +"|* c #433B31", +"1* c #524537", +"2* c #61503C", +"3* c #705B43", +"4* c #836A4D", +"5* c #987B59", +"6* c #A88862", +"7* c #5F4B35", +"8* c #69533B", +"9* c #221E19", +"0* c #1E1E1E", +"a* c #2E2D2B", +"b* c #35312C", +"c* c #413930", +"d* c #4F4336", +"e* c #5E4E3B", +"f* c #6D5942", +"g* c #80684B", +"h* c #927656", +"i* c #372D22", +"j* c #353432", +"k* c #444444", +" ", +" ", +" ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : : + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + _ ] < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q r s t u v ! + + + + + + @ ", +" . + + + + + + w $ x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.+ + + + + + @ ", +" . + + + + + >.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.;.+ + + + + + @ ", +" . + + + + + r.s.s.s.s.s.s.s.s.s.s.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.n.n.U.q.q.V.+ + + + + + @ ", +" . + + + + + r.s.s.s.s.s.s.s.s.s.s.s.s.W.X.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.Y.Z.`.`.`. +n.n..+++q.@+#++ + + + + + @ ", +" . + + + + + r.s.s.s.s.s.s.s.s.s.s.s.s.$+%+s.s.s.s.s.&+&+&+&+&+&+&+&+&+*+*+*+=+-+`.`.`.;+n..+>+,+@+'+#++ + + + + + @ ", +" . + + + + + r.s.s.s.&+&+&+&+&+&+&+&+&+)+!+*+*+*+*+*+*+~+~+~+~+~+~+~+~+~+{+{+]+-+`.`.R.^+.+>+>+/+'+(+#++ + + + + + @ ", +" . + + + + + _+:+*+*+*+~+~+~+~+~+~+~+~+<+[+{+{+{+{+{+{+{+}+}+}+}+}+}+}+}+}+|+1+-+`.R.R.2+>+>+3+4+(+(+5++ + + + + + @ ", +" . + + + + + _+~+{+{+{+{+}+}+}+}+}+}+6+7+8+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+9+0+`.R.p.a+>+3+b+4+(+c+5++ + + + + + @ ", +" . + + + + + _+}+|+|+|+|+|+|+|+|+|+|+d+e+f+|+g+h+i+i+i+i+i+i+j+j+j+j+j+j+j+j+k+l+R.p.q.m+3+b+n+o+c+p+q++ + + + + + @ ", +" . + + + + + r+|+i+i+i+i+i+i+j+j+j+j+s+t+u+j+v+w+x+x+x+x+x+x+x+y+y+y+y+y+y+y+z+A+p.q.q.B+b+n+n+C+p+p+q++ + + + + + @ ", +" . + + + + + r+j+x+x+x+x+x+x+x+y+y+y+D+E+F+y+G+H+I+I+I+I+I+I+J+J+J+J+J+J+J+J+K+L+q.q.@+M+n+n+N+O+p+P+q++ + + + + + @ ", +" . + + + + + r+y+I+I+I+I+I+I+J+Q+R+J+S+T+U+J+V+W+X+X+X+X+X+X+X+Y+Y+Y+Y+Y+Y+Y+Z+`+q.@+'+ @n+N+.@+@P+P+@@+ + + + + + @ ", +" . + + + + + #@J+X+X+X+X+X+X+X+$@%@Y+&@*@=@Y+-@;@>@>@>@>@>@>@>@>@>@,@,@,@,@,@'@)@@+'+'+!@N+.@.@~@P+{@]@+ + + + + + @ ", +" . + + + + + ^@Y+>@>@>@>@>@>@>@/@(@,@_@:@<@,@[@[@,@}@|@}@}@}@}@}@}@}@1@1@1@1@2@3@'+'+(+4@.@.@5@~@{@{@]@+ + + + + + @ ", +" . + + + + + ^@,@,@}@}@}@}@}@}@6@7@}@8@9@0@1@8@a@1@1@b@1@1@1@1@1@1@1@1@c@c@c@d@e@'+(+c+f@.@5@g@h@{@i@j@+ + + + + + @ ", +" . + + + + + k@l@1@1@1@1@m@9@n@o@p@n@q@r@s@c@t@t@c@u@v@w@x@y@x@x@x@x@x@x@z@z@A@B@(+c+p+C@5@g@D@E@i@F@j@+ + + + + + @ ", +" . + + + + + k@1@c@c@c@c@G@H@I@J@K@L@M@N@O@P@Q@R@z@S@T@U@V@W@X@Y@X@X@X@X@Z@Z@`@ #c+p+p+.#g@D@D@E@F@F@j@+ + + + + + @ ", +" . + + + + + +#x@z@z@z@z@q@@###$#%#&#*#=#-#;#>#,#Z@'#)#!#~#{#]#^#/#/#/#/#/#/#(#_#p+p+P+.#D@D@:#<#F@[#}#+ + + + + + @ ", +" . + + + + + |#1#2#Z@Z@3#4#5#6#7#8#9#0#a#b#c#d#8#e#f#8#7#g#h#i#j#k#l#m#m#m#e#n#o#p+P+P+p#D@:#q#r#[#s#}#+ + + + + + @ ", +" . + + + + + t#u#v#w#x#4#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#k#U#V#V#W#X#P+P+{@Y#:#q#q#r#s#Z#`#+ + + + + + @ ", +" . + + + + + t#m#e#e#e#e#e# $.$+$@$#$$$%$&$*$=$-$=$.$@$;$>$.$,$'$)$!$~$>${$]$^$/$P+{@{@($q#q#_$:$Z#Z#`#+ + + + + + @ ", +" . + + + + + <$V#[$[$[$[$[$}$|$[$1$2$3$4$5$6$4$7$8$9$0$a$b$c$d$e$*$f$g$h$i$j$k$l${@{@i@m$q#_$n$o$Z#p$`#+ + + + + + @ ", +" . + + + + + <$[$q$q$q$q$q$r$s$q$t$u$q$v$w$x$y$w$z$A$8$B$C$D$E$F$G$H$I$J$J$J$K$L${@i@F@M$_$n$N$O$p$p$P$+ + + + + + @ ", +" . + + + + + <$q$Q$Q$Q$Q$Q$J$R$Q$S$T$J$U$V$W$X$Y$Z$w$H$`$ %.%K$+%J$+%+%+%+%+%@%#%i@F@F@$%n$N$N$%%p$p$&%+ + + + + + @ ", +" . + + + + + *%3$J$J$J$J$J$J$J$J$=%-%+%;%>%,%+%'%)%!%~%{%]%^%^%^%/%/%/%/%/%/%(%#%F@F@[#$%N$N$_%:%p$<%&%+ + + + + + @ ", +" . + + + + + *%J$^%^%^%^%^%^%^%^%[%}%/%|%1%2%/%3%4%5%/%6%/%/%/%/%/%7%7%7%7%7%8%9%F@[#s#0%N$_%a%b%<%c%&%+ + + + + + @ ", +" . + + + + + d%e%/%/%/%/%/%/%/%/%f%g%7%h%i%j%7%k%l%m%7%n%o%o%o%o%o%o%o%o%o%o%p%9%[#s#Z#q%_%a%a%r%c%c%&%+ + + + + + @ ", +" . + + + + + d%s%7%7%7%o%o%o%o%o%t%u%o%v%w%x%o%y%z%o%o%o%A%A%A%A%A%A%A%A%A%B%C%D%s#Z#Z#E%a%a%F%G%c%H%I%+ + + + + + @ ", +" . + + + + + J%o%o%o%o%o%A%A%A%A%A%A%A%K%L%M%B%N%O%B%B%B%B%P%P%P%P%P%P%P%P%P%Q%D%Z#Z#p$R%a%F%S%T%H%U%V%+ + + + + + @ ", +" . + + + + + J%A%B%B%B%B%B%P%P%P%P%P%P%W%X%Y%Z%`% &Z%Z%Z%Z%Z%.&.&.&.&.&.&.&.&+&@&Z#p$p$#&F%S%S%$&U%%&@@&&*&=&+ + + @ ", +" . + + + + + -&P%Z%Z%Z%Z%Z%Z%.&.&.&.&.&;&>&,&'&'&)&'&'&'&'&'&'&'&'&'&'&'&'&!&~&{&p$p$p$]&S%S%^&/&%&%&(&_&:&] _ <&+ @ ", +" . + + + + + [&.&'&'&'&'&'&'&'&'&'&'&'&}&|&1&!&!&!&!&!&!&!&!&2&2&2&2&2&2&2&2&)&3&p$p$<%4&S%^&5&6&%&7&8&9&9&0&a&+ + @ ", +" . + + + + + [&'&!&!&!&!&!&!&2&2&2&2&2&b&c&d&e&e&e&e&e&e&e&e&e&f&f&f&f&f&f&f&g&3&p$<%c%h&^&5&i&6&j&k&9&9&# l&+ + + @ ", +" . + + + + + [&2&e&e&e&e&e&e&e&f&f&f&f&m&n&o&f&m&m&m&m&m&m&m&m&m&p&p&p&p&p&p&q&r&<%c%c%s&5&i&t&u&v&9&w&&&x&+ + + + @ ", +" . + + + + + y&e&m&m&m&m&m&m&m&m&p&p&p&p&z&p&p&p&p&p&p&p&p&p&p&p&p&A&A&A&A&A&B&C&c%c%H%s&i&D&E&F&9&_&a&+ + + + + + @ ", +" . + + + + + G&H&A&p&p&p&p&p&p&p&p&A&A&A&I&A&A&A&A&J&J&J&J&J&J&J&J&J&K&K&K&K&L&C&c%H%U%M&N&O&9&9&^ l&+ + + + + + + @ ", +" . + + + + + $ P&Q&R&S&T&U&V&W&X&Y&J&K&K&Z&K&K&K&K&K&`&`&`&`&`&`&`&`&`& * * *.*+*H%U%@*#*$*9&%**&&*+ + + + + + + + @ ", +" . + + + + + + + + + + + _ **=*-*;*>*,*'*)*!*~*{*]* * * *^*^*^*^*^*^*^*^*^*^*/*+*U%(*_*:*9&<*a&=&+ + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + : / [*-*}*|*1*2*3*4*5*6*/*^*^*^*^*^*/*7*8*9*0*] _ a&+ + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + : # { a*b*c*d*e*f*g*h*i*j*&&k*=&+ + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ( ] / + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", +" ", +" ", +" "}; diff -Nu glashctl/lash_inactive.xpm /home/nedko/glashctl/lash_inactive.xpm --- glashctl/lash_inactive.xpm 1970-01-01 02:00:00.000000000 +0200 +++ /home/nedko/glashctl/lash_inactive.xpm 2006-11-10 09:49:13.000000000 +0200 @@ -0,0 +1,605 @@ +/* XPM */ +static char * lash_inactive_xpm[] = { +"64 64 538 2", +" c None", +". c #000000", +"+ c #3A3A3A", +"@ c #FFFFFF", +"# c #353535", +"$ c #303030", +"% c #464544", +"& c #605F5E", +"* c #63615F", +"= c #5B5A59", +"- c #555453", +"; c #4F4E4D", +"> c #484746", +", c #434241", +"' c #3C3C3C", +") c #313131", +"! c #2F2F2F", +"~ c #343434", +"{ c #363636", +"] c #383838", +"^ c #393939", +"/ c #3E3C3C", +"( c #4E4948", +"_ c #5F5857", +": c #6C6666", +"< c #87807F", +"[ c #938C8B", +"} c #968F8E", +"| c #989290", +"1 c #9C9694", +"2 c #9E9896", +"3 c #A09B9A", +"4 c #A39F9D", +"5 c #A7A29F", +"6 c #A9A5A3", +"7 c #ACA8A6", +"8 c #ADAAA7", +"9 c #ABA8A5", +"0 c #A9A6A3", +"a c #A8A5A2", +"b c #A4A19E", +"c c #9F9C99", +"d c #9D9A97", +"e c #9B9895", +"f c #989592", +"g c #95928F", +"h c #8F8C89", +"i c #8A8784", +"j c #848280", +"k c #7E7C7A", +"l c #777573", +"m c #72706E", +"n c #6C6A68", +"o c #656361", +"p c #535251", +"q c #282828", +"r c #373737", +"s c #41403F", +"t c #5D5C5B", +"u c #7A7876", +"v c #969390", +"w c #A8A4A0", +"x c #AEAAA6", +"y c #ABA7A3", +"z c #A29D9A", +"A c #9F9A97", +"B c #9A9492", +"C c #96908E", +"D c #928C8A", +"E c #8D8785", +"F c #888180", +"G c #847D7C", +"H c #807978", +"I c #7C7372", +"J c #786F6E", +"K c #756C6B", +"L c #756B6B", +"M c #766C6C", +"N c #776D6D", +"O c #7A6E6E", +"P c #7B6F6F", +"Q c #786C6C", +"R c #736969", +"S c #746B6A", +"T c #766D6C", +"U c #79706F", +"V c #7E7674", +"W c #6C6766", +"X c #605D5C", +"Y c #625F5C", +"Z c #625E5A", +"` c #76706A", +" . c #3D3C3B", +".. c #797979", +"+. c #AEABA8", +"@. c #C4C1BE", +"#. c #D1CDC9", +"$. c #D6D2CE", +"%. c #D4D0CC", +"&. c #D8D4D0", +"*. c #DAD6D2", +"=. c #DDDAD7", +"-. c #DCD8D4", +";. c #DCD9D6", +">. c #E0DDDA", +",. c #DDD9D5", +"'. c #DEDBD6", +"). c #D9D6D1", +"!. c #D9D5CF", +"~. c #D5D1CB", +"{. c #D4CFCA", +"]. c #D4CEC8", +"^. c #D2CEC8", +"/. c #D0CBC4", +"(. c #CAC6C0", +"_. c #C5C1BB", +":. c #BEBAB4", +"<. c #B7B3AD", +"[. c #B0ACA6", +"}. c #A9A5A1", +"|. c #A4A09C", +"1. c #9E9A96", +"2. c #9A9692", +"3. c #95908D", +"4. c #918B87", +"5. c #8C8582", +"6. c #6F6967", +"7. c #494343", +"8. c #433D3D", +"9. c #3A3636", +"0. c #403C3C", +"a. c #453F3F", +"b. c #5A5652", +"c. c #79736D", +"d. c #62605E", +"e. c #B1ABA5", +"f. c #B2ACA6", +"g. c #B3ADA7", +"h. c #B6B0AA", +"i. c #B9B4AF", +"j. c #BAB5B0", +"k. c #BFBAB5", +"l. c #C2BDB8", +"m. c #C4C0BC", +"n. c #C9C5C1", +"o. c #C7C3BF", +"p. c #CBC8C3", +"q. c #CDC9C5", +"r. c #CBC7C3", +"s. c #D0CCC8", +"t. c #CFCBC7", +"u. c #D5D2CD", +"v. c #D6D3CE", +"w. c #D1CEC9", +"x. c #797571", +"y. c #66625E", +"z. c #67625D", +"A. c #7A746E", +"B. c #474341", +"C. c #464040", +"D. c #595551", +"E. c #3C3B3A", +"F. c #A59F99", +"G. c #AFA9A3", +"H. c #ACA6A0", +"I. c #5F5B57", +"J. c #7B756F", +"K. c #464240", +"L. c #443E3E", +"M. c #585450", +"N. c #78726C", +"O. c #7B7471", +"P. c #A19C97", +"Q. c #B0AAA4", +"R. c #AFAAA3", +"S. c #ABA59F", +"T. c #5E5A56", +"U. c #77716B", +"V. c #6E6866", +"W. c #9F9993", +"X. c #45413F", +"Y. c #625B5A", +"Z. c #9D9791", +"`. c #AEA9A2", +" + c #AAA49E", +".+ c #44403E", +"++ c #423C3C", +"@+ c #57534F", +"#+ c #3B3A39", +"$+ c #ADA8A1", +"%+ c #564E4E", +"&+ c #99948F", +"*+ c #A9A49D", +"=+ c #514949", +"-+ c #97918B", +";+ c #A6A09A", +">+ c #9E9892", +",+ c #ACA7A0", +"'+ c #A8A29C", +")+ c #5D5955", +"!+ c #433F3D", +"~+ c #413B3B", +"{+ c #56524E", +"]+ c #615F5D", +"^+ c #99928D", +"/+ c #585050", +"(+ c #938D89", +"_+ c #908A86", +":+ c #7F7875", +"<+ c #55514D", +"[+ c #8B8581", +"}+ c #635C5B", +"|+ c #86807C", +"1+ c #78716E", +"2+ c #ABA69F", +"3+ c #A6A19A", +"4+ c #5C5854", +"5+ c #423E3C", +"6+ c #403A3A", +"7+ c #756F69", +"8+ c #A8A39C", +"9+ c #AAA59E", +"0+ c #7E7774", +"a+ c #706966", +"b+ c #8F8883", +"c+ c #726B68", +"d+ c #3F3939", +"e+ c #54504C", +"f+ c #3C3A38", +"g+ c #605E5C", +"h+ c #7B7571", +"i+ c #928B86", +"j+ c #716A67", +"k+ c #7C7572", +"l+ c #8C8580", +"m+ c #6B6461", +"n+ c #A5A099", +"o+ c #5B5753", +"p+ c #413D3B", +"q+ c #746E68", +"r+ c #3A3938", +"s+ c #69625F", +"t+ c #88827E", +"u+ c #67605D", +"v+ c #857F7B", +"w+ c #89827D", +"x+ c #665F5C", +"y+ c #9B958F", +"z+ c #A9A39B", +"A+ c #A49F98", +"B+ c #3E3838", +"C+ c #59514F", +"D+ c #807A76", +"E+ c #645C5A", +"F+ c #88817C", +"G+ c #655D5B", +"H+ c #5A5250", +"I+ c #A8A29A", +"J+ c #A49E96", +"K+ c #403B3A", +"L+ c #3D3737", +"M+ c #534F4B", +"N+ c #736D67", +"O+ c #3B3937", +"P+ c #5F5D5B", +"Q+ c #4F4747", +"R+ c #77706D", +"S+ c #837C77", +"T+ c #635B59", +"U+ c #A49D96", +"V+ c #463E3E", +"W+ c #A7A199", +"X+ c #847E7A", +"Y+ c #403C3A", +"Z+ c #3C3636", +"`+ c #524E4A", +" @ c #726C66", +".@ c #867F7A", +"+@ c #5D5553", +"@@ c #99938D", +"#@ c #6F6865", +"$@ c #8A837E", +"%@ c #807974", +"&@ c #625A58", +"*@ c #958F89", +"=@ c #423A3A", +"-@ c #9C9690", +";@ c #A6A098", +">@ c #A39D95", +",@ c #3F3B39", +"'@ c #5B5351", +")@ c #78726E", +"!@ c #918A85", +"~@ c #766F6C", +"{@ c #7D7671", +"]@ c #9D968F", +"^@ c #6A6360", +"/@ c #605856", +"(@ c #857E79", +"_@ c #494141", +":@ c #96908A", +"<@ c #544C4A", +"[@ c #625B58", +"}@ c #A29C94", +"|@ c #514D49", +"1@ c #3A3836", +"2@ c #A39C95", +"3@ c #635C59", +"4@ c #756E6B", +"5@ c #8D8681", +"6@ c #5F5755", +"7@ c #817A75", +"8@ c #8B847F", +"9@ c #918B85", +"0@ c #A59F97", +"a@ c #756D69", +"b@ c #746C68", +"c@ c #4E4644", +"d@ c #534B49", +"e@ c #968F88", +"f@ c #827B76", +"g@ c #A19B93", +"h@ c #3E3A38", +"i@ c #3B3535", +"j@ c #504C48", +"k@ c #716B65", +"l@ c #5E5C5A", +"m@ c #6C6562", +"n@ c #68615E", +"o@ c #5E5654", +"p@ c #4F4745", +"q@ c #4B4241", +"r@ c #655E5B", +"s@ c #4E4544", +"t@ c #6E6764", +"u@ c #736C67", +"v@ c #7A736E", +"w@ c #766E6A", +"x@ c #A19A93", +"y@ c #756E69", +"z@ c #58504E", +"A@ c #7C7570", +"B@ c #A09A92", +"C@ c #3D3937", +"D@ c #473F3F", +"E@ c #605956", +"F@ c #77706B", +"G@ c #473E3D", +"H@ c #4B4341", +"I@ c #4C4442", +"J@ c #574F4D", +"K@ c #98918A", +"L@ c #3A3434", +"M@ c #4F4B47", +"N@ c #554D4B", +"O@ c #5C5452", +"P@ c #8F8881", +"Q@ c #706864", +"R@ c #6F6763", +"S@ c #958E87", +"T@ c #5E5754", +"U@ c #5D5653", +"V@ c #746D68", +"W@ c #9F9991", +"X@ c #3C3836", +"Y@ c #393333", +"Z@ c #4E4A46", +"`@ c #706A64", +" # c #8E8780", +".# c #645D5A", +"+# c #8F8983", +"@# c #6D6561", +"## c #99928B", +"$# c #716965", +"%# c #5B5451", +"&# c #716A65", +"*# c #87807B", +"=# c #9E9790", +"-# c #9E9890", +";# c #3B3735", +"># c #9C968E", +",# c #908A84", +"'# c #726B66", +")# c #362E2E", +"!# c #847D78", +"~# c #9D978F", +"{# c #4D4945", +"]# c #393735", +"^# c #5D5B59", +"/# c #675F5B", +"(# c #605854", +"_# c #928B84", +":# c #665E5A", +"<# c #564E4C", +"[# c #7B746F", +"}# c #3A3130", +"|# c #979089", +"1# c #383232", +"2# c #6F6963", +"3# c #6E6662", +"4# c #6B635F", +"5# c #938C85", +"6# c #625A56", +"7# c #453C3B", +"8# c #8A837C", +"9# c #4D4543", +"0# c #9B958D", +"a# c #3A3634", +"b# c #373131", +"c# c #6E6962", +"d# c #78716C", +"e# c #948D86", +"f# c #5C5450", +"g# c #7F7771", +"h# c #332A29", +"i# c #9A948C", +"j# c #393533", +"k# c #4C4844", +"l# c #504846", +"m# c #5C5552", +"n# c #847C76", +"o# c #39302F", +"p# c #363030", +"q# c #4B4743", +"r# c #6E6862", +"s# c #373635", +"t# c #5C5A58", +"u# c #423938", +"v# c #89827B", +"w# c #49403D", +"x# c #99938B", +"y# c #383432", +"z# c #352F2F", +"A# c #6D6761", +"B# c #383634", +"C# c #969088", +"D# c #342B2A", +"E# c #584F4C", +"F# c #98928A", +"G# c #4A4642", +"H# c #6C6760", +"I# c #3F3F3F", +"J# c #3B3B3B", +"K# c #2D2323", +"L# c #7B736D", +"M# c #9C958C", +"N# c #979189", +"O# c #373331", +"P# c #342E2E", +"Q# c #2D2B29", +"R# c #272727", +"S# c #2C2C2C", +"T# c #4C4C4C", +"U# c #5B5957", +"V# c #2C2222", +"W# c #867F78", +"X# c #9B948B", +"Y# c #363230", +"Z# c #494541", +"`# c #615B55", +" $ c #1E1D1C", +".$ c #1C1C1C", +"+$ c #2B2B2B", +"@$ c #424242", +"#$ c #999289", +"$$ c #2B2121", +"%$ c #9A938A", +"&$ c #332D2D", +"*$ c #514C47", +"=$ c #1C1B1A", +"-$ c #414141", +";$ c #2E2424", +">$ c #989088", +",$ c #968F86", +"'$ c #524D48", +")$ c #35312F", +"!$ c #322C2C", +"~$ c #22201E", +"{$ c #191919", +"]$ c #1F1F1F", +"^$ c #3D3D3D", +"/$ c #362D2C", +"($ c #989188", +"_$ c #958E85", +":$ c #2F2929", +"<$ c #171515", +"[$ c #1A1A1A", +"}$ c #545250", +"|$ c #453C39", +"1$ c #34302E", +"2$ c #272323", +"3$ c #141414", +"4$ c #2F2E2D", +"5$ c #353433", +"6$ c #403E3C", +"7$ c #4C4946", +"8$ c #645F5A", +"9$ c #757069", +"0$ c #868078", +"a$ c #918B83", +"b$ c #938B83", +"c$ c #979087", +"d$ c #948C84", +"e$ c #6B665F", +"f$ c #23201F", +"g$ c #161616", +"h$ c #1D1D1D", +"i$ c #3E3E3E", +"j$ c #333333", +"k$ c #2D2D2D", +"l$ c #343332", +"m$ c #3E3C3A", +"n$ c #4A4744", +"o$ c #615C57", +"p$ c #837D75", +"q$ c #8F887F", +"r$ c #948D84", +"s$ c #938C83", +"t$ c #655F59", +"u$ c #2C2A28", +"v$ c #242424", +"w$ c #2E2E2E", +"x$ c #333231", +"y$ c #484542", +"z$ c #5F5A55", +"A$ c #807A72", +"B$ c #8D867D", +"C$ c #4F4A45", +"D$ c #57524D", +"E$ c #1F1E1D", +"F$ c #1E1E1E", +"G$ c #323130", +"H$ c #464340", +"I$ c #5D5853", +"J$ c #6C6660", +"K$ c #7A756E", +"L$ c #2F2D2B", +"M$ c #444444", +" ", +" ", +" ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + # $ % & * = - ; > , ' # ) $ ! ! ) ~ { ] ^ ^ + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + ] ! $ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i j k l m n o p q ) + + + + + + @ ", +" . + + + + + + r $ s t u v w x y 5 z A B C D E F G H I J K L M N O P P O Q L R R S T U I V W X Y Z ` .+ + + + + + @ ", +" . + + + + + ..+.@.#.$.%.&.*.&.=.-.;.>.,.'.-.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.c. .+ + + + + + @ ", +" . + + + + + d.e.e.e.e.e.e.e.e.e.e.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.s.%.#.u.v.w.x.y.z.A.B.C.a.a.D.c.c.E.+ + + + + + @ ", +" . + + + + + d.e.e.e.e.e.e.e.e.e.e.e.e.F.G.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.H.I.J.J.J.K.a.a.L.M.c.N.E.+ + + + + + @ ", +" . + + + + + d.e.e.e.e.e.e.e.e.e.e.e.e.O.P.e.e.e.e.e.Q.Q.Q.Q.Q.Q.Q.Q.Q.R.R.R.S.T.J.J.J.K.a.L.8.M.N.U.E.+ + + + + + @ ", +" . + + + + + d.e.e.e.Q.Q.Q.Q.Q.Q.Q.Q.Q.V.W.R.R.R.R.R.R.G.G.G.G.G.G.G.G.G.G.G.S.T.J.J.A.X.L.8.8.M.U.U.E.+ + + + + + @ ", +" . + + + + + & Q.R.R.R.G.G.G.G.G.G.G.G.Y.Z.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.`. +T.J.A.A..+8.8.++@+U.U.#++ + + + + + @ ", +" . + + + + + & G.G.G.G.G.G.G.G.G.G.G.$+%+&+`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.*+T.J.A.c..+8.++++@+U.` #++ + + + + + @ ", +" . + + + + + & G.`.`.`.`.`.`.`.`.`.`.F.=+-+`.;+>+$+$+$+$+$+$+,+,+,+,+,+,+,+,+'+)+A.c.c.!+++++~+{+` ` #++ + + + + + @ ", +" . + + + + + ]+`.$+$+$+$+$+$+,+,+,+,+^+/+(+,+_+:+,+,+,+,+,+,+,+,+,+,+,+,+,+,+'+)+c.c.c.!+++~+~+<+` ` #++ + + + + + @ ", +" . + + + + + ]+,+,+,+,+,+,+,+,+,+,+,+[+}+_+,+|+1+2+2+2+2+2+2+2+2+2+2+2+2+2+2+3+4+c.c.N.5+~+~+6+<+` 7+#++ + + + + + @ ", +" . + + + + + ]+,+2+2+2+2+2+2+2+8+9+2+0+a+b+2+O.c+9+9+9+9+9+9+9+9+9+9+9+9+9+9+3+4+c.N.U.5+~+6+d+e+7+7+f++ + + + + + @ ", +" . + + + + + g+2+9+9+9+9+9+9+9+h+i+9+j+k+l+9+a+m+*+*+*+*+*+*+*+*+*+*+*+*+*+*+n+o+N.U.U.p+6+d+d+e+7+q+r++ + + + + + @ ", +" . + + + + + g+9+*+*+*+*+*+*+*+s+t+*+u+v+w+*+x+x+*+*+y+*+*+*+*+*+*+*+z+z+z+z+A+o+U.U.U.p+d+d+B+e+q+q+r++ + + + + + @ ", +" . + + + + + g+*+*+*+*+*+*+*+*+C+D+*+E+F+v+z+E+G+z+z+H+z+z+z+z+z+z+z+z+I+I+I+J+b.U.U.` K+d+B+L+M+q+N+O++ + + + + + @ ", +" . + + + + + P+z+z+z+z+z+A+F+I+Q+R+I+E+w+S+I+T+T+I+U+V+W+I+X+I+I+I+I+I+I+W+W+J+D.U.` ` Y+B+L+Z+`+N+ @O++ + + + + + @ ", +" . + + + + + P+z+I+I+I+I+.@+@@@T+#@>+m+$@%@A+E+&@W+*@=@>+-@H+W+;@W+W+W+W+W+W+>@D.` ` ` ,@L+Z+Z+`+ @ @O++ + + + + + @ ", +" . + + + + + P+I+W+W+W+W+E+'@F+)@u+!@~@$@{@]@^@/@W+(@_@:@F+<@]@[@;@;@;@;@;@;@}@D.` ` 7+,@Z+Z+Z+|@ @ @1@+ + + + + + @ ", +" . + + + + + P+2@2@W+W+>+3@/@4@5@6@S+7@8@)@9@c+6@0@a@6@5@b@c@%@d@e@f@0@0@0@0@g@M.` 7+7+h@Z+Z+i@j@ @k@1@+ + + + + + @ ", +" . + + + + + l@8@m@n@n@3@o@p@q@r@s@+@t@u@s+v@w@6@x@r@y@S+/@z@3@<@a+C+e@A@J+J+B@@+7+7+q+C@Z+i@i@j@k@k@1@+ + + + + + @ ", +" . + + + + + l@0@0@0@0@0@0@w@D@}@C+E@(@F@o@6@&@p@&@D@C+<@G@D@G@q@H@I@J@G@$@K@B@@+7+q+q+C@i@i@L@M@k@k@1@+ + + + + + @ ", +" . + + + + + l@J+J+J+J+J+J+7@N@J+'@O@}@P@Q@R@P@u+S@H+5@s+T@z@n@E@6@u+U@A@y@V@W@@+q+q+N+X@i@L@Y@Z@k@`@1@+ + + + + + @ ", +" . + + + + + l@J+>@>@>@>@>@ #.#>@'@J@>@+#@#[@##@#F+o@S@I@$#%#(@&#*#]@=#g@g@g@-#{+q+N+ @;#L@Y@Y@Z@`@`@1@+ + + + + + @ ", +" . + + + + + l@>@}@}@}@}@}@g@>#}@E@<@g@,#n@H+W@$#'#@#]@)#!#7@-#g@g@g@g@g@g@g@~#<+N+ @ @;#Y@Y@Y@{#`@`@]#+ + + + + + @ ", +" . + + + + + ^#}@g@g@g@g@g@g@g@g@/#(#g@_#:#<#g@y@'@[#W@}#|#B@B@B@B@B@B@B@B@B@>#<+ @ @ @;#Y@Y@1#{#`@2#]#+ + + + + + @ ", +" . + + + + + ^#g@B@B@B@B@B@B@B@B@3#4#B@5#6#<@B@v@7#8#B@9#B@B@B@B@B@W@W@W@W@W@0#e+ @ @k@a#Y@1#b#{#2#c#]#+ + + + + + @ ", +" . + + + + + ^#B@B@B@B@B@B@B@B@B@w@d#W@e#f#<#W@g#h#|#W@i#-#-#-#-#-#-#-#-#-#-#0#e+ @k@k@j#1#b#b#k#c#c#]#+ + + + + + @ ", +" . + + + + + ^#W@W@W@W@-#-#-#-#-#>#>#-#S@l#m#-#n#o#-#-#-#-#-#-#-#-#-#-#-#-#~#i#M+k@k@k@j#b#b#p#q#c#r#s#+ + + + + + @ ", +" . + + + + + t#-#-#-#-#-#-#-#-#-#-#-#-#e@u#/#~#v#w#~#~#~#~#~#~#~#~#~#~#~#~#~#x#M+k@k@`@y#b#p#z#q#r#A#B#+ + + + + + @ ", +" . + + + + + t#-#~#~#~#~#~#~#~#~#~#~#~#C#D#&#># #E#>#>#>#>#>#>#>#>#>#>#>#>#>#F#`+k@`@`@y#p#z#z#G#A#H#f+I#' J#+ + + @ ", +" . + + + + + t#~#>#>#>#>#>#>#>#>#>#>#>#|#K#L#M#M#N#M#M#M#M#M#M#M#M#M#M#M#M#M#F#`+`@`@`@O#z#z#P#G#H#H#Q#R#S#! ] T#+ @ ", +" . + + + + + U#>#M#M#M#M#M#M#M#M#M#M#M#K@V#W#M#M#M#M#M#M#M#M#X#X#X#X#X#X#X#X#N#|@`@`@2#Y#z#P#P#Z#H#`# $.$.$+$@$+ + @ ", +" . + + + + + U#M#M#M#M#M#M#M#X#X#X#X#X##$$$P@X#X#X#X#X#X#X#X#X#%$%$%$%$%$%$%$e@|@`@2#c#Y#P#P#&$Z#*$=$.$.$# -$+ + + @ ", +" . + + + + + U#X#X#X#X#X#X#X#X#%$%$%$%$%$;$>$%$%$%$%$%$%$%$%$%$%$#$#$#$#$#$#$,$'$2#c#c#)$P#&$!$~${$.$]$I#^$+ + + + @ ", +" . + + + + + U#X#%$%$%$%$%$%$%$%$#$#$#$#$/$#$#$#$#$#$#$#$#$#$#$#$#$($($($($($_$j@c#c#r#)$&$:$<$[$.$R#@$+ + + + + + @ ", +" . + + + + + }$_$($#$#$#$#$#$#$#$#$($($($|$($($($($($($($($($($($($($($($($($_$j@c#r#A#1$2$3$.$.$) -$+ + + + + + + @ ", +" . + + + + + $ 4$5$6$7$@+8$9$0$a$,$($($($b$($($($($($c$c$c$c$c$c$c$c$c$c$c$c$d$M@r#A#e$f$g$.$h$' i$+ + + + + + + + @ ", +" . + + + + + + + + + + + ] j$k$k$l$m$n$<+o$ @p$q$r$c$c$c$,$,$,$,$,$,$,$,$,$,$s$M@A#t$u${$.$v$@$J#+ + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + ^ ~ w$k$x$f+y$M+z$r#A$B$s$,$,$,$,$,$s$C$D$E$F$! ] @$+ + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + ^ # ! k$G$O+H$|@I$J$K$L$~ I#M$J#+ + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { ! ~ + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ ", +" @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", +" ", +" ", +" "}; diff -Nu glashctl/main.cpp /home/nedko/glashctl/main.cpp --- glashctl/main.cpp 2006-11-07 22:24:29.000000000 +0200 +++ /home/nedko/glashctl/main.cpp 2006-11-10 08:51:08.000000000 +0200 @@ -28,6 +28,9 @@ #include "lashwrapper.hpp" //#include "termwin.hpp" #include "trayicon.hpp" +//#define IconImpl TrayIcon +#include "wmdockicon.hpp" +#define IconImpl WMDockIcon using namespace std; @@ -62,7 +65,7 @@ Main kit(argc, argv); LASHWrapper lashd(&argc, &argv); JACKWrapper jackd("glashctl"); - TrayIcon icon; + IconImpl icon; // connect the signals icon.signal_start_lashd.connect(mem_fun(lashd, &LASHWrapper::start_lashd)); @@ -78,18 +81,18 @@ icon.signal_connect.connect(mem_fun(jackd, &JACKWrapper::connect)); icon.signal_disconnect.connect(mem_fun(jackd, &JACKWrapper::disconnect)); - lashd.signal_lashd_started.connect(mem_fun(icon, &TrayIcon::lashd_started)); - lashd.signal_lashd_stopped.connect(mem_fun(icon, &TrayIcon::lashd_stopped)); + lashd.signal_lashd_started.connect(mem_fun(icon, &IconImpl::lashd_started)); + lashd.signal_lashd_stopped.connect(mem_fun(icon, &IconImpl::lashd_stopped)); lashd.signal_session_changed. - connect(mem_fun(icon, &TrayIcon::session_changed)); - lashd.signal_session_saved.connect(mem_fun(icon, &TrayIcon::session_saved)); + connect(mem_fun(icon, &IconImpl::session_changed)); + lashd.signal_session_saved.connect(mem_fun(icon, &IconImpl::session_saved)); - jackd.signal_input_added.connect(mem_fun(icon, &TrayIcon::add_input)); - jackd.signal_input_removed.connect(mem_fun(icon, &TrayIcon::remove_input)); - jackd.signal_output_added.connect(mem_fun(icon, &TrayIcon::add_output)); - jackd.signal_output_removed.connect(mem_fun(icon, &TrayIcon::remove_output)); - jackd.signal_connected.connect(mem_fun(icon, &TrayIcon::connect)); - jackd.signal_disconnected.connect(mem_fun(icon, &TrayIcon::disconnect)); + jackd.signal_input_added.connect(mem_fun(icon, &IconImpl::add_input)); + jackd.signal_input_removed.connect(mem_fun(icon, &IconImpl::remove_input)); + jackd.signal_output_added.connect(mem_fun(icon, &IconImpl::add_output)); + jackd.signal_output_removed.connect(mem_fun(icon, &IconImpl::remove_output)); + jackd.signal_connected.connect(mem_fun(icon, &IconImpl::connect)); + jackd.signal_disconnected.connect(mem_fun(icon, &IconImpl::disconnect)); jackd.force_check(); signal_timeout().connect(&check_death, 100); diff -Nu glashctl/trayicon.cpp /home/nedko/glashctl/trayicon.cpp --- glashctl/trayicon.cpp 2006-11-07 22:36:45.000000000 +0200 +++ /home/nedko/glashctl/trayicon.cpp 2006-11-10 10:10:02.000000000 +0200 @@ -50,9 +50,9 @@ using namespace std; -TrayIcon::TrayIcon() - : m_active_pixbuf(Pixbuf::create_from_file(DATA_DIR "/lash_96px.png")), - m_midi_pixbuf(Pixbuf::create_from_file(DATA_DIR "/tinykeyboard.png")), +template +GLASHCtlIcon::GLASHCtlIcon() + : m_midi_pixbuf(Pixbuf::create_from_file(DATA_DIR "/tinykeyboard.png")), m_audio_pixbuf(Pixbuf::create_from_file(DATA_DIR "/tinywave.png")), m_connectitem("Connect"), m_startitem("Start session handler"), @@ -82,39 +82,6 @@ ifs.close(); m_restorerecentmenu.show_all(); - m_inactive_pixbuf = m_active_pixbuf->copy(); - - // create an "insensitive" version of the icon - int n_channels = m_inactive_pixbuf->get_n_channels(); - if (m_inactive_pixbuf->get_colorspace() == COLORSPACE_RGB && - m_inactive_pixbuf->get_bits_per_sample() == 8 && - m_inactive_pixbuf->get_has_alpha() && - n_channels == 4) { - - int width = m_inactive_pixbuf->get_width(); - int height = m_inactive_pixbuf->get_height(); - int rowstride = m_inactive_pixbuf->get_rowstride(); - guint8* pixels = m_inactive_pixbuf->get_pixels(); - - for (int y = 0; y < height; ++y) { - for (int x = 0; x < width; ++x) { - guint8* p = pixels + y * rowstride + x * n_channels; - guint8& red = p[0]; - guint8& green = p[1]; - guint8& blue = p[2]; - guint8& alpha = p[3]; - guint8 average = guint8((float(red) + float(green) + float(blue)) / 3); - red = average; - green = average; - blue = average; - alpha /= 2; - } - } - } - - set(m_inactive_pixbuf); - set_tooltip("Linux Audio Session Handler"); - m_session_dialog.add_button(Stock::OK, RESPONSE_OK); m_session_dialog.add_button(Stock::CANCEL, RESPONSE_CANCEL); m_session_dialog.set_default_response(RESPONSE_OK); @@ -130,7 +97,7 @@ m_menu.append(m_restoreitem); m_restoreitem.set_sensitive(false); m_restoreitem.signal_activate().connect(mem_fun(*this, - &TrayIcon::do_restore)); + &GLASHCtlIcon::do_restore)); m_menu.append(m_restorerecentitem); m_restorerecentitem.set_sensitive(false); m_restorerecentitem.set_submenu(m_restorerecentmenu); @@ -138,7 +105,7 @@ m_menu.append(m_setsessionnameitem); m_setsessionnameitem.set_sensitive(false); m_setsessionnameitem.signal_activate(). - connect(mem_fun(*this, &TrayIcon::do_set_session_name)); + connect(mem_fun(*this, &GLASHCtlIcon::do_set_session_name)); m_menu.append(m_saveitem); m_saveitem.set_sensitive(false); @@ -147,7 +114,7 @@ m_menu.append(m_setsessiondiritem); m_setsessiondiritem.set_sensitive(false); m_setsessiondiritem.signal_activate(). - connect(mem_fun(*this, &TrayIcon::do_set_session_dir)); + connect(mem_fun(*this, &GLASHCtlIcon::do_set_session_dir)); m_menu.append(m_closeitem); m_closeitem.set_sensitive(false); @@ -162,19 +129,17 @@ m_menu.append(*manage(new SeparatorMenuItem)); MenuItem* quititem = manage(new MenuItem("Quit")); - quititem->signal_activate().connect(mem_fun(*this, &TrayIcon::do_quit)); + quititem->signal_activate().connect(mem_fun(*this, &GLASHCtlIcon::do_quit)); m_menu.append(*quititem); m_menu.show_all(); - // we need to use the C API here since the signal isn't wrapped (gtkmm 2.10.1) - g_signal_connect(G_OBJECT(gobj()), "popup-menu", - GTK_SIGNAL_FUNC(&TrayIcon::popup_menu), (void*)this); } -void TrayIcon::lashd_started() { - set(m_active_pixbuf); +template +void GLASHCtlIcon::lashd_started() { + set_active_icon(); m_startitem.set_sensitive(false); m_stopitem.set_sensitive(true); m_restoreitem.set_sensitive(true); @@ -183,8 +148,9 @@ } -void TrayIcon::lashd_stopped() { - set(m_inactive_pixbuf); +template +void GLASHCtlIcon::lashd_stopped() { + set_inactive_icon(); m_stopitem.set_sensitive(false); m_startitem.set_sensitive(true); m_restoreitem.set_sensitive(false); @@ -204,7 +170,8 @@ } -void TrayIcon::session_changed(const string& name) { +template +void GLASHCtlIcon::session_changed(const string& name) { m_session_name = name; if (name == "") { m_saveitem.set_sensitive(false); @@ -241,7 +208,8 @@ } -void TrayIcon::session_saved(const std::string& name, const std::string& dir) { +template +void GLASHCtlIcon::session_saved(const std::string& name, const std::string& dir) { vector >::iterator iter; bool old = false; @@ -266,7 +234,8 @@ } -void TrayIcon::do_set_session_dir() { +template +void GLASHCtlIcon::do_set_session_dir() { struct stat stats; if (m_session_save_dialog.run() == RESPONSE_OK) { if ((stat(m_session_save_dialog.get_filename().c_str(), &stats) == -1) @@ -286,7 +255,8 @@ } -void TrayIcon::do_set_session_name() { +template +void GLASHCtlIcon::do_set_session_name() { Gtk::Dialog dialog("Enter new session name"); dialog.add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK); @@ -304,7 +274,8 @@ } -void TrayIcon::do_restore() { +template +void GLASHCtlIcon::do_restore() { if (m_session_dialog.run() == RESPONSE_OK) { signal_restore_session(m_session_dialog.get_filename()); m_session_dialog.set_filename(m_session_dialog.get_current_folder()); @@ -313,7 +284,8 @@ } -void TrayIcon::do_quit() { +template +void GLASHCtlIcon::do_quit() { if (m_lashd_running) { MessageDialog dlg("Do you want to shut down the session handler?", false, MESSAGE_QUESTION, BUTTONS_YES_NO); @@ -329,13 +301,10 @@ } -void TrayIcon::popup_menu(GtkStatusIcon* obj, guint button, - guint activate_time, gpointer data) { - static_cast(data)->m_menu.popup(button, activate_time); -} -void TrayIcon::add_input(const std::string& name, const std::string& type) { +template +void GLASHCtlIcon::add_input(const std::string& name, const std::string& type) { m_porttype[name] = type; m_inputs.insert(name); map::iterator iter; @@ -346,14 +315,15 @@ m_inputitems[iter->second][name] = mi; iter->second->get_submenu()->show_all(); mi->signal_activate(). - connect(bind(bind(mem_fun(*this, &TrayIcon::toggle_connection), name), + connect(bind(bind(mem_fun(*this, &GLASHCtlIcon::toggle_connection), name), iter->first)); } } } -void TrayIcon::add_output(const std::string& name, const std::string& type) { +template +void GLASHCtlIcon::add_output(const std::string& name, const std::string& type) { m_porttype[name] = type; ImageMenuItem* mi = manage(new ImageMenuItem(name)); if (type == "8 bit raw midi") @@ -366,7 +336,7 @@ if (m_porttype[*siter] == type) { CheckMenuItem* mi2 = manage(new CheckMenuItem(*siter)); mi2->signal_activate(). - connect(bind(bind(mem_fun(*this, &TrayIcon::toggle_connection), *siter), + connect(bind(bind(mem_fun(*this, &GLASHCtlIcon::toggle_connection), *siter), name)); m_inputitems[mi][*siter] = mi2; m->append(*mi2); @@ -379,7 +349,8 @@ } -void TrayIcon::remove_input(const std::string& name) { +template +void GLASHCtlIcon::remove_input(const std::string& name) { map::iterator titer = m_porttype.find(name); m_porttype.erase(titer); @@ -397,7 +368,8 @@ } -void TrayIcon::remove_output(const std::string& name) { +template +void GLASHCtlIcon::remove_output(const std::string& name) { map::iterator titer = m_porttype.find(name); m_porttype.erase(titer); @@ -413,7 +385,8 @@ } -void TrayIcon::toggle_connection(const std::string& output, +template +void GLASHCtlIcon::toggle_connection(const std::string& output, const std::string& input) { map::const_iterator iter = m_outputs.find(output); if (iter != m_outputs.end()) { @@ -430,7 +403,8 @@ } -void TrayIcon::connect(const std::string& output, const std::string& input) { +template +void GLASHCtlIcon::connect(const std::string& output, const std::string& input) { map::iterator oiter = m_outputs.find(output); if (oiter != m_outputs.end()) { map >::iterator iter; @@ -443,7 +417,8 @@ } -void TrayIcon::disconnect(const std::string& output, const std::string& input) { +template +void GLASHCtlIcon::disconnect(const std::string& output, const std::string& input) { map::iterator oiter = m_outputs.find(output); if (oiter != m_outputs.end()) { map >::iterator iter; @@ -456,7 +431,8 @@ } -void TrayIcon::dump_recent() { +template +void GLASHCtlIcon::dump_recent() { ofstream ofs((Glib::getenv("HOME") + "/.glashctl_recent").c_str()); int i = m_recent_sessions.size() - 10; i = (i < 0 ? 0 : i); @@ -464,3 +440,58 @@ ofs<copy(); + + // create an "insensitive" version of the icon + int n_channels = m_inactive_pixbuf->get_n_channels(); + if (m_inactive_pixbuf->get_colorspace() == COLORSPACE_RGB && + m_inactive_pixbuf->get_bits_per_sample() == 8 && + m_inactive_pixbuf->get_has_alpha() && + n_channels == 4) { + + int width = m_inactive_pixbuf->get_width(); + int height = m_inactive_pixbuf->get_height(); + int rowstride = m_inactive_pixbuf->get_rowstride(); + guint8* pixels = m_inactive_pixbuf->get_pixels(); + + for (int y = 0; y < height; ++y) { + for (int x = 0; x < width; ++x) { + guint8* p = pixels + y * rowstride + x * n_channels; + guint8& red = p[0]; + guint8& green = p[1]; + guint8& blue = p[2]; + guint8& alpha = p[3]; + guint8 average = guint8((float(red) + float(green) + float(blue)) / 3); + red = average; + green = average; + blue = average; + alpha /= 2; + } + } + } + + set(m_inactive_pixbuf); + set_tooltip("Linux Audio Session Handler"); + + // we need to use the C API here since the signal isn't wrapped (gtkmm 2.10.1) + g_signal_connect(G_OBJECT(gobj()), "popup-menu", + GTK_SIGNAL_FUNC(&TrayIcon::popup_menu), (void*)this); +} + +void TrayIcon::set_active_icon() { + set(m_active_pixbuf); +} + +void TrayIcon::set_inactive_icon() { + set(m_inactive_pixbuf); +} + +void TrayIcon::popup_menu(GtkStatusIcon* obj, guint button, + guint activate_time, gpointer data) { + static_cast(data)->m_menu.popup(button, activate_time); +} diff -Nu glashctl/trayicon.hpp /home/nedko/glashctl/trayicon.hpp --- glashctl/trayicon.hpp 2006-11-09 15:58:50.000000000 +0200 +++ /home/nedko/glashctl/trayicon.hpp 2006-11-10 09:03:20.000000000 +0200 @@ -37,10 +37,11 @@ /** The main tray icon for GLASHCtl. All operations are done from its popup menu. */ -class TrayIcon : public Gtk::StatusIcon { +template +class GLASHCtlIcon : public TIconImpl { public: - TrayIcon(); + GLASHCtlIcon(); /** Called when the LASH daemon has been started. */ void lashd_started(); @@ -72,33 +73,40 @@ /** Called when two JACK ports have been disconnected. */ void disconnect(const std::string& output, const std::string& input); - /** Emitted when the TrayIcon wants to start lashd. */ + /** Emitted when the GLASHCtlIcon wants to start lashd. */ sigc::signal signal_start_lashd; - /** Emitted when the TrayIcon wants to stop lashd. */ + /** Emitted when the GLASHCtlIcon wants to stop lashd. */ sigc::signal signal_stop_lashd; - /** Emitted when the TrayIcon wants to save the active LASH session. */ + /** Emitted when the GLASHCtlIcon wants to save the active LASH session. */ sigc::signal signal_save_session; - /** Emitted when the TrayIcon wants to move the active LASH session. */ + /** Emitted when the GLASHCtlIcon wants to move the active LASH session. */ sigc::signal signal_set_session_dir; - /** Emitted when the TrayIcon wants to rename the active LASH session. */ + /** Emitted when the GLASHCtlIcon wants to rename the active LASH session. */ sigc::signal signal_set_session_name; - /** Emitted when the TrayIcon wants to close the active LASH session. */ + /** Emitted when the GLASHCtlIcon wants to close the active LASH session. */ sigc::signal signal_close_session; - /** Emitted when the TrayIcon wants to restore a LASH session. */ + /** Emitted when the GLASHCtlIcon wants to restore a LASH session. */ sigc::signal signal_restore_session; - /** Emitted when the TrayIcon wants to connect two JACK ports. */ + /** Emitted when the GLASHCtlIcon wants to connect two JACK ports. */ sigc::signal signal_connect; - /** Emitted when the TrayIcon wants to disconnect two JACK ports. */ + /** Emitted when the GLASHCtlIcon wants to disconnect two JACK ports. */ sigc::signal signal_disconnect; - + +protected: + + virtual void set_active_icon() = 0; + virtual void set_inactive_icon() = 0; + + Gtk::Menu m_menu; + private: void do_restore(); @@ -106,21 +114,15 @@ void do_set_session_name(); void do_set_session_dir(); - static void popup_menu(GtkStatusIcon* obj, guint button, - guint activate_time, gpointer data); - void toggle_connection(const std::string& output, const std::string& input); void dump_recent(); std::string m_session_name; - Glib::RefPtr m_active_pixbuf; - Glib::RefPtr m_inactive_pixbuf; Glib::RefPtr m_midi_pixbuf; Glib::RefPtr m_audio_pixbuf; - Gtk::Menu m_menu; Gtk::Menu m_restorerecentmenu; Gtk::Menu m_connect_menu; @@ -151,4 +153,24 @@ }; +template class GLASHCtlIcon; // force template instantiation + +class TrayIcon: public GLASHCtlIcon +{ +public: + TrayIcon(); + +private: + void set_active_icon(); + void set_inactive_icon(); + + static void popup_menu(GtkStatusIcon* obj, guint button, + guint activate_time, gpointer data); + + Glib::RefPtr m_active_pixbuf; + Glib::RefPtr m_inactive_pixbuf; +}; + +#include "wmdockicon.hpp" + #endif diff -Nu glashctl/wmdockicon.cpp /home/nedko/glashctl/wmdockicon.cpp --- glashctl/wmdockicon.cpp 1970-01-01 02:00:00.000000000 +0200 +++ /home/nedko/glashctl/wmdockicon.cpp 2006-11-10 10:25:50.000000000 +0200 @@ -0,0 +1,84 @@ +// -*- Mode: C++ ; c-basic-offset: 2 -*- +/**************************************************************************** + GLASHCtl - a simple tray applet for controlling lashd + + Copyright (C) 2006 Nedko Arnaudov + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +****************************************************************************/ + +#include + +#include "trayicon.hpp" // GLASHCtlIcon +#include "wmdockicon.hpp" + +#include "lash_active.xpm" +#include "lash_inactive.xpm" + +WMDockIcon::WMDockIcon() +{ + GdkPixbuf * pixbuf_ptr; + GdkBitmap * bitmap_ptr; + + set_type_hint(Gdk::WINDOW_TYPE_HINT_DOCK); + set_default_size(64, 64); + + set_events(Gdk::BUTTON_PRESS_MASK); + + present(); + + m_active_pixmap_ptr = gdk_pixmap_create_from_xpm_d(GTK_WIDGET(gobj())->window, &bitmap_ptr, NULL, lash_active_xpm); + m_inactive_pixmap_ptr = gdk_pixmap_create_from_xpm_d(GTK_WIDGET(gobj())->window, NULL, NULL, lash_inactive_xpm); + + gtk_widget_shape_combine_mask(GTK_WIDGET(gobj()), bitmap_ptr, 0, 0); + + g_signal_connect(G_OBJECT(gobj()), "button-press-event", GTK_SIGNAL_FUNC(&WMDockIcon::on_button_press), (void *)this); + + m_style_ptr = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(gobj()))); + gtk_widget_set_style(GTK_WIDGET(gobj()), m_style_ptr); + + set_inactive_icon(); +} + +void WMDockIcon::on_button_press(GtkWidget * widget_ptr, GdkEvent * event, WMDockIcon * this_ptr) +{ + //g_warning("on_button_press"); + + if (event->type == GDK_BUTTON_PRESS) + { + if (event->button.button == 3) + { + //g_warning("right click!"); + this_ptr->m_menu.popup(event->button.button, event->button.time); + } + } +} + +void WMDockIcon::set_icon(GdkPixmap * pixmap_ptr) +{ + m_style_ptr->bg_pixmap[GTK_STATE_NORMAL] = pixmap_ptr; + queue_draw(); +} + +void WMDockIcon::set_active_icon() +{ + //g_warning("set_active_icon!"); + set_icon(m_active_pixmap_ptr); +} + +void WMDockIcon::set_inactive_icon() +{ + //g_warning("set_inactive_icon!"); + set_icon(m_inactive_pixmap_ptr); +} diff -Nu glashctl/wmdockicon.hpp /home/nedko/glashctl/wmdockicon.hpp --- glashctl/wmdockicon.hpp 1970-01-01 02:00:00.000000000 +0200 +++ /home/nedko/glashctl/wmdockicon.hpp 2006-11-10 09:57:07.000000000 +0200 @@ -0,0 +1,46 @@ +// -*- Mode: C++ ; c-basic-offset: 2 -*- +/**************************************************************************** + GLASHCtl - a simple tray applet for controlling lashd + + Copyright (C) 2006 Nedko Arnaudov + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +****************************************************************************/ + +#ifndef WMDOCKICON_HPP__BFA76043_95E1_4CDC_BFE6_7FF1A53BFB23__INCLUDED +#define WMDOCKICON_HPP__BFA76043_95E1_4CDC_BFE6_7FF1A53BFB23__INCLUDED + +#include + +template class GLASHCtlIcon; // force template instantiation + +class WMDockIcon: public GLASHCtlIcon +{ +public: + WMDockIcon(); + +private: + void set_active_icon(); + void set_inactive_icon(); + + void set_icon(GdkPixmap * pixmap_ptr); + + static void on_button_press(GtkWidget * widget_ptr, GdkEvent * event, WMDockIcon * this_ptr); + + GdkPixmap * m_active_pixmap_ptr; + GdkPixmap * m_inactive_pixmap_ptr; + GtkStyle * m_style_ptr; +}; + +#endif // #ifndef WMDOCKICON_HPP__BFA76043_95E1_4CDC_BFE6_7FF1A53BFB23__INCLUDED