[PATCH] winecfg => control panel applets (FIXED)

pure_evil at mail.bg pure_evil at mail.bg
Fri Apr 11 02:33:51 CDT 2008


Ok, fixed the indentation (thanks, Vitaly), attached the patch as text 
attachment so it doesn't get wrapped.

Short description: winecfg accepts console commands which determine what 
tab(s) to show. Based on that, a .CPL - control-panel applet - (containing 
six applets) - allows for a windows-style control panel-based configuration, 
whilst keeping winecfg intact. (Description.txt is the long version).
-------------- next part --------------
From 19c507ee6d984aa69571f3cc9ae44f1838d98524 Mon Sep 17 00:00:00 2001
From: Metody Stefanov <pure_evil at mail.bg>
Date: Fri, 11 Apr 2008 10:13:15 +0300
Subject: [PATCH] winecfg to control panel applets - fixed?
Description: Different tabs from winecfg - accessible through six control panel applets.

---
 dlls/winecfgcpl/Bg.rc               |   40 ++++++++++++++
 dlls/winecfgcpl/En.rc               |   38 ++++++++++++++
 dlls/winecfgcpl/Makefile.in         |   14 +++++
 dlls/winecfgcpl/icons/app.ico       |  Bin 0 -> 4286 bytes
 dlls/winecfgcpl/icons/audio.ico     |  Bin 0 -> 4286 bytes
 dlls/winecfgcpl/icons/desktop.ico   |  Bin 0 -> 4286 bytes
 dlls/winecfgcpl/icons/drives.ico    |  Bin 0 -> 4286 bytes
 dlls/winecfgcpl/icons/graph.ico     |  Bin 0 -> 4286 bytes
 dlls/winecfgcpl/icons/lib.ico       |  Bin 0 -> 4286 bytes
 dlls/winecfgcpl/main.c              |   81 +++++++++++++++++++++++++++++
 dlls/winecfgcpl/winecfgcpl.c        |   96 +++++++++++++++++++++++++++++++++++
 dlls/winecfgcpl/winecfgcpl.cpl.spec |    1 +
 dlls/winecfgcpl/winecfgcpl.h        |   35 +++++++++++++
 dlls/winecfgcpl/winecfgcpl.rc       |   35 +++++++++++++
 programs/winecfg/main.c             |   89 +++++++++++++++++++++++++++++---
 15 files changed, 422 insertions(+), 7 deletions(-)
 create mode 100644 dlls/winecfgcpl/Bg.rc
 create mode 100644 dlls/winecfgcpl/En.rc
 create mode 100644 dlls/winecfgcpl/Makefile.in
 create mode 100644 dlls/winecfgcpl/icons/app.ico
 create mode 100644 dlls/winecfgcpl/icons/audio.ico
 create mode 100644 dlls/winecfgcpl/icons/desktop.ico
 create mode 100644 dlls/winecfgcpl/icons/drives.ico
 create mode 100644 dlls/winecfgcpl/icons/graph.ico
 create mode 100644 dlls/winecfgcpl/icons/lib.ico
 create mode 100644 dlls/winecfgcpl/main.c
 create mode 100644 dlls/winecfgcpl/winecfgcpl.c
 create mode 100644 dlls/winecfgcpl/winecfgcpl.cpl.spec
 create mode 100644 dlls/winecfgcpl/winecfgcpl.h
 create mode 100644 dlls/winecfgcpl/winecfgcpl.rc

