On 05/08/2016 at 16:03, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 17
Platform: Mac ; Mac OSX ;
Language(s) : C++ ;
---------
Couldn't find the answer to this on the forums or in the SDK examples.
I have extended the GeDialog class and added a TabGroup to my dialog. Is there a way to figure out what the current active tab is from the Command method? Partial code snippet below:
#define ID_AOVS_TABS 11021114
#define ID_AOVS_TABS_STANDARD 11021115
#define ID_AOVS_TABS_LPE 11021116
#define ID_AOVS_STANDARD_LIST 11030000
#define ID_AOVS_LPE_LIST 11031000
#define ID_AOVS_LISTVIEW 11021120
#define ID_AOVS_CHANNELS_LISTVIEW 11021122
#define ID_AOVS_BUTTON_ADDCHANNEL 11021124
class AOVSDialog: public GeDialog
{
private:
Int32 _lastcoremsg_change;
public:
AOVSDialog();
virtual ~AOVSDialog(void);
virtual Bool CreateLayout();
virtual Bool Command(Int32 id,const BaseContainer & msg );
virtual Bool CoreMessage(Int32 id, const BaseContainer &msg);
private:
SimpleListView m_aovListView;
SimpleListView m_channelListView;
SimpleListView m_standardListView;
SimpleListView m_lpeListView;
Int32 m_activeTab;
};
AOVSDialog::AOVSDialog(void)
{
_lastcoremsg_change = NOTOK;
}
Bool AOVSDialog::CreateLayout()
{
SetTitle("Example");
GroupBegin(1000, BFH_SCALEFIT | BFV_FIT, 3, 0, "", BFV_BORDERGROUP_FOLD_OPEN, 400, 100);
GroupBorderSpace(10, 10, 10, 10);
TabGroupBegin(ID_AOVS_TABS, BFH_SCALEFIT | BFV_SCALEFIT);
GroupBegin(ID_AOVS_TABS_STANDARD, BFH_SCALEFIT | BFV_SCALEFIT, 1, 0, "Standard", BFV_BORDERGROUP_FOLD_OPEN, 400, 100);
AddListView(ID_AOVS_STANDARD_LIST, BFH_SCALEFIT | BFV_SCALEFIT );
m_standardListView.AttachListView(this, ID_AOVS_STANDARD_LIST);
layout.SetInt32('name', LV_COLUMN_TEXT);
m_standardListView.SetLayout(1, layout);
m_standardListView.SetProperty(SLV_MULTIPLESELECTION, 1);
for (size_t i = 0; i < standardAOVS.size(); ++i)
{
// add stuff to list
}
GroupEnd();
GroupBegin(ID_AOVS_TABS_LPE, BFH_SCALEFIT | BFV_SCALEFIT, 1, 0, "LPE", BFV_BORDERGROUP_FOLD_OPEN, 400, 100);
AddListView(ID_AOVS_LPE_LIST, BFH_SCALEFIT | BFV_SCALEFIT );
m_lpeListView.AttachListView(this, ID_AOVS_LPE_LIST);
layout.SetInt32('name', LV_COLUMN_TEXT);
m_lpeListView.SetLayout(1, layout);
m_lpeListView.SetProperty(SLV_MULTIPLESELECTION, 1);
for (size_t i = 0; i < lpeAOVS.size(); ++i)
{
// add stuff to list
}
GroupEnd();
GroupEnd(); // TabGroupBegin
m_activeTab = ID_AOVS_STANDARD_LIST;
AddButton(ID_AOVS_BUTTON_ADDCHANNEL, BFH_LEFT | BFV_CENTER, 0, 10, "Add Channel(s)");
GroupEnd();
Bool AOVSDialog::Command(Int32 id, const BaseContainer & msg)
{
switch(id)
{
case (ID_AOVS_TABS) :
{
// set m_activeTab...how?
break;
}
}
}
Thanks!
Ian