|
@@ -1660,6 +1660,7 @@ void laui_GameController(laUiList *uil, laPropPack *This, laPropPack *Extra, laC
|
|
|
void lauidetached_GameController(laPanel* p){
|
|
|
la_MakeDetachedProp(p, "la.controllers", "controllers");
|
|
|
}
|
|
|
+
|
|
|
void laui_OperatorTypeEntry(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *ExtraColumns, int context){
|
|
|
laColumn* c=ExtraColumns;
|
|
|
laShowItem(uil,c,This,"name")->Flags|=LA_UI_FLAGS_PLAIN;
|
|
@@ -1679,7 +1680,7 @@ void laui_InputMappingEntry(laUiList *uil, laPropPack *This, laPropPack *Extra,
|
|
|
laShowItem(uil,crl,This,"disabled")->Flags=LA_UI_FLAGS_ICON|LA_UI_FLAGS_HIGHLIGHT|LA_UI_FLAGS_CYCLE;
|
|
|
b1=laOnConditionToggle(uil,cl,0,0,0,0,0);{
|
|
|
laEndRow(uil,b);
|
|
|
- laShowLabel(uil,cl,"Mode:\n ",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED|LA_TEXT_LINE_WRAP;
|
|
|
+ laShowLabel(uil,cl,"Mode\n ",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED|LA_TEXT_LINE_WRAP;
|
|
|
|
|
|
b2=laBeginRow(uil,crl,0,0);{
|
|
|
laShowItem(uil,crl,This,"use_operator")->Flags=LA_UI_FLAGS_ICON|LA_UI_FLAGS_PLAIN|LA_UI_FLAGS_DISABLED;
|
|
@@ -1719,7 +1720,7 @@ void laui_InputMappingEntry(laUiList *uil, laPropPack *This, laPropPack *Extra,
|
|
|
ui1->Flags|=LA_UI_FLAGS_EXPAND;ui1->Expand=10;
|
|
|
laEndRow(uil,b3);
|
|
|
laShowItem(uil,crl,This,"operator_arguments");
|
|
|
- laShowLabel(uil,cl,"Args:",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED;
|
|
|
+ laShowLabel(uil,cl,"Args",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED;
|
|
|
}laElse(uil,b4);{
|
|
|
laEndRow(uil,b3);
|
|
|
}laEndCondition(uil,b4);
|
|
@@ -1803,6 +1804,162 @@ void laui_InputMappingBundle(laUiList *uil, laPropPack *This, laPropPack *Extra,
|
|
|
laShowItemFull(guil,gc,0,"la.input_mapping.current",LA_WIDGET_COLLECTION_SINGLE,0,laui_InputMapping,0)->Flags|=LA_UI_FLAGS_NO_DECAL;
|
|
|
}laEndCondition(uil,b3);
|
|
|
}
|
|
|
+
|
|
|
+void laui_ToolboxEntryButton(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
+ laColumn* c=laFirstColumn(uil);
|
|
|
+ laInputMappingEntry* ime=This?This->EndInstance:0; if(!ime){ laShowLabel(uil,c,"?",0,0); return; }
|
|
|
+ if(ime->UseOperator){
|
|
|
+ char buf[256]; if(SSTR(ime->Key)[0]){ sprintf(buf,"text=%s;",SSTR(ime->Key),SSTR(ime->OperatorArguments)); }
|
|
|
+ else{ sprintf(buf,"%s",SSTR(ime->OperatorArguments)); }
|
|
|
+ laShowItemFull(uil,c,0,SSTR(ime->Operator),0,buf,0,0)->Flags|=LA_TEXT_ALIGN_CENTER;
|
|
|
+ }else{
|
|
|
+ char* display=SSTR(ime->Key);
|
|
|
+ char buf[256]; sprintf(buf,"signal=%s;text=%s;",SSTR(ime->Signal),display[0]?display:SSTR(ime->Signal));
|
|
|
+ laShowItemFull(uil,c,0,"LA_send_signal",0,buf,0,0)->Flags|=LA_TEXT_ALIGN_CENTER;
|
|
|
+ }
|
|
|
+}
|
|
|
+void laui_ToolboxEntry(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *ExtraColumns, int context){
|
|
|
+ laColumn* c=ExtraColumns;
|
|
|
+ laColumn* cl=laLeftColumn(c,3),*cr=laRightColumn(c,0);
|
|
|
+
|
|
|
+ laUiItem* b,*b1,*b2,*b3,*b4;
|
|
|
+
|
|
|
+ b=laBeginRow(uil,cl,1,1);
|
|
|
+ laShowItem(uil,cl,This,"__move");
|
|
|
+ laShowItem(uil,cl,This,"key")->Flags|=LA_UI_FLAGS_PLAIN|LA_TEXT_ALIGN_CENTER;
|
|
|
+ b1=laOnConditionToggle(uil,cl,0,0,0,0,0);{
|
|
|
+ laEndRow(uil,b);
|
|
|
+ laShowLabel(uil,cl,"Mode",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED;
|
|
|
+
|
|
|
+ b2=laBeginRow(uil,cr,0,0);{
|
|
|
+ laShowItem(uil,cr,This,"use_operator")->Flags=LA_UI_FLAGS_ICON|LA_UI_FLAGS_PLAIN|LA_UI_FLAGS_DISABLED;
|
|
|
+ b3=laOnConditionThat(uil,cr,laPropExpression(This,"use_operator"));{
|
|
|
+ laUiItem* bui=laShowItemFull(uil,cr,This,"select_operator",0,"icon= ;",0,0);
|
|
|
+ bui->Expand=1; bui->Flags|=LA_UI_FLAGS_ICON|LA_UI_FLAGS_UNDERNEATH;
|
|
|
+ laUiItem* ui=laShowItem(uil,cr,This,"operator");
|
|
|
+ ui->Expand=1; ui->Flags|=LA_UI_FLAGS_PLAIN;
|
|
|
+ }laElse(uil,b3);{
|
|
|
+ laUiItem* bui=laShowItemFull(uil,cr,This,"select_signal",0,"icon= ;",0,0);
|
|
|
+ bui->Expand=1; bui->Flags|=LA_UI_FLAGS_ICON|LA_UI_FLAGS_UNDERNEATH;
|
|
|
+ laUiItem* ui=laShowItem(uil,cr,This,"signal");
|
|
|
+ ui->Expand=1; ui->Flags|=LA_UI_FLAGS_PLAIN;
|
|
|
+ }laEndCondition(uil,b3);
|
|
|
+ laShowItem(uil,cr,This,"remove")->Flags|=LA_UI_FLAGS_ICON;
|
|
|
+ }laEndRow(uil,b2);
|
|
|
+
|
|
|
+
|
|
|
+ //b2=laBeginRow(uil,crr,0,0);{
|
|
|
+ // laShowSeparator(uil,crr)->Expand=1;
|
|
|
+ // laShowItem(uil,crr,This,"reset");
|
|
|
+ //}laEndRow(uil,b2);
|
|
|
+ laUiItem* ui=laShowItem(uil,cr,This,"use_operator"); ui->Flags|=LA_UI_FLAGS_EXPAND;
|
|
|
+ b4=laOnConditionThat(uil,cr,laPropExpression(&ui->PP,""));{\
|
|
|
+ laShowLabel(uil,cl,"Args",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED;
|
|
|
+ laShowItem(uil,cr,This,"operator_arguments");
|
|
|
+ }laEndCondition(uil,b4);
|
|
|
+
|
|
|
+ laShowLabel(uil,cl,"Disp",0,0)->Flags|=LA_TEXT_ALIGN_RIGHT|LA_UI_FLAGS_DISABLED;
|
|
|
+ laShowItem(uil,cr,This,"key");
|
|
|
+
|
|
|
+ laShowSeparator(uil,c);
|
|
|
+
|
|
|
+ }laElse(uil,b1);{
|
|
|
+ laEndRow(uil,b);
|
|
|
+ b2=laBeginRow(uil,cr,0,0);{
|
|
|
+ laShowItem(uil,cr,This,"use_operator")->Flags=LA_UI_FLAGS_ICON|LA_UI_FLAGS_PLAIN;
|
|
|
+ b3=laOnConditionThat(uil,cr,laPropExpression(This,"use_operator"));{
|
|
|
+ laUiItem* ui=laShowItem(uil,cr,This,"operator_name");ui->Expand=1;ui->Flags|=LA_UI_FLAGS_PLAIN;
|
|
|
+ }laElse(uil,b3);{
|
|
|
+ laUiItem* ui=laShowItem(uil,cr,This,"signal");ui->Expand=1;ui->Flags|=LA_UI_FLAGS_PLAIN;
|
|
|
+ }laEndCondition(uil,b3);
|
|
|
+ laShowItem(uil,cr,This,"remove")->Flags|=LA_UI_FLAGS_ICON;
|
|
|
+ }laEndRow(uil,b2);
|
|
|
+ }laEndCondition(uil,b1);
|
|
|
+}
|
|
|
+void laui_ToolboxListing(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
+ laColumn* c=laFirstColumn(uil);laSplitColumn(uil,c,0.25);
|
|
|
+ laColumn* cl=laLeftColumn(c,3),*cr=laRightColumn(c,0);
|
|
|
+
|
|
|
+ laUiItem* b=laBeginRow(uil,c,0,0);
|
|
|
+ laShowItemFull(uil,c,This,"new_entry",0,"position=top;",0,0);
|
|
|
+ laEndRow(uil,b);
|
|
|
+ laShowSeparator(uil,c);
|
|
|
+
|
|
|
+ //laShowColumnAdjuster(uil,c);
|
|
|
+ //laShowLabel(uil,cl,"✓",0,0)->Flags|=LA_TEXT_ALIGN_CENTER|LA_UI_FLAGS_DISABLED;
|
|
|
+ //laShowLabel(uil,crl,"Operation",0,0)->Flags|=LA_TEXT_ALIGN_CENTER|LA_UI_FLAGS_DISABLED;
|
|
|
+ //laShowLabel(uil,crr,"Input",0,0)->Flags|=LA_TEXT_ALIGN_CENTER|LA_UI_FLAGS_DISABLED;
|
|
|
+
|
|
|
+ laShowItemFull(uil,c,This,"entries",0,0,laui_ToolboxEntry,0)->Flags|=LA_UI_FLAGS_NO_DECAL;
|
|
|
+
|
|
|
+ laShowSeparator(uil,c);
|
|
|
+ b=laBeginRow(uil,c,0,0);
|
|
|
+ laShowItem(uil,c,This,"new_entry");
|
|
|
+ laEndRow(uil,b);
|
|
|
+}
|
|
|
+void lauidetached_Toolbox(laPanel* p){
|
|
|
+ la_MakeDetachedProp(p, "la.input_mapping.current_toolbox", "toolbox");
|
|
|
+ la_MakeDetachedProp(p, "la.input_mapping.toolbox_layout","layout");
|
|
|
+}
|
|
|
+void laui_Toolbox(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
+ 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,Extra,"toolbox",LA_WIDGET_COLLECTION_SELECTOR,0,laui_IdentifierOnly,0)->Flags|=LA_UI_COLLECTION_SIMPLE_SELECTOR;
|
|
|
+ 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;
|
|
|
+ }laEndRow(muil,b1);
|
|
|
+ }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,Extra,"toolbox",LA_WIDGET_COLLECTION_SELECTOR,0,laui_IdentifierOnly,0)->Flags|=LA_UI_COLLECTION_SIMPLE_SELECTOR;
|
|
|
+ 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;
|
|
|
+ }laEndRow(muil,b1);
|
|
|
+ }laEndRow(uil,b);
|
|
|
+ }laEndCondition(uil,b0);
|
|
|
+
|
|
|
+#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; \
|
|
|
+ }laEndCondition(uil,b0)
|
|
|
+
|
|
|
+ ADD_WIDTH_OF(3);
|
|
|
+ ADD_WIDTH_OF(5);
|
|
|
+ ADD_WIDTH_OF(8);
|
|
|
+ ADD_WIDTH_OF(13);
|
|
|
+}
|
|
|
+void laui_ToolboxEditor(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
|
|
|
+ laColumn* c=laFirstColumn(uil);
|
|
|
+ laUiItem* b=laBeginRow(uil,c,0,0);
|
|
|
+ laShowItemFull(uil,c,0,"la.input_mapping.current_toolbox",LA_WIDGET_COLLECTION_SELECTOR,0,laui_IdentifierOnly,0)
|
|
|
+ ->Flags|=LA_UI_COLLECTION_SIMPLE_SELECTOR;
|
|
|
+ laUiItem* b3=laOnConditionThat(uil,c,laPropExpression(0,"la.input_mapping.current_toolbox"));{
|
|
|
+ laShowItem(uil,c,0,"la.input_mapping.current_toolbox.name");
|
|
|
+ laShowItem(uil,c,0,"LA_new_toolbox")->Flags|=LA_UI_FLAGS_ICON;
|
|
|
+ laShowSeparator(uil,c);
|
|
|
+ laUiItem* cp=laShowInvisibleItem(uil,c,0,"la.input_mapping.current_toolbox");
|
|
|
+ laShowItem(uil,c,&cp->PP,"remove");
|
|
|
+ }laElse(uil,b3);{
|
|
|
+ laShowItem(uil,c,0,"LA_new_toolbox");
|
|
|
+ }laEndCondition(uil,b3);
|
|
|
+ laEndRow(uil,b);
|
|
|
+ b3=laOnConditionThat(uil,c,laPropExpression(0,"la.input_mapping.current_toolbox"));{
|
|
|
+ laUiItem* gui=laMakeEmptyGroup(uil,c,0,0); laUiList* guil=gui->Page; laColumn* gc=laFirstColumn(guil); guil->HeightCoeff=-1;
|
|
|
+ laShowItemFull(guil,gc,0,"la.input_mapping.current_toolbox",LA_WIDGET_COLLECTION_SINGLE,0,laui_ToolboxListing,0)->Flags|=LA_UI_FLAGS_NO_DECAL;
|
|
|
+ }laEndCondition(uil,b3);
|
|
|
+}
|
|
|
+
|
|
|
void lauidetached_Drivers(laPanel* p){
|
|
|
la_MakeDetachedProp(p, "la.detached_view_switch", "detached");
|
|
|
la_MakeDetachedProp(p, "tns.world.root_objects", "root_object");
|
|
@@ -2335,8 +2492,7 @@ void la_RegisterBuiltinTemplates(){
|
|
|
int his=MAIN.InitArgs.HasHistories;
|
|
|
int ter=MAIN.InitArgs.HasTerminal;
|
|
|
int act=MAIN.InitArgs.HasAction&&obj;
|
|
|
- laRegisterUiTemplate("LAUI_input_mapping","Input Mapping",laui_InputMappingBundle,0,0,"Controlling",0,0,0);
|
|
|
- laRegisterUiTemplate("LAUI_controllers", "Controllers", laui_GameController, lauidetached_GameController, 0,0,0,0,0);
|
|
|
+ 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);
|
|
|
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);
|
|
@@ -2346,6 +2502,9 @@ void la_RegisterBuiltinTemplates(){
|
|
|
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_toolbox_editor","Toolbox Editor",laui_ToolboxEditor,0,0,0,0,0,0);
|
|
|
+ laRegisterUiTemplate("LAUI_input_mapping","Input Mapping",laui_InputMappingBundle,0,0,0,0,0,0);
|
|
|
+ laRegisterUiTemplate("LAUI_controllers", "Controllers", laui_GameController, lauidetached_GameController, 0,0,0,0,0);\
|
|
|
if(tex) laRegisterUiTemplate("LAUI_texture_inspector", "Texture Inspector", laui_TextureInspector, lauidetached_TextureInspector, 0, 0, 0,0,0);
|
|
|
laRegisterUiTemplate("LAUI_data_manager", "Data Manager", laui_IdleDataManager, lauidetached_IdleDataManager, 0, 0, 0,25,25);
|
|
|
if(his) laRegisterUiTemplate("LAUI_histories", "Histories", laui_UndoHistories, 0, 0, 0, 0,10,25);
|