Change icon of commanddata

  • On 08/03/2013 at 02:23, xxxxxxxx wrote:

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


    I like to exchange the icon of a commanddata plugin. For objects it's working fine with the MSG_GETCUSTOMICON message and set it in GetCustomIconData. But not for a commanddata.
    I recieve this message also, but it's not updated the icon.

    How does it works for commanddata plugins?


  • On 08/03/2013 at 02:30, xxxxxxxx wrote:

    Well, very hacky one, but you could blit on the bitmap returned by GetIcon();.


  • On 08/03/2013 at 02:51, xxxxxxxx wrote:

    oh, sorry, I don't understand. In the commanddata I don't have a GetIcon() function.
    Do you have a short exmaple?

  • On 08/03/2013 at 03:23, xxxxxxxx wrote:

    There's a GetIcon function in the SDK, lib_customicon or sth like that. Not at home atm.

  • On 08/03/2013 at 04:31, xxxxxxxx wrote:

    Something like this, not tested, but should give you the gist of it:

    #include <lib_iconcollection.h>
    IconData* ico = GetIcon(PLUGIN_ID);
    if (ico && ico->bmp) {
        BaseBitmap* bmp = ico->bmp;
        for (LONG i=ico->x; i < ico->x + ico->w; i++) {
            for (LONG j=ico->y; j < ico->y + ico->h; i++) {
                Real lower = static_cast<Real>((i - ico->x) * (j - ico->y));
                Real upper = static_cast<Real>(ico->w * ico->h);
                LONG x = (lower / upper) * 255;
                bmp->SetPixel(i, j, x, x, x);

  • On 08/03/2013 at 22:23, xxxxxxxx wrote:

    super, thanks a lot

Log in to reply