|
@@ -241,9 +241,10 @@ int la_EnumGetMinWidth(laUiItem *ui){
|
|
int IsIcon = ui->Flags&LA_UI_FLAGS_ICON;
|
|
int IsIcon = ui->Flags&LA_UI_FLAGS_ICON;
|
|
int Highlight=ui->Flags&LA_UI_FLAGS_HIGHLIGHT;
|
|
int Highlight=ui->Flags&LA_UI_FLAGS_HIGHLIGHT;
|
|
int NoDecal=ui->Flags&LA_UI_FLAGS_NO_DECAL;
|
|
int NoDecal=ui->Flags&LA_UI_FLAGS_NO_DECAL;
|
|
|
|
+ int IsCheckbox=ui->Flags&LA_TEXT_ONE_LINE;
|
|
int SharedWidth;
|
|
int SharedWidth;
|
|
if(!IsIcon){
|
|
if(!IsIcon){
|
|
- SharedWidth = LA_M + LA_M + ((IsCycle||IsExpand||NoDecal)?0:LA_RH); int HasIcon=0;
|
|
|
|
|
|
+ SharedWidth = LA_M + LA_M + ((IsCycle||IsExpand||NoDecal||IsCheckbox)?0:LA_RH); int HasIcon=0;
|
|
if(Highlight){ int ico=0;
|
|
if(Highlight){ int ico=0;
|
|
if (ui->ExtraInstructions){
|
|
if (ui->ExtraInstructions){
|
|
if (ui->Type->OperatorType->ParseArgs){
|
|
if (ui->Type->OperatorType->ParseArgs){
|
|
@@ -256,7 +257,7 @@ int la_EnumGetMinWidth(laUiItem *ui){
|
|
tW = tnsStringGetWidth(transLate(ep->Base.Name), 0, ui->Flags&LA_TEXT_MONO) + SharedWidth;
|
|
tW = tnsStringGetWidth(transLate(ep->Base.Name), 0, ui->Flags&LA_TEXT_MONO) + SharedWidth;
|
|
}
|
|
}
|
|
if (tW > W) W = tW;
|
|
if (tW > W) W = tW;
|
|
- if(HasIcon||ico) W+=LA_M+LA_RH;
|
|
|
|
|
|
+ if(HasIcon||ico||IsCheckbox) W+=LA_M+LA_RH;
|
|
}else{
|
|
}else{
|
|
for (i = ep->Items.pFirst; i; i = i->Item.pNext){
|
|
for (i = ep->Items.pFirst; i; i = i->Item.pNext){
|
|
tW = tnsStringGetWidth(transLate(i->Name), 0, ui->Flags&LA_TEXT_MONO) + SharedWidth;
|
|
tW = tnsStringGetWidth(transLate(i->Name), 0, ui->Flags&LA_TEXT_MONO) + SharedWidth;
|
|
@@ -506,6 +507,12 @@ real* la_UiTextColorState(laBoxedTheme* bt, laUiItem* ui, int State){
|
|
if(flags&LA_UI_FLAGS_NO_DECAL){ return laThemeColor(bt, LA_BT_NO_DECAL|LA_BT_TEXT); }
|
|
if(flags&LA_UI_FLAGS_NO_DECAL){ return laThemeColor(bt, LA_BT_NO_DECAL|LA_BT_TEXT); }
|
|
return laThemeColor(bt,LA_BT_TEXT|State);
|
|
return laThemeColor(bt,LA_BT_TEXT|State);
|
|
}
|
|
}
|
|
|
|
+real* la_UiTextColorEnumState(laBoxedTheme* bt, laUiItem* ui, int State, int IsCheckbox){
|
|
|
|
+ int flags = ui->Flags;
|
|
|
|
+ if(flags&LA_UI_FLAGS_DISABLED){ return laThemeColor(bt, LA_BT_DISABLED|LA_BT_TEXT); }
|
|
|
|
+ if(IsCheckbox || (flags&LA_UI_FLAGS_NO_DECAL)){ return laThemeColor(bt, LA_BT_NO_DECAL|LA_BT_TEXT); }
|
|
|
|
+ return laThemeColor(bt,LA_BT_TEXT|State);
|
|
|
|
+}
|
|
real* la_UiTextColor(laBoxedTheme* bt, laUiItem* ui){
|
|
real* la_UiTextColor(laBoxedTheme* bt, laUiItem* ui){
|
|
return la_UiTextColorState(bt,ui,ui->State);
|
|
return la_UiTextColorState(bt,ui,ui->State);
|
|
}
|
|
}
|
|
@@ -954,6 +961,7 @@ void la_EnumSelectorDraw(laUiItem *ui, int h){
|
|
int NoEvent=ui->Flags&LA_UI_FLAGS_NO_EVENT;
|
|
int NoEvent=ui->Flags&LA_UI_FLAGS_NO_EVENT;
|
|
int Highlight=ui->Flags&LA_UI_FLAGS_HIGHLIGHT;
|
|
int Highlight=ui->Flags&LA_UI_FLAGS_HIGHLIGHT;
|
|
int IsDisabled=ui->Flags&LA_UI_FLAGS_DISABLED;
|
|
int IsDisabled=ui->Flags&LA_UI_FLAGS_DISABLED;
|
|
|
|
+ int IsCheckbox=ui->Flags&LA_TEXT_ONE_LINE;
|
|
int sf=bt->TextShadow?LA_TEXT_SHADOW:0;
|
|
int sf=bt->TextShadow?LA_TEXT_SHADOW:0;
|
|
// norm e1
|
|
// norm e1
|
|
// expand e1 e2 e3
|
|
// expand e1 e2 e3
|
|
@@ -1013,21 +1021,26 @@ void la_EnumSelectorDraw(laUiItem *ui, int h){
|
|
if(IsExpand&&!IsCycle){ use_ei = ei; ei=ei->Item.pNext; ExtraState=(use_ei==Data[i])?LA_BT_ACTIVE:ExtraState; }
|
|
if(IsExpand&&!IsCycle){ use_ei = ei; ei=ei->Item.pNext; ExtraState=(use_ei==Data[i])?LA_BT_ACTIVE:ExtraState; }
|
|
else{ use_ei = Data[i]; if(Highlight && Data[i]->Index!=0){ ExtraState=LA_BT_ACTIVE; } }
|
|
else{ use_ei = Data[i]; if(Highlight && Data[i]->Index!=0){ ExtraState=LA_BT_ACTIVE; } }
|
|
|
|
|
|
- int sw=0;
|
|
|
|
|
|
+ int sw=0; int tl=_L,boxr=_R;
|
|
|
|
+ if(IsCheckbox){
|
|
|
|
+ tl=_L+LA_M+LA_RH; boxr=_L+LA_RH;
|
|
|
|
+ }
|
|
if(!NoDecal){
|
|
if(!NoDecal){
|
|
sw=la_GetBoxOffset(bt, ExtraState);
|
|
sw=la_GetBoxOffset(bt, ExtraState);
|
|
tnsUseNoTexture();
|
|
tnsUseNoTexture();
|
|
- la_DrawBoxAutoArray(_L,_R,_U,_B,bt, ExtraState, laThemeColor(bt,ExtraState),IsVertical,j==0);
|
|
|
|
|
|
+ la_DrawBoxAutoArray(_L,boxr,_U,_B,bt, ExtraState, laThemeColor(bt,ExtraState),IsVertical,j==0);
|
|
}
|
|
}
|
|
|
|
|
|
if(Highlight){ if(!HasText && ArrLen==1) strcpy(buf, transLate(ui->PP.LastPs->p->Name)); else{ if(i<8)strcat(buf, &prefix[i]); } }
|
|
if(Highlight){ if(!HasText && ArrLen==1) strcpy(buf, transLate(ui->PP.LastPs->p->Name)); else{ if(i<8)strcat(buf, &prefix[i]); } }
|
|
if((!HasText) && (!buf[0])) strcpy(buf, transLate(use_ei->Name));
|
|
if((!HasText) && (!buf[0])) strcpy(buf, transLate(use_ei->Name));
|
|
- int iconR; if(IconOnly)iconR=TNS_MAX2(_L+LA_RH,_R);else{ iconR=TNS_MIN2(_L+LA_RH,_R); }
|
|
|
|
|
|
+ int iconR; if(IconOnly)iconR=TNS_MAX2(_L+LA_RH,_R);else{ iconR=TNS_MIN2(_L+LA_RH,boxr); }
|
|
if (use_ei->IconID && !ico){ ico=use_ei->IconID; }
|
|
if (use_ei->IconID && !ico){ ico=use_ei->IconID; }
|
|
- if (ico) tnsDrawIcon(ico, la_UiTextColorState(bt,ui,ExtraState), _L-sw,iconR-sw, _U-sw, LA_TEXT_ALIGN_CENTER|ui->Flags|sf);
|
|
|
|
- if(!IconOnly){
|
|
|
|
|
|
+ if (IsCheckbox && ExtraState==LA_BT_ACTIVE && (!ico)){ ico=U'✓'; }
|
|
|
|
+ if (ico) tnsDrawIcon(ico, la_UiTextColorState(bt,ui,ExtraState), _L-sw,iconR-sw, _U-sw, LA_TEXT_ALIGN_CENTER|sf);
|
|
|
|
+ if (IsCheckbox){ sw=0; ExtraState=ExtraState==LA_BT_ACTIVE?LA_BT_NORMAL:ExtraState; }
|
|
|
|
+ if (!IconOnly){
|
|
int UseFlags=ui->Flags; if(!HasIcon && IsExpand){ if(!(UseFlags&LA_TEXT_ALIGN)); UseFlags|=LA_TEXT_ALIGN_CENTER; }
|
|
int UseFlags=ui->Flags; if(!HasIcon && IsExpand){ if(!(UseFlags&LA_TEXT_ALIGN)); UseFlags|=LA_TEXT_ALIGN_CENTER; }
|
|
- tnsDrawStringAuto(buf, la_UiTextColorState(bt,ui,ExtraState), _L+LA_M+(HasIcon?LA_RH:0)-sw, _R-LA_M-sw, _U-sw, UseFlags|sf);
|
|
|
|
|
|
+ tnsDrawStringAuto(buf, la_UiTextColorEnumState(bt,ui,ExtraState,IsCheckbox), tl+LA_M+(HasIcon?LA_RH:0)-sw, _R-LA_M-sw, _U-sw, UseFlags|sf);
|
|
}
|
|
}
|
|
if (!IsExpand && !IsVertical && !IconOnly && !IsCycle && !NoEvent){
|
|
if (!IsExpand && !IsVertical && !IconOnly && !IsCycle && !NoEvent){
|
|
tnsDrawIcon(U'🔻', la_UiTextColorState(bt,ui,ExtraState), _R-LA_RH-sw, _R-sw, _U-sw, ui->Flags|sf);
|
|
tnsDrawIcon(U'🔻', la_UiTextColorState(bt,ui,ExtraState), _R-LA_RH-sw, _R-sw, _U-sw, ui->Flags|sf);
|
|
@@ -1250,6 +1263,7 @@ void la_MultiStringDraw(laUiItem *ui, int h){
|
|
tnsFlush();
|
|
tnsFlush();
|
|
}
|
|
}
|
|
void la_UiSeperatorDraw(laUiItem *ui, int h){
|
|
void la_UiSeperatorDraw(laUiItem *ui, int h){
|
|
|
|
+ int NoDecal=ui->Flags&LA_UI_FLAGS_NO_DECAL; if(NoDecal) return;
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
if (!bt) return;
|
|
if (!bt) return;
|
|
|
|
|