Posts: 7,256
Joined: Nov 2008
Reputation:
121
Well, it takes about 10 minutes to learn C++. The other 9 years, 11 months, 30 days, 23 hours and 50 minutes are needed to learn the libraries you need to make C++ do anything useful :-)
Assuming you have some form of debugger set a breakpoint in CApplication::Create at the call to g_Windowing.InitWindowSystem() and trace it from there. You will quickly get an idea of how XBMC implements it's GUI. In Windows it's easy of course, but then I wrote my first call to CreateWindow() rather more than ten years ago - actually it was more than twenty years ago!
JR
Posts: 3,025
Joined: Sep 2011
Reputation:
255
DDDamian
Team-XBMC Developer
Posts: 3,025
Don't let anyone dissuade you from learning, but yeah, the GUI interface is one of the tougher things to start with. It's a complex beast made more complex because of it's platform-independant nature, meaning much that an OS would normally handle for you is handled by XBMC. All the nice API that, say, Windows gives you to create and manipulate dialog boxes etc has to be replicated within the XBMC code - no help from the OS.
System: XBMC HTPC with HDMI WASAPI & AudioEngine - Denon AVR-3808CI - Denon DVD-5900 Universal Player - Denon DCM-27 CD-Changer
- Sony BDP-S580 Blu-Ray - X-Box 360 - Android tablet wireless remote - 7.1 Streem/Axiom/Velodyne Surround System
If I have been able to help feel free to add to my reputation +/- below - thanks!
Posts: 568
Joined: Jan 2009
Reputation:
30
Threads like this give me an even greater appreciation for the devs. Thanks, y'all!
Posts: 26,215
Joined: Oct 2003
Reputation:
187
The basis of the GUI stuff is essentially a base class CGUIControl that's overridden into all the different controls you see (CGUIButtonControl, CGUISpinControl etc.). The next most important one is the grouping control (CGUIControlGroup and CGUIControlGroupList) that is basically a container for other controls - all child controls that it contains are offset from it's current position and so on. The next layer is CGUIWindow (which derives from a CGUIControlGroup) etc.
Messages are handled by passing to the window then down through the controlgroups/controls as necessary.
Messages from a control can then go up through it's parents to the window (or app) as required.
That's the basic structure of all UI's.
Have fun!
Cheers,
Jonathan
Posts: 119
Joined: Oct 2011
Reputation:
3
2012-03-11, 01:48
(This post was last modified: 2012-03-11, 02:07 by XMBC_FREAK.)
GEEKSQUAD
First off my opinion is my two cents no one has to agree nor disagree
IMO Your user ID screamed affiliation or desire to become part of that organization. That would normally imply that you are very willing to accept both positive or negative associations toward that company.
I personally know a higher level employee for GS; we have had multiple conversations informing me of their practices within GS and BB as well as the horror stories. I hear a lot more horror stories than actual good things, I am not the only person here or anywhere that hasn't had a bad experience with BB.
I asked all the questions since joining I have read so many posts regarding the same ole topics usually from users with a couple of posts. IMO it seems as though no time is taken in searching of a subject versus just creating a post about it. Since most do not post anything about themselves and jump into posting, How would you expect someone to respond to you, without knowing an ounce about you, capabilities, and talent.
Great to know now a lil about you now, I appreciate the resume'.
Regardless learning C++ and coding a skin will be an large undertaking for anyone just to jump into, admit it or not and it was not mean to dis-encourage anyone from doing or attempting lets be real here.