GUI: prepare for the input pad
This commit is contained in:
		
							parent
							
								
									63d09c0f54
								
							
						
					
					
						commit
						40a63433c5
					
				|  | @ -2323,8 +2323,8 @@ void FurnaceGUI::processPoint(SDL_Event& ev) { | |||
|       } | ||||
|       TouchPoint newPoint(ev.button.x,ev.button.y); | ||||
| #ifdef __APPLE__ | ||||
|       newPoint->x*=dpiScale; | ||||
|       newPoint->y*=dpiScale; | ||||
|       newPoint.x*=dpiScale; | ||||
|       newPoint.y*=dpiScale; | ||||
| #endif | ||||
|       activePoints.push_back(newPoint); | ||||
|       pressedPoints.push_back(newPoint); | ||||
|  | @ -4276,6 +4276,7 @@ FurnaceGUI::FurnaceGUI(): | |||
|   pianoOffset(6), | ||||
|   pianoOffsetEdit(9), | ||||
|   pianoView(2), | ||||
|   pianoInputPadMode(2), | ||||
| #else | ||||
|   pianoOctaves(7), | ||||
|   pianoOctavesEdit(4), | ||||
|  | @ -4284,6 +4285,7 @@ FurnaceGUI::FurnaceGUI(): | |||
|   pianoOffset(6), | ||||
|   pianoOffsetEdit(6), | ||||
|   pianoView(0), | ||||
|   pianoInputPadMode(0), | ||||
| #endif | ||||
|   hasACED(false) { | ||||
|   // value keys
 | ||||
|  |  | |||
|  | @ -1226,7 +1226,7 @@ class FurnaceGUI { | |||
|   float pianoKeyHit[180]; | ||||
|   bool pianoKeyPressed[180]; | ||||
|   int pianoOffset, pianoOffsetEdit; | ||||
|   int pianoView; | ||||
|   int pianoView, pianoInputPadMode; | ||||
| 
 | ||||
|   // TX81Z
 | ||||
|   bool hasACED; | ||||
|  |  | |||
|  | @ -40,7 +40,11 @@ const bool isTopKey[12]={ | |||
|   false, true, false, true, false, false, true, false, true, false, true, false | ||||
| }; | ||||
| 
 | ||||
| // TODO: actually implement a piano!
 | ||||
| #define VALUE_DIGIT(x,label) \ | ||||
|   if (ImGui::Selectable(label,false,0,ImVec2(50.0*dpiScale,50.0*dpiScale))) { \ | ||||
|     valueInput(x,false); \ | ||||
|   } | ||||
| 
 | ||||
| void FurnaceGUI::drawPiano() { | ||||
|   if (nextWindow==GUI_WINDOW_PIANO) { | ||||
|     pianoOpen=true; | ||||
|  | @ -86,6 +90,19 @@ void FurnaceGUI::drawPiano() { | |||
|           if (ImGui::RadioButton("Continuous",pianoView==1)) { | ||||
|             pianoView=1; | ||||
|           } | ||||
|           ImGui::Text("Value input pad:"); | ||||
|           if (ImGui::RadioButton("Disabled",pianoInputPadMode==0)) { | ||||
|             pianoInputPadMode=0; | ||||
|           } | ||||
|           if (ImGui::RadioButton("On keyboard",pianoInputPadMode==1)) { | ||||
|             pianoInputPadMode=1; | ||||
|           } | ||||
|           if (ImGui::RadioButton("Split (automatic)",pianoInputPadMode==2)) { | ||||
|             pianoInputPadMode=2; | ||||
|           } | ||||
|           if (ImGui::RadioButton("Split (always visible)",pianoInputPadMode==3)) { | ||||
|             pianoInputPadMode=3; | ||||
|           } | ||||
|           ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition); | ||||
|           ImGui::EndPopup(); | ||||
|         } | ||||
|  | @ -295,4 +312,57 @@ void FurnaceGUI::drawPiano() { | |||
|   } | ||||
|   if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_PIANO; | ||||
|   ImGui::End(); | ||||
| 
 | ||||
|   // draw input pad if necessary
 | ||||
|   if ((pianoInputPadMode==2 && cursor.xFine>0) || pianoInputPadMode==3) { | ||||
|     if (ImGui::Begin("Input Pad",NULL,ImGuiWindowFlags_NoTitleBar)) { | ||||
|       if (ImGui::BeginTable("InputPad",3,ImGuiTableFlags_Borders)) { | ||||
|         ImGui::TableNextRow(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(10,"A"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(11,"B"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(12,"C"); | ||||
|         ImGui::TableNextRow(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(13,"D"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(14,"E"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(15,"F"); | ||||
| 
 | ||||
|         ImGui::TableNextRow(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(1,"1"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(2,"2"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(3,"3"); | ||||
|         ImGui::TableNextRow(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(4,"4"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(5,"5"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(6,"6"); | ||||
|         ImGui::TableNextRow(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(7,"7"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(8,"8"); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(9,"9"); | ||||
|         ImGui::TableNextRow(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         ImGui::TableNextColumn(); | ||||
|         VALUE_DIGIT(0,"0"); | ||||
|         ImGui::TableNextColumn(); | ||||
| 
 | ||||
|         ImGui::EndTable(); | ||||
|       } | ||||
|     } | ||||
|     if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_PIANO; | ||||
|     ImGui::End(); | ||||
|   } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 tildearrow
						tildearrow