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