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

    Combobox in Combobox in python

    Scheduled Pinned Locked Moved PYTHON Development
    7 Posts 0 Posters 617 Views
    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 Offline
      Helper
      last edited by

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

      On 24/10/2012 at 03:41, xxxxxxxx wrote:

      How to define a combobox in a combobox using Python?
      See for example the Physical Sky > Time and Location > City GUI.

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

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

        On 24/10/2012 at 06:33, xxxxxxxx wrote:

        Are you talking about having a popup menu displayed when we click on the combo?
        If you take a look at the description of the Physical Sky ( modules\advanced render\sky\res\description\oskyshader.res ) you can see that the City combo is defined as:

        LONG SKY_POS_CITY_COMBO
        {
            PARENTCOLLAPSE;
            CUSTOMGUI SKY_II_CITYLIST;
            ANIM OFF;
        }
        

        So you can see that it's made with custom gadget; unfortunately it's not possible to develop custom GUIs with the Python SDK, only in C++.

        Or are talking about the collapsing of City parameter?
        In its declaration you can see PARENTCOLLAPSE flag and Time Zone attribute is declared with PARENTCOLLAPSE SKY_POS_CITY_COMBO to tell CINEMA his collapse parent:

        LONG SKY_POS_TIMEZONE
        {
            PARENTCOLLAPSE SKY_POS_CITY_COMBO;
            CYCLE
            {
                SKY_POS_TZ_OS;
                SKY_POS_TZ_CUSTOM;
            }
        }
        
        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

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

          On 24/10/2012 at 06:54, xxxxxxxx wrote:

          What I mean is that like the City comboboxx in the Physical Sky, first select the continent, that displays another combobox with all countries on that continent.
          Then select a country, that displays all cities in that country.

          I'm sorry, I do not understand what you mean with "collapsing of City parameter"?

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

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

            On 24/10/2012 at 07:27, xxxxxxxx wrote:

            Originally posted by xxxxxxxx

            What I mean is that like the City comboboxx in the Physical Sky, first select the continent, that displays another combobox with all countries on that continent.
            Then select a country, that displays all cities in that country.

            This is a dynamic popup menu calculated by the custom GUI.

            Originally posted by xxxxxxxx

            I'm sorry, I do not understand what you mean with "collapsing of City parameter"?

            I'm referring to the parameters that you can show or hide below City parameter.

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

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

              On 24/10/2012 at 12:02, xxxxxxxx wrote:

              Ok, clear.
              Do you have an example of such a popup menu?

              Sorry, I see you just told me
              "unfortunately it's not possible to develop custom GUIs with the Python SDK, only in C++."

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

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

                On 25/10/2012 at 03:30, xxxxxxxx wrote:

                Originally posted by xxxxxxxx

                Ok, clear.
                Do you have an example of such a popup menu?

                Sorry, I see you just told me
                "unfortunately it's not possible to develop custom GUIs with the Python SDK, only in C++."

                No, I just said that we can't build custom gadgets in Python but we can of course create dynamic popup menus.
                Here's an example of a recursive popup dialog:

                import c4d
                from c4d import gui
                  
                def BuildMenuRecursive(menu, level, maxlevel) :
                    offset = 10*level
                    menu.SetString(c4d.FIRST_POPUP_ID+offset,   'Item '+str(offset+1))
                    menu.SetString(c4d.FIRST_POPUP_ID+offset+1, 'Item '+str(offset+2))
                    
                    level += 1
                    if level==maxlevel:
                        menu.SetString(c4d.FIRST_POPUP_ID+offset+2, 'Item '+str(offset+3))
                    else:
                        submenu = c4d.BaseContainer()
                        submenu.SetString(1, 'Item '+str(offset+3))
                        BuildMenuRecursive(submenu, level, maxlevel)
                        menu.SetContainer(c4d.FIRST_POPUP_ID+offset+2, submenu)
                    
                    menu.SetString(c4d.FIRST_POPUP_ID+offset+3, 'Item '+str(offset+4))
                  
                # Build main menu recursively
                # With a maximum of 5 menus
                menu = c4d.BaseContainer()
                BuildMenuRecursive(menu, 0, 5)
                  
                # Show popup dialog
                  
                result = gui.ShowPopupDialog(cd=None, bc=menu, x=300, y=300)
                print result
                
                1 Reply Last reply Reply Quote 0
                • H Offline
                  Helper
                  last edited by

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

                  On 27/10/2012 at 16:11, xxxxxxxx wrote:

                  Thanks, I'll give it a try.

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