|
@@ -1998,45 +1998,70 @@ void lauidetached_Toolbox(laPanel* p){
|
|
la_MakeDetachedProp(p, "la.input_mapping.current_toolbox", "toolbox");
|
|
la_MakeDetachedProp(p, "la.input_mapping.current_toolbox", "toolbox");
|
|
la_MakeDetachedProp(p, "la.input_mapping.toolbox_layout","layout");
|
|
la_MakeDetachedProp(p, "la.input_mapping.toolbox_layout","layout");
|
|
}
|
|
}
|
|
|
|
+void laget_ToolboxPanelExtraInfo(laPanel* panel, char* content, char** here){
|
|
|
|
+ content[0]=0; if(!panel->PropLinkContainer) return;
|
|
|
|
+ char prop[256]; laIntProp *ip; laFloatProp *fp; laEnumProp *ep; laSubProp *sp;
|
|
|
|
+ for(laProp* p=panel->PropLinkContainer->Props.pFirst;p;p=p->Item.pNext){ prop[0]=0;
|
|
|
|
+ switch(p->PropertyType){
|
|
|
|
+ case LA_PROP_ENUM: ep=p;
|
|
|
|
+ snprintf(prop,256,"%s=%d;",p->Identifier,ep->Detached[0]); break;
|
|
|
|
+ case LA_PROP_SUB: sp=p; laInputMapping* toolbox=sp->Detached;
|
|
|
|
+ snprintf(prop,256,"%s=%s;",p->Identifier,SSTR(toolbox->Name)); break;
|
|
|
|
+ }
|
|
|
|
+ strcat(content,prop);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+void laset_ToolboxPanelExtraInfo(laPanel* panel, char* content){
|
|
|
|
+ laStringSplitor* ss; strMakeInstructions(&ss,content); if(!ss) return;
|
|
|
|
+ laInputMapping* im=0; int layout=0; laEnumProp *ep; laSubProp *sp; char* value;
|
|
|
|
+ if(value=strGetArgumentString(ss,"toolbox")){ im=laFindToolbox(value); }
|
|
|
|
+ if(value=strGetArgumentString(ss,"layout")){ sscanf(value,"%d",&layout); }
|
|
|
|
+ for(laProp* p=panel->PropLinkContainer->Props.pFirst;p;p=p->Item.pNext){
|
|
|
|
+ switch(p->PropertyType){
|
|
|
|
+ case LA_PROP_ENUM: if(!strSame("layout",p->Identifier)) break;
|
|
|
|
+ ep=p; ep->Detached[0]=layout; break;
|
|
|
|
+ case LA_PROP_SUB: if(!strSame("toolbox",p->Identifier)) break;
|
|
|
|
+ sp=p; memAssignRef(sp,&sp->Detached,im); break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
void laui_Toolbox(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
void laui_Toolbox(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
laColumn* c=laFirstColumn(uil); laSplitColumn(uil,c,0.2);
|
|
laColumn* c=laFirstColumn(uil); laSplitColumn(uil,c,0.2);
|
|
- laColumn* cl=laLeftColumn(c,1), *cr=laRightColumn(c,0);
|
|
|
|
- laUiItem* cui=laShowInvisibleItem(uil,c,Extra,"layout");
|
|
|
|
-
|
|
|
|
- laUiItem* b0=laOnConditionThat(uil,c,laEqual(laPropExpression(&cui->PP,""),laIntExpression(0)));{
|
|
|
|
- laUiItem* ui=laShowItemFull(uil,c,Extra,"toolbox.entries",0,0,laui_ToolboxEntryButton,0);
|
|
|
|
- ui->Flags|=LA_UI_FLAGS_NO_DECAL;
|
|
|
|
- laUiItem* b=laBeginRow(uil,c,0,0);{
|
|
|
|
- laUiList* muil=laMakeMenuPageEx(uil,c,"☰",LA_UI_FLAGS_NO_DECAL); laColumn* mc=laFirstColumn(muil);
|
|
|
|
- laUiItem* b1=laBeginRow(muil,mc,0,0);{
|
|
|
|
- laShowItemFull(muil,mc, 0, "LA_panel_activator", 0, "panel_id=LAUI_toolbox_editor;icon=🖍;", 0, 0)->Flags|=LA_UI_FLAGS_ICON;
|
|
|
|
- laShowItemFull(muil,mc,Extra,"layout",0,0,0,0)->Flags|=LA_UI_FLAGS_EXPAND|LA_UI_FLAGS_NO_CONFIRM;
|
|
|
|
- }laEndRow(muil,b1);
|
|
|
|
- laShowLabel(muil,mc,"Select a toolbox:",0,0)->Flags|=LA_TEXT_MONO;
|
|
|
|
- laShowItemFull(muil,mc,Extra,"toolbox",LA_WIDGET_COLLECTION,0,laui_IdentifierOnly,0);
|
|
|
|
- }laEndRow(uil,b);
|
|
|
|
- }laElse(uil,b0);{
|
|
|
|
- laUiItem* b=laBeginRow(uil,cl,0,0);{
|
|
|
|
- laUiList* muil=laMakeMenuPageEx(uil,cl,"☰",LA_UI_FLAGS_NO_DECAL); laColumn* mc=laFirstColumn(muil);
|
|
|
|
- laUiItem* b1=laBeginRow(muil,mc,0,0);{
|
|
|
|
- laShowItemFull(muil,mc, 0, "LA_panel_activator", 0, "panel_id=LAUI_toolbox_editor;icon=🖍;", 0, 0)->Flags|=LA_UI_FLAGS_ICON;
|
|
|
|
- laShowItemFull(muil,mc,Extra,"layout",0,0,0,0)->Flags|=LA_UI_FLAGS_EXPAND|LA_UI_FLAGS_NO_CONFIRM;
|
|
|
|
- }laEndRow(muil,b1);
|
|
|
|
- laShowLabel(muil,mc,"Select a toolbox:",0,0)->Flags|=LA_TEXT_MONO;
|
|
|
|
- laShowItemFull(muil,mc,Extra,"toolbox",LA_WIDGET_COLLECTION,0,laui_IdentifierOnly,0);
|
|
|
|
- }laEndRow(uil,b);
|
|
|
|
- }laEndCondition(uil,b0);
|
|
|
|
|
|
+ laColumn* cl=laLeftColumn(c,0), *cr=laRightColumn(c,1);
|
|
|
|
+ laUiItem* cui=laShowInvisibleItem(uil,c,Extra,"layout");laUiItem* b0;
|
|
|
|
|
|
#define ADD_WIDTH_OF(n) \
|
|
#define ADD_WIDTH_OF(n) \
|
|
- b0=laOnConditionThat(uil,cr,laEqual(laPropExpression(&cui->PP,""),laIntExpression(n)));{ \
|
|
|
|
- laUiItem* ui=laShowItemFull(uil,cr,Extra,"toolbox.entries",0,0,laui_ToolboxEntryButton,0); \
|
|
|
|
- ui->Flags|=LA_UI_FLAGS_NO_DECAL; ui->Expand=n; \
|
|
|
|
|
|
+ b0=laOnConditionThat(uil,cl,laEqual(laPropExpression(&cui->PP,""),laIntExpression(n)));{ \
|
|
|
|
+ laUiItem* ui=laShowItemFull(uil,cl,Extra,"toolbox.entries",0,0,laui_ToolboxEntryButton,0); \
|
|
|
|
+ ui->Flags|=LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_GAP; ui->Expand=n; \
|
|
}laEndCondition(uil,b0)
|
|
}laEndCondition(uil,b0)
|
|
|
|
|
|
ADD_WIDTH_OF(3);
|
|
ADD_WIDTH_OF(3);
|
|
ADD_WIDTH_OF(5);
|
|
ADD_WIDTH_OF(5);
|
|
ADD_WIDTH_OF(8);
|
|
ADD_WIDTH_OF(8);
|
|
ADD_WIDTH_OF(13);
|
|
ADD_WIDTH_OF(13);
|
|
|
|
+
|
|
|
|
+ laUiItem* b=laBeginRow(uil,cr,0,0);{
|
|
|
|
+ laUiList* muil=laMakeMenuPageEx(uil,cr,"☰",LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_GAP); laColumn* mc=laFirstColumn(muil);
|
|
|
|
+ laUiItem* b0=laBeginRow(muil,mc,0,0);{
|
|
|
|
+ laShowSeparator(muil,mc)->Expand=1;
|
|
|
|
+ laShowItem(muil, mc, This, "hide")->Flags|=LA_UI_FLAGS_ICON;
|
|
|
|
+ laShowItem(muil, mc, This, "dock")->Flags|=LA_UI_FLAGS_ICON;
|
|
|
|
+ laShowItemFull(muil, mc, This, "close",0,"text=Close Toolbox",0,0);
|
|
|
|
+ }laEndRow(muil,b0);
|
|
|
|
+ laShowLabel(muil,mc,"Select a toolbox:",0,0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ laShowItemFull(muil,mc,Extra,"toolbox",LA_WIDGET_COLLECTION,0,laui_IdentifierOnly,0);
|
|
|
|
+ laUiItem* b1=laBeginRow(muil,mc,0,0);{
|
|
|
|
+ laShowItemFull(muil,mc, 0, "LA_panel_activator", 0, "panel_id=LAUI_toolbox_editor;icon=🖍;", 0, 0)->Flags|=LA_UI_FLAGS_ICON;
|
|
|
|
+ laShowItemFull(muil,mc,Extra,"layout",0,0,0,0)->Flags|=LA_UI_FLAGS_EXPAND|LA_UI_FLAGS_NO_CONFIRM;
|
|
|
|
+ }laEndRow(muil,b1);
|
|
|
|
+ }laEndRow(uil,b);
|
|
|
|
+
|
|
|
|
+ b0=laOnConditionThat(uil,c,laEqual(laPropExpression(&cui->PP,""),laIntExpression(0)));{
|
|
|
|
+ laUiItem* ui=laShowItemFull(uil,c,Extra,"toolbox.entries",0,0,laui_ToolboxEntryButton,0);
|
|
|
|
+ ui->Flags|=LA_UI_FLAGS_NO_DECAL|LA_UI_FLAGS_NO_GAP;
|
|
|
|
+ }laEndCondition(uil,b0);
|
|
}
|
|
}
|
|
void laui_ToolboxEditor(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
void laui_ToolboxEditor(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
laColumn* c=laFirstColumn(uil);
|
|
laColumn* c=laFirstColumn(uil);
|
|
@@ -2585,20 +2610,21 @@ void tnsui_RootObjectMenuUi(laUiList *uil, laPropPack *This, laPropPack *Operato
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-void la_RegisterBuiltinTemplates(){
|
|
|
|
|
|
+void la_RegisterBuiltinTemplates(){ laUiTemplate* uit;
|
|
int obj=MAIN.InitArgs.HasWorldObjects;
|
|
int obj=MAIN.InitArgs.HasWorldObjects;
|
|
int tex=MAIN.InitArgs.HasTextureInspector;
|
|
int tex=MAIN.InitArgs.HasTextureInspector;
|
|
int his=MAIN.InitArgs.HasHistories;
|
|
int his=MAIN.InitArgs.HasHistories;
|
|
int ter=MAIN.InitArgs.HasTerminal;
|
|
int ter=MAIN.InitArgs.HasTerminal;
|
|
int act=MAIN.InitArgs.HasAction&&obj;
|
|
int act=MAIN.InitArgs.HasAction&&obj;
|
|
- laRegisterUiTemplate("LAUI_toolbox","Toolbox",laui_Toolbox,lauidetached_Toolbox,0,"Toolboxes",0,0,0);
|
|
|
|
- if(obj) laRegisterUiTemplate("LAUI_scene", "Scene", tnsui_ScenePanel, tnsui_DetachedScenePanel, 0, 0, 0,25,25);
|
|
|
|
|
|
+ uit=laRegisterUiTemplate("LAUI_toolbox","Toolbox",laui_Toolbox,lauidetached_Toolbox,0,"Toolboxes",0,0,0);
|
|
|
|
+ laUiTemplateSetExtras(uit,LA_TEMPLATE_FLAGS_NO_DECORATION,laget_ToolboxPanelExtraInfo,laset_ToolboxPanelExtraInfo);
|
|
|
|
+ if(obj) laRegisterUiTemplate("LAUI_scene", "Scene", tnsui_ScenePanel, tnsui_DetachedScenePanel, 0, "Scene", 0,25,25);
|
|
if(obj) laRegisterUiTemplate("LAUI_world_hierachy","World",tnsui_WorldHierachy,0,0,0,0,0,0);
|
|
if(obj) laRegisterUiTemplate("LAUI_world_hierachy","World",tnsui_WorldHierachy,0,0,0,0,0,0);
|
|
if(obj) laRegisterUiTemplate("LAUI_object_properties", "Properties", tnsui_ObjectProperties, tnsuidetached_ObjectProperties, 0, 0, 0,15,25);
|
|
if(obj) laRegisterUiTemplate("LAUI_object_properties", "Properties", tnsui_ObjectProperties, tnsuidetached_ObjectProperties, 0, 0, 0,15,25);
|
|
|
|
+ if(obj) laRegisterUiTemplate("LAUI_drivers","Drivers",laui_Drivers,lauidetached_Drivers,0,"Controls",0,0,0);
|
|
|
|
+ if(obj) laRegisterUiTemplate("LAUI_materials","Materials",laui_Materials,lauidetached_Materials,0,0,0,0,0);
|
|
if(act) laRegisterUiTemplate("LAUI_animation_actions", "Actions", laui_AnimationActions, 0, 0, 0, 0,15,25);
|
|
if(act) laRegisterUiTemplate("LAUI_animation_actions", "Actions", laui_AnimationActions, 0, 0, 0, 0,15,25);
|
|
if(act) laRegisterUiTemplate("LAUI_animation_action_channels", "Action Channels", laui_AnimationActionChannels, 0, 0, 0, 0,20,15);
|
|
if(act) laRegisterUiTemplate("LAUI_animation_action_channels", "Action Channels", laui_AnimationActionChannels, 0, 0, 0, 0,20,15);
|
|
- if(obj) laRegisterUiTemplate("LAUI_drivers","Drivers",laui_Drivers,lauidetached_Drivers,0,0,0,0,0);
|
|
|
|
- if(obj) laRegisterUiTemplate("LAUI_materials","Materials",laui_Materials,lauidetached_Materials,0,0,0,0,0);
|
|
|
|
|
|
|
|
laRegisterUiTemplate("LAUI_user_preferences", "User Preferences", laui_UserPreference, 0, 0, "System",0,25,25);
|
|
laRegisterUiTemplate("LAUI_user_preferences", "User Preferences", laui_UserPreference, 0, 0, "System",0,25,25);
|
|
laRegisterUiTemplate("LAUI_toolbox_editor","Toolbox Editor",laui_ToolboxEditor,0,0,0,0,0,0);
|
|
laRegisterUiTemplate("LAUI_toolbox_editor","Toolbox Editor",laui_ToolboxEditor,0,0,0,0,0,0);
|