diff --git a/dlls/winecfgcpl/Bg.rc b/dlls/winecfgcpl/Bg.rc
new file mode 100644
index 0000000..805f173
--- /dev/null
+++ b/dlls/winecfgcpl/Bg.rc
@@ -0,0 +1,40 @@
+/*
+* Bulgarian WinecfgCPL
+*
+* Copyright 2008 Metody Stefanov
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library 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
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*
+*/
+
+/*theese are the same as the english text. control panel doesn't support unicode atm, so...*/
+
+LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+IDS_application_TITLE, "Application settings"
+IDS_application_DESCRIPTION, "Application settings"
+IDS_library_DESCRIPTION, "Library settings"
+IDS_library_TITLE, "Library settings"
+IDS_graphics_DESCRIPTION, "Graphic settings"
+IDS_graphics_TITLE, "Graphic settings"
+IDS_desktop_DESCRIPTION, "Desktop integration"
+IDS_desktop_TITLE, "Desktop integration"
+IDS_drives_DESCRIPTION, "Drives settings"
+IDS_drives_TITLE, "Drives settings"
+IDS_audio_DESCRIPTION, "Audio settings"
+IDS_audio_TITLE, "Audio settings"
+}
diff --git a/dlls/winecfgcpl/En.rc b/dlls/winecfgcpl/En.rc
new file mode 100644
index 0000000..6ada2a0
--- /dev/null
+++ b/dlls/winecfgcpl/En.rc
@@ -0,0 +1,38 @@
+/*
+* English WinecfgCPL
+*
+* Copyright 2008 Metody Stefanov
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library 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
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*
+*/
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+IDS_application_TITLE, "Application settings"
+IDS_application_DESCRIPTION, "Application settings"
+IDS_library_DESCRIPTION, "Library settings"
+IDS_library_TITLE, "Library settings"
+IDS_graphics_DESCRIPTION, "Graphic settings"
+IDS_graphics_TITLE, "Graphic settings"
+IDS_desktop_DESCRIPTION, "Desktop integration"
+IDS_desktop_TITLE, "Desktop integration"
+IDS_drives_DESCRIPTION, "Drives settings"
+IDS_drives_TITLE, "Drives settings"
+IDS_audio_DESCRIPTION, "Audio settings"
+IDS_audio_TITLE, "Audio settings"
+}
diff --git a/dlls/winecfgcpl/Makefile.in b/dlls/winecfgcpl/Makefile.in
new file mode 100644
index 0000000..f7bfac7
--- /dev/null
+++ b/dlls/winecfgcpl/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = winecfgcpl.cpl
+IMPORTS   = kernel32 shell32
+
+C_SRCS = \
+	winecfgcpl.c\
+	main.c\
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/dlls/winecfgcpl/icons/app.ico b/dlls/winecfgcpl/icons/app.ico
new file mode 100644
index 0000000000000000000000000000000000000000..4b644d939ce7ca6c26ef8bf9aa13023fb05d0af3
GIT binary patch
literal 4286
zc%1E+TTE0}6o$_LQ?4>FauWijm<Tokg+K~I0yag1Z46BaB1X`Zh*rj6#@K<5a$pLM
z5H-}Aw0+=#q%gG5q!JqpwcdE3jTkzWiwPiNEWwtLLNicqf7jkH$7y?b;6VG-MLsg@
zwfFz8S$prv83aK^KjGm5`z=^}1R+2WgeZcBgmhtfe6_&;!DDG at 34?=!=;-Lc*x1;H
zYYz+z;O5Pn7#|=1N4~eW7fDG;VB5h^sZ_|$&X%3K*68l;MqFH+r0wkNjJ&)&OioVn
z{G&&Y;OFNj<sFHRj>go~lw$9mo*rm48d>ec#6--_&O)ct!OP1FX=!P&TKmz`atGVC
zy(-NsEiJ|L^t2*UQ&T0KtgIZ|xbXnDZgnCgB!qi5H#hS-CnjttEW8F+R};+ at i4@tI
z*GC at LW**Fod9s+A`h)i8lNDd_U-!4eJejxI{2l%MK7xbIXlw05>&HJJI&z=Gc~L{F
z)hdFWW4lgF<Vmj0JOTr&xMxkx9TXQA^L(gpD2}L);E-?#K7x;f{~maIpI3xRwN28A
z5VoRFC`7J07w&HEe5|?o3p^fp3}3-_m7awYXaBZ0YoUbjmet<wx*fJj8#*s^LNDkM
zw<!*4wR$E05|K=lt;5@~hDgGRYkPROBSV`3qhRFT=IVQJp?Sf9m2 at XV>CS8E&K5}P
zV+o@|Vjb%6_RdF4j1~zA!Px9u#yy$$`1o&h7f;F7t|9b<s1W^%hMcy$`$_uT?WfP=
zCL||&W6PGqf5~qpO4i|Rr({LTQ9B~y1oymj=@{;vzen at RQL)90u!EKG-z%cP at 5TCK
zL0L#oS1E$6wd*iVrX6xXgu(wq?s>QRE~b9{9VG#kvb7uBO0avU7ikHKU~8F%oOUtQ
z(>we#8m(4r(x1cO7!xW~6)X92=r-qJPqK#Vr0sH21nU9QU|LL*YpcjRp at w@FUAxBj
zpLt|vdLimW0HSik at Oq}F^d4g0iGU!Aig@|R8xH;O#E$GRgz9{-cYgpMWBWfpKZmsa
z8rlA(WO%~kj83t?(>WvJ_l3x6C+`vP<IwkL>H7-KXVr+#_r&hqZYy~eUdsw6?_#J(
z$D^uB5zdvBa4{MXc_5zl!<lREqJ2rp)xgc5hVGjZG(UXEYxSi01=S`T)ED8EvePf#
zLq$FUY6BGEYI;-B at i|+DZ2eIb7|$TgZ02L{UB8Zn#YMzkytqmaSshwJP>2ihuB^6(
z=%(k*XV0GD1A4uadc}IMoG&L1t<&3%EAbX#<k~Le6IWY{Q}nvAu at RP^EN~Ou5M&NQ
z=V%wc9kSx>#vEyVs2B=^Xi!9om?G&!ezXIveVuqP)`#@^bnbcl>*JW2pF#Ym at v^nM
zQtd at z5k#t038i8w{6&9RZS4gu`hV$Pe*UvfAm_^*I%`f+K2QwAQSqo^Z#$>y3`L1i
zbdOY$cEV=~u#Q`~_tU3OQAPW1rZaiF`!-s7T5$RE%P6Naz}DB*)$!-#xw*MDbN~K*
zsSZQ60rhw5(KXnGCQB3dY-(!a-%TtQi)`&ClL<pZLyDjO7wK*_G&IO+Gyl=iQ9f^B
zVFB&!?cC3vzjEaYhKGk0d)tHcp{=bAm2~dy+E=e$mAoBeW at ZLYo;=~-yI5Z~GHf;*
WMn*>P{Q2_@*IrMo`j3JCDE<TsrkO4P

literal 0
Hc$@<O00001

diff --git a/dlls/winecfgcpl/icons/audio.ico b/dlls/winecfgcpl/icons/audio.ico
new file mode 100644
index 0000000000000000000000000000000000000000..26b1090a371165ee872a04469b5a7ac50e8a307f
GIT binary patch
literal 4286
zc%1FlZ%7ki0LSs$oXyQY(+pkAav7O_C}pNt&YV+1g9;I|XkZQtlS=YWNl*z1_QrZ4
zXpDv?k!9KoeNiTi0>dCkNiiu2A|y%7GW#RD+ppc#)~?-hH>V-=jPG7N?D%YV_dGj-
z5LjPIB|*Ovw}J^Gj39^@Yt|`3L;Rfo%Yd!WxL_!A6$suK2*-JMOHNM4$jAt<=;I`7
z{E%nLLKzC}<#edwD;4qbH5v{04*Ix#eOi`nE7Op&<i2b}0H;k?I$r>B(5fZ%!;(T>
z`gHzssmDGw^#x?-7|83xAcrP7eUbGVm(1jQ-6wlrgHpA^5_`>_x!MGanPU0$aj}P^
zP-a=!7mI?RjjTmU!XxOnnvfPz0Ux2*$)_ggKqa=YY+GdOb0?oJA~T%1=L??fLK)@k
zi$#Grt{Os}8mx-9^g$r-VfkeHD5uT%d3QN|$4bBLck(mVpLMcrC4?Vh|NgdN*Z%H1
z9{IZX9+&>!P0eh7`~#?XqgVa>&8=?x%r!6!!V>2_KT?*Ci)zYkpE(bMlOQh*z<jKC
z(LS9 at uE)6 at vu^wLb75Wk-tcW}Fe*fgylCT+`*ou_G=yivD9yo1aS{RrzxU#u>uNat
zso6OUyn2Hd6YpWMSUmPyI`kkztF3<!r|pdg9fd*|!08JFLd546BlSWvQqDIq>6&ii
z?es_9e&xggd|z9|vTfb;-^1xE(sS*uV}*_Fn1A+;m*3P`#A(yb$xcDQ;U|{Yar$)q
zolklBjoq&Oud)gb|0=fCTyg2&yV1|fFP|>Nr|3!^elucpC%op<_uu8mMfe=${2g5R
z(l7;*&NO(<r`KQA%t0KHt57RRThM3rCv^tuyB|Vt=t5S#anZhQ|B(y*-SQpxpYpaI
zkA1Bn71=Fx+nMLT<@W#VzrV8m`=%k7jlb#|TXz4!@JqNFp89?w8A2pVCW-IrW%s#0
Kw?h4YI(`5Gcu}PQ

literal 0
Hc$@<O00001

diff --git a/dlls/winecfgcpl/icons/desktop.ico b/dlls/winecfgcpl/icons/desktop.ico
new file mode 100644
index 0000000000000000000000000000000000000000..14a48cb3912a9fda5591e64ee015d1e3e33ca2e0
GIT binary patch
literal 4286
zc$~dhXIoTB7H0p!e%i02fG7%*o6vwQiX*0RR(Baxa52rO7;sbs6UaDXz<`n at D1wNC
zDA6zmL=aF3-AxDRrs+U#vH}M5dAH7GF9Rw%`(d|yUe38yb?;ksQdMhW@)!1R$`lj&
zYm)U>6O+H0n3&99U|l96lhOXk+TO>fkbON7XEN^NPR>QdB%DW4eio80UBI!}lL$Zk
z3yvp5BR2CQGICN7e?0{kb1ozHS`reoFCjHAgTtj<CUZw6hg<2md@~(sH?JU#>FGJi
zh)qw&rMzq;=cFP&D-jvlneYl)2(Rsn;k9!qzT4}IrJ+AyaoFE6H*5twLzZDq*m8&t
zuE4xVU-(3=f at j1^%sKK8h}iSoBmZRZ<#bUb(+{tNSLpZf-mw at 9wk^VfolCHA_fjkh
zU5;h!z2(Pzu_D?JE6=UQiWomEKjV*?KiI-ytq>Oec9<3D49oQ{Fx%(^v&{mSZFPp(
zHdmPMWaA-oFg<K8EW$*X#-#ZHFPKIyz|<%oe8Vv1*M%?*6~TOy6Q=vk#tc7eSgx_b
z%s^Y%Y<7Zuuq&KGJ>VK4g3D16+)j8wcxoP;*Lxr&d>_pHZE+wj0()W)z-*HvOn-91
z)GY#-2C?-p{%MTgV!sF$2O0OT- at +_<F{YkcgefN%!!*Jhrn}r>%I48r^X+b!9$?4#
zZ82+|9c<Wl>~}H#FvfpG1lOp!a6dgCp69$_ALs_(z5Xy~^S?W|3Zmd8n7YB9*=r3d
z#LrP78AYY^1<IMc^ZWrGJS#y-O*tODD8<9)Pw?PrF&<TxaFXWM)=L>A5G%wGE16`v
zq(KUaN(!mE4$?*j%_uCGt*iqCu=tlfY&W{YYJ(fhnf?8a|A@}cPW1Nnau^&OL`zEx
z-oJm34<9~oc=P5Bv|23;2E!QidOc)n8I(#T)M_>A>+8|j*vLJ1baZgvp!fK1xNQ)^
zedkXwUu%Pnht?tcMh33kxPrWbY&<I~L3QO*RF#+F#nVwdD=k4yWjX6BL&cL~Zd at U*
zW~hNmCWV~oD!FtFirN=rT!f*aA-sF{4t%o>6kt>G73O~%9E>}Fw{PEm0(wWM(|vaA
zYcRI8V0?T1`t=0<X{%?!e6=;q{H+msVIMx%Xns>u(`U!N)_ObJzsNs3zyX4_?wA%}
zgZ;5#lkzt-H2iP){avtplM-fYtr3xU__N<2J1P_kbai#1r>6%-qY>TR-JDK+g#P}1
zynOlclXuDf6uZO2!yM?n@%$F6nEicOey_7ZXng3T{9>^f8jS`jm5Q?kfpl6I#W?Bw
zIDxpRb+#DL+1`eMfdLNs`sxY%mI1Tju#VN3wN{8o2%nT+E|+tAq?{y4Imz3CB=z(5
z8NWwkvknHe5^Zg5T>fb#PbTnB^>u*hnq4gZEU_;>WKw>WS_R{v5q+=w&@<e_>79d&
zbEpg5L)|bA88Px<<db*X3_8vp)z#G;BofI4e)BZ~tk~nn>L25e+lv9_L)yp4$jAhK
zvcFU+<!TDqnQ96j2Va6#-N4zMw--sO17rLFGdN5Ov_vT5e@!)w)v&JiKjN0^6|I{%
z^(+syOd43-Yin*sE7d*LM|u}q4__~N=o(d at wJG21w>V;b)Fw>dI1>>U4>8{kKrWME
zgspize^o^p%JMT&Uv?L=;sPj2ilD77`6^U36<_3E8oms_S5?4rvo*q#52Lk31?kl&
zX!ByAyKw^gyt6PoNQbz*7>$Jq&=e&>nRyh7E8%|%%7-~$<hR^v1=}5Vm=QD+`;$Y^
z`LYLX9i3z2R4>TS4N3)CSS+<R8yNH)MxRHeu1UkdVxprBeLdai at 9pNslu|L5|MU&2
z53gRm;&eU+t#-_YV3!MK{%nQau{+Qpe#X^WI>%^kYild#N9nCNXba<@FT4P4&dCYT
zFgwYAi-syU2Ks{Y6UM6U-QajA|LE)_Us8PYZPD>1xXI3Ot1ufJxwHq}9jy~!Y-@(G
zy#+d at 6ip2>=+p{m>SY+}XE`#|&tZ6=8;$=N=lgiHG^sfr+6VDdF4RfHWBkHMA$Fy1
zflZ`6j$C8;KivBX-o5Nbdozo7y$0<D4F-Fef8Gv`VPtp!tvZ$)jr9}y3C0%v1b=sR
zvO7Sdg0llPyKs95kGjL at qyRyw+o5k(ql at AFtF8(BeEp^S!}$9Kf$kubpEOSU96u(P
z)N(xJPu}Nrp7YK1xGOd%`oZChBSNkQbM>6=Dm0&JDuL=I#RSzJ@*RJcd<>dLHA1I&
z&YcOg7PV47>i==)C%<=U-zLmMcFJlv#ya9??jf{jSu8XEs<aBIbxNq%UCmILiw;!{
zn%N!X<NES77+6kF4pA*6-xD|0LB2VhbL6-MiB8yec>|=63Q$*E$Z8D3<042O=A-7`
zP41a=@%>y*m$NZL^^-}VuP$ZvrxdEnM;s5?h8o2n*=UUayaPOAg>X(5AUNI^XHWPd
z?%XPrrkzDaS`2E^PopX`2DQn*K%8&@HF05o3gYB&h|`Wie(NIV_wnHGfCQi9`FL_;
zH=I+P5L<Qu(d_rwqI at 4bR_Zx_)7jOkl5sIM9&{h17@@czog~FyUtb?rH$Dc%4b7wY
zr8zuk|2}cfa87c>_gU<BQr0qf<al7){cY%Mkf4?2yRohU-5LcKPkNS5YF!f=<T7aL
zYSGNj_Ww2}c(gawL2yO at _cKB`B{*Pyycg!Bdcpm=JA#XXxjP4M1KJzic_=q{opOc7
zW$e5n+04#BK4-oJiUq2N?d**8j`2WbMj*3;J+ at vAMDWcZxTOmbpB;&udr3&Sn}WE!
zIHcZ7ML})BC~C%`nox*>szMYpSy)qqBJpk9mfpdgy1Se#s=bZEsv_h+D?na(KC+8*
zaP9XjWZt_5k7zeU#rVK3+7>@%u18Sj2Dl`-AUJa~v&9^^r3oQq>k($S|ABOdD-3B2
zmpvd%^?+N72i#LV;h8=cUcY(6o5j$=+wAvm(NcKl_&}64AFk&;;S}Wt`v_;)9TdQJ
NzW|f|$H4!o{To?h_k;id

literal 0
Hc$@<O00001

diff --git a/dlls/winecfgcpl/icons/drives.ico b/dlls/winecfgcpl/icons/drives.ico
new file mode 100644
index 0000000000000000000000000000000000000000..b4e1756f7ae551b5bcc361f9c3900c899fe3d702
GIT binary patch
literal 4286
zc%1E+OGq0*7{|9)1?kC~kel`9%~R19N>4qM7NowYw3i;lRK56seoC!^ITR{HlxoD5
z+G35SLbO^RP_?CEtVHXh#ztb)m<LLHKmOerNoq1NSrmnW|L_ah`G)=N?9OH<k)$i~
zOQn+7yVQJDl42!Ex+WtxNh#7%`$@rNE+c1oc^M9e<4m~SZcezm*Xs at GpP!${z`($n
zVEcEuT<GrZ#_;eky1KeJ>@#a)HIK*Rckb=&1^7osM$QD=H>0DYgCCE<VBoONtj$*s
z6{pkbub-CP-CgYL?3`Hl)k0-(a1fQ1mFJ39s|`5k!RhVo1rePa6B82wzJr5<u*Xn9
zHOQi`xJNUbbovf8HJ-|?)9G+{czEL2kLRPl1NZ3{ZqNZz2m*J>f+DI?>@F)S!^+Bv
zBKPh-P|zeggSkU?lu(5tztLz^<YxIW6xr>AU5`j^jYfm5tu4j=tZLD7i#BkZ)`WI;
zeM+cOo)c<hQ+7zI-dDl!(;%?uS`^$%9?`A&1hneg_*foNzfjMkIwVsvB$5zEaZr)U
zPkco at 5?>|;kf2H6eOpFb1iy7v^jqX<!{)7Cug5bg!%f-`sH;im_vcf-|Gbx$mcnMU
z369ByNxwh%{#$g5{`$V78aoE69TDnJ>2-j=xVRW<wHmdxwfsB%ICi@|z#klTcV at g2
zk0GxSD0(Mf?^3bGu7B|O*>~N>#zx5b70%Dn(5HO<KcG?WJMJ$mEJS;IyD)YJdj?1H
zv-_WoH<J6278o<n!fZApvp$pWv+YY8OePbyx3~GTC=}!K<6-?Q>znd<ZD#jZXt!Di
z*j)em=d|YVeMV6fqA5BotWPArFQXQqLJvHt10L4^<*oAb!7TRk`D0(i;=1;FSYn>X
zDE2Fj&!5_q%D2a?W6*umVcokf^i8Tx68z5TX&7^J6*D8RWy1N(KbQ0EIs2R<zon-K
zB>xmq%A2$_{E*jk47b&K;r at n<4D|Q+bC#y2F5Le%JsqR+I)&k0Sis!!9EN6xVE$v~
v>$_RoEZ=slI)pW#$ztNQ)wNZ>e^Xw2{_gBljB92_7}sU~&z$(jzy;+moBuK$

literal 0
Hc$@<O00001

diff --git a/dlls/winecfgcpl/icons/graph.ico b/dlls/winecfgcpl/icons/graph.ico
new file mode 100644
index 0000000000000000000000000000000000000000..65cec336815f357c5475cfdfc0c9603b50535a5a
GIT binary patch
literal 4286
zc%1E+KWoB37>CbE5TTiDC+kp3HxaRm4$`sR3W}62okYQ*A3(@=C=`mDlk_Y2cPN5`
zA<a~+7!ZVrC~8KLw|6NCtx2>ANgSGAc#^z#$vrnD7YITgyoExD>`{e6D1Z>Uz~Cm7
zMBnXt0XJ?AoXKPYJkQ(8Y&O&NlYXr%77GvrL8(`(6^zGYrJm2{QX9!~xs+--<UTU4
ze1A9`hF-5{$S=?RXFVE?V6)k%`nRuTSyrmak;L!!14U8LY&Q4$h2ao*hJlZE8`wre
zIw$ly9q3l8O3l=2z_nV^`8yt$sn?ah^?LnlOyVcYjo0gia=E<I&!<uVWN9*qh?!2O
zntnn&9{-d7HJyg%eBKaDBx0HWC7T7Brr`<`+ruq}T>F+tSnfZ at Ak5`84fkhi0(lyu
z4)||k*n!lXKKu{=`5g_(q?)5gd;KRE&mQdb8^KC{C6j at tLctK-Xw)+Qq1M08QVIB6
z&NO|DD2k^2c4U{I!QU&6<7~y}^Xd8rg8>ACL8aerw*5}eLCf#t9Q6G195VR5PvLja
UE{esXi6_{N8|$O{W5A(&0pkaZq5uE@

literal 0
Hc$@<O00001

diff --git a/dlls/winecfgcpl/icons/lib.ico b/dlls/winecfgcpl/icons/lib.ico
new file mode 100644
index 0000000000000000000000000000000000000000..bbfb00ac4192f4f48d60cf8e642426ae399a833d
GIT binary patch
literal 4286
zc%1Fn{ZA8j90%~*f3TnSvp?=1FfnltK26+|PNxzn1%Ux8Pa?z#J_KQzdtghJXfjcQ
z!6^=B)&>WtXgL_6%gO|FrL<5uYbQs6(LpIF?eX4yztAr|?v6Q=xnKB at H+N}LUiW?Y
zd at q6HUXg#+t>egVuKrbydyV6`*X76`ahtfs&-DsxwN`8Ozt*TIg1=lxQ-Ahb at VDw|
zE}Z!Syg5TN)w$>JLm5wVw%{6$RPrqOrB)PwR*kQ(^E8zgEZAeYfh7JO4Y>~l0?hC2
z>H_jAA>~%UnwWxxQJ%(nu at Vbu?*kfXKG=wk!Vx%2=ka4!4@$lQi at 99HH<n+}G$f&>
z&5LUe5hh^(A7P&6py-Dvk9no<F&?7+jBp!M-X`itQw^9(-igTr?;#{#rPO8LeGK69
zeatUBJ%gN+e&#m|prQV-2c}0}<V5FS^z>=^q3jdX_t>xEA%96R{@%pR7}&E7p50p&
zK1s|!{AENj{>z;{So_1&Cu26;y^ZugN3plFUDNlcmFUjD at WDH1+PXm=zd_;m9GO}4
zt0bhA^eTKZ_Vai9n7_|q*PZ{d%%k)fV*a?RLACxJJKlu2e~0e)3r~kse$%kT{EW!}
z9lw_ENjZce(_!Yj?N=1O)3602`xEFj=G*cFg}-wD)yeMn_s5t|#-247()6F1%Q2Bz
zM*Z-kJ9xm?DE#Yht%q;#cJK)s>7FFMy=Y9~7kxgb at U5;e+keE&nwy5{@sRHR_bsiz
zB(@^*#HR3V+c(0!wD<JpKeN;;UnRx-lV^zeM!5&F<!4Cq3o1XDbqs?kMbz)_{0`BP
zR^|`Od+(uPv!>rx;Ag)1RDkwi%)it=ga*$u<|hyIA$>x`0cWqu59gdjUvdHUBO^A&
z{+~_RMXy?Zi+NCY{p0(e_&L&3U0=$pU_P+}eOBhj@>pK~)%Jg}+=B(5PE)`9yalx#
z0?nBQ2U~wVe=7SpBDtrSKkBqF|BrnMwC^7zF0Vn%w-*JNpK;VppP{%aikml^AqWDE
z!?EZmd-Ug@?7#T__pIo at v7~oZJ~{s##goiW|JcRWpzF6 at _V<ZJ{XrK#3{Ar1b*uaZ
z*<M)kXMHX3{#vK-+Y;VD<CYDWG45o(t1POR|NKvatNK~9Q!x35Rs9zX2GMq>g{G$Z
z9LD<_XyW}FZ?C8CfYtghK3YCGe{v$TDnGt at y1Oy|<Q`4T56bVprzwdT*u9OOJ;bj)
zQH5Jqc^XS?6Ry<riiqN<%1<8`k?eN<qfhtW?-tehAL|2h-_zWv`F*Wgp8sk29WeG>
zetiFv^QU{)CK}QUFY1%|Hx9U-+qYb-fFSq0Rve8#y^x>z*Tkwm*^7Luji%%0cGkly
p6Ap*}m7gTP`%{HM8gj4a{}&aFMpe%*NzzO6*Gj*1|1t2A>TjpE$7BEi

literal 0
Hc$@<O00001

diff --git a/dlls/winecfgcpl/main.c b/dlls/winecfgcpl/main.c
new file mode 100644
index 0000000..1475593
--- /dev/null
+++ b/dlls/winecfgcpl/main.c
@@ -0,0 +1,81 @@
+/*
+ * WinecfgCPL main file
+ *
+ * Copyright 2008 Metody Stefanov
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+#include <windef.h>
+#include <winbase.h>
+#include <winuser.h>
+#include <shellapi.h>
+
+#include "wine/unicode.h"
+#include "wine/debug.h"
+
+#include "winecfgcpl.h"
+
+LONG APIENTRY EXECUTE_APPLET(HWND hwndCpl, UINT message, LPARAM lParam1, LPARAM lParam2)
+{
+
+    int NumOfApplet = (int)lParam1;
+
+    switch (NumOfApplet)
+    {
+
+    case 0:
+    {
+    ShellExecuteA(NULL, "open", "winecfg applications", NULL, NULL, SW_SHOWNORMAL);
+    break;
+    }
+
+    case 1:
+    {
+    ShellExecuteA(NULL, "open", "winecfg libraries", NULL, NULL, SW_SHOWNORMAL);
+    break;
+    }
+
+    case 2:
+    {
+    ShellExecuteA(NULL, "open", "winecfg graphics", NULL, NULL, SW_SHOWNORMAL);
+    break;
+    }
+
+    case 3:
+    {
+    ShellExecuteA(NULL, "open", "winecfg desktop", NULL, NULL, SW_SHOWNORMAL);
+    break;
+    }
+
+    case 4:
+    {
+    ShellExecuteA(NULL, "open", "winecfg drives", NULL, NULL, SW_SHOWNORMAL);
+    break;
+    }
+
+    case 5:
+    {
+    ShellExecuteA(NULL, "open", "winecfg audio", NULL, NULL, SW_SHOWNORMAL);
+    break;
+    }
+
+    }
+
+    return 1;
+}
diff --git a/dlls/winecfgcpl/winecfgcpl.c b/dlls/winecfgcpl/winecfgcpl.c
new file mode 100644
index 0000000..b5cfb92
--- /dev/null
+++ b/dlls/winecfgcpl/winecfgcpl.c
@@ -0,0 +1,96 @@
+/*
+ * WinecfgCPL - the control panel applet for winecfg
+ *
+ * Copyright 2008 Metody Stefanov
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+#include <windef.h>
+#include <winbase.h>
+
+#include <cpl.h>
+
+#include "wine/unicode.h"
+#include "wine/debug.h"
+
+#include "winecfgcpl.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(cpl);
+
+CPLINFO_UNICODE winecfgCPLApplets[6] =
+{
+    {icoAPPLICATION_ICON, IDS_application_TITLE, IDS_application_DESCRIPTION},
+    {icoLIBRARY_ICON, IDS_library_TITLE, IDS_library_DESCRIPTION},
+    {icoGRAPHICS_ICON, IDS_graphics_TITLE, IDS_graphics_DESCRIPTION},
+    {icoDESKTOP_ICON, IDS_desktop_TITLE, IDS_desktop_DESCRIPTION},
+    {icoDRIVES_ICON, IDS_drives_TITLE, IDS_drives_DESCRIPTION},
+    {icoAUDIO_ICON, IDS_audio_TITLE, IDS_audio_DESCRIPTION}
+};
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
+                    LPVOID lpvReserved)
+{
+    TRACE("(%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
+
+    switch (fdwReason) {
+    case DLL_THREAD_ATTACH:
+    case DLL_PROCESS_ATTACH:
+    break;
+    }
+    return TRUE;
+}
+
+LONG CALLBACK CPlApplet(HWND hwndCPL,
+                        UINT message, LPARAM lParam1, LPARAM lParam2)
+{
+    int CPLAppNumber = (int)lParam1; 
+
+    switch (message) 
+    {
+
+    case CPL_INIT:
+    {
+    return TRUE;
+    }
+
+    case CPL_GETCOUNT:
+    {
+    return 6;
+    }
+
+    case CPL_INQUIRE:
+    {
+    CPLINFO_UNICODE *APPLETS_INFO = (CPLINFO_UNICODE *) lParam2;
+    APPLETS_INFO->idIcon = winecfgCPLApplets[CPLAppNumber].idIcon;
+    APPLETS_INFO->szName = winecfgCPLApplets[CPLAppNumber].szName;
+    APPLETS_INFO->szInfo = winecfgCPLApplets[CPLAppNumber].szInfo;
+    APPLETS_INFO->lData = 0;
+    break;
+    }
+
+    case CPL_DBLCLK:
+    {
+    EXECUTE_APPLET(hwndCPL, message, CPLAppNumber, lParam2);
+    break;
+    }
+
+    }
+
+    return FALSE;
+}
diff --git a/dlls/winecfgcpl/winecfgcpl.cpl.spec b/dlls/winecfgcpl/winecfgcpl.cpl.spec
new file mode 100644
index 0000000..7ae3a01
--- /dev/null
+++ b/dlls/winecfgcpl/winecfgcpl.cpl.spec
@@ -0,0 +1 @@
+1 stdcall CPlApplet()
diff --git a/dlls/winecfgcpl/winecfgcpl.h b/dlls/winecfgcpl/winecfgcpl.h
new file mode 100644
index 0000000..1e0a88b
--- /dev/null
+++ b/dlls/winecfgcpl/winecfgcpl.h
@@ -0,0 +1,35 @@
+#ifndef __winecfgcpl_H
+#define __winecfgcpl_H
+
+#define  icoAPPLICATION_ICON 101
+#define  icoLIBRARY_ICON     102
+#define  icoGRAPHICS_ICON    103
+#define  icoDESKTOP_ICON     104
+#define  icoDRIVES_ICON      105
+#define  icoAUDIO_ICON       106
+
+#define  IDS_application_DESCRIPTION 11
+#define  IDS_application_TITLE       12
+#define  IDS_library_DESCRIPTION     21
+#define  IDS_library_TITLE           22
+#define  IDS_graphics_DESCRIPTION    31
+#define  IDS_graphics_TITLE          32
+#define  IDS_desktop_DESCRIPTION     41
+#define  IDS_desktop_TITLE           42
+#define  IDS_drives_DESCRIPTION      51
+#define  IDS_drives_TITLE            52
+#define  IDS_audio_DESCRIPTION       61
+#define  IDS_audio_TITLE             62
+
+typedef struct
+{
+int idIcon;
+WCHAR szName;
+WCHAR szInfo;
+LONG lData;
+} CPLINFO_UNICODE, *LPCPLINFO_UNICODE;
+
+LONG APIENTRY EXECUTE_APPLET(HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2);
+
+#endif
+
diff --git a/dlls/winecfgcpl/winecfgcpl.rc b/dlls/winecfgcpl/winecfgcpl.rc
new file mode 100644
index 0000000..1363e7f
--- /dev/null
+++ b/dlls/winecfgcpl/winecfgcpl.rc
@@ -0,0 +1,35 @@
+/*
+* WinecfgCPL resources
+*
+* Copyright 2008 Metody Stefanov
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library 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
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+*
+*/
+
+#include <windef.h>
+#include "winecfgcpl.h"
+
+#include "En.rc"
+#include "Bg.rc"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+icoAPPLICATION_ICON ICON "icons/app.ico"
+icoLIBRARY_ICON     ICON "icons/lib.ico"
+icoGRAPHICS_ICON    ICON "icons/graph.ico"
+icoDESKTOP_ICON     ICON "icons/desktop.ico"
+icoDRIVES_ICON      ICON "icons/drives.ico"
+icoAUDIO_ICON       ICON "icons/audio.ico"
diff --git a/programs/winecfg/main.c b/programs/winecfg/main.c
index 6fc77f7..dd2c36f 100644
--- a/programs/winecfg/main.c
+++ b/programs/winecfg/main.c
@@ -4,6 +4,7 @@
  * Copyright 2002 Jaco Greeff
  * Copyright 2003 Dimitrie O. Paun
  * Copyright 2003 Mike Hearn
+ * Copyright 2008 Metody Stefanov
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -78,15 +79,49 @@ AboutDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
     return FALSE;
 }
 
-#define NUM_PROPERTY_PAGES 7
-
 static INT_PTR
-doPropertySheet (HINSTANCE hInstance, HWND hOwner)
+doPropertySheet (HINSTANCE hInstance, HWND hOwner, int display_what_tabs)
 {
+    /*display_what_tabs. 0 = All, 1-6 - the Nr tab we want only.*/
+    /*How many property sheets do we need? Two. */
+    int NUM_PROPERTY_PAGES = 2;
+
+    /*It would get messier with an or statement everywhere, so...*/
+    BOOL Do_App = FALSE;
+    BOOL Do_Lib = FALSE;
+    BOOL Do_Graph = FALSE;
+    BOOL Do_Desktop = FALSE;
+    BOOL Do_Drives = FALSE;
+    BOOL Do_Audio = FALSE;
+    /* ^^ We don't want them all by default ^^ */
+
+    /* vv too ugly with a switch statement. do it the if-way. vv */
+    if (display_what_tabs == 1) 
+    {
+    Do_App = TRUE;  /*well, application settings do require more tabs.*/
+    Do_Lib = TRUE;
+    NUM_PROPERTY_PAGES = 3;
+    }
+
+    if (display_what_tabs == 2) { Do_Lib = TRUE; }
+    if (display_what_tabs == 3) { Do_Graph = TRUE; }
+    if (display_what_tabs == 4) { Do_Desktop = TRUE; }
+    if (display_what_tabs == 5) { Do_Drives = TRUE; }
+    if (display_what_tabs == 6) { Do_Audio = TRUE; }
+
+    /*we want all?*/
+    if (display_what_tabs == 0)
+    {
+    Do_App = Do_Lib = Do_Graph = Do_Desktop = Do_Drives = Do_Audio = TRUE; 
+    NUM_PROPERTY_PAGES = 7; /*That requires 7 property sheets*/
+    }
+
     PROPSHEETPAGEW psp[NUM_PROPERTY_PAGES];
     PROPSHEETHEADERW psh;
     int pg = 0; /* start with page 0 */
 
+    if (Do_App) /*we want apps?*/
+    {
     /*
      * Fill out the (Applications) PROPSHEETPAGE data structure 
      * for the property sheet
@@ -100,7 +135,10 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
     psp[pg].pszTitle = load_string (IDS_TAB_APPLICATIONS);
     psp[pg].lParam = 0;
     pg++;
-
+    }
+
+    if (Do_Lib) /*we want libs?*/
+    {
     /*
      * Fill out the (Libraries) PROPSHEETPAGE data structure 
      * for the property sheet
@@ -114,7 +152,10 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
     psp[pg].pszTitle = load_string (IDS_TAB_DLLS);
     psp[pg].lParam = 0;
     pg++;
-
+    }
+
+    if (Do_Graph) /*we want graph?*/
+    {
     /*
      * Fill out the (X11Drv) PROPSHEETPAGE data structure 
      * for the property sheet
@@ -128,7 +169,10 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
     psp[pg].pszTitle =  load_string (IDS_TAB_GRAPHICS);
     psp[pg].lParam = 0;
     pg++;
+    }
 
+    if (Do_Desktop) /*we want Desktop Integration?*/
+    {
     psp[pg].dwSize = sizeof (PROPSHEETPAGEW);
     psp[pg].dwFlags = PSP_USETITLE;
     psp[pg].hInstance = hInstance;
@@ -138,7 +182,10 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
     psp[pg].pszTitle =  load_string (IDS_TAB_DESKTOP_INTEGRATION);
     psp[pg].lParam = 0;
     pg++;
+    }
 
+    if (Do_Drives) /*we want the Drives?*/
+    {
     psp[pg].dwSize = sizeof (PROPSHEETPAGEW);
     psp[pg].dwFlags = PSP_USETITLE;
     psp[pg].hInstance = hInstance;
@@ -148,7 +195,10 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
     psp[pg].pszTitle =  load_string (IDS_TAB_DRIVES);
     psp[pg].lParam = 0;
     pg++;
+    }
 
+    if (Do_Audio) /*we want Audio?*/
+    {
     psp[pg].dwSize = sizeof (PROPSHEETPAGEW);
     psp[pg].dwFlags = PSP_USETITLE;
     psp[pg].hInstance = hInstance;
@@ -158,11 +208,12 @@ doPropertySheet (HINSTANCE hInstance, HWND hOwner)
     psp[pg].pszTitle =  load_string (IDS_TAB_AUDIO);
     psp[pg].lParam = 0;
     pg++;
-
+    }
     /*
      * Fill out the (General) PROPSHEETPAGE data structure 
      * for the property sheet
      */
+    /*we want the About in any case...*/
     psp[pg].dwSize = sizeof (PROPSHEETPAGEW);
     psp[pg].dwFlags = PSP_USETITLE;
     psp[pg].hInstance = hInstance;
@@ -220,6 +271,30 @@ ProcessCmdLine(LPSTR lpCmdLine)
     return FALSE;
 }
 
+/********************************************************************************
+   Read_tab_instructions.
+   Purpose - translate commandline parameters into a number for doPropertySheet
+   Return Values : 0 - do All, 1 - do Applications, 2 - do Libraries,
+   3 - do Graphics, 4 - do Desktop, 5 - do Drives, 6 - do Audio
+   !!! This is NOT to be mixed with ProcessCmdLine. Theese instructions are 
+   intended to be used only for displaying different tabs, and standalone 
+   at that (no other options in the command line.)
+*******************************************************************************/
+int Read_tab_instructions(LPSTR CommandLine)
+{
+    /*show what tabs?*/
+    int display_what_tabs = 0; /*show all tabs by default*/
+
+    if ( lstrcmpi(CommandLine,"applications") == 0 ) display_what_tabs = 1;
+    if ( lstrcmpi(CommandLine,"libraries") == 0 ) display_what_tabs = 2;
+    if ( lstrcmpi(CommandLine,"graphics") == 0 ) display_what_tabs = 3;
+    if ( lstrcmpi(CommandLine,"desktop") == 0 ) display_what_tabs = 4;
+    if ( lstrcmpi(CommandLine,"drives") == 0 ) display_what_tabs = 5;
+    if ( lstrcmpi(CommandLine,"audio") == 0 ) display_what_tabs = 6;
+
+    return display_what_tabs;
+}
+
 /*****************************************************************************
  * Name       : WinMain
  * Description: Main windows entry point
@@ -247,7 +322,7 @@ WinMain (HINSTANCE hInstance, HINSTANCE hPrev, LPSTR szCmdLine, int nShow)
      */
     InitCommonControls ();
     CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
-    if (doPropertySheet (hInstance, NULL) > 0) {
+    if (doPropertySheet (hInstance, NULL,Read_tab_instructions(szCmdLine)) > 0) {
 	WINE_TRACE("OK\n");
     } else {
 	WINE_TRACE("Cancel\n");
-- 
1.5.2.4

-------------- next part --------------
Allows access to different winecfg tabs via control-panel applets (without 
showing all of the cfg's tabs when accessed thusly)

winecfg:

modified:   programs/winecfg/main.c

Description: winecfg now accepts console parameters which determine what 
tab(s) to be shown. Syntax: "winecfg <parameter>" where parameter = audio, 
desktop, graphics, libraries, drives, applications. When applications, the 
library tab is also shown (for application-specific settings).

winecfgcpl:

added   :   dlls/winecfgcpl/

Description: Based on the modifications to winecfg, the control panel applet 
itself. Contains six applets (with icons), each responsible for calling 
winecfg with the appropriate parameter. Comes with a built-in translation 
capability.
However, since control panel does not utilize Unicode yet, the additionalb 
Bulgarian translation matches the English one.

Results from the patch:

1.) winecfg allows for easier access to the desired settings tab via console 
commands, of great usage to the console fans.
2.) with 6 applets, no longer an empty control panel
3.) an easy, windows-style configuration for people who are more 
comfortable /used to/ Control Panel.
4.) whilst keeping the one-off first time configuration capabilities of 
winecfg, now there's a much easier *tweaking* of the configuration later on, 
when only one set of settings needs modifications (whether by console, or by 
wine control)


More information about the wine-patches mailing list