Aye, for now I haven't the time to go into too much depth, I just didn't want to check things out and discover that merely being in the SDK was too much
Personally I think all mods ought to stay in there, just so much more POWER!
The file you are interested in is
CvDLLWidgetData.cpp. This is where all WIDGET_* items are defined and given their jobs. In this particular case, you peek at CvMainInterface.py (or just guess) to find that you are interested in modification to WIDGET_HELP_GREAT_PEOPLE.
So, open up your project and CvDLLWidgetData.cpp, then search for "WIDGET_HELP_GREAT_PEOPLE"
First result will be:
Code:
case WIDGET_HELP_GREAT_PEOPLE:
parseGreatPeopleHelp(widgetDataStruct, szBuffer);
break;
This is what will happen when you move the mouse over it. The game is directed to a later function
CvDLLWidgetData:arseGreatPeopleHelp
Now, that is the only instance in this file, and is listed under
CvDLLWidgetData:arseHelp. This function is called whenever the mouse moves onto an item with a Widget_Type defined. When the mouse CLICKS on an item with a Widget_Type, the function
CvDLLWidgetData::executeAction is called. So all that you need to do is add a new case to this section of the code. So head down there and add a command for when someone clicks on "WIDGET_HELP_GREAT_PEOPLE" along the lines of:
Code:
case WIDGET_HELP_GREAT_PEOPLE:
doGreatPeople();
break;
This will cause it to run a function that you will define later in the .cpp (and in the .h file since you are finally creating something new. Unless you want to have it open a window that already exists, in which case you can use the same function call as the other Widget already does).
The function you will define will depend on precisely what you want to happen when you click on the GPP Bar, so I'll leave you to look at all of the other functions called in
CvDLLWidgetData::executeAction, almost certainly one of them does much the same as what you want to do, since you can find the buttons for the Advisors to open a new screen, or the buttons for renaming a unit/city for opening a text entry box, and all sorts of other examples. Just think of what already does roughly what you want, look up the Widget_type for that item, and then find it in CvDLLWidgetTypes.cpp.