|
@@ -57,7 +57,6 @@ laWidget _LA_WIDGET_MENU_ROOT={0};
|
|
|
laWidget _LA_WIDGET_ALIGN={0};
|
|
|
laWidget _LA_WIDGET_3D_VIEW={0};
|
|
|
laWidget _LA_WIDGET_2D_VIEW={0};
|
|
|
-laWidget _LA_WIDGET_SYMBOL={0};
|
|
|
laWidget _LA_WIDGET_NODE_SOCKET={0};
|
|
|
laWidget _LA_WIDGET_HEIGHT_ADJUSTER={0};
|
|
|
laWidget _LA_WIDGET_RAW={0};
|
|
@@ -103,7 +102,6 @@ laWidget *LA_WIDGET_MENU_ROOT=&_LA_WIDGET_MENU_ROOT;
|
|
|
laWidget *LA_WIDGET_ALIGN=&_LA_WIDGET_ALIGN;
|
|
|
laWidget *LA_WIDGET_3D_VIEW=&_LA_WIDGET_3D_VIEW;
|
|
|
laWidget *LA_WIDGET_2D_VIEW=&_LA_WIDGET_2D_VIEW;
|
|
|
-laWidget *LA_WIDGET_SYMBOL=&_LA_WIDGET_SYMBOL;
|
|
|
laWidget *LA_WIDGET_NODE_SOCKET=&_LA_WIDGET_NODE_SOCKET;
|
|
|
laWidget *LA_WIDGET_HEIGHT_ADJUSTER=&_LA_WIDGET_HEIGHT_ADJUSTER;
|
|
|
laWidget *LA_WIDGET_RAW=&_LA_WIDGET_RAW;
|
|
@@ -119,16 +117,16 @@ int la_ArrayGetHeight(laUiItem *ui){
|
|
|
return laGetArrayLength(&ui->PP);
|
|
|
}
|
|
|
int la_ValueGetHeight(laUiItem*ui){
|
|
|
- int rows = ui->Extra->HeightCoeff; TNS_CLAMP(rows,1,4);
|
|
|
+ int rows = ui->Extent; if(!rows){ rows=1; }
|
|
|
if(ui->Flags&LA_UI_FLAGS_TRANSPOSE){ return la_ArrayGetHeight(ui)*rows; }
|
|
|
return rows;
|
|
|
}
|
|
|
int la_ValueMeterGetHeight(laUiItem*ui){
|
|
|
- if(ui->Flags&LA_UI_FLAGS_TRANSPOSE){ return ui->Extra->HeightCoeff?ui->Extra->HeightCoeff:6; }
|
|
|
+ if(ui->Flags&LA_UI_FLAGS_TRANSPOSE){ return ui->Extent?ui->Extent:6; }
|
|
|
return laGetArrayLength(&ui->PP);
|
|
|
}
|
|
|
int la_ValueMeter2DGetHeight(laUiItem*ui){
|
|
|
- return ui->Extra->HeightCoeff?ui->Extra->HeightCoeff:(ui->Extra->HeightCoeff=(ui->TR-ui->TL)/LA_RH);
|
|
|
+ return ui->Extent?ui->Extent:(ui->Extent=(ui->TR-ui->TL)/LA_RH);
|
|
|
}
|
|
|
int la_CanvasGetHeight(laUiItem *ui){
|
|
|
return ui->Expand;
|
|
@@ -157,15 +155,8 @@ int la_EnumGetHeight(laUiItem *ui){
|
|
|
}
|
|
|
}
|
|
|
int la_ColorPickerGetHeight(laUiItem *ui){
|
|
|
- if(!ui->Extra->HeightCoeff) ui->Extra->HeightCoeff=7;
|
|
|
- return ui->Extra->HeightCoeff;
|
|
|
-}
|
|
|
-int la_SymbolGetHeight(laUiItem *ui){
|
|
|
- //if (!ui->State)
|
|
|
- //{
|
|
|
- // ui->State = (int)_ICON_SYMBOL_SIZE[ui->SymbolID - ICON_SYMBOL_START] * 1.4 + 1;
|
|
|
- //}
|
|
|
- return ui->State;
|
|
|
+ if(!ui->Extent) ui->Extent=7;
|
|
|
+ return ui->Extent;
|
|
|
}
|
|
|
int la_GroupGetHeight(laUiItem *ui){
|
|
|
if (ui->State == LA_UI_ACTIVE) return 0;
|
|
@@ -179,10 +170,6 @@ int la_StringPropGetHeight(laUiItem *ui){
|
|
|
int strw=tnsStringGetDimension(buf, 0, 0, ui->TR-ui->TL, &rows, ui->Flags&LA_TEXT_MONO);
|
|
|
return rows;
|
|
|
}
|
|
|
-int la_MultiStringHeight(laUiItem *ui){
|
|
|
- laGeneralUiExtraData *e = ui->Extra;
|
|
|
- return e->HeightCoeff;
|
|
|
-}
|
|
|
int la_LabelHeight(laUiItem *ui){
|
|
|
int Wrap=ui->Flags&(LA_TEXT_USE_NEWLINE|LA_TEXT_LINE_WRAP);
|
|
|
if(!Wrap) return 1;
|
|
@@ -205,9 +192,12 @@ int la_ImageGetHeight(laUiItem *ui){
|
|
|
W/=ra; H/=ra;
|
|
|
return H/LA_RH+1;
|
|
|
}
|
|
|
- if(ui->SymbolID) return ui->SymbolID;
|
|
|
+ if(ui->Extent) return ui->Extent;
|
|
|
return 1;
|
|
|
}
|
|
|
+int la_VariedGetHeight(laUiItem *ui){
|
|
|
+ return ui->Extent;
|
|
|
+}
|
|
|
|
|
|
int la_ColorSelectorGetMinWidth(laUiItem *ui){
|
|
|
if(ui->Flags&LA_UI_FLAGS_ICON) return LA_RH;
|
|
@@ -216,7 +206,7 @@ int la_ColorSelectorGetMinWidth(laUiItem *ui){
|
|
|
int la_ValueGetMinWidth(laUiItem *ui){
|
|
|
int ExtraW=0;
|
|
|
if(ui->Flags&LA_UI_FLAGS_NO_LABEL){ return LA_RH; }
|
|
|
- if(ui->Flags&LA_UI_FLAGS_KNOB){ return LA_RH*TNS_MAX2(1,ui->Extra->HeightCoeff); }
|
|
|
+ if(ui->Flags&LA_UI_FLAGS_KNOB){ return LA_RH*TNS_MAX2(1,ui->Extent); }
|
|
|
if((ui->Flags&LA_UI_FLAGS_EXPAND)&&(!(ui->Flags&LA_UI_FLAGS_NO_LABEL))){
|
|
|
ExtraW+=tnsStringGetWidth(transLate(ui->PP.LastPs->p->Name),0,0);
|
|
|
}
|
|
@@ -350,7 +340,7 @@ int la_ImageGetMinWidth(laUiItem *ui){
|
|
|
int W=im->Texture->Width, H=im->Texture->Height;
|
|
|
int UseW=LA_RH;
|
|
|
if(ui->Flags&LA_UI_IMAGE_FULL_W) UseW=W;
|
|
|
- else UseW=(int)((real)LA_RH*ui->SymbolID/H*W);
|
|
|
+ else UseW=(int)((real)LA_RH*ui->Extent/H*W);
|
|
|
real CW=MAIN.CurrentWindow->CW-LA_RH*4, CH=MAIN.CurrentWindow->CH-LA_RH*4;
|
|
|
real ra=1;
|
|
|
if(UseW>CW){ real r=UseW/CW; ra=TNS_MAX2(r,ra); }
|
|
@@ -647,57 +637,6 @@ void la_TabDraw(laUiItem *ui, int h){
|
|
|
}
|
|
|
tnsFlush();
|
|
|
}
|
|
|
-void la_SymbolDraw(laUiItem *ui, int h){
|
|
|
- return;
|
|
|
- //char temp[128] = {0};
|
|
|
- //laBoxedTheme *bt = (*ui->Type->Theme);
|
|
|
- //tnsFontSingleCharacter *fsc = tfntFetchVectorGraphTextureIDW(ui->SymbolID);
|
|
|
- //int VOffset = (ui->B - ui->U - (fsc->height)) / 2;
|
|
|
- //int HOffset = (ui->R - ui->L - (fsc->width)) / 2;
|
|
|
-//
|
|
|
- //if (strArgumentMatch(ui->Instructions, "mode", "invert"))
|
|
|
- //{
|
|
|
- // tnsUseNoTexture();
|
|
|
- // //tnsColor4dv(laThemeColor(bt, ui->State));
|
|
|
- // //tnsVertex2d(ui->L, ui->U);
|
|
|
- // //tnsVertex2d(ui->R, ui->U);
|
|
|
- // //tnsVertex2d(ui->R, ui->B);
|
|
|
- // //tnsVertex2d(ui->L, ui->B);
|
|
|
- // //tnsPackAs(GL_TRIANGLE_FAN);
|
|
|
-//
|
|
|
- // tnsUseNoTexture();
|
|
|
- // tnsColor4dv(LA_THEME_GET(bt, LA_UI_NORMAL)->BorderColor->RGBA);
|
|
|
- // tnsVertex2d(ui->L, ui->U);
|
|
|
- // tnsVertex2d(ui->R, ui->U);
|
|
|
- // tnsVertex2d(ui->R, ui->B);
|
|
|
- // tnsVertex2d(ui->L, ui->B);
|
|
|
- // tnsPackAs(GL_TRIANGLE_FAN);
|
|
|
-//
|
|
|
- // // tnsDrawVectorGraphPackage(ui->SymbolID, LA_THEME_GET(bt, LA_THEME_INTERPOLATING), ui->L + HOffset, ui->R, ui->U + VOffset, ui->B, 0, 0);
|
|
|
- //}
|
|
|
- //else
|
|
|
- //{
|
|
|
- // //if (!ui->State) ui->State = LA_UI_NORMAL;
|
|
|
-//
|
|
|
- // /*tnsUseNoTexture();
|
|
|
- // tnsColor4dv(laThemeColor(bt, ui->State));
|
|
|
- // tnsVertex2d(ui->L, ui->U);
|
|
|
- // tnsVertex2d(ui->R, ui->U);
|
|
|
- // tnsVertex2d(ui->R, ui->B);
|
|
|
- // tnsVertex2d(ui->L, ui->B);
|
|
|
- // tnsPackAs(GL_TRIANGLE_FAN);*/
|
|
|
-//
|
|
|
- // //tnsUseNoTexture();
|
|
|
- //tnsColor4dv(LA_THEME_GET(bt, LA_UI_NORMAL)->BorderColor->RGBA);
|
|
|
- //tnsVertex2d(ui->L, ui->U);
|
|
|
- //tnsVertex2d(ui->R, ui->U);
|
|
|
- //tnsVertex2d(ui->R, ui->B);
|
|
|
- //tnsVertex2d(ui->L, ui->B);
|
|
|
- //tnsPackAs(GL_LINE_LOOP);
|
|
|
-//
|
|
|
- // // tnsDrawVectorGraphPackage(ui->SymbolID, LA_THEME_GET(bt, LA_UI_NORMAL), ui->L + HOffset, ui->R, ui->U + VOffset, ui->B, 0, 0);
|
|
|
- //}
|
|
|
-}
|
|
|
|
|
|
void la_IntDraw(laUiItem *ui, int h){
|
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
@@ -715,8 +654,8 @@ void la_IntDraw(laUiItem *ui, int h){
|
|
|
int NoDecal=ui->Flags&LA_UI_FLAGS_NO_DECAL;
|
|
|
int NoLabel=ui->Flags&LA_UI_FLAGS_NO_LABEL;
|
|
|
int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
|
|
|
- int SliderVertical = ui->Flags&LA_UI_FLAGS_VALUE_METER;
|
|
|
- int sf=bt->TextShadow?LA_TEXT_SHADOW:0;
|
|
|
+ int SliderVertical = ui->Flags&LA_UI_FLAGS_VERTICAL_SLIDER;
|
|
|
+ uint64_t sf=(SliderVertical?LA_TEXT_ROTATE_N:0) | ( bt->TextShadow?LA_TEXT_SHADOW:0);
|
|
|
|
|
|
if (laIsPropertyReadOnly(&ui->PP) && !NoDecal) ui->State = LA_BT_DISABLED;
|
|
|
|
|
@@ -761,10 +700,10 @@ void la_IntDraw(laUiItem *ui, int h){
|
|
|
if(radius*2>(_R-_L)-LA_RH/5){ dgy = radius/1.5; }
|
|
|
|
|
|
tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
- tnsVertex2d(_L, ctry-dgy); tnsVertex2d(_L, _U); tnsVertex2d(ctrx-dgx, _U); tnsPackAs(GL_LINE_STRIP);
|
|
|
- tnsVertex2d(_R, ctry-dgy); tnsVertex2d(_R, _U); tnsVertex2d(ctrx+dgx, _U); tnsPackAs(GL_LINE_STRIP);
|
|
|
- tnsVertex2d(_R, ctry+dgy); tnsVertex2d(_R, _B); tnsVertex2d(ctrx+dgx, _B); tnsPackAs(GL_LINE_STRIP);
|
|
|
- tnsVertex2d(_L, ctry+dgy); tnsVertex2d(_L, _B); tnsVertex2d(ctrx-dgx, _B); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_L+0.5f, (int)ctry-dgy+0.5f); tnsVertex2d(_L+0.5f, _U+0.5f); tnsVertex2d(ctrx-(int)dgx+0.5f, _U+0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_R-0.5f, (int)ctry-dgy+0.5f); tnsVertex2d(_R-0.5f, _U+0.5f); tnsVertex2d(ctrx+(int)dgx-0.5f, _U+0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_R-0.5f, (int)ctry+dgy-0.5f); tnsVertex2d(_R-0.5f, _B-0.5f); tnsVertex2d(ctrx+(int)dgx-0.5f, _B-0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_L+0.5f, (int)ctry+dgy-0.5f); tnsVertex2d(_L+0.5f, _B-0.5f); tnsVertex2d(ctrx-(int)dgx+0.5f, _B-0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
|
|
|
real verts[52];//24*2+ctr+overlap
|
|
|
tnsMakeCircle2d(&verts[2],24,ctrx,ctry,radius,0);
|
|
@@ -778,14 +717,17 @@ void la_IntDraw(laUiItem *ui, int h){
|
|
|
if(Ranged){
|
|
|
real arc[52]; int arcindex[26]; // 12 slices 13 ends
|
|
|
real range = (real)(Data[i] - min) / (real)(max - min) * TNS_PI * 1.5;
|
|
|
+ real radius2=radius-0.2*LA_RH; if(radius2<LA_RH*0.1){ radius2=LA_RH*0.1; }
|
|
|
tnsMakeArc2d(arc,12,ctrx,ctry,radius,TNS_PI*2.75, TNS_PI*2.75 + range);
|
|
|
- tnsMakeArc2d(&arc[26],12,ctrx,ctry,radius*0.6,TNS_PI*2.75, TNS_PI*2.75 + range);
|
|
|
+ tnsMakeArc2d(&arc[26],12,ctrx,ctry,radius2,TNS_PI*2.75, TNS_PI*2.75 + range);
|
|
|
tnsMakeBridgedIndex(arcindex, 13, 0, 0);
|
|
|
real *color = laThemeColor(bt,LA_BT_TEXT|ui->State); //tnsColor4d(LA_COLOR3(color),0.3);
|
|
|
tnsColor4dv(color);
|
|
|
tnsVertexArray2d(arc,26); tnsIndexArray(arcindex,26); tnsPackAs(GL_TRIANGLE_STRIP);
|
|
|
- tnsMakeArc2d(&arc[2],12,ctrx,ctry,radius*0.6,TNS_PI*2.75, TNS_PI*4.25);
|
|
|
- tnsVertexArray2d(&arc[2],13);
|
|
|
+ tnsMakeArc2d(&arc[2],12,ctrx,ctry,radius2,TNS_PI*2.75, TNS_PI*4.25);
|
|
|
+ arc[0]=ctrx+cos(TNS_PI*2.75)*radius; arc[1]=ctry+sin(TNS_PI*2.75)*radius;
|
|
|
+ arc[28]=ctrx+cos(TNS_PI*0.25)*radius; arc[29]=ctry+sin(TNS_PI*0.25)*radius;
|
|
|
+ tnsVertexArray2d(arc,15);
|
|
|
tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
tnsPackAs(GL_LINE_STRIP);
|
|
|
}
|
|
@@ -807,15 +749,19 @@ void la_IntDraw(laUiItem *ui, int h){
|
|
|
|
|
|
la_DrawBoxAutoBorderArray(_L,_R,_U,_B,bt,ui->State,IsVertical,i==0);
|
|
|
}
|
|
|
+ int TL, TR, TU;
|
|
|
+ if(!SliderVertical){ TL=_L+LA_M; TR=_R-LA_M; TU=_U; }
|
|
|
+ else{ TL=_L; TR=TL+(_B-_U)-LA_M*2; TU=_B-LA_M-LA_RH; }
|
|
|
+ TL-=sw; TR-=sw; TU-=sw;
|
|
|
if (ui->Extra->On == i + 1 && ui->Extra->Edit){
|
|
|
uint32_t *buf = strGetCursorLine(ui->Extra->Edit, 0)->Buf;
|
|
|
int LL = _L + (Seg - tnsStringGetWidthU(buf, 0, ui->Flags&LA_TEXT_MONO)) / 2;
|
|
|
tnsColor4dv(laThemeColor(bt, LA_BT_TEXT));
|
|
|
- la_SingleLineStringDrawSelection(ui, _L-sw, _U-sw, bt, buf, ui->Extra->Edit);
|
|
|
+ la_SingleLineStringDrawSelection(ui, TL,TU, bt, buf, ui->Extra->Edit);
|
|
|
|
|
|
- tnsDrawStringM(0, buf, laThemeColor(bt, LA_BT_TEXT_ACTIVE), _L+LA_M-sw, _R-LA_M-sw, _U-sw, ui->Flags|sf);
|
|
|
+ tnsDrawStringM(0, buf, laThemeColor(bt, LA_BT_TEXT_ACTIVE), TL,TR,TU, ui->Flags|sf);
|
|
|
}else{
|
|
|
- tnsDrawStringWithPriority(NoLabel?0:buf2, buf, la_UiTextColor(bt,ui), 0, _L+LA_M-sw, _R-LA_M-sw, _U-sw, ui->Flags|sf);//, ui->ExtraInstructions);
|
|
|
+ tnsDrawStringWithPriority(NoLabel?0:buf2, buf, la_UiTextColor(bt,ui), 0, TL,TR,TU, ui->Flags|sf);//, ui->ExtraInstructions);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -840,8 +786,8 @@ void la_FloatDraw(laUiItem *ui, int h){
|
|
|
int IsRad=ui->PP.LastPs->p->IsRadAngle;
|
|
|
int NoLabel=ui->Flags&LA_UI_FLAGS_NO_LABEL;
|
|
|
int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
|
|
|
- int SliderVertical = ui->Flags&LA_UI_FLAGS_VALUE_METER;
|
|
|
- int sf=bt->TextShadow?LA_TEXT_SHADOW:0;
|
|
|
+ int SliderVertical = ui->Flags&LA_UI_FLAGS_VERTICAL_SLIDER;
|
|
|
+ uint64_t sf=(SliderVertical?LA_TEXT_ROTATE_N:0) | ( bt->TextShadow?LA_TEXT_SHADOW:0);
|
|
|
|
|
|
if (laIsPropertyReadOnly(&ui->PP) && !NoDecal) ui->State = LA_BT_DISABLED;
|
|
|
|
|
@@ -882,10 +828,10 @@ void la_FloatDraw(laUiItem *ui, int h){
|
|
|
if(radius*2>(_R-_L)-LA_RH/5){ dgy = radius/1.5; }
|
|
|
|
|
|
tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
- tnsVertex2d(_L, ctry-dgy); tnsVertex2d(_L, _U); tnsVertex2d(ctrx-dgx, _U); tnsPackAs(GL_LINE_STRIP);
|
|
|
- tnsVertex2d(_R, ctry-dgy); tnsVertex2d(_R, _U); tnsVertex2d(ctrx+dgx, _U); tnsPackAs(GL_LINE_STRIP);
|
|
|
- tnsVertex2d(_R, ctry+dgy); tnsVertex2d(_R, _B); tnsVertex2d(ctrx+dgx, _B); tnsPackAs(GL_LINE_STRIP);
|
|
|
- tnsVertex2d(_L, ctry+dgy); tnsVertex2d(_L, _B); tnsVertex2d(ctrx-dgx, _B); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_L+0.5f, (int)ctry-dgy+0.5f); tnsVertex2d(_L+0.5f, _U+0.5f); tnsVertex2d(ctrx-(int)dgx+0.5f, _U+0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_R-0.5f, (int)ctry-dgy+0.5f); tnsVertex2d(_R-0.5f, _U+0.5f); tnsVertex2d(ctrx+(int)dgx-0.5f, _U+0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_R-0.5f, (int)ctry+dgy-0.5f); tnsVertex2d(_R-0.5f, _B-0.5f); tnsVertex2d(ctrx+(int)dgx-0.5f, _B-0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
+ tnsVertex2d(_L+0.5f, (int)ctry+dgy-0.5f); tnsVertex2d(_L+0.5f, _B-0.5f); tnsVertex2d(ctrx-(int)dgx+0.5f, _B-0.5f); tnsPackAs(GL_LINE_STRIP);
|
|
|
|
|
|
real verts[52];//24*2+ctr+overlap
|
|
|
tnsMakeCircle2d(&verts[2],24,ctrx,ctry,radius,0);
|
|
@@ -899,17 +845,18 @@ void la_FloatDraw(laUiItem *ui, int h){
|
|
|
if(Ranged){
|
|
|
real arc[52]; int arcindex[26]; // 12 slices 13 ends
|
|
|
real range,rstart;
|
|
|
+ real radius2=radius-0.2*LA_RH; if(radius2<LA_RH*0.1){ radius2=LA_RH*0.1; }
|
|
|
if(min<0&&max>0){ rstart=TNS_PI*3.5; range = (real)(Data[i]) / (real)(max) * TNS_PI * 1.5 * max/(max-min);}
|
|
|
else{ rstart=TNS_PI*2.75; range = (real)(Data[i] - min) / (real)(max - min) * TNS_PI * 1.5; }
|
|
|
tnsMakeArc2d(arc,12,ctrx,ctry,radius,rstart, rstart + range);
|
|
|
- tnsMakeArc2d(&arc[26],12,ctrx,ctry,radius*0.6,rstart, rstart + range);
|
|
|
+ tnsMakeArc2d(&arc[26],12,ctrx,ctry,radius2,rstart, rstart + range);
|
|
|
tnsMakeBridgedIndex(arcindex, 13, 0, 0);
|
|
|
real *color = laThemeColor(bt,LA_BT_TEXT|ui->State); //tnsColor4d(LA_COLOR3(color),0.3);
|
|
|
tnsColor4dv(color);
|
|
|
tnsVertexArray2d(arc,26); tnsIndexArray(arcindex,26); tnsPackAs(GL_TRIANGLE_STRIP);
|
|
|
- tnsMakeArc2d(&arc[2],12,ctrx,ctry,radius*0.6,TNS_PI*2.75, TNS_PI*4.25);
|
|
|
- arc[0] = ctrx + cos(TNS_PI*2.75) * radius; arc[1] = ctry + sin(TNS_PI*2.75) * radius;
|
|
|
- arc[28] =ctrx + cos(TNS_PI*4.25) * radius; arc[29] =ctry + sin(TNS_PI*4.25) * radius;
|
|
|
+ tnsMakeArc2d(&arc[2],12,ctrx,ctry,radius2,TNS_PI*2.75, TNS_PI*4.25);
|
|
|
+ arc[0]=ctrx+cos(TNS_PI*2.75)*radius; arc[1]=ctry+sin(TNS_PI*2.75)*radius;
|
|
|
+ arc[28]=ctrx+cos(TNS_PI*0.25)*radius; arc[29]=ctry+sin(TNS_PI*0.25)*radius;
|
|
|
tnsVertexArray2d(arc,15);
|
|
|
tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
tnsPackAs(GL_LINE_STRIP);
|
|
@@ -933,15 +880,19 @@ void la_FloatDraw(laUiItem *ui, int h){
|
|
|
|
|
|
la_DrawBoxAutoBorderArray(_L,_R,_U,_B,bt,ui->State,IsVertical,i==0);
|
|
|
}
|
|
|
+ int TL, TR, TU;
|
|
|
+ if(!SliderVertical){ TL=_L+LA_M; TR=_R-LA_M; TU=_U; }
|
|
|
+ else{ TL=_L; TR=TL+(_B-_U)-LA_M*2; TU=_B-LA_M-LA_RH; }
|
|
|
+ TL-=sw; TR-=sw; TU-=sw;
|
|
|
if (ui->Extra->On == i + 1 && ui->Extra->Edit){
|
|
|
uint32_t *buf = strGetCursorLine(ui->Extra->Edit,0)->Buf;
|
|
|
int LL = _L + (Seg - tnsStringGetWidthU(buf, 0, ui->Flags&LA_TEXT_MONO)) / 2;
|
|
|
tnsColor4dv(laThemeColor(bt, LA_BT_TEXT));
|
|
|
- la_SingleLineStringDrawSelection(ui, _L-sw, _U-sw, bt, buf, ui->Extra->Edit);
|
|
|
+ la_SingleLineStringDrawSelection(ui, TL,TU, bt, buf, ui->Extra->Edit);
|
|
|
|
|
|
- tnsDrawStringM(0, buf, laThemeColor(bt, LA_BT_TEXT_ACTIVE), _L + LA_M, _R - LA_M, _U, ui->Flags|sf);
|
|
|
+ tnsDrawStringM(0, buf, laThemeColor(bt, LA_BT_TEXT_ACTIVE), TL,TR,TU, ui->Flags|sf);
|
|
|
}else{
|
|
|
- tnsDrawStringWithPriority(NoLabel?0:buf2, buf,la_UiTextColor(bt,ui), 0, _L+LA_M-sw, _R-LA_M-sw, _U-sw, ui->Flags|sf);//, ui->ExtraInstructions);
|
|
|
+ tnsDrawStringWithPriority(NoLabel?0:buf2, buf,la_UiTextColor(bt,ui), 0, TL,TR,TU, ui->Flags|sf);
|
|
|
}
|
|
|
}
|
|
|
if (ui->Extra && ui->Extra->On == i + 1) ui->State = Original;
|
|
@@ -1221,7 +1172,7 @@ void la_MultiStringDraw(laUiItem *ui, int h){
|
|
|
|
|
|
if (ui->State!=LA_UI_ACTIVE){
|
|
|
strSetEditViewRange(ui->Extra->Edit,
|
|
|
- ui->Extra->HeightCoeff>0?ui->Extra->HeightCoeff:((ui->B-ui->U)/LA_RH),(ui->R-ui->L-NumberWidth-LA_M*2-LA_M)/MonoWidth);
|
|
|
+ ui->Extent>0?ui->Extent:((ui->B-ui->U)/LA_RH),(ui->R-ui->L-NumberWidth-LA_M*2-LA_M)/MonoWidth);
|
|
|
}
|
|
|
|
|
|
int sw=0;
|
|
@@ -1286,7 +1237,7 @@ void la_MultiStringDraw(laUiItem *ui, int h){
|
|
|
tnsFlush();
|
|
|
}
|
|
|
|
|
|
- if(ui->Extra->HeightCoeff>=0)
|
|
|
+ if(ui->Extent>=0)
|
|
|
tnsDrawStringAuto("◿",laThemeColor(bt,LA_BT_BORDER),ui->R-LA_RH-sw, ui->R-sw, ui->B-LA_M-LA_RH-sw, LA_TEXT_ALIGN_CENTER|sf);
|
|
|
|
|
|
if(!NoDecal){
|
|
@@ -1437,7 +1388,7 @@ void la_ColorCircleDrawHCY(laUiItem *ui, int h){
|
|
|
tnsPackAs(GL_LINE_LOOP);
|
|
|
tnsLineWidth(1);
|
|
|
|
|
|
- if(ui->Extra->HeightCoeff>=0) tnsDrawStringAuto("◿",laThemeColor(bt,LA_BT_BORDER),ui->R-LA_RH, ui->R, ui->B-LA_M-LA_RH, LA_TEXT_ALIGN_CENTER);
|
|
|
+ if(ui->Extent>=0) tnsDrawStringAuto("◿",laThemeColor(bt,LA_BT_BORDER),ui->R-LA_RH, ui->R, ui->B-LA_M-LA_RH, LA_TEXT_ALIGN_CENTER);
|
|
|
|
|
|
if(IsClay) tnsDrawStringAuto("Clay",laThemeColor(bt,LA_BT_TEXT),ui->L, c-r+LA_RH, ui->U+LA_M, LA_TEXT_ALIGN_RIGHT|LA_TEXT_MONO);
|
|
|
if(IsP3) tnsDrawStringAuto("D65 P3",laThemeColor(bt,LA_BT_TEXT),ui->L, c-r+LA_RH, ui->U+LA_M, LA_TEXT_ALIGN_RIGHT|LA_TEXT_MONO);
|
|
@@ -1617,7 +1568,7 @@ void la_ImageDraw(laUiItem *ui, int h){
|
|
|
int W=im->Texture->Width, H=im->Texture->Height;
|
|
|
int Full=ui->Flags&LA_UI_IMAGE_FULL_W;
|
|
|
real r=(real)(ui->R-ui->L)/W; if(r<1){W*=r;H*=r;}
|
|
|
- real UseW=Full?(W):((real)LA_RH*ui->SymbolID/H*W);
|
|
|
+ real UseW=Full?(W):((real)LA_RH*ui->Extent/H*W);
|
|
|
real L=(ui->R-ui->L-UseW)/2,U=0,UseH=Full?H:(ui->B-ui->U);
|
|
|
if(Full){ U=(ui->B-ui->U-H)/2; }
|
|
|
if(ui->Flags&LA_TEXT_ALIGN_CENTER){ L=0; }
|
|
@@ -1768,9 +1719,9 @@ void la_ValueMeterType2Draw(laUiItem *ui, int h){
|
|
|
sprintf(limits[0],"%lf",min); sprintf(limits[1],"%lf",max);
|
|
|
}
|
|
|
|
|
|
- int sl = TNS_MAX2(abs(ui->SymbolID),5);
|
|
|
+ int sl = TNS_MAX2(abs(ui->Extent),5);
|
|
|
int ScaleLen = sl * LA_RH;
|
|
|
- real seg = abs(ui->TemplateContext)/100;
|
|
|
+ real seg = 1;
|
|
|
int times=1,times10=0;
|
|
|
while((max-min)/seg > ScaleLen/10){
|
|
|
seg*=10;
|
|
@@ -2112,8 +2063,7 @@ void la_MultiStringInit(laUiItem *ui){
|
|
|
laGeneralUiExtraData *e = ui->Extra;
|
|
|
if (!e) e = memAcquireSimple(sizeof(laGeneralUiExtraData));
|
|
|
ui->Extra = e;
|
|
|
-
|
|
|
- e->HeightCoeff = 10;
|
|
|
+ ui->Extent = 10;
|
|
|
}
|
|
|
void la_ImageUiInit(laUiItem *ui){
|
|
|
tnsImage* im=ui->Extra;
|
|
@@ -2129,7 +2079,7 @@ void la_ImageUiDestroy(laUiItem *ui){
|
|
|
//memAssignRef(ui, &ui->Extra, 0);
|
|
|
}
|
|
|
void la_MeterUiInit(laUiItem *ui){
|
|
|
- la_GeneralUiInit(ui); ui->SymbolID = 20; ui->TemplateContext = 1000;
|
|
|
+ la_GeneralUiInit(ui); ui->Extent = 20;
|
|
|
}
|
|
|
|
|
|
void la_RegisterUiTypesBasic(){
|
|
@@ -2229,7 +2179,7 @@ void la_RegisterUiTypesBasic(){
|
|
|
|
|
|
LA_WIDGET_STRING_MULTI->Type=
|
|
|
_LA_UI_STRING_MULTI = la_RegisterUiType("LA_string_multiline", LA_PROP_STRING, "LA_string_multi",
|
|
|
- &_LA_THEME_STRING, la_MultiStringDraw, la_MultiStringHeight, la_MultiStringInit, la_GeneralUiDestroy);
|
|
|
+ &_LA_THEME_STRING, la_MultiStringDraw, la_VariedGetHeight, la_MultiStringInit, la_GeneralUiDestroy);
|
|
|
_LA_UI_STRING_MULTI->GetMinWidth = la_StringPropGetMinWidth;
|
|
|
km=&_LA_UI_STRING_MULTI->KeyMapper;
|
|
|
laAssignNewKey(km, 0, "LA_edit_string_copy", LA_KM_SEL_UI_EXTRA, LA_KEY_CTRL, LA_KEY_DOWN, 'c', 0);
|
|
@@ -2262,9 +2212,6 @@ void la_RegisterUiTypesBasic(){
|
|
|
_LA_UI_CONDITION_END.Theme = &_LA_THEME_BUTTON;
|
|
|
la_UDFAppendSharedTypePointer("LA_condition_end", &_LA_UI_CONDITION_END);
|
|
|
|
|
|
- LA_WIDGET_SYMBOL->Type=
|
|
|
- _LA_UI_SYMBOL = la_RegisterUiType("LA_symbol_default", 0, 0, &_LA_THEME_BUTTON, la_SymbolDraw, la_SymbolGetHeight, 0, 0);
|
|
|
-
|
|
|
LA_WIDGET_NODE_SOCKET->Type=
|
|
|
_LA_UI_NODE_SOCKET = la_RegisterUiType("LA_node_socket_default", 0, "LA_node_socket", &_LA_THEME_SOCKET, la_NodeSocketDraw, la_SocketGetHeight, la_GeneralUiInit, la_GeneralUiDestroy);
|
|
|
_LA_UI_NODE_SOCKET->GetMinWidth=la_SocketGetMinWidth;
|
|
@@ -2288,7 +2235,7 @@ void la_RegisterUiTypesBasic(){
|
|
|
_LA_UI_SCOPE = la_RegisterUiType("LA_scope_default", 0, "LA_synth_scope", &_LA_THEME_BUTTON, la_ScopeDraw, la_ColorPickerGetHeight, la_GeneralUiInit, la_GeneralUiDestroy);
|
|
|
|
|
|
LA_WIDGET_MOUSE_ACTION_REPORTER->Type=
|
|
|
- _LA_UI_MOUSE_ACTION_REPORTER = la_RegisterUiType("LA_mouse_action_reporter_default",0,"LA_mouse_action_reporter", &_LA_THEME_STRING,la_MouseActionReporterDraw,la_SymbolGetHeight,0,0);
|
|
|
+ _LA_UI_MOUSE_ACTION_REPORTER = la_RegisterUiType("LA_mouse_action_reporter_default",0,"LA_mouse_action_reporter", &_LA_THEME_STRING,la_MouseActionReporterDraw,la_VariedGetHeight,0,0);
|
|
|
_LA_UI_MOUSE_ACTION_REPORTER->GetMinWidth = la_MouseActionReporterMinWidth;
|
|
|
|
|
|
_LA_UI_INVISIBLE.Theme=&_LA_THEME_BUTTON;
|
|
@@ -2445,7 +2392,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
|
|
|
int IsVertical=(ui->Flags&LA_UI_FLAGS_TRANSPOSE)!=0;
|
|
|
int NoEvent = ui->Flags&LA_UI_FLAGS_NO_EVENT;
|
|
|
int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
|
|
|
- int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER || ui->Flags&LA_UI_FLAGS_VALUE_METER;
|
|
|
+ int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER || ui->Flags&LA_UI_FLAGS_VERTICAL_SLIDER;
|
|
|
|
|
|
if (!laIsInUiItem(ui, a, e->x, e->y) && !ui->Extra->On){
|
|
|
ui->State = LA_UI_NORMAL;
|
|
@@ -2573,7 +2520,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
|
|
|
int NoEvent = ui->Flags&LA_UI_FLAGS_NO_EVENT;
|
|
|
int IsRad=ui->PP.LastPs->p->IsRadAngle;
|
|
|
int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
|
|
|
- int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER || ui->Flags&LA_UI_FLAGS_VALUE_METER;
|
|
|
+ int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER || ui->Flags&LA_UI_FLAGS_VERTICAL_SLIDER;
|
|
|
|
|
|
if (!laIsInUiItem(ui, a, e->x, e->y) && !ui->Extra->On && !NoTooltip){
|
|
|
ui->State = LA_UI_NORMAL;
|
|
@@ -2752,15 +2699,15 @@ int OPMOD_ColorHCY(laOperator *a, laEvent *e){
|
|
|
return LA_FINISHED_PASS;
|
|
|
}
|
|
|
|
|
|
- if(e->type == LA_L_MOUSE_DOWN && es->HeightCoeff>=0 && e->x>ui->R-LA_M-LA_RH && e->y>ui->B-LA_M-LA_RH){
|
|
|
- es->Dragging=3; es->LastX=e->x; es->LastY=e->y; es->TargetIndexVali=es->HeightCoeff; return LA_RUNNING;
|
|
|
+ if(e->type == LA_L_MOUSE_DOWN && ui->Extent>=0 && e->x>ui->R-LA_M-LA_RH && e->y>ui->B-LA_M-LA_RH){
|
|
|
+ es->Dragging=3; es->LastX=e->x; es->LastY=e->y; es->TargetIndexVali=ui->Extent; return LA_RUNNING;
|
|
|
}
|
|
|
if(es->Dragging==3){
|
|
|
- if(e->type==LA_MOUSEMOVE){ es->HeightCoeff=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
|
|
|
- if(es->HeightCoeff<1)es->HeightCoeff=1; laRecalcCurrentPanel();}
|
|
|
+ if(e->type==LA_MOUSEMOVE){ ui->Extent=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
|
|
|
+ if(ui->Extent<1)ui->Extent=1; laRecalcCurrentPanel();}
|
|
|
elif(e->type==LA_L_MOUSE_UP){ es->Dragging=0; }
|
|
|
elif(e->type==LA_R_MOUSE_DOWN){
|
|
|
- es->Dragging=0; es->HeightCoeff=es->TargetIndexVali; laRecalcCurrentPanel(); }
|
|
|
+ es->Dragging=0; ui->Extent=es->TargetIndexVali; laRecalcCurrentPanel(); }
|
|
|
return LA_RUNNING;
|
|
|
}
|
|
|
|
|
@@ -3165,7 +3112,7 @@ void la_SetMultistringViewRange(laUiItem* ui, laStringEdit* se, laBoxedTheme* bt
|
|
|
int NumberWidth=0; int MonoWidth=tnsGetMonoFontAdvance(); int Count=se->TotalLines;
|
|
|
while(Count){ Count/=10; NumberWidth+=MonoWidth; }
|
|
|
strSetEditViewRange(ui->Extra->Edit,
|
|
|
- ui->Extra->HeightCoeff>0?ui->Extra->HeightCoeff:((ui->B-ui->U)/LA_RH),(ui->R-ui->L-NumberWidth-LA_M*2-LA_M)/MonoWidth);
|
|
|
+ ui->Extent>0?ui->Extent:((ui->B-ui->U)/LA_RH),(ui->R-ui->L-NumberWidth-LA_M*2-LA_M)/MonoWidth);
|
|
|
}
|
|
|
int OPMOD_MultiString(laOperator *a, laEvent *e){
|
|
|
laUiItem *ui = a->Instance;
|
|
@@ -3203,23 +3150,23 @@ int OPMOD_MultiString(laOperator *a, laEvent *e){
|
|
|
laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
ui->State = LA_UI_NORMAL; laRedrawCurrentPanel(); la_SetMultistringViewRange(ui,es->Edit,bt); la_DisplayKeyboard(0);
|
|
|
}
|
|
|
- if(es->Dragging){ es->Dragging=0; es->HeightCoeff=es->TargetIndexVali; laRecalcCurrentPanel();la_SetMultistringViewRange(ui,es->Edit,bt); }
|
|
|
+ if(es->Dragging){ es->Dragging=0; ui->Extent=es->TargetIndexVali; laRecalcCurrentPanel();la_SetMultistringViewRange(ui,es->Edit,bt); }
|
|
|
return LA_FINISHED;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(laKeyMapExecuteEventEx(a, &ui->ExtraPP, &ui->Type->KeyMapper, e)) return LA_RUNNING;
|
|
|
|
|
|
- if(e->type == LA_L_MOUSE_DOWN && es->HeightCoeff>=0 && e->x>ui->R-LA_M-LA_RH && e->y>ui->B-LA_M-LA_RH){
|
|
|
- es->Dragging=1; es->LastX=e->x; es->LastY=e->y; es->TargetIndexVali=es->HeightCoeff;
|
|
|
+ if(e->type == LA_L_MOUSE_DOWN && ui->Extent>=0 && e->x>ui->R-LA_M-LA_RH && e->y>ui->B-LA_M-LA_RH){
|
|
|
+ es->Dragging=1; es->LastX=e->x; es->LastY=e->y; es->TargetIndexVali=ui->Extent;
|
|
|
return LA_RUNNING;
|
|
|
}
|
|
|
if(es->Dragging){
|
|
|
- if(e->type==LA_MOUSEMOVE){ es->HeightCoeff=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
|
|
|
- if(es->HeightCoeff<1)es->HeightCoeff=1; laRecalcCurrentPanel(); la_SetMultistringViewRange(ui,es->Edit,bt);}
|
|
|
+ if(e->type==LA_MOUSEMOVE){ ui->Extent=es->TargetIndexVali+((real)e->y-es->LastY+0.5)/LA_RH;
|
|
|
+ if(ui->Extent<1)ui->Extent=1; laRecalcCurrentPanel(); la_SetMultistringViewRange(ui,es->Edit,bt);}
|
|
|
elif(e->type==LA_L_MOUSE_UP){ es->Dragging=0; }
|
|
|
elif(e->type==LA_R_MOUSE_DOWN){
|
|
|
- es->Dragging=0; es->HeightCoeff=es->TargetIndexVali; laRecalcCurrentPanel();la_SetMultistringViewRange(ui,se,bt); }
|
|
|
+ es->Dragging=0; ui->Extent=es->TargetIndexVali; laRecalcCurrentPanel();la_SetMultistringViewRange(ui,se,bt); }
|
|
|
return LA_RUNNING;
|
|
|
}
|
|
|
|
|
@@ -3442,7 +3389,7 @@ int OPMOD_CollectionSelector(laOperator *a, laEvent *e){
|
|
|
int MinWidth;
|
|
|
uil = &p->UI;
|
|
|
col = laFirstColumn(uil);
|
|
|
- laShowItemFull(uil, col, &ui->PP, 0, LA_WIDGET_COLLECTION, 0, ui->Template, 0)->SymbolID = ui->SymbolID;
|
|
|
+ laShowItemFull(uil, col, &ui->PP, 0, LA_WIDGET_COLLECTION, 0, ui->Template, 0)->Extent = ui->Extent;
|
|
|
laEnclosePanelContent(p, &p->UI);
|
|
|
}
|
|
|
return LA_RUNNING;
|
|
@@ -3581,13 +3528,13 @@ int OPMOD_HeightAdjuster(laOperator *a, laEvent *e){
|
|
|
if ((!uit->Dragging) && (!laIsInUiItem(ui, a, e->x, e->y))){ return LA_FINISHED_PASS; }
|
|
|
|
|
|
if (e->type == LA_L_MOUSE_DOWN || e->type==LA_R_MOUSE_DOWN){
|
|
|
- uit->Dragging=1; uit->LastY=e->y; uit->On=0; uit->TargetIndexVali=e->type==LA_L_MOUSE_DOWN?(ui->State==LA_BT_ACTIVE?2:1):2; uit->HeightCoeff=1;
|
|
|
+ uit->Dragging=1; uit->LastY=e->y; uit->On=0; uit->TargetIndexVali=e->type==LA_L_MOUSE_DOWN?(ui->State==LA_BT_ACTIVE?2:1):2; ui->Extent=1;
|
|
|
return LA_RUNNING;
|
|
|
}
|
|
|
- if(e->type==LA_L_MOUSE_UP && uit->HeightCoeff){ ui->State=(ui->State==LA_BT_ACTIVE)?LA_BT_NORMAL:LA_BT_ACTIVE; laRedrawCurrentPanel(); }
|
|
|
+ if(e->type==LA_L_MOUSE_UP && ui->Extent){ ui->State=(ui->State==LA_BT_ACTIVE)?LA_BT_NORMAL:LA_BT_ACTIVE; laRedrawCurrentPanel(); }
|
|
|
if (uit->Dragging && e->type == LA_MOUSEMOVE){
|
|
|
int diff=e->y-uit->LastY; diff=((real)diff+0.5)/(ui->B-ui->U); int delta=uit->TargetIndexVali;
|
|
|
- if(diff!=uit->On){ uit->HeightCoeff=0; int d=diff-uit->On; uit->On=diff; while(d){ laSetInt(&ui->PP, d>0?delta:-delta); d-=(d>0?1:-1); }; laRecalcCurrentPanel(); }
|
|
|
+ if(diff!=uit->On){ ui->Extent=0; int d=diff-uit->On; uit->On=diff; while(d){ laSetInt(&ui->PP, d>0?delta:-delta); d-=(d>0?1:-1); }; laRecalcCurrentPanel(); }
|
|
|
return LA_RUNNING;
|
|
|
}
|
|
|
if (uit->Dragging && (e->type == LA_L_MOUSE_UP || e->type == LA_R_MOUSE_UP || e->key == LA_KEY_ESCAPE)){
|