|  | @@ -479,6 +479,8 @@ void laui_DefaultMenuButtonsEditEntries(laUiList *uil, laPropPack *pp, laPropPac
 | 
	
		
			
				|  |  |      laShowLabel(uil, c, "History", 0, 0)->Flags|=LA_TEXT_MONO|LA_UI_FLAGS_DISABLED;
 | 
	
		
			
				|  |  |      laShowItem(uil, c, 0, "LA_undo")->Flags|=LA_UI_FLAGS_NO_CONFIRM;
 | 
	
		
			
				|  |  |      laShowItem(uil, c, 0, "LA_redo")->Flags|=LA_UI_FLAGS_NO_CONFIRM;
 | 
	
		
			
				|  |  | +    laShowSeparator(uil,c);
 | 
	
		
			
				|  |  | +    laShowItemFull(uil, c, 0, "LA_panel_activator",0,"panel_id=LAUI_histories;text=Histories",0,0);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void laui_DefaultMenuButtonsOptionEntries(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
 | 
	
		
			
				|  |  |      laColumn* c=laFirstColumn(uil);
 | 
	
	
		
			
				|  | @@ -503,7 +505,7 @@ void laui_DefaultMenuExtras(laUiList *uil, laPropPack *pp, laPropPack *actinst,
 | 
	
		
			
				|  |  |      laColumn *c = laFirstColumn(uil);
 | 
	
		
			
				|  |  |      laShowLabel(uil, c, MAIN.MenuProgramName, 0, 0)->Expand=1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  void laui_DefaultMenuBarActual(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
 | 
	
		
			
				|  |  |      laUiList *muil;
 | 
	
		
			
				|  |  |      laColumn *c,*mc;
 | 
	
	
		
			
				|  | @@ -931,9 +933,8 @@ void laui_FileBrowserDiskItem(laUiList *uil, laPropPack *This, laPropPack *OP_UN
 | 
	
		
			
				|  |  |      laShowItem(uil, crr, This, "free_gb");
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void laui_FileBrowserFileList(laUiList *uil, laPropPack *THIS_UNUSED, laPropPack *Operator, laColumn *UNUSED, int context){
 | 
	
		
			
				|  |  | -    laColumn *col = laFirstColumn(uil), *c, *cl, *cr, *crl, *crr, *cll, *clr, *clrl, *clrr, *clrrl, *clrrr;
 | 
	
		
			
				|  |  | -    laUiList *u;
 | 
	
		
			
				|  |  | -    laUiItem *b;
 | 
	
		
			
				|  |  | +    laColumn *col = laFirstColumn(uil), *c, *cl, *cr, *crl, *crr, *cll, *clr, *clrl, *clrr, *clrrl, *clrrr, *ulc;
 | 
	
		
			
				|  |  | +    laUiList *u; laUiItem *b; laUiList *ul;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      laSplitColumn(uil, col, 0.25);
 | 
	
		
			
				|  |  |      cl = laLeftColumn(col, 10);
 | 
	
	
		
			
				|  | @@ -949,30 +950,29 @@ void laui_FileBrowserFileList(laUiList *uil, laPropPack *THIS_UNUSED, laPropPack
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      laShowSeparator(uil,col);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    u = laMakeGroup(uil, cl, "Logic Drives", 0)->Page;
 | 
	
		
			
				|  |  | -    c = laFirstColumn(u);
 | 
	
		
			
				|  |  | -    laSplitColumn(u, c, 0.2);
 | 
	
		
			
				|  |  | -    cll = laLeftColumn(c, LA_2RH);
 | 
	
		
			
				|  |  | -    clr = laRightColumn(c, 0);
 | 
	
		
			
				|  |  | -    laSplitColumn(u, clr, 0.5);
 | 
	
		
			
				|  |  | -    clrl = laLeftColumn(clr, 0);
 | 
	
		
			
				|  |  | -    clrr = laRightColumn(clr, 0);
 | 
	
		
			
				|  |  | +    laUiItem* left=laMakeEmptyGroup(uil, cl, "left", 0); ul=left->Page; left->Flags|=LA_UI_FLAGS_NO_DECAL; ul->HeightCoeff=-1;
 | 
	
		
			
				|  |  | +    ulc=laFirstColumn(ul);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    b=laOnConditionThat(ul,ulc,laPropExpression(Operator,"use_type"));{
 | 
	
		
			
				|  |  | +        u = laMakeGroup(ul, ulc, "Use Format", 0)->Page; c = laFirstColumn(u);
 | 
	
		
			
				|  |  | +        laShowItemFull(u,c,Operator,"available_extensions",0,0,laui_IdentifierOnly,0)->Flags|=LA_UI_FLAGS_NO_DECAL;
 | 
	
		
			
				|  |  | +    }laEndCondition(ul,b);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    u = laMakeFoldableGroup(ul, ulc, "Bookmarks", 0, 0, 0)->Page; c = laFirstColumn(u);
 | 
	
		
			
				|  |  | +    laShowItemFull(u,c,Operator,"bookmarks",0,0,laui_IdentifierOnly,0)->Flags|=LA_UI_FLAGS_NO_DECAL;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    u = laMakeGroup(ul, ulc, "Logic Drives", 0)->Page;
 | 
	
		
			
				|  |  | +    c = laFirstColumn(u); laSplitColumn(u, c, 0.2); cll = laLeftColumn(c, LA_2RH); clr = laRightColumn(c, 0);
 | 
	
		
			
				|  |  | +    laSplitColumn(u, clr, 0.5); clrl = laLeftColumn(clr, 0); clrr = laRightColumn(clr, 0);
 | 
	
		
			
				|  |  |      laShowColumnAdjuster(u, c);
 | 
	
		
			
				|  |  |      laShowItem(u, c, Operator, "disk_list");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      b = laMakeGroup(uil, cr, "File List", 0);b->State=LA_UI_ACTIVE; u=b->Page;
 | 
	
		
			
				|  |  |      u->HeightCoeff = -1;
 | 
	
		
			
				|  |  | -    c = laFirstColumn(u);
 | 
	
		
			
				|  |  | +    c = laFirstColumn(u); laSplitColumn(u, c, 0.1); cll = laLeftColumn(c, 1); clr = laRightColumn(c, 0);
 | 
	
		
			
				|  |  | +    laSplitColumn(u, clr, 0.7); clrl = laLeftColumn(clr, 0); clrr = laRightColumn(clr, 0);
 | 
	
		
			
				|  |  | +    laSplitColumn(u, clrr, 0.5); clrrl = laLeftColumn(clrr, 0); clrrr = laRightColumn(clrr, 0);
 | 
	
		
			
				|  |  |      laShowColumnAdjuster(u, c);
 | 
	
		
			
				|  |  | -    laSplitColumn(u, c, 0.1);
 | 
	
		
			
				|  |  | -    cll = laLeftColumn(c, 1);
 | 
	
		
			
				|  |  | -    clr = laRightColumn(c, 0);
 | 
	
		
			
				|  |  | -    laSplitColumn(u, clr, 0.7);
 | 
	
		
			
				|  |  | -    clrl = laLeftColumn(clr, 0);
 | 
	
		
			
				|  |  | -    clrr = laRightColumn(clr, 0);
 | 
	
		
			
				|  |  | -    laSplitColumn(u, clrr, 0.5);
 | 
	
		
			
				|  |  | -    clrrl = laLeftColumn(clrr, 0);
 | 
	
		
			
				|  |  | -    clrrr = laRightColumn(clrr, 0);
 | 
	
		
			
				|  |  |      laShowLabel(u, clrl, "File Name", 0, 0);
 | 
	
		
			
				|  |  |      laShowLabel(u, clrrl, "Last Modified On", 0, 0);
 | 
	
		
			
				|  |  |      laShowLabel(u, clrrr, "File Size", 0, 0);
 | 
	
	
		
			
				|  | @@ -1041,7 +1041,7 @@ void laui_ManagedPropInstance(laUiList *uil, laPropPack *Base, laPropPack *Opera
 | 
	
		
			
				|  |  |      if(!Base ||! Base->EndInstance ||Base->LastPs->p->PropertyType!=LA_PROP_SUB) return;
 | 
	
		
			
				|  |  |      laColumn *c=laFirstColumn(uil);
 | 
	
		
			
				|  |  |      laSplitColumn(uil,c,0.3); laColumn *cl=laLeftColumn(c, 1); laColumn *cr=laRightColumn(c,0);
 | 
	
		
			
				|  |  | -    laSplitColumn(uil,cr,0.6); laColumn *crl=laLeftColumn(cr, 30); laColumn *crr=laRightColumn(cr,0);
 | 
	
		
			
				|  |  | +    laSplitColumn(uil,cr,0.6); laColumn *crl=laLeftColumn(cr, 0); laColumn *crr=laRightColumn(cr,30);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      laPropContainer* pc=la_EnsureSubTarget(Base->LastPs->p, Base->EndInstance);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1055,7 +1055,7 @@ void laui_ManagedPropInstance(laUiList *uil, laPropPack *Base, laPropPack *Opera
 | 
	
		
			
				|  |  |          //laShowLabel(uil,cr,"(Item not allocated by memAcquire)",0,0)->Expand=1;
 | 
	
		
			
				|  |  |      }else{
 | 
	
		
			
				|  |  |          if(pc->Hyper==2){
 | 
	
		
			
				|  |  | -            laShowItem(uil,cl,Base,"__modified"); laSplitColumn(uil,crl,0.4); laColumn *crll=laLeftColumn(crl, 0); laColumn *crlr=laRightColumn(crl,10);
 | 
	
		
			
				|  |  | +            laShowItem(uil,cl,Base,"__modified"); laSplitColumn(uil,crl,0.4); laColumn *crll=laLeftColumn(crl, 0); laColumn *crlr=laRightColumn(crl,15);
 | 
	
		
			
				|  |  |              laUiItem* idui=laShowItem(uil,crll,Base,"identifier");idui->Flags|=LA_UI_FLAGS_PLAIN;idui->Expand=1;
 | 
	
		
			
				|  |  |              laShowItem(uil,crlr,Base,"__uid")->Flags|=LA_UI_FLAGS_NO_DECAL;
 | 
	
		
			
				|  |  |              if(pc->UDFPropagate){
 | 
	
	
		
			
				|  | @@ -1088,8 +1088,7 @@ void laui_ManagedPropInstance(laUiList *uil, laPropPack *Base, laPropPack *Opera
 | 
	
		
			
				|  |  |              laShowItem(uil,crr,Base,"__single_saver_dummy.__file");
 | 
	
		
			
				|  |  |              continue;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        char buf[128]; sprintf(buf,"🞄 %s",p->Identifier);
 | 
	
		
			
				|  |  | -        laUiItem* b=laOnConditionToggle(uil,c,0,0,0,0,0);{ strSafePrint(&b->ExtraInstructions,"text=🞄 %s;",p->Identifier);
 | 
	
		
			
				|  |  | +        laUiItem* b=laOnConditionToggle(uil,c,0,0,0,0,0);{ strSafePrint(&b->ExtraInstructions,"text=⮡ %s;",p->Identifier);
 | 
	
		
			
				|  |  |              b->Flags|=LA_UI_FLAGS_NO_DECAL|LA_TEXT_ALIGN_LEFT; b->State=LA_BT_ACTIVE;
 | 
	
		
			
				|  |  |              laShowItemFull(uil,cr,Base,p->Identifier,0, 0,laui_ManagedPropInstance,0)->Flags|=LA_UI_FLAGS_NO_DECAL|LA_UI_COLLECTION_NO_HIGHLIGHT;
 | 
	
		
			
				|  |  |          }laEndCondition(uil,b);
 | 
	
	
		
			
				|  | @@ -1178,11 +1177,14 @@ void laui_NodeRack(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void laui_RackPage(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
 | 
	
		
			
				|  |  |      laColumn* c=laFirstColumn(uil); laRackPage* r=This->EndInstance;
 | 
	
		
			
				|  |  | -    laUiItem* g=laMakeGroup(uil,c,"Racks",0);{ g->Flags|=/*LA_UI_FLAGS_NO_GAP|LA_UI_FLAGS_NO_DECAL|*/LA_UI_FLAGS_NODE_CONTAINER;
 | 
	
		
			
				|  |  | -        laUiList* gu=g->Page; laColumn* gc=laFirstColumn(gu); gu->AllowScale=1; gu->HeightCoeff=-3; g->State=LA_UI_ACTIVE;
 | 
	
		
			
				|  |  | -        laUiItem* hui=laShowItemFull(gu,gc,This,"racks",0,0,laui_NodeRack,r?r->RackType:0); hui->Expand=15; hui->Flags|=LA_UI_FLAGS_NO_DECAL;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    laShowItemFull(uil,c,This,"add_rack",0,0,0,0);
 | 
	
		
			
				|  |  | +    laUiItem* b=laOnConditionThat(uil,c,laPropExpression(This,"has_rack"));{
 | 
	
		
			
				|  |  | +        laUiItem* g=laMakeGroup(uil,c,"Racks",0);{ g->Flags|=/*LA_UI_FLAGS_NO_GAP|LA_UI_FLAGS_NO_DECAL|*/LA_UI_FLAGS_NODE_CONTAINER;
 | 
	
		
			
				|  |  | +            laUiList* gu=g->Page; laColumn* gc=laFirstColumn(gu); gu->AllowScale=1; gu->HeightCoeff=-1; g->State=LA_UI_ACTIVE;
 | 
	
		
			
				|  |  | +            laUiItem* hui=laShowItemFull(gu,gc,This,"racks",0,0,laui_NodeRack,r?r->RackType:0); hui->Expand=15; hui->Flags|=LA_UI_FLAGS_NO_DECAL;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }laElse(uil,b);{
 | 
	
		
			
				|  |  | +        laShowItemFull(uil,c,This,"add_rack",0,0,0,0);
 | 
	
		
			
				|  |  | +    }laEndCondition(uil,b);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void laui_NodeCategory(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *UNUSED, int context){
 | 
	
		
			
				|  |  |      laColumn* c=laFirstColumn(uil); laNodeCategory* nc=This->EndInstance;
 | 
	
	
		
			
				|  | @@ -1194,7 +1196,6 @@ void laui_NodeCategory(laUiList *uil, laPropPack *This, laPropPack *Extra, laCol
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  void laui_UserPreference(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laColumn *ExtraColumns, int context){
 | 
	
		
			
				|  |  |      laColumn* c = laFirstColumn(uil),*cl,*cr; laSplitColumn(uil,c,0.5);cl=laLeftColumn(c,0);cr=laRightColumn(c,0);
 | 
	
		
			
				|  |  |      laUiList *muil;
 | 
	
	
		
			
				|  | @@ -1397,7 +1398,7 @@ void laui_About(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laCol
 | 
	
		
			
				|  |  |          gu = g->Page;{
 | 
	
		
			
				|  |  |              gc = laFirstColumn(gu);
 | 
	
		
			
				|  |  |              laShowLabel(gu,gc,"LaGUI application framework is made by Wu Yiming.",0,0)->Flags|=LA_TEXT_LINE_WRAP;
 | 
	
		
			
				|  |  | -            laUiItem* b=laBeginRow(gu,gc,1,0);
 | 
	
		
			
				|  |  | +            laUiItem* b=laBeginRow(gu,gc,0,0);
 | 
	
		
			
				|  |  |              laShowItemFull(gu, gc, 0, "LA_open_internet_link", 0, "link=http://www.ChengduLittleA.com/lagui;text=Details", 0, 0);
 | 
	
		
			
				|  |  |              laShowItemFull(gu, gc, 0, "LA_open_internet_link", 0, "link=http://www.ChengduLittleA.com;text=Yiming's Blog", 0, 0);
 | 
	
		
			
				|  |  |              laEndRow(gu,b);
 | 
	
	
		
			
				|  | @@ -1406,7 +1407,15 @@ void laui_About(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laCol
 | 
	
		
			
				|  |  |          t->Page = first;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -void laui_terminal(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laColumn *ExtraColumns, int context){
 | 
	
		
			
				|  |  | +void laui_UndoHistories(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laColumn *ExtraColumns, int context){
 | 
	
		
			
				|  |  | +    laColumn* c=laFirstColumn(uil),*cl,*cr; laSplitColumn(uil,c,0.5);cl=laLeftColumn(c,0);cr=laRightColumn(c,0);
 | 
	
		
			
				|  |  | +    laShowItem(uil,cl,0,"LA_undo"); laShowItem(uil,cr,0,"LA_redo")->Flags|=LA_TEXT_ALIGN_RIGHT;
 | 
	
		
			
				|  |  | +    laUiItem* g=laMakeGroup(uil,c,"123",0);{ g->State=LA_UI_ACTIVE; g->Flags|=LA_UI_FLAGS_PREFER_BOTTOM;
 | 
	
		
			
				|  |  | +        laUiList* gu=g->Page; laColumn* gc=laFirstColumn(gu); gu->HeightCoeff=-1;
 | 
	
		
			
				|  |  | +        laShowItem(gu,gc,0,"la.differences")->Flags|=LA_UI_FLAGS_NO_DECAL;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +void laui_Terminal(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laColumn *ExtraColumns, int context){
 | 
	
		
			
				|  |  |      laColumn* c=laFirstColumn(uil);
 | 
	
		
			
				|  |  |      laUiItem* g=laMakeGroup(uil,c,"123",0);{ g->State=LA_UI_ACTIVE; g->Flags|=LA_UI_FLAGS_PREFER_BOTTOM;
 | 
	
		
			
				|  |  |          laUiList* gu=g->Page; laColumn* gc=laFirstColumn(gu); gu->HeightCoeff=-1;
 | 
	
	
		
			
				|  | @@ -1488,7 +1497,7 @@ void laui_InputMapper(laUiList *uil, laPropPack *This, laPropPack *Extra, laColu
 | 
	
		
			
				|  |  |          laShowItemFull(uil,cr,0,"la.input_mapping.pages",LA_WIDGET_COLLECTION_SELECTOR,0,0,0);
 | 
	
		
			
				|  |  |      }laEndCondition(uil,b2);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | -    laShowItemFull(uil,c,0,"la.input_mapping.current_page",LA_WIDGET_COLLECTION_SINGLE,0,laui_RackPage,0);
 | 
	
		
			
				|  |  | +    laShowItemFull(uil,c,0,"la.input_mapping.current_page",LA_WIDGET_COLLECTION_SINGLE,0,laui_RackPage,0)->Flags|=LA_UI_FLAGS_NO_DECAL;;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  void lauidetached_Drivers(laPanel* p){
 | 
	
		
			
				|  |  |      la_MakeDetachedProp(p, "la.drivers.current_page", "page");
 | 
	
	
		
			
				|  | @@ -1510,7 +1519,7 @@ void laui_Drivers(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *
 | 
	
		
			
				|  |  |          laShowItemFull(uil,cr,Extra,"page",LA_WIDGET_COLLECTION_SELECTOR,0,0,0);
 | 
	
		
			
				|  |  |      }laEndCondition(uil,b2);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | -    laShowItemFull(uil,c,Extra,"page",LA_WIDGET_COLLECTION_SINGLE,0,laui_RackPage,0);
 | 
	
		
			
				|  |  | +    laShowItemFull(uil,c,Extra,"page",LA_WIDGET_COLLECTION_SINGLE,0,laui_RackPage,0)->Flags|=LA_UI_FLAGS_NO_DECAL;;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1522,5 +1531,6 @@ void la_RegisterBuiltinTemplates(){
 | 
	
		
			
				|  |  |      laRegisterUiTemplate("LAUI_about", "About", laui_About, 0, 0, 0, 0);
 | 
	
		
			
				|  |  |      laRegisterUiTemplate("LAUI_texture_inspector", "Texture Inspector", laui_TextureInspector, lauidetached_TextureInspector, 0, 0, 0);
 | 
	
		
			
				|  |  |      laRegisterUiTemplate("LAUI_data_manager", "Data Manager", laui_IdleDataManager, lauidetached_IdleDataManager, 0, 0, 0);
 | 
	
		
			
				|  |  | -    laRegisterUiTemplate("LAUI_terminal", "Terminal", laui_terminal, 0, 0, 0, 0);
 | 
	
		
			
				|  |  | +    laRegisterUiTemplate("LAUI_histories", "Histories", laui_UndoHistories, 0, 0, 0, 0);
 | 
	
		
			
				|  |  | +    laRegisterUiTemplate("LAUI_terminal", "Terminal", laui_Terminal, 0, 0, 0, 0);
 | 
	
		
			
				|  |  |  }
 |