Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Hide/Show Description Top Level Groups

    SDK Help
    0
    9
    880
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 26/07/2003 at 08:18, xxxxxxxx wrote:

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

      ---------
      Hi,

      here is a cosmetic problem concerning descriptions ...

      I'm using descriptions for the user interface of a cartoon renderer, a video post effect. It offers several brush tools for the outlines. It should show only the top level group which belongs to the currently selected brush. The parameters of the other brushes should be invisible. This is very similar to the behavior of the standard material when you switch on/off some of its channels.

      Up to now, I'm using VideoPost::Message to catch the MSG_DESCRIPTION_VALIDATE message. There, I retrieve the Description of the node and iterate through its DescEntrys. With GetDescEntry I fill a BaseContainer with the data of the Description. In this BaseContainer, I use SetBool(DESC_HIDE, ...) to hide or show a top level group.

      This works so far. Groups appear and disappear controlled by the program. But: The group heading buttons above the description appear in a wrong state. Though the newly visible groups are shown fully unfolded, the respective button is shown on gray background, not white.

      Any ideas? (How is this implemented in the standard material editor?)

      Thank you very much!

      Regards,
      jl

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 26/07/2003 at 09:28, xxxxxxxx wrote:

        Sorry, I don´t really understand. Could you exactly show what you mean? What is meant by "wrong state" and white background? Even screenshots would help.
        Some lines of code you have narrowed down to show the problem would surely help. (Darn, I sound like Mikael *g* )
        Btw. There already was a thread here in the forum when Mikael Sterner showed some code to hide Description elements that works fine. Maybe you first want to start the search function of the forum and have a look at his code. There are dedicated functions for the description resources like GetDDescription and similar to handle Description changes.
        Best
        Samir

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 27/07/2003 at 02:54, xxxxxxxx wrote:

          Hi Samir,

          thanks for refering me to the previous thread. (Indeed, before my post I did only search for "Descriptions" in the subject lines, not in the message bodies. Oops.)

          I've tried the solution Michael Sterner has pointed out. But the cosmetic problem remains. Here is a screenshot:

          You can see the group "Creases: Ink Brush" being fully open, but its button in the heading is gray, which _should_ mean the group is closed, not open.

          In addition to SetBool(DESC_HIDE, TRUE) I've tried to force the opening with SetBool(DESC_DEFAULT, TRUE), but without success.

          Regards,
          jl

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 27/07/2003 at 03:44, xxxxxxxx wrote:

            Hi,
            ah I see. Hmm, I´m not sure if DESC_DEFAULT is really for the default state. Have you set the default state in the resource file for this group to 1 ?
            Best
            Smir

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 27/07/2003 at 05:37, xxxxxxxx wrote:

              Hi,

              > not sure if DESC_DEFAULT is really

              Yes. The group will not be open initially if there is a DEFAULT 0 in the description resource and I don't set DESC_DEFAULT to TRUE in the program.

              Whether a group is opened or closed seems to be a boolean parameter which is not part of the description itself (unlike DESC_HIDE) but stored with the other, regular parameters. In the description, one can only change the _default_ value of this open/close parameter. This obviously works fine, because the group _is_ opened/closed accordingly. But it doen't help with the wrong appearance of the button (see screenshot in my previous posting). This looks like an UI update done only halfway.

              Did your plug-in suffer from the same problem as mine?

              Regards,
              jl

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

                THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                On 27/07/2003 at 08:42, xxxxxxxx wrote:

                Yes. The group will not be open initially if there is a DEFAULT 0 in the description resource and I don't set DESC_DEFAULT to TRUE in the program.

                I just tried it and it seems that setting this value will only have affect at the very beginning when the first instance is created. Means the user chooses your plugin out of the VP list, then the state you have set will be used. But not while having it open.
                (if the quicktab is selected when you are hiding it, it should still be selected when you unhide it again)
                I don´t see a way to select the quicktab at the moment. Maybe if you can find out the description ID of the quicktab entry itself you could use FindCustomGui_(ID,QUICKTAB_CUSTOMGUI) and then use qt->Select(SUBID,TRUE); but I spontaneously I have to say I don´t know if this is possible to get the Quicktab ID...
                Will have a look when I find the time.
                Best
                Samir

                1 Reply Last reply Reply Quote 0
                • H
                  Helper
                  last edited by

                  THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                  On 28/07/2003 at 15:01, xxxxxxxx wrote:

                  To hide/unhide groups overload 'GetDDescription':

                      
                      
                      
                      
                      Bool MyVPData::GetDDescription(GeListNode *node, Description *description,LONG &flags)
                      
                      
                      
                      
                      {
                      
                      
                      
                      
                      > 
                  \>     
                  \>     
                  \>     if (!description->LoadDescription(my_videopost_id)) return FALSE;
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     BaseContainer *param = description->GetParameterI(DescLevel(id_of_group_to_hide),NULL); 
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     if (param) param->SetLong(DESC_HIDE,TRUE_or_FALSE);
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     flags |= DESCFLAGS_DESC_LOADED;
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     
                  \>     return SUPER::GetDDescription(node,description,flags);
                      
                      
                      
                      
                      }
                      
                      
                      
                  

                  This lets C4D dynamically update the descriptions!

                  1 Reply Last reply Reply Quote 0
                  • H
                    Helper
                    last edited by

                    THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                    On 29/07/2003 at 04:10, xxxxxxxx wrote:

                    The problem was not the hiding, he did overload GetDDescription (see Mikael Sterners thread I pointed to) but the quicktab wasn´t selected.

                    1 Reply Last reply Reply Quote 0
                    • H
                      Helper
                      last edited by

                      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                      On 01/08/2003 at 05:25, xxxxxxxx wrote:

                      Ummm.. my bad.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post