diff --git a/roottest/root/meta/enums/CMakeLists.txt b/roottest/root/meta/enums/CMakeLists.txt index 5bc3074182774..fdcc2cd0eaffa 100644 --- a/roottest/root/meta/enums/CMakeLists.txt +++ b/roottest/root/meta/enums/CMakeLists.txt @@ -88,3 +88,7 @@ ROOTTEST_ADD_TEST(enumSize ROOTTEST_ADD_TEST(testUsingEnum.cxx MACRO test_usingenum.cxx OUTREF test_usingenum.ref) + +ROOTTEST_ADD_TEST(enumOptList + MACRO execenumOptList.C + OUTREF execenumOptList.ref) diff --git a/roottest/root/meta/enums/execenumOptList.C b/roottest/root/meta/enums/execenumOptList.C new file mode 100644 index 0000000000000..adc245a4d68f3 --- /dev/null +++ b/roottest/root/meta/enums/execenumOptList.C @@ -0,0 +1,21 @@ +void execenumOptList() +{ + const char *tname = "TAttImage::EImageQuality"; + + printf("List of values in enum %s\n", tname); + if (auto enumDict = TEnum::GetEnum(tname)) { + TIter iEnumConst(enumDict->GetConstants()); + while (auto enumConst = static_cast(iEnumConst())) { + printf(" name %s value %lld\n", enumConst->GetName(), enumConst->GetValue()); + } + } + + auto cl = TClass::GetClass("TAttImage"); + auto member = cl->GetDataMember("fImageQuality"); + + printf("List of options for TAttImage::fImageQuality member\n"); + TIter nxt(member->GetOptions()); + while (auto it = dynamic_cast(nxt())) { + printf(" name %s label %s value %ld\n", it->fOptName.Data(), it->fOptLabel.Data(), it->fValue); + } +} diff --git a/roottest/root/meta/enums/execenumOptList.ref b/roottest/root/meta/enums/execenumOptList.ref new file mode 100644 index 0000000000000..330f374d789cd --- /dev/null +++ b/roottest/root/meta/enums/execenumOptList.ref @@ -0,0 +1,13 @@ +Processing execenumOptList.C... +List of values in enum TAttImage::EImageQuality + name kImgDefault value -1 + name kImgPoor value 0 + name kImgFast value 1 + name kImgGood value 2 + name kImgBest value 3 +List of options for TAttImage::fImageQuality member + name Default label kImgDefault value -1 + name Poor label kImgPoor value 0 + name Fast label kImgFast value 1 + name Good label kImgGood value 2 + name Best label kImgBest value 3