Description: Get Icon of Cycle

On 12/05/2013 at 16:02, xxxxxxxx wrote:

User Information:
Cinema 4D Version:    
Platform:      
Language(s) :     C++  ;

---------
I'm trying to display the menu items in the description of the Connector Object in my dialog. I can
successfully extract the names of the items, but the icons are not included. In a dialog, they are
added by appending an &iXXX to the name of the element where XXX is the ID of the icon. But they
are not included in the cycle container. Where are they stored?

           do {
                BaseObject* op = BaseObject::Alloc(pluginid);
                if (!op) break;
                AutoFree<BaseObject> free(op);
  
                AutoAlloc<Description> desc;
                if (!op->GetDescription(desc, DESCFLAGS_DESC_0)) break;
  
                BaseContainer temp;
                AutoAlloc<AtomArray> arr;
                const BaseContainer* param = desc->GetParameter(FORCE_TYPE, temp, arr);
                if (!param) break;
  
                const BaseContainer* cycle = param->GetContainerInstance(DESC_CYCLE);
                if (!cycle) break;
  
                GePrint("Getting 'Type' items:");
  
                LONG i = 0;
                LONG last_id = -1;
                while (true) {
                    LONG id = cycle->GetIndexId(i++);
                    if (id == NOTOK) break;
  
                    String name = cycle->GetString(id);
                    if (name.Content()) {
                        if (last_id < 0) last_id = id;
                        GePrint("    " + name);
                        AddChild(CMB_TYPE, id, name);
                    }
                }
  
                SetLong(CMB_TYPE, last_id);
            } while (0);
  
            LayoutChanged(CMB_TYPE);

The output is:

Getting 'Type' items:
    Hinge
    Cardan
    Ball and Socket
    Ragdoll
    Slider
    Twist Slider
    Planar
    Box
    Wheel Suspension
    Fixed

I actually expected it to be

Getting 'Type' items:
    Hinge&i180000011
    Cardan&i180000161
    Ball and Socket&i180000162
    ...

and so forth.

Thanks in advance!
-Niklas

On 12/05/2013 at 16:24, xxxxxxxx wrote:

the & notation is just a packed value format for the resource syntax. search for desc_items
in the cpp sdk, it is a list of the various ids attached to a description element the cycle
symbols seem to be stored in a separate container.

On 12/05/2013 at 16:59, xxxxxxxx wrote:

Thanks Ferdinand, the DESC_ITEMS tip was great! I haven't seen the DESC_CYCLEICONS item so far
which is the solution to the problem.

Best,
-Niklas