コード例 #1
0
    public ScreenTab() {
      super();

      OptionSlider scale =
          new OptionSlider(
              Messages.get(this, "scale"),
              (int) Math.ceil(2 * Game.density) + "X",
              PixelScene.maxDefaultZoom + "X",
              (int) Math.ceil(2 * Game.density),
              PixelScene.maxDefaultZoom) {
            @Override
            protected void onChange() {
              if (getSelectedValue() != ShatteredPixelDungeon.scale()) {
                ShatteredPixelDungeon.scale(getSelectedValue());
                ShatteredPixelDungeon.switchNoFade(
                    (Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(),
                    new Game.SceneChangeCallback() {
                      @Override
                      public void beforeCreate() {
                        // do nothing
                      }

                      @Override
                      public void afterCreate() {
                        Game.scene().add(new WndSettings());
                      }
                    });
              }
            }
          };
      scale.setSelectedValue(PixelScene.defaultZoom);
      scale.setRect(0, 0, WIDTH, SLIDER_HEIGHT);
      if ((int) Math.ceil(2 * Game.density) < PixelScene.maxDefaultZoom) add(scale);

      OptionSlider brightness =
          new OptionSlider(
              Messages.get(this, "brightness"),
              Messages.get(this, "dark"),
              Messages.get(this, "bright"),
              -2,
              2) {
            @Override
            protected void onChange() {
              ShatteredPixelDungeon.brightness(getSelectedValue());
            }
          };
      brightness.setSelectedValue(ShatteredPixelDungeon.brightness());
      brightness.setRect(0, scale.bottom() + GAP_TINY, WIDTH, SLIDER_HEIGHT);
      add(brightness);

      CheckBox chkImmersive =
          new CheckBox(Messages.get(this, "soft_keys")) {
            @Override
            protected void onClick() {
              super.onClick();
              ShatteredPixelDungeon.immerse(checked());
            }
          };
      chkImmersive.setRect(0, brightness.bottom() + GAP_SML, WIDTH, BTN_HEIGHT);
      chkImmersive.checked(ShatteredPixelDungeon.immersed());
      chkImmersive.enable(android.os.Build.VERSION.SDK_INT >= 19);
      add(chkImmersive);

      CheckBox chkSaver =
          new CheckBox(Messages.get(this, "saver")) {
            @Override
            protected void onClick() {
              super.onClick();
              if (checked()) {
                checked(!checked());
                ShatteredPixelDungeon.scene()
                    .add(
                        new WndOptions(
                            Messages.get(ScreenTab.class, "saver"),
                            Messages.get(ScreenTab.class, "saver_desc"),
                            Messages.get(ScreenTab.class, "okay"),
                            Messages.get(ScreenTab.class, "cancel")) {
                          @Override
                          protected void onSelect(int index) {
                            if (index == 0) {
                              checked(!checked());
                              ShatteredPixelDungeon.powerSaver(checked());
                            }
                          }
                        });
              } else {
                ShatteredPixelDungeon.powerSaver(checked());
              }
            }
          };
      chkSaver.setRect(0, chkImmersive.bottom() + GAP_TINY, WIDTH, BTN_HEIGHT);
      chkSaver.checked(ShatteredPixelDungeon.powerSaver());
      if (PixelScene.maxScreenZoom >= 2) add(chkSaver);

      RedButton btnOrientation =
          new RedButton(
              ShatteredPixelDungeon.landscape()
                  ? Messages.get(this, "portrait")
                  : Messages.get(this, "landscape")) {
            @Override
            protected void onClick() {
              ShatteredPixelDungeon.landscape(!ShatteredPixelDungeon.landscape());
            }
          };
      btnOrientation.setRect(0, chkSaver.bottom() + GAP_SML, WIDTH, BTN_HEIGHT);
      add(btnOrientation);
    }