Added base glyph support to calculator
This commit is contained in:
parent
e363c3b162
commit
30a4d6919d
|
@ -1,5 +1,7 @@
|
|||
package love.distributedrebirth.gdxapp4d.app.calculator;
|
||||
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import org.osgi.service.component.annotations.Activate;
|
||||
import org.osgi.service.component.annotations.Component;
|
||||
import org.osgi.service.component.annotations.Deactivate;
|
||||
|
@ -7,6 +9,7 @@ import org.osgi.service.component.annotations.Reference;
|
|||
|
||||
import love.distributedrebirth.gdxapp4d.tos4.service.SystemGdxLog;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4DeskAppService;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.VrGem4LocaleService;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppLauncher;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppMenuSection;
|
||||
|
||||
|
@ -19,10 +22,18 @@ public class CalculatorComponent {
|
|||
@Reference
|
||||
private VrGem4DeskAppService deskAppService;
|
||||
|
||||
@Reference
|
||||
private VrGem4LocaleService localeService;
|
||||
|
||||
private final static String I18N_BUNDLE = "love.distributedrebirth.gdxapp4d.app.calculator.Main";
|
||||
private final DeskAppLauncher launcher;
|
||||
|
||||
public CalculatorComponent() {
|
||||
launcher = new DeskAppLauncher(DeskAppMenuSection.PROGRAMMING, "Calculator", () -> new CalculatorDeskApp());
|
||||
launcher = new DeskAppLauncher(DeskAppMenuSection.PROGRAMMING, "Calculator", () -> new CalculatorDeskApp(createBundle()));
|
||||
}
|
||||
|
||||
private ResourceBundle createBundle() {
|
||||
return ResourceBundle.getBundle(I18N_BUNDLE, localeService.getTextLocale());
|
||||
}
|
||||
|
||||
@Activate
|
||||
|
|
|
@ -1,20 +1,37 @@
|
|||
package love.distributedrebirth.gdxapp4d.app.calculator;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import imgui.ImGui;
|
||||
import imgui.type.ImInt;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.AbstractDeskApp;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppContourSection;
|
||||
import love.distributedrebirth.gdxapp4d.vrgem4.service.deskapp.DeskAppRenderer;
|
||||
import love.distributedrebirth.unicode4d.BaseGlyphSet;
|
||||
|
||||
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
||||
public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRenderer {
|
||||
|
||||
private ResourceBundle bundle;
|
||||
private String value = "";
|
||||
private String valueLoc = "";
|
||||
private String valueArg = "";
|
||||
private Operation operation = Operation.NONE;
|
||||
private ImInt selectedNumberGlyph = new ImInt();
|
||||
|
||||
public CalculatorDeskApp(ResourceBundle bundle) {
|
||||
this.bundle = bundle;
|
||||
}
|
||||
|
||||
private String getTxt(String key) {
|
||||
return bundle.getString(CalculatorDeskApp.class.getSimpleName()+"."+key);
|
||||
}
|
||||
|
||||
public void create() {
|
||||
getContours().setTitle("Calculator");
|
||||
getContours().setTitle(getTxt("title"));
|
||||
getContours().registrateContour(DeskAppContourSection.MAIN, this);
|
||||
}
|
||||
|
||||
|
@ -22,83 +39,123 @@ public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRendere
|
|||
NONE,
|
||||
PLUS,
|
||||
MINUS,
|
||||
MULTIPLY
|
||||
MULTIPLY,
|
||||
DIVIDE
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render() {
|
||||
|
||||
List<String> bases = new ArrayList<>();
|
||||
for (BaseGlyphSet base:BaseGlyphSet.values()) {
|
||||
bases.add(base.name());
|
||||
}
|
||||
String[] items = new String[bases.size()];
|
||||
items = bases.toArray(items);
|
||||
ImGui.combo(getTxt("selectedNumberGlyph"), selectedNumberGlyph, items);
|
||||
String selectedItem = items[selectedNumberGlyph.get()];
|
||||
BaseGlyphSet baseNumber = BaseGlyphSet.valueOf(selectedItem);
|
||||
|
||||
ImGui.text("Value:");
|
||||
ImGui.sameLine();
|
||||
ImGui.text(value);
|
||||
ImGui.text(valueLoc);
|
||||
ImGui.separator();
|
||||
|
||||
if (ImGui.button("0")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(0))) {
|
||||
value+="0";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(0);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("1")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(1))) {
|
||||
value+="1";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(1);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("2")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(2))) {
|
||||
value+="2";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(2);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("3")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(3))) {
|
||||
value+="3";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(3);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("4")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(4))) {
|
||||
value+="4";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(4);
|
||||
}
|
||||
|
||||
|
||||
if (ImGui.button("5")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(5))) {
|
||||
value+="5";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(5);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("6")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(6))) {
|
||||
value+="6";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(6);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("7")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(7))) {
|
||||
value+="7";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(7);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("8")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(8))) {
|
||||
value+="8";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(8);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("9")) {
|
||||
if (ImGui.button(baseNumber.BȍőnNumber10().BȍőnCharFor(9))) {
|
||||
value+="9";
|
||||
valueLoc+=baseNumber.BȍőnNumber10().BȍőnCharFor(9);
|
||||
}
|
||||
|
||||
|
||||
if (ImGui.button("C")) {
|
||||
value="";
|
||||
valueLoc="";
|
||||
valueArg="";
|
||||
operation = Operation.NONE;
|
||||
}
|
||||
if (ImGui.button("+")) {
|
||||
valueArg=value;
|
||||
value="";
|
||||
valueLoc="";
|
||||
operation = Operation.PLUS;
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("-")) {
|
||||
valueArg=value;
|
||||
value="";
|
||||
valueLoc="";
|
||||
operation = Operation.MINUS;
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("*")) {
|
||||
valueArg=value;
|
||||
value="";
|
||||
valueLoc="";
|
||||
operation = Operation.MULTIPLY;
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("/")) {
|
||||
valueArg=value;
|
||||
value="";
|
||||
valueLoc="";
|
||||
operation = Operation.DIVIDE;
|
||||
}
|
||||
if (ImGui.button("=")) {
|
||||
int v1 = Integer.parseInt(valueArg);
|
||||
if (value.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
int v2 = Integer.parseInt(value);
|
||||
if (valueArg.isEmpty()) {
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(v2, 9999999);;
|
||||
}
|
||||
int v1 = Integer.parseInt(valueArg);
|
||||
|
||||
int result = 0;
|
||||
switch (operation) {
|
||||
case PLUS:
|
||||
|
@ -110,10 +167,14 @@ public class CalculatorDeskApp extends AbstractDeskApp implements DeskAppRendere
|
|||
case MULTIPLY:
|
||||
result = v1*v2;
|
||||
break;
|
||||
case DIVIDE:
|
||||
result = v1/v2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
value = ""+result;
|
||||
value = "" + result;
|
||||
valueLoc = baseNumber.BȍőnPrintNumber10(result, 9999999);;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
CalculatorDeskApp.title=Calculator
|
||||
CalculatorDeskApp.selectedNumberGlyph=Display glyphs
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
CalculatorDeskApp.title=Calculator
|
||||
CalculatorDeskApp.selectedNumberGlyph=Display glyphs
|
Loading…
Reference in a new issue