Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Skinned Program (http://www.go4expert.com/forums/skinned-program-t4266/)

obduk 10May2007 23:14

Skinned Program
I want to create a program that is skinned, i.e. it would look like MSN messenger / iTunes on Windows. What would be the best way of creating a skinned application in C++.

The program needs to be able to run on Windows, Linux, and possibly Mac OS.

The program would also include some lists etc, so not just static images.

Thank you,


DaWei 10May2007 23:21

Re: Skinned Program
You need a cross-platform graphics library. Look at OpenGL and appurtenances, wxWidgets, etc. As for the portability of the rest of your code, that's in your hands.

shabbir 10May2007 23:21

Re: Skinned Program
First thing is as you would like to have a window program with GUI you need to have the differently done the Gui for each OS. The business logic can be same for each of them. For Windows you can refer to Seperate resource into a seperate DLL .

shabbir 10May2007 23:22

Re: Skinned Program

Originally Posted by DaWei
You need a cross-platform graphics library. Look at OpenGL and appurtenances, wxWidgets, etc. As for the portability of the rest of your code, that's in your hands.

That was quick.

DaWei 10May2007 23:25

Re: Skinned Program
I had an extra jolt of coffee this morning ;).

obduk 10May2007 23:27

Re: Skinned Program
I have looked into wxWidgets, and apparently that can't really do it ("strongly advised against").

I have had a bit of experience with openGL combined with GLUT, so I guess that's what I'll look into unless people have any other suggestions.

As for the portability of the code, I am aware of the implications of running applications on multiple platforms.

Thank you for your sugestions

DaWei 11May2007 04:26

Re: Skinned Program
When I say "portable code" I am referring to source portability. Ultimately, the code is turned into machine language for a specific microprocessor type. That code will not run on another microprocessor unless that microprocessor is solidly compatible with the original type. That is a very, very rare circumstance.

Source portability means that you can take your source code to another machine and compile it there. The new, correct machine code will then be emitted.

Even when machines have the same microprocessor, the code may not be portable. There are implementation-specific ways to talk to the hardware. One keyboard is not like another. One display is not like another. This is why our machines have very specific drivers. If your compiler does not have access to the means of correctly addressing these drivers, the code will not be portable.

Languages are not built to address specific sets of hardware and OSes. They are built to solve common problems. They address SPECIFIC issues only because the language writers have written NONSTANDARD libraries which deal with all that.

Bottom line: take "explorer.exe" from a Windows machine and try to run it on a Mac. At best, it just won't work. At worst, it may turn the machine into a molten slag heap. Don't bill me for the damage: you have been warned.

obduk 11May2007 05:46

Re: Skinned Program
Thank you for your quick responses.

I am aware of the implications of machine specific code etc etc.

I have already written software which has almost no differences in the C source code between the linux and windows versions, I then compile it using GCC on linux, and GCC MinGW for windows. I have yet to write any programs for Mac, I dont even own one (or installed MacOS on a PC).

Back to the original notion, could you elaborate on the OpenGL concept for creating a skinned GUI.


DaWei 11May2007 08:13

Re: Skinned Program
Elaborate in what respect? You can't expect the users to write your skins for you. It's all they can accomplish to type "LOLZZZZ!!!!!111111".

obduk 11May2007 16:02

Re: Skinned Program
Sorry, I shall explain better, I am definitely not wanting people to do work for me.

I was just wandering if you could give a general idea.

For exaple, as I understand, would I have to create a load of bitmaps, then use openGL's 2D drawing capabilities to draw them to screen, then maybe use some function in the Glut Libary to define an invisible button over the graphic.

Then, how would I hide the standard frame, that is the window thing in windows or linux that encapsulates the contents of the window.

I was just wandering if anyone had any experience in this area.


All times are GMT +5.5. The time now is 09:13.