Hi everyone,
I am a senior student double majoring in Computer Science and Math at Northern Illinois University (currently applying the CS Master Program at NIU) and I would like to participate in merging winecfg and control panel through the Google Summer of Code program.
I have used wine since wine 0.9 and 'm now using wine 1.3. I like the idea that all config tools should be grouped and managed at one place, and it would be nice to have them similar to the classical windows control panel (like the control panel in wine 1.3).
About my programming background, I believe I know (and love) C the best. I have not had any internships before, but I'm currently working as an undergraduate Research Assistant at NIU. It is a Proton Computed Tomography (Proton CT) project and the main language in use is C, so I do have some experience of using C in a large-scale project.
I have briefly walked through Owen Rudge's code of splitting out the Desktop Integration tab into its own control panel, but have no luck in getting a decent understanding of it. So I'm hoping some of you can point me to some documents that related to this task so I can have an overall understanding of the challenges of this task.
Sincerely, -- Tony (Chi Zhang)
Hi Tony,
I have briefly walked through Owen Rudge's code of splitting out the Desktop Integration tab into its own control panel, but have no luck in getting a decent understanding of it. So I'm hoping some of you can point me to some documents that related to this task so I can have an overall understanding of the challenges of this task.
Actually creating a new control panel applet is a fairly straightforward task. You can look at the existing control panels (appwiz.cpl, inetcpl.cpl) to get an idea of what's involved, or consult MSDN for more information (http://tinyurl.com/6yu7cw4). If you've not got a background in Windows programming already, it may of course take a little longer to figure everything out.
More complicated is actually working out how to split up winecfg effectively, and how to do so in a way that doesn't result in unnecessary code duplication, otherwise you'll likely find it difficult to actually get your code into the project.
I would say that there's certainly potential for a project here, if you can flesh it out - I do think a unified control panel containing all of Wine's configuration options would be a good thing, rather than the current situation where options are scattered between the control panel, winecfg, etc. The key will be figuring out what you want to do, how you're going to achieve it, and making sure it will be acceptable to the wider Wine community.
Regards,
Dear Owen,
Thank you for pointing me to those information. I'll take a look at those and try to figure out the process of making control panel applets. Unfortunately, I have no background in Windows programming, but I do want to get some through this project.
Dear Owen,
Actually creating a new control panel applet is a fairly straightforward task. You can look at the existing control panels (appwiz.cpl, inetcpl.cpl) to get an idea of what's involved
I have looked at the two existing applets, but got a little confused by the variable names and the organization of the files (the call chain).
I'm able to find some documents talking about how to create control panel applet in Windows CE (haven't got time to read them through). Is that similar to creating cpl in wine?
Dear Owen,
Actually creating a new control panel applet is a fairly straightforward task. You can look at the existing control panels (appwiz.cpl, inetcpl.cpl) to get an idea of what's involved
After all the searches, I still do not have an overall idea of how to
create an control panel applet. From my current understanding, if I put the cpl (dll) file in "~/.wine/drive_c/windows/system32/", wine control will recognize it automatically, right?
If so, is there any instructions on how to build a simple applet under wine (even one that does nothing could work for me). I'd really like to try create and build some test applet in order to understand it better.
Sorry for taking your time. Thanks in advance. Best,
You can pretty much ignore everything in the actual C source files of appwiz.c except the CPlApplet function. CPL_STARTWPARMSW is unimportant, and all CPL_DBLCLK does is create a window.
The only difference from the layout of a normal Windows program is that a control panel applet does not include its own message loop. The caller takes care of that.
See also http://msdn.microsoft.com/en-us/library/bb776392%28VS.85%29.aspx