|
@@ -2426,7 +2426,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
|
|
|
uit->LastY = e->y;
|
|
|
ui->Extra->On = (IsVertical ? la_DetectRow(ui, e->y) : la_DetectColumn(ui, e->x, Len)) + 1;
|
|
|
if (ui->Extra->On > Len) return LA_RUNNING;
|
|
|
- laGetIntArray(&ui->PP, &TmpArr);
|
|
|
+ laGetIntArray(&ui->PP, TmpArr);
|
|
|
uit->TargetIndexValf = TmpArr[ui->Extra->On - 1];
|
|
|
laRedrawCurrentPanel();
|
|
|
return LA_RUNNING;
|
|
@@ -2464,7 +2464,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
|
|
|
if ((!uit->Edit) || (uit->Edit && (SelectOn != ui->Extra->On))){
|
|
|
char buf[32] = {0};
|
|
|
uit->On=SelectOn;
|
|
|
- laGetIntArray(&ui->PP, &TmpArr);
|
|
|
+ laGetIntArray(&ui->PP, TmpArr);
|
|
|
uit->TargetIndexVali = TmpArr[ui->Extra->On - 1];
|
|
|
strPrintIntAfter(buf, 32, uit->TargetIndexVali);
|
|
|
strBeginEdit(&uit->Edit,buf);
|
|
@@ -2477,16 +2477,35 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
|
|
|
}
|
|
|
|
|
|
if(e->type ==LA_KEY_DOWN){
|
|
|
- if (e->key == LA_KEY_ENTER && uit->Edit){
|
|
|
- char* buf=strEndEdit(&uit->Edit, 0);
|
|
|
- int Result; sscanf(buf, "%d", &Result); free(buf);
|
|
|
- laSetIntArraySingle(&ui->PP, ui->Extra->On - 1, Result);
|
|
|
- laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
- ui->State = LA_UI_NORMAL;
|
|
|
- uit->Dragging = 0;
|
|
|
- uit->On = 0;
|
|
|
- laRedrawCurrentPanel(); la_DisplayKeyboard(0);
|
|
|
- return LA_FINISHED_PASS;
|
|
|
+ if(uit->Edit){
|
|
|
+ if (e->key == LA_KEY_ENTER){
|
|
|
+ char* buf=strEndEdit(&uit->Edit, 0);
|
|
|
+ int Result; sscanf(buf, "%d", &Result); free(buf);
|
|
|
+ laSetIntArraySingle(&ui->PP, uit->On - 1, Result);
|
|
|
+ laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
+ ui->State = LA_UI_NORMAL;
|
|
|
+ uit->Dragging = 0;
|
|
|
+ uit->On = 0;
|
|
|
+ laRedrawCurrentPanel(); la_DisplayKeyboard(0);
|
|
|
+ return LA_FINISHED_PASS;
|
|
|
+ }elif (e->key==LA_KEY_TAB){
|
|
|
+ char* buf=strEndEdit(&uit->Edit, 0);
|
|
|
+ int Result; sscanf(buf, "%d", &Result); free(buf);
|
|
|
+ laSetIntArraySingle(&ui->PP, uit->On - 1, Result);
|
|
|
+ int dir=(e->SpecialKeyBit&LA_KEY_SHIFT)?-1:1;
|
|
|
+ if((dir>0 && uit->On<Len) || (dir<0 && uit->On>1)){ uit->On+=dir; char bufa[32]={0};
|
|
|
+ laGetIntArray(&ui->PP, &TmpArr); strPrintIntAfter(bufa, 32, TmpArr[uit->On-1]);
|
|
|
+ strBeginEdit(&uit->Edit,bufa); strSelectLineAll(uit->Edit); la_DisplayKeyboard(1);
|
|
|
+ }else{
|
|
|
+ ui->State = LA_UI_NORMAL; uit->Dragging = 0; uit->On = 0;
|
|
|
+ la_DisplayKeyboard(0);
|
|
|
+ }
|
|
|
+ laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
+ laRedrawCurrentPanel();
|
|
|
+ }elif(e->key==LA_KEY_ESCAPE){
|
|
|
+ ui->State = LA_UI_NORMAL; uit->Dragging = 0; uit->On = 0;
|
|
|
+ la_DisplayKeyboard(0);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2554,7 +2573,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
|
|
|
uit->LastY = e->y;
|
|
|
ui->Extra->On = (IsVertical ? la_DetectRow(ui, e->y) : la_DetectColumn(ui, e->x, Len)) + 1;
|
|
|
if (ui->Extra->On > Len) return LA_RUNNING;
|
|
|
- laGetFloatArray(&ui->PP, &TmpArr);
|
|
|
+ laGetFloatArray(&ui->PP, TmpArr);
|
|
|
uit->TargetIndexValf = TmpArr[ui->Extra->On - 1];
|
|
|
laRedrawCurrentPanel();
|
|
|
|
|
@@ -2567,7 +2586,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
|
|
|
real min,max; int Ranged = laGetFloatRange(&ui->PP, &min, &max);
|
|
|
int UseRange = (Ranged&&!IsKnob); real step=fp->Step; if(UseRange){ step=(max-min)/(ui->R-ui->L); }
|
|
|
if(Ranged){ TNS_CLAMP(step,(max-min)/500,INT_MAX); }
|
|
|
- laGetFloatArray(&ui->PP, &TmpArr);
|
|
|
+ laGetFloatArray(&ui->PP, TmpArr);
|
|
|
uit->TargetIndexValf = TmpArr[ui->Extra->On - 1];
|
|
|
int delta=e->x-uit->LastX; if(IsKnob){ int dy=uit->LastY-e->y; delta=delta+dy; }
|
|
|
if(UseRange || (abs(delta) > MAIN.ValuatorThreshold)){
|
|
@@ -2595,7 +2614,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
|
|
|
if ((!uit->Edit) || (uit->Edit && (SelectOn != ui->Extra->On))){
|
|
|
char buf[32] = {0};
|
|
|
uit->On=SelectOn;
|
|
|
- laGetFloatArray(&ui->PP, &TmpArr);
|
|
|
+ laGetFloatArray(&ui->PP, TmpArr);
|
|
|
uit->TargetIndexValf = TmpArr[ui->Extra->On - 1];
|
|
|
strPrintFloatAfter(buf, 32, 5, IsRad?deg(uit->TargetIndexValf):uit->TargetIndexValf);
|
|
|
strBeginEdit(&uit->Edit,buf);
|
|
@@ -2608,16 +2627,35 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
|
|
|
}
|
|
|
|
|
|
if(e->type ==LA_KEY_DOWN){
|
|
|
- if (e->key == LA_KEY_ENTER && uit->Edit){
|
|
|
- char* buf=strEndEdit(&uit->Edit, 0);
|
|
|
- real Result; sscanf(buf, "%lf", &Result); free(buf);
|
|
|
- if(IsRad) Result=rad(Result);
|
|
|
- laSetFloatArraySingle(&ui->PP, ui->Extra->On - 1, Result);
|
|
|
- laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
- uit->Dragging = 0;
|
|
|
- uit->On = 0;
|
|
|
- laRedrawCurrentPanel(); la_DisplayKeyboard(0);
|
|
|
- return LA_FINISHED_PASS;
|
|
|
+ if(uit->Edit){
|
|
|
+ if (e->key == LA_KEY_ENTER){
|
|
|
+ char* buf=strEndEdit(&uit->Edit, 0);
|
|
|
+ real Result; sscanf(buf, "%lf", &Result); free(buf);
|
|
|
+ if(IsRad) Result=rad(Result);
|
|
|
+ laSetFloatArraySingle(&ui->PP, ui->Extra->On - 1, Result);
|
|
|
+ laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
+ uit->Dragging = 0;
|
|
|
+ uit->On = 0;
|
|
|
+ laRedrawCurrentPanel(); la_DisplayKeyboard(0);
|
|
|
+ return LA_FINISHED_PASS;
|
|
|
+ }elif (e->key==LA_KEY_TAB){
|
|
|
+ char* buf=strEndEdit(&uit->Edit, 0);
|
|
|
+ real Result; sscanf(buf, "%lf", &Result); free(buf);
|
|
|
+ laSetFloatArraySingle(&ui->PP, uit->On - 1, Result);
|
|
|
+ int dir=(e->SpecialKeyBit&LA_KEY_SHIFT)?-1:1;
|
|
|
+ if((dir>0 && uit->On<Len) || (dir<0 && uit->On>1)){ uit->On+=dir; char bufa[32]={0};
|
|
|
+ laGetFloatArray(&ui->PP, TmpArr); strPrintFloatAfter(bufa, 32, 5, TmpArr[uit->On-1]);
|
|
|
+ strBeginEdit(&uit->Edit,bufa); strSelectLineAll(uit->Edit); la_DisplayKeyboard(1);
|
|
|
+ }else{
|
|
|
+ ui->State = LA_UI_NORMAL; uit->Dragging = 0; uit->On = 0;
|
|
|
+ la_DisplayKeyboard(0);
|
|
|
+ }
|
|
|
+ laRecordAndPushProp(&ui->PP,0); laMarkPropChanged(&ui->PP);
|
|
|
+ laRedrawCurrentPanel();
|
|
|
+ }elif(e->key==LA_KEY_ESCAPE){
|
|
|
+ ui->State = LA_UI_NORMAL; uit->Dragging = 0; uit->On = 0;
|
|
|
+ la_DisplayKeyboard(0);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|