DATETIME_GUI



  • On 31/01/2014 at 08:20, xxxxxxxx wrote:

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

    ---------
    (Also) in C++ I do not get the little arrow in front of the date and time to show (expand) the calendar and the clock?

    	BaseContainer dtcont;
    	dtcont.SetBool(DATETIME_TIME_CONTROL, true);	
    	dtcont.SetBool(DATETIME_DATE_CONTROL, true);	
    	dtcont.SetBool(DATETIME_NOW_BUTTON, true);	
        dt = (DateTimeControl* )AddCustomGui(1002, DATETIME_GUI,"Date/Time",BFH_SCALEFIT|BFV_SCALEFIT,0,0,dtcont); 
    


  • On 31/01/2014 at 11:25, xxxxxxxx wrote:

    This is one of those odd gizmos that have to be expanded in the Init() function. Not in the CreateLayout() function.
    That tripped me up too.

    Bool MyDialog::InitValues(void)  
    {  
      dt->SetLayoutMode(LAYOUTMODE_MAXIMIZED);  //Works like "OPEN" does in the .res file  
      
      return TRUE;  
    }
    

    Also.
    Be aware that most of the DT base container options are now depreciated.

    -ScottA



  • On 01/02/2014 at 02:46, xxxxxxxx wrote:

    Great, thank you.
    Does it also means that we have to program the little collapse/expand arrow in front, ourselfs?
    At the moment there is no such little arrow, so I assume you have to do it yourself.
    Regards, Pim



  • On 01/02/2014 at 07:44, xxxxxxxx wrote:

    Yeah. I think you'll have to create that effect yourself. Using a button that swaps an image when pressed. Or some other sort of trickery.
    That little arrow only seems to get created when you use these custom gizmos in a Node based plugin. But not in a GeDialog plugin.

    This is an example of creating the DT gizmo dynamically for a node (tag) plugin.
    Just like when using the .res file to create the gizmo for these kinds of plugins. That little arrow automatically get created for us.
    It's a built-in thing for the Node plugins that we get for free.

    Bool SimpleTag::GetDDescription(GeListNode *node, Description *description,DESCFLAGS_DESC &flags)  
    {      
    //We will load the DateTime GUI into the first description level(much like loading UD entries into levels)  
      DescID did = DescLevel(1, DTYPE_NONE, 0);  
      BaseContainer settings;  
      settings.SetLong(DESC_CUSTOMGUI, DATETIME_GUI);   
      settings.SetString(DESC_NAME,"DateTime");  
      settings.SetString(DESC_SHORT_NAME,"DateTime");   
      settings.SetBool(DATETIME_NOW_BUTTON, TRUE);  
      if (!description->SetParameter(did,settings,DescLevel(ID_OBJECTPROPERTIES))) return FALSE;  
      
      
      flags |= DESCFLAGS_DESC_LOADED;  
      return TRUE;  
    }
    

    -ScottA



  • On 01/02/2014 at 14:46, xxxxxxxx wrote:

    Thanks, indeed when using User Data and a Date/Time field you get the little arrow.
    But doing that yourself in c++ is not a big issue. We discussed it in one of my previous posts.
    Thanks for the example.

    Pim


Log in to reply