Example #1
0
  private void addButtonsListeners(VisImageButton upButton, VisImageButton downButton) {
    upButton.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            getStage().setScrollFocus(valueText);
            increment(true);
          }
        });

    downButton.addListener(
        new ChangeListener() {
          @Override
          public void changed(ChangeEvent event, Actor actor) {
            getStage().setScrollFocus(valueText);
            decrement(true);
          }
        });

    upButton.addListener(
        new InputListener() {
          @Override
          public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (buttonRepeatTask.isScheduled() == false) {
              buttonRepeatTask.increment = true;
              buttonRepeatTask.cancel();
              Timer.schedule(buttonRepeatTask, buttonRepeatInitialTime, buttonRepeatTime);
            }

            return true;
          }

          @Override
          public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            buttonRepeatTask.cancel();
          }
        });

    downButton.addListener(
        new InputListener() {
          @Override
          public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (buttonRepeatTask.isScheduled() == false) {
              buttonRepeatTask.increment = false;
              buttonRepeatTask.cancel();
              Timer.schedule(buttonRepeatTask, buttonRepeatInitialTime, buttonRepeatTime);
            }

            return true;
          }

          @Override
          public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            buttonRepeatTask.cancel();
          }
        });
  }
  public ComponentSelectDialog(
      EntityProperties properties, ComponentSelectDialogListener listener) {
    super(false);
    this.properties = properties;
    this.listener = listener;
    setBackground(VisUI.getSkin().getDrawable("tooltip-bg"));

    // TODO: [plugin] plugin entry point
    componentClasses.add(ShaderComponent.class);
    componentClasses.add(PolygonComponent.class);
    componentClasses.add(PhysicsPropertiesComponent.class);
    componentClasses.add(VariablesComponent.class);

    buttonStyle = new VisTextButtonStyle(VisUI.getSkin().get(VisTextButtonStyle.class));

    scrollPaneTable = new VisTable(false);
    scrollPaneTable.top();

    VisScrollPane scrollPane = new VisScrollPane(scrollPaneTable);
    scrollPane.setScrollingDisabled(false, true);
    scrollPane.setFlickScroll(false);
    scrollPane.setFadeScrollBars(false);

    VisImageButton closeButton = new VisImageButton("close");

    add(new VisLabel("Select component"));
    add(closeButton).right().row();

    addSeparator().colspan(2);
    add(scrollPane).colspan(2).expand().fill().padLeft(3).padRight(3);
    setSize(220, 200);

    closeButton.addListener(new VisChangeListener((event, actor) -> remove()));

    inputListener =
        new InputListener() {
          @Override
          public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (contains(event.getStageX(), event.getStageY()) == false) {
              remove();
              return true;
            }

            return false;
          }
        };
  }