|  | @@ -577,6 +577,7 @@ void la_IntDraw(laUiItem *ui, int h){
 | 
											
												
													
														|  |      int NoLabel=ui->Flags&LA_UI_FLAGS_NO_LABEL;
 |  |      int NoLabel=ui->Flags&LA_UI_FLAGS_NO_LABEL;
 | 
											
												
													
														|  |      int IsDisabled=ui->Flags&LA_UI_FLAGS_DISABLED;
 |  |      int IsDisabled=ui->Flags&LA_UI_FLAGS_DISABLED;
 | 
											
												
													
														|  |      int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
 |  |      int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
 | 
											
												
													
														|  | 
 |  | +    int SliderVertical = ui->Flags&LA_UI_FLAGS_VALUE_METER;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      if (laIsPropertyReadOnly(&ui->PP) && !NoDecal) ui->State = LA_BT_DISABLED;
 |  |      if (laIsPropertyReadOnly(&ui->PP) && !NoDecal) ui->State = LA_BT_DISABLED;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -657,10 +658,11 @@ void la_IntDraw(laUiItem *ui, int h){
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                  if (Ranged){
 |  |                  if (Ranged){
 | 
											
												
													
														|  |                      int L1 = _L;
 |  |                      int L1 = _L;
 | 
											
												
													
														|  | -                    int R1 = (real)(Data[i] - min) / (real)(max - min) * (real)(Seg) + L1;
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    int R1 = SliderVertical?_R:((real)(Data[i] - min) / (real)(max - min) * (real)(Seg) + L1);
 | 
											
												
													
														|  | 
 |  | +                    int U1 = SliderVertical?(_B - (real)(Data[i] - min) / (real)(max - min) * (real)(_B-_U)):_U;
 | 
											
												
													
														|  |                      tnsUseNoTexture(); real* color=laThemeColor(bt,LA_BT_TEXT);
 |  |                      tnsUseNoTexture(); real* color=laThemeColor(bt,LA_BT_TEXT);
 | 
											
												
													
														|  |                      tnsColor4d(LA_COLOR3(color),0.3);
 |  |                      tnsColor4d(LA_COLOR3(color),0.3);
 | 
											
												
													
														|  | -                    tnsVertex2d(L1, _U); tnsVertex2d(R1, _U);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    tnsVertex2d(L1, U1); tnsVertex2d(R1, U1);
 | 
											
												
													
														|  |                      tnsVertex2d(R1, _B); tnsVertex2d(L1, _B);
 |  |                      tnsVertex2d(R1, _B); tnsVertex2d(L1, _B);
 | 
											
												
													
														|  |                      tnsPackAs(GL_TRIANGLE_FAN);
 |  |                      tnsPackAs(GL_TRIANGLE_FAN);
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
										
											
												
													
														|  | @@ -705,6 +707,7 @@ void la_FloatDraw(laUiItem *ui, int h){
 | 
											
												
													
														|  |      int NoLabel=ui->Flags&LA_UI_FLAGS_NO_LABEL;
 |  |      int NoLabel=ui->Flags&LA_UI_FLAGS_NO_LABEL;
 | 
											
												
													
														|  |      int IsDisabled=ui->Flags&LA_UI_FLAGS_DISABLED;
 |  |      int IsDisabled=ui->Flags&LA_UI_FLAGS_DISABLED;
 | 
											
												
													
														|  |      int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
 |  |      int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
 | 
											
												
													
														|  | 
 |  | +    int SliderVertical = ui->Flags&LA_UI_FLAGS_VALUE_METER;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      if (laIsPropertyReadOnly(&ui->PP) && !NoDecal) ui->State = LA_BT_DISABLED;
 |  |      if (laIsPropertyReadOnly(&ui->PP) && !NoDecal) ui->State = LA_BT_DISABLED;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -785,10 +788,11 @@ void la_FloatDraw(laUiItem *ui, int h){
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                  if (Ranged){
 |  |                  if (Ranged){
 | 
											
												
													
														|  |                      int L1 = _L;
 |  |                      int L1 = _L;
 | 
											
												
													
														|  | -                    int R1 = (real)(Data[i] - min) / (real)(max - min) * (real)(Seg) + L1;
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    int R1 = SliderVertical?_R:((real)(Data[i] - min) / (real)(max - min) * (real)(Seg) + L1);
 | 
											
												
													
														|  | 
 |  | +                    int U1 = SliderVertical?(_B - (real)(Data[i] - min) / (real)(max - min) * (real)(_B-_U)):_U;
 | 
											
												
													
														|  |                      tnsUseNoTexture(); real* color=laThemeColor(bt,LA_BT_TEXT);
 |  |                      tnsUseNoTexture(); real* color=laThemeColor(bt,LA_BT_TEXT);
 | 
											
												
													
														|  |                      tnsColor4d(LA_COLOR3(color),0.3);
 |  |                      tnsColor4d(LA_COLOR3(color),0.3);
 | 
											
												
													
														|  | -                    tnsVertex2d(L1, _U); tnsVertex2d(R1, _U);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    tnsVertex2d(L1, U1); tnsVertex2d(R1, U1);
 | 
											
												
													
														|  |                      tnsVertex2d(R1, _B); tnsVertex2d(L1, _B);
 |  |                      tnsVertex2d(R1, _B); tnsVertex2d(L1, _B);
 | 
											
												
													
														|  |                      tnsPackAs(GL_TRIANGLE_FAN);
 |  |                      tnsPackAs(GL_TRIANGLE_FAN);
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
										
											
												
													
														|  | @@ -2228,7 +2232,7 @@ int la_ProcessTextEdit(laEvent *e, laStringEdit *se, laUiItem* ui){
 | 
											
												
													
														|  |      switch (e->type){
 |  |      switch (e->type){
 | 
											
												
													
														|  |      case LA_INPUT:
 |  |      case LA_INPUT:
 | 
											
												
													
														|  |          switch (e->Input){
 |  |          switch (e->Input){
 | 
											
												
													
														|  | -        //case 0x08: if(strHasSelection(se)) strClearSelection(se); else strBackspace(se); return 1;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        case 0x08: if(strHasSelection(se)) strClearSelection(se); else strBackspace(se); return 1;
 | 
											
												
													
														|  |          case 0x7f: if(strHasSelection(se)) strClearSelection(se); else { strMoveCursor(se,0,0); strBackspace(se); } return 1;
 |  |          case 0x7f: if(strHasSelection(se)) strClearSelection(se); else { strMoveCursor(se,0,0); strBackspace(se); } return 1;
 | 
											
												
													
														|  |          case 0x09: strInsertChar(se, ' ');strInsertChar(se, ' ');strInsertChar(se, ' ');strInsertChar(se, ' '); return 1;
 |  |          case 0x09: strInsertChar(se, ' ');strInsertChar(se, ' ');strInsertChar(se, ' ');strInsertChar(se, ' '); return 1;
 | 
											
												
													
														|  |          case 0x1B: case 0x0D: return 0;
 |  |          case 0x1B: case 0x0D: return 0;
 | 
											
										
											
												
													
														|  | @@ -2242,7 +2246,9 @@ int la_ProcessTextEdit(laEvent *e, laStringEdit *se, laUiItem* ui){
 | 
											
												
													
														|  |          case LA_KEY_ARRRIGHT: strMoveCursor(se, 0, Select); return 1;
 |  |          case LA_KEY_ARRRIGHT: strMoveCursor(se, 0, Select); return 1;
 | 
											
												
													
														|  |          case LA_KEY_ARRUP: strMoveCursorLine(se, 1, Select); return 1;
 |  |          case LA_KEY_ARRUP: strMoveCursorLine(se, 1, Select); return 1;
 | 
											
												
													
														|  |          case LA_KEY_ARRDOWN: strMoveCursorLine(se, 0, Select); return 1;
 |  |          case LA_KEY_ARRDOWN: strMoveCursorLine(se, 0, Select); return 1;
 | 
											
												
													
														|  | 
 |  | +#ifdef LAGUI_ANDROID
 | 
											
												
													
														|  |          case LA_KEY_BACKSPACE: if(strHasSelection(se)) strClearSelection(se); else strBackspace(se); return 1;
 |  |          case LA_KEY_BACKSPACE: if(strHasSelection(se)) strClearSelection(se); else strBackspace(se); return 1;
 | 
											
												
													
														|  | 
 |  | +#endif
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          break;
 |  |          break;
 | 
											
												
													
														|  |      case LA_L_MOUSE_DOWN:
 |  |      case LA_L_MOUSE_DOWN:
 | 
											
										
											
												
													
														|  | @@ -2302,7 +2308,7 @@ int OPMOD_IntArrayHorizon(laOperator *a, laEvent *e){
 | 
											
												
													
														|  |      int IsVertical=(ui->Flags&LA_UI_FLAGS_TRANSPOSE)!=0;
 |  |      int IsVertical=(ui->Flags&LA_UI_FLAGS_TRANSPOSE)!=0;
 | 
											
												
													
														|  |      int NoEvent = ui->Flags&LA_UI_FLAGS_NO_EVENT;
 |  |      int NoEvent = ui->Flags&LA_UI_FLAGS_NO_EVENT;
 | 
											
												
													
														|  |      int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
 |  |      int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
 | 
											
												
													
														|  | -    int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER || ui->Flags&LA_UI_FLAGS_VALUE_METER;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      if (!laIsInUiItem(ui, e->x, e->y) && !ui->Extra->On){
 |  |      if (!laIsInUiItem(ui, e->x, e->y) && !ui->Extra->On){
 | 
											
												
													
														|  |          ui->State = LA_UI_NORMAL;
 |  |          ui->State = LA_UI_NORMAL;
 | 
											
										
											
												
													
														|  | @@ -2425,7 +2431,7 @@ int OPMOD_FloatArrayHorizon(laOperator *a, laEvent *e){
 | 
											
												
													
														|  |      int NoEvent = ui->Flags&LA_UI_FLAGS_NO_EVENT;
 |  |      int NoEvent = ui->Flags&LA_UI_FLAGS_NO_EVENT;
 | 
											
												
													
														|  |      int IsRad=ui->PP.LastPs->p->IsRadAngle;
 |  |      int IsRad=ui->PP.LastPs->p->IsRadAngle;
 | 
											
												
													
														|  |      int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
 |  |      int NoTooltip=ui->Flags&LA_UI_FLAGS_NO_TOOLTIP;
 | 
											
												
													
														|  | -    int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    int IsKnob = ui->Flags&LA_UI_FLAGS_NODE_CONTAINER || ui->Flags&LA_UI_FLAGS_VALUE_METER;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      if (!laIsInUiItem(ui, e->x, e->y) && !ui->Extra->On && !NoTooltip){
 |  |      if (!laIsInUiItem(ui, e->x, e->y) && !ui->Extra->On && !NoTooltip){
 | 
											
												
													
														|  |          ui->State = LA_UI_NORMAL;
 |  |          ui->State = LA_UI_NORMAL;
 | 
											
										
											
												
													
														|  | @@ -3237,7 +3243,7 @@ int OPMOD_CollectionSelector(laOperator *a, laEvent *e){
 | 
											
												
													
														|  |          a->ToPanel->MenuRefer ? a->ToPanel->MenuRefer : &a->ToPanel->UI;
 |  |          a->ToPanel->MenuRefer ? a->ToPanel->MenuRefer : &a->ToPanel->UI;
 | 
											
												
													
														|  |      laUiList* uil = la_DetectUiListRecursive(ToUil, lx, ly, 10000, 0, 0, 0, 0, 0);
 |  |      laUiList* uil = la_DetectUiListRecursive(ToUil, lx, ly, 10000, 0, 0, 0, 0, 0);
 | 
											
												
													
														|  |      if (uil != ((laUiListDrawItem *)a->LocalUiLists.pFirst)->Target) {
 |  |      if (uil != ((laUiListDrawItem *)a->LocalUiLists.pFirst)->Target) {
 | 
											
												
													
														|  | -        //printf("%d %d EXIT\n",((laUiListDrawItem *)a->LocalUiLists.pFirst)->Target, uil);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        printf("%d %d EXIT\n",((laUiListDrawItem *)a->LocalUiLists.pFirst)->Target, uil);
 | 
											
												
													
														|  |          return LA_FINISHED;
 |  |          return LA_FINISHED;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 |