|
@@ -1576,12 +1576,14 @@ void laSaveUserPreferences(){
|
|
laWriteProp(udf,"la.user_preferences");
|
|
laWriteProp(udf,"la.user_preferences");
|
|
laWriteProp(udf,"la.input_mapping");
|
|
laWriteProp(udf,"la.input_mapping");
|
|
laWriteProp(udf,"la.controllers");
|
|
laWriteProp(udf,"la.controllers");
|
|
|
|
+ laWriteProp(udf,"la.themes");
|
|
for(laListItemPointer* lip=MAIN.ExtraPreferencePaths.pFirst;lip;lip=lip->pNext){
|
|
for(laListItemPointer* lip=MAIN.ExtraPreferencePaths.pFirst;lip;lip=lip->pNext){
|
|
laWriteProp(udf,lip->p);
|
|
laWriteProp(udf,lip->p);
|
|
}
|
|
}
|
|
laPackUDF(udf,0,0);
|
|
laPackUDF(udf,0,0);
|
|
}
|
|
}
|
|
void laEnsureUserPreferences(){
|
|
void laEnsureUserPreferences(){
|
|
|
|
+ //laLoadHyperResources("LATHEME");
|
|
char path[1024];
|
|
char path[1024];
|
|
#ifdef LAGUI_ANDROID
|
|
#ifdef LAGUI_ANDROID
|
|
sprintf(path,"%s/%s",MAIN.InternalDataPath,"preferences.udf");
|
|
sprintf(path,"%s/%s",MAIN.InternalDataPath,"preferences.udf");
|
|
@@ -2191,17 +2193,56 @@ void laSetInputProcessCallback(laInputProcessF InputProcess){
|
|
|
|
|
|
//====================================================================================================
|
|
//====================================================================================================
|
|
|
|
|
|
|
|
+laTheme *laDuplicateTheme(laTheme* from){
|
|
|
|
+ laTheme *t = memAcquireHyper(sizeof(laTheme));
|
|
|
|
+ strSafePrint(&t->Name, "~%s", SSTR(from->Name));
|
|
|
|
+ strSafeSet(&t->Author, SSTR(from->Author));
|
|
|
|
+ lstPushItem(&MAIN.Themes, t);
|
|
|
|
+ MAIN.CurrentTheme = t;
|
|
|
|
+ char buf[32]; sprintf(buf,"LATHEME_%.22s",SSTR(t->Name));
|
|
|
|
+ laset_InstanceUID(t, buf);
|
|
|
|
+
|
|
|
|
+ tnsVectorSet3v(t->Color,from->Color);
|
|
|
|
+ tnsVectorSet3v(t->AccentColor,from->AccentColor);
|
|
|
|
+ tnsVectorSet3v(t->WarningColor,from->WarningColor);
|
|
|
|
+ t->InactiveMix=from->InactiveMix;
|
|
|
|
+ t->InactiveSaturation=from->InactiveSaturation;
|
|
|
|
+ t->CursorAlpha=from->CursorAlpha;
|
|
|
|
+ t->SelectionAlpha=from->SelectionAlpha;
|
|
|
|
+ t->WireBrightness=from->WireBrightness;
|
|
|
|
+ t->WireSaturation=from->WireSaturation;
|
|
|
|
+ t->WireTransparency=from->WireTransparency;
|
|
|
|
+ t->EdgeBrightness=from->EdgeBrightness;
|
|
|
|
+ t->EdgeTransparency=from->EdgeTransparency;
|
|
|
|
+ t->VertexBrightness=from->VertexBrightness;
|
|
|
|
+ t->VertexTransparency=from->VertexTransparency;
|
|
|
|
+ t->SelectedFaceTransparency=from->SelectedFaceTransparency;
|
|
|
|
+ t->SelectedEdgeTransparency=from->SelectedEdgeTransparency;
|
|
|
|
+ t->SelectedVertexTransparency=from->SelectedVertexTransparency;
|
|
|
|
+
|
|
|
|
+ for(laBoxedTheme* bt=from->BoxedThemes.pFirst;bt;bt=bt->Item.pNext){
|
|
|
|
+ laBoxedTheme* new_bt = laDesignBoxedTheme(t,SSTR(bt->Name),bt->BackRef,
|
|
|
|
+ bt->NormalY,bt->ActiveY,bt->BorderY,bt->TextY,bt->TextActiveY,bt->Alpha);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ la_RefreshThemeColor(t);
|
|
|
|
+ return t;
|
|
|
|
+}
|
|
void la_DestroyTheme(laTheme* t){
|
|
void la_DestroyTheme(laTheme* t){
|
|
|
|
+ MAIN.CurrentTheme = t->Item.pPrev?t->Item.pPrev:t->Item.pNext;
|
|
|
|
+ lstRemoveItem(&MAIN.Themes, t);
|
|
laBoxedTheme*bt; while(bt=lstPopItem(&t->BoxedThemes)){ strSafeDestroy(&bt->Name); *bt->BackRef=0; memFree(bt); }
|
|
laBoxedTheme*bt; while(bt=lstPopItem(&t->BoxedThemes)){ strSafeDestroy(&bt->Name); *bt->BackRef=0; memFree(bt); }
|
|
- strSafeDestroy(&t->Name);
|
|
|
|
- strSafeDestroy(&t->Author);
|
|
|
|
|
|
+ strSafeDestroy(&t->Name); strSafeDestroy(&t->Author);
|
|
|
|
+ memFree(t);
|
|
}
|
|
}
|
|
laTheme *laDesignTheme(const char *Name, const char *AuthorName){
|
|
laTheme *laDesignTheme(const char *Name, const char *AuthorName){
|
|
laTheme *t = memAcquireHyper(sizeof(laTheme));
|
|
laTheme *t = memAcquireHyper(sizeof(laTheme));
|
|
strSafeSet(&t->Name, Name);
|
|
strSafeSet(&t->Name, Name);
|
|
strSafeSet(&t->Author, AuthorName);
|
|
strSafeSet(&t->Author, AuthorName);
|
|
- lstAppendItem(&MAIN.Themes, t);
|
|
|
|
|
|
+ lstPushItem(&MAIN.Themes, t);
|
|
MAIN.CurrentTheme = t;
|
|
MAIN.CurrentTheme = t;
|
|
|
|
+ char buf[32]; sprintf(buf,"LATHEME_%.22s",Name);
|
|
|
|
+ laset_InstanceUID(t, buf);
|
|
return t;
|
|
return t;
|
|
}
|
|
}
|
|
laBoxedTheme *laDesignBoxedTheme(laTheme *t, const char *Name, laBoxedTheme** BackRef,
|
|
laBoxedTheme *laDesignBoxedTheme(laTheme *t, const char *Name, laBoxedTheme** BackRef,
|
|
@@ -2213,6 +2254,7 @@ laBoxedTheme *laDesignBoxedTheme(laTheme *t, const char *Name, laBoxedTheme** Ba
|
|
bt->BorderY=BorderY;
|
|
bt->BorderY=BorderY;
|
|
bt->TextY=TextY; bt->TextActiveY=TextActiveY; bt->Alpha = Alpha;
|
|
bt->TextY=TextY; bt->TextActiveY=TextActiveY; bt->Alpha = Alpha;
|
|
bt->BackRef = BackRef;
|
|
bt->BackRef = BackRef;
|
|
|
|
+ memAssignRef(bt, &bt->Parent, t);
|
|
lstAppendItem(&t->BoxedThemes, bt);
|
|
lstAppendItem(&t->BoxedThemes, bt);
|
|
return bt;
|
|
return bt;
|
|
}
|
|
}
|
|
@@ -2266,8 +2308,8 @@ real* laAccentColor(int which){
|
|
return MAIN.CurrentTheme->SelectionColor;
|
|
return MAIN.CurrentTheme->SelectionColor;
|
|
}
|
|
}
|
|
void la_RefreshBoxedThemeColor(laBoxedTheme* bt){
|
|
void la_RefreshBoxedThemeColor(laBoxedTheme* bt){
|
|
- real hcy[3];
|
|
|
|
- tnsRGB2HCY(MAIN.CurrentTheme->Color,hcy);
|
|
|
|
|
|
+ real hcy[3]; if(!bt->Parent){ return; }
|
|
|
|
+ tnsRGB2HCY(bt->Parent->Color,hcy);
|
|
hcy[2]=bt->NormalY; tnsHCY2RGB(hcy, bt->Normal); bt->Normal[3]=bt->Alpha;
|
|
hcy[2]=bt->NormalY; tnsHCY2RGB(hcy, bt->Normal); bt->Normal[3]=bt->Alpha;
|
|
hcy[2]=bt->ActiveY; tnsHCY2RGB(hcy, bt->Active); bt->Active[3]=bt->Alpha;
|
|
hcy[2]=bt->ActiveY; tnsHCY2RGB(hcy, bt->Active); bt->Active[3]=bt->Alpha;
|
|
hcy[2]=bt->BorderY; tnsHCY2RGB(hcy, bt->Border); bt->Border[3]=1;
|
|
hcy[2]=bt->BorderY; tnsHCY2RGB(hcy, bt->Border); bt->Border[3]=1;
|
|
@@ -2275,6 +2317,7 @@ void la_RefreshBoxedThemeColor(laBoxedTheme* bt){
|
|
hcy[2]=bt->TextActiveY; tnsHCY2RGB(hcy, bt->TextActive); bt->TextActive[3]=1;
|
|
hcy[2]=bt->TextActiveY; tnsHCY2RGB(hcy, bt->TextActive); bt->TextActive[3]=1;
|
|
}
|
|
}
|
|
void la_RefreshThemeColorSelf(laTheme* th){
|
|
void la_RefreshThemeColorSelf(laTheme* th){
|
|
|
|
+ if(!th) return;
|
|
tnsVectorCopy3d(th->AccentColor, th->CursorColor); th->CursorColor[3]=th->CursorAlpha;
|
|
tnsVectorCopy3d(th->AccentColor, th->CursorColor); th->CursorColor[3]=th->CursorAlpha;
|
|
tnsVectorCopy3d(th->AccentColor, th->SelectionColor);th->SelectionColor[3]=th->SelectionAlpha; th->WarningColor[3]=th->SelectionAlpha;
|
|
tnsVectorCopy3d(th->AccentColor, th->SelectionColor);th->SelectionColor[3]=th->SelectionAlpha; th->WarningColor[3]=th->SelectionAlpha;
|
|
real hcy[3], usehcy[3];
|
|
real hcy[3], usehcy[3];
|
|
@@ -2287,6 +2330,7 @@ void la_RefreshThemeColorSelf(laTheme* th){
|
|
tnsVectorCopy3d(th->Color, th->ShadowColor); th->ShadowColor[3]=th->CursorAlpha;
|
|
tnsVectorCopy3d(th->Color, th->ShadowColor); th->ShadowColor[3]=th->CursorAlpha;
|
|
}
|
|
}
|
|
void la_RefreshThemeColor(laTheme* th){
|
|
void la_RefreshThemeColor(laTheme* th){
|
|
|
|
+ if(!th) return;
|
|
real hcy[3], usehcy[3], normalhcy[3];
|
|
real hcy[3], usehcy[3], normalhcy[3];
|
|
tnsRGB2HCY(th->Color,hcy);
|
|
tnsRGB2HCY(th->Color,hcy);
|
|
la_RefreshThemeColorSelf(th);
|
|
la_RefreshThemeColorSelf(th);
|
|
@@ -2352,7 +2396,8 @@ int la_SetUpUiListMatrix(laUiListDraw *uild, laUiList *Target, int _L, int _R, i
|
|
// DifXY clamped distance
|
|
// DifXY clamped distance
|
|
//
|
|
//
|
|
|
|
|
|
- //if (Target__B - Target->U > LimH) Target__B = Target->U + LimH;
|
|
|
|
|
|
+ // why we still need this line
|
|
|
|
+ if (Target__B - Target->U > LimH) Target__B = Target->U + LimH;
|
|
//if (Target__R - Target->L > LimW) Target__R = Target->L + LimW;
|
|
//if (Target__R - Target->L > LimW) Target__R = Target->L + LimW;
|
|
|
|
|
|
uildi->XP = last ? last->XP + Target->PanX : Target->PanX;
|
|
uildi->XP = last ? last->XP + Target->PanX : Target->PanX;
|
|
@@ -2388,7 +2433,7 @@ int la_SetUpUiListMatrix(laUiListDraw *uild, laUiList *Target, int _L, int _R, i
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
- int Pad=1;
|
|
|
|
|
|
+ int Pad=2;
|
|
tnsViewportWithScissor(uildi->L-Pad, PanelH - uildi->B-Pad, uildi->R - uildi->L+Pad*2, uildi->B - uildi->U+Pad*2);
|
|
tnsViewportWithScissor(uildi->L-Pad, PanelH - uildi->B-Pad, uildi->R - uildi->L+Pad*2, uildi->B - uildi->U+Pad*2);
|
|
tnsOrtho(Target->L + Target->PanX + uildi->DifX-Pad,
|
|
tnsOrtho(Target->L + Target->PanX + uildi->DifX-Pad,
|
|
Target->L + Target->PanX + uildi->DifX+Pad+ (uildi->R - uildi->L),
|
|
Target->L + Target->PanX + uildi->DifX+Pad+ (uildi->R - uildi->L),
|
|
@@ -4003,8 +4048,7 @@ laPanel *laEnablePropertyPanel(laPanel *Attachment, laOperator *a, laPropPack *O
|
|
|
|
|
|
if (!def){
|
|
if (!def){
|
|
if (This && This->LastPs->p){
|
|
if (This && This->LastPs->p){
|
|
- if(This->LastPs->p->UiDefine) def = This->LastPs->p->UiDefine;
|
|
|
|
- elif(This->LastPs->p->SubProp&&This->LastPs->p->SubProp->MenuUiDefine) def = This->LastPs->p->SubProp->MenuUiDefine;
|
|
|
|
|
|
+ if(This->LastPs->p->SubProp&&This->LastPs->p->SubProp->MenuUiDefine) def = This->LastPs->p->SubProp->MenuUiDefine;
|
|
}
|
|
}
|
|
if((!def) && (sub=la_EnsureSubTarget(This->LastPs->p,This->EndInstance)) && sub->MenuUiDefine) def=sub->MenuUiDefine;
|
|
if((!def) && (sub=la_EnsureSubTarget(This->LastPs->p,This->EndInstance)) && sub->MenuUiDefine) def=sub->MenuUiDefine;
|
|
if(!def) def = FallBackUiDefine?FallBackUiDefine:laui_DefaultPropUiDefine;
|
|
if(!def) def = FallBackUiDefine?FallBackUiDefine:laui_DefaultPropUiDefine;
|
|
@@ -6493,8 +6537,8 @@ void la_DrawUiListScrollerH(laUiList *uil, int DisplayOffset, int TotalW, int Di
|
|
void la_DrawInstanceBkg(laUiList *uil, real* color, int LP, int RP){
|
|
void la_DrawInstanceBkg(laUiList *uil, real* color, int LP, int RP){
|
|
tnsUseNoTexture();
|
|
tnsUseNoTexture();
|
|
tnsColor4dv(color);
|
|
tnsColor4dv(color);
|
|
- tnsVertex2d(uil->L-LP, uil->U); tnsVertex2d(uil->R+RP, uil->U);
|
|
|
|
- tnsVertex2d(uil->R+RP, uil->B); tnsVertex2d(uil->L-LP, uil->B);
|
|
|
|
|
|
+ tnsVertex2d(uil->L-LP+0.5, uil->U+0.5); tnsVertex2d(uil->R+RP-0.5, uil->U+0.5);
|
|
|
|
+ tnsVertex2d(uil->R+RP-0.5, uil->B-0.5); tnsVertex2d(uil->L-LP+0.5, uil->B-0.5);
|
|
tnsPackAs(GL_TRIANGLE_FAN);
|
|
tnsPackAs(GL_TRIANGLE_FAN);
|
|
}
|
|
}
|
|
void la_InitSocketRecord(laUiListDraw* uild, laUiList* container){
|
|
void la_InitSocketRecord(laUiListDraw* uild, laUiList* container){
|
|
@@ -6522,7 +6566,7 @@ void la_RecordSocket(laUiListDraw* uild, laUiList* uil, laUiItem* ui){
|
|
}
|
|
}
|
|
void la_RegenerateWireColors(){
|
|
void la_RegenerateWireColors(){
|
|
if(MAIN.WireColorCache) free(MAIN.WireColorCache);
|
|
if(MAIN.WireColorCache) free(MAIN.WireColorCache);
|
|
- laTheme* t=MAIN.CurrentTheme;
|
|
|
|
|
|
+ laTheme* t=MAIN.CurrentTheme; if(!t) return;
|
|
MAIN.WireColorCache = calloc(1, sizeof(real)*4*MAIN.WireColorSlices);
|
|
MAIN.WireColorCache = calloc(1, sizeof(real)*4*MAIN.WireColorSlices);
|
|
real hsl[]={0.0,0.8,0.6}; hsl[1]=t->WireSaturation; hsl[2]=t->WireBrightness;
|
|
real hsl[]={0.0,0.8,0.6}; hsl[1]=t->WireSaturation; hsl[2]=t->WireBrightness;
|
|
for(int i=0;i<MAIN.WireColorSlices;i++){
|
|
for(int i=0;i<MAIN.WireColorSlices;i++){
|
|
@@ -6742,6 +6786,12 @@ int la_DrawUiListRecursive(laUiListDraw *uild, laUiList *uil, int L, int R, int
|
|
|
|
|
|
if ((!la_UiListInBoundEx(sub, uild)) && (!RegisterNodes)) continue;
|
|
if ((!la_UiListInBoundEx(sub, uild)) && (!RegisterNodes)) continue;
|
|
|
|
|
|
|
|
+ laTheme* SwitchedTheme=0;
|
|
|
|
+ if(CanGetTheme){
|
|
|
|
+ SwitchedTheme=laGetUiTheme(ui->PP.LastPs->p, ui->PP.LastPs->UseInstance, ui->PP.EndInstance);
|
|
|
|
+ la_SwitchThemeQuick(SwitchedTheme, OriginalTheme);
|
|
|
|
+ }
|
|
|
|
+
|
|
if(NeedDraw){ int drawn=0;
|
|
if(NeedDraw){ int drawn=0;
|
|
if (!(ui->Flags&LA_UI_COLLECTION_NO_HIGHLIGHT) && sub->Instance == Active){
|
|
if (!(ui->Flags&LA_UI_COLLECTION_NO_HIGHLIGHT) && sub->Instance == Active){
|
|
la_DrawInstanceBkg(sub, laAccentColor(LA_BT_NORMAL),LA_M,LA_M); drawn=1;
|
|
la_DrawInstanceBkg(sub, laAccentColor(LA_BT_NORMAL),LA_M,LA_M); drawn=1;
|
|
@@ -6749,9 +6799,12 @@ int la_DrawUiListRecursive(laUiListDraw *uild, laUiList *uil, int L, int R, int
|
|
if (CanGetState && !drawn){
|
|
if (CanGetState && !drawn){
|
|
State = laGetUiState(ui->PP.LastPs->p, sub->Instance);
|
|
State = laGetUiState(ui->PP.LastPs->p, sub->Instance);
|
|
if(State >= 0){
|
|
if(State >= 0){
|
|
- la_DrawInstanceBkg(sub, laAccentColor(State),LA_M,LA_M);
|
|
|
|
|
|
+ la_DrawInstanceBkg(sub, laAccentColor(State),LA_M,LA_M); drawn=1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if((!drawn) && SwitchedTheme){
|
|
|
|
+ la_DrawInstanceBkg(sub, laThemeColor(_LA_THEME_FLOATING_PANEL ,LA_BT_NORMAL),LA_M,LA_M);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if(sub->TabName && sub->TabName->Ptr){
|
|
if(sub->TabName && sub->TabName->Ptr){
|
|
@@ -6762,12 +6815,6 @@ int la_DrawUiListRecursive(laUiListDraw *uild, laUiList *uil, int L, int R, int
|
|
tnsFlush();
|
|
tnsFlush();
|
|
}
|
|
}
|
|
|
|
|
|
- if(CanGetTheme){
|
|
|
|
- laTheme* t=laGetUiTheme(ui->PP.LastPs->p, ui->PP.LastPs->UseInstance, ui->PP.EndInstance);
|
|
|
|
- la_SwitchThemeQuick(t, OriginalTheme);
|
|
|
|
- if(t) la_DrawInstanceBkg(sub, laThemeColor(_LA_THEME_FLOATING_PANEL ,LA_BT_NORMAL),LA_M,LA_M);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
tnsFlush();
|
|
tnsFlush();
|
|
Ret += la_DrawUiListRecursive(uild, sub, L, R, U, B, 10000, ConditionStackLevel, RegisterNodes);
|
|
Ret += la_DrawUiListRecursive(uild, sub, L, R, U, B, 10000, ConditionStackLevel, RegisterNodes);
|
|
|
|
|
|
@@ -6804,7 +6851,7 @@ int la_RejectByUiList(laOperator* a, int x, int y){
|
|
laListItemPointer* lip=a->LocalUiLists.pFirst;
|
|
laListItemPointer* lip=a->LocalUiLists.pFirst;
|
|
if(lip){ laUiList* uil=lip->p;
|
|
if(lip){ laUiList* uil=lip->p;
|
|
if(uil->FL!=uil->FR && (x < uil->FL || y < uil->FU || x > uil->FR || y > uil->FB)){
|
|
if(uil->FL!=uil->FR && (x < uil->FL || y < uil->FU || x > uil->FR || y > uil->FB)){
|
|
- printf("rejected %d %d | %d %d %d %d\n",x,y,uil->FL,uil->FR,uil->FU,uil->FB);
|
|
|
|
|
|
+ //printf("rejected %d %d | %d %d %d %d\n",x,y,uil->FL,uil->FR,uil->FU,uil->FB);
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -7401,7 +7448,7 @@ void *la_DestroyOperator(laOperator **a, laListHandle *Operators, int OnlyThisOn
|
|
MAIN.CurrentPanel = (*a)->OperatorPanel;
|
|
MAIN.CurrentPanel = (*a)->OperatorPanel;
|
|
laDestroySinglePanel((*a)->OperatorPanel,0);
|
|
laDestroySinglePanel((*a)->OperatorPanel,0);
|
|
}
|
|
}
|
|
- if ((*a)->CreatedThis) memFree((*a)->CreatedThis);
|
|
|
|
|
|
+ if ((*a)->CreatedThis){ la_FreePropStepCache((*a)->CreatedThis); memFree((*a)->CreatedThis); }
|
|
|
|
|
|
if ((*a)->ExtraInstructionsP) strDestroyStringSplitor(&(*a)->ExtraInstructionsP);
|
|
if ((*a)->ExtraInstructionsP) strDestroyStringSplitor(&(*a)->ExtraInstructionsP);
|
|
|
|
|
|
@@ -7467,7 +7514,7 @@ void la_EnsureLocalizedEvent(laOperator *From, laOperator *a, laEvent *e){
|
|
laWindowToLocal(0, a->ToPanel, &e->x, &e->y);
|
|
laWindowToLocal(0, a->ToPanel, &e->x, &e->y);
|
|
e->Localized = 1;
|
|
e->Localized = 1;
|
|
}
|
|
}
|
|
- if (e&&e->Localized){
|
|
|
|
|
|
+ if (e&&e->Localized && From){
|
|
if (!at->ExtraMark & LA_EXTRA_TO_PANEL){
|
|
if (!at->ExtraMark & LA_EXTRA_TO_PANEL){
|
|
laLocalToWindow(From, From->ToPanel, &e->x, &e->y);
|
|
laLocalToWindow(From, From->ToPanel, &e->x, &e->y);
|
|
e->Localized = 0;
|
|
e->Localized = 0;
|
|
@@ -7543,12 +7590,8 @@ int laInvokePCreateThis(laOperator *From, laOperatorType *at, laEvent *e, laProp
|
|
if (!f && e&&e->Localized || !OrigionalThis || !OrigionalThis->LastPs) return -1;
|
|
if (!f && e&&e->Localized || !OrigionalThis || !OrigionalThis->LastPs) return -1;
|
|
|
|
|
|
created = memAcquireSimple(sizeof(laPropPack));
|
|
created = memAcquireSimple(sizeof(laPropPack));
|
|
- created->LastPs = memAcquireSimple(sizeof(laPropStep));
|
|
|
|
- created->Go = created->LastPs;
|
|
|
|
- created->LastPs->p = OrigionalThis->LastPs->p;
|
|
|
|
- created->LastPs->UseInstance = OrigionalThis->LastPs->UseInstance;
|
|
|
|
|
|
+ la_CopyPropPack(OrigionalThis, created);
|
|
created->EndInstance = FromInstance;
|
|
created->EndInstance = FromInstance;
|
|
- created->LastIndex = OrigionalThis->LastIndex;
|
|
|
|
|
|
|
|
a = la_CreateOperator(at);
|
|
a = la_CreateOperator(at);
|
|
a->ToPanel = MAIN.ToPanel;
|
|
a->ToPanel = MAIN.ToPanel;
|
|
@@ -8355,6 +8398,13 @@ void la_DrawWindow(laWindow *w){
|
|
void laset_UiRowHeight(void* unused, int val);
|
|
void laset_UiRowHeight(void* unused, int val);
|
|
int laFinalize(){
|
|
int laFinalize(){
|
|
if(!laValidateProperties()){ laShutoff(0); return 0; }
|
|
if(!laValidateProperties()){ laShutoff(0); return 0; }
|
|
|
|
+
|
|
|
|
+ if(!MAIN.Themes.pFirst){
|
|
|
|
+ la_CreateClassicLightTheme();
|
|
|
|
+ la_CreateClassicDarkTheme();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ la_RefreshThemeColor(MAIN.CurrentTheme);
|
|
|
|
|
|
laUiTemplate* uit;
|
|
laUiTemplate* uit;
|
|
while(uit=lstPopItem(&MAIN.InitPanelTemplates)) lstAppendItem(&MAIN.PanelTemplates,uit);
|
|
while(uit=lstPopItem(&MAIN.InitPanelTemplates)) lstAppendItem(&MAIN.PanelTemplates,uit);
|