Java Code Examples for com.badlogic.gdx.scenes.scene2d.Stage#addCaptureListener()

The following examples show how to use com.badlogic.gdx.scenes.scene2d.Stage#addCaptureListener() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RestrictOpenWindows.java    From dice-heroes with GNU General Public License v3.0 6 votes vote down vote up
@Override public void start(Callback callback) {
    Stage stage = resources.get("stage");
    WindowListener listener;
    listener = resources.getIfExists("restrictOpenWindowsListener");
    if (listener != null) {
        stage.removeCaptureListener(listener);
        resources.remove("restrictOpenWindowsListener");
    }
    listener = new WindowListener() {
        @Override protected void show(WindowEvent event) {
            event.cancel();
        }
    };
    stage.addCaptureListener(listener);
    resources.put("restrictOpenWindowsListener", listener);
    callback.taskEnded();
}
 
Example 2
Source File: AllowCloseWindows.java    From dice-heroes with GNU General Public License v3.0 6 votes vote down vote up
@Override public void start(Callback callback) {
    Stage stage = resources.get("stage");
    EventListener listener = resources.getIfExists("restrictCloseWindowsListener");
    if (listener != null) {
        stage.removeCaptureListener(listener);
    }
    if (windowClass == null) {
        callback.taskEnded();
        return;
    }
    listener = new WindowListener() {
        @Override protected void hide(WindowEvent event) {
            if (!windowClass.isInstance(event.getWindow())) {
                event.cancel();
            }
        }
    };
    stage.addCaptureListener(listener);
    resources.put("restrictCloseWindowsListener", listener);
    callback.taskEnded();
}
 
Example 3
Source File: RestrictBackButton.java    From dice-heroes with GNU General Public License v3.0 6 votes vote down vote up
@Override public void start(Callback callback) {
    Stage stage = resources.get("stage");
    InputListener listener = new InputListener() {
        @Override public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Input.Keys.BACK || keycode == Input.Keys.ESCAPE) {
                event.cancel();
                return true;
            }
            return super.keyDown(event, keycode);
        }
    };

    stage.addCaptureListener(listener);
    resources.put("restrictBackButton", listener);
    callback.taskEnded();
}
 
Example 4
Source File: RestrictMenuButton.java    From dice-heroes with GNU General Public License v3.0 5 votes vote down vote up
@Override public void start(Callback callback) {
    Stage stage = resources.get("stage");
    InputListener listener = new InputListener() {
        @Override public boolean keyUp(InputEvent event, int keycode) {
            if (keycode == Input.Keys.MENU) {
                event.cancel();
                return true;
            }
            return super.keyDown(event, keycode);
        }
    };
    stage.addCaptureListener(listener);
    resources.put("restrictMenuButton", listener);
    callback.taskEnded();
}
 
Example 5
Source File: RestrictCloseWindows.java    From dice-heroes with GNU General Public License v3.0 5 votes vote down vote up
@Override public void start(Callback callback) {
    Stage stage = resources.get("stage");
    EventListener listener = resources.getIfExists("restrictCloseWindowsListener");
    if (listener != null) {
        stage.removeCaptureListener(listener);
    }
    listener = new WindowListener() {
        @Override protected void hide(WindowEvent event) {
            event.cancel();
        }
    };
    stage.addCaptureListener(listener);
    resources.put("restrictCloseWindowsListener", listener);
    callback.taskEnded();
}
 
Example 6
Source File: EditableSelectBox.java    From bladecoder-adventure-engine with Apache License 2.0 4 votes vote down vote up
public void show(Stage stage) {
	if (list.isTouchable())
		return;

	stage.removeCaptureListener(hideListener);
	stage.addCaptureListener(hideListener);
	stage.addActor(this);

	selectBox.localToStageCoordinates(screenPosition.set(0, 0));

	// Show the list above or below the select box, limited to a number
	// of items and the available height in the stage.
	float itemHeight = list.getItemHeight();
	float height = itemHeight
			* (maxListCount <= 0 ? list.getItems().size : Math.min(maxListCount, list.getItems().size));
	Drawable scrollPaneBackground = getStyle().background;
	if (scrollPaneBackground != null)
		height += scrollPaneBackground.getTopHeight() + scrollPaneBackground.getBottomHeight();
	Drawable listBackground = list.getStyle().background;
	if (listBackground != null)
		height += listBackground.getTopHeight() + listBackground.getBottomHeight();

	float heightBelow = screenPosition.y;
	float heightAbove = stage.getCamera().viewportHeight - screenPosition.y - selectBox.getHeight();
	boolean below = true;
	if (height > heightBelow) {
		if (heightAbove > heightBelow) {
			below = false;
			height = Math.min(height, heightAbove);
		} else
			height = heightBelow;
	}

	if (below)
		setY(screenPosition.y - height);
	else
		setY(screenPosition.y + selectBox.getHeight());
	setX(screenPosition.x);
	setSize(Math.max(getPrefWidth(), selectBox.getWidth()), height);

	validate();
	scrollTo(0, list.getHeight() - selectedIndex * itemHeight - itemHeight / 2, 0, 0, true, true);
	updateVisualScroll();

	previousScrollFocus = null;
	Actor actor = stage.getScrollFocus();
	if (actor != null && !actor.isDescendantOf(this))
		previousScrollFocus = actor;
	stage.setScrollFocus(this);

	list.setTouchable(Touchable.enabled);
	clearActions();
	// getColor().a = 0;
	// addAction(fadeIn(0.3f, Interpolation.fade));
}
 
Example 7
Source File: FilteredSelectBox.java    From bladecoder-adventure-engine with Apache License 2.0 4 votes vote down vote up
public void show(Stage stage) {
	if (list.isTouchable())
		return;

	stage.removeCaptureListener(hideListener);
	stage.addCaptureListener(hideListener);
	stage.addActor(this);
	stage.addActor(filterField);

	selectBox.localToStageCoordinates(screenPosition.set(0, 0));

	// Show the list above or below the select box, limited to a number of items and
	// the available height in the stage.
	float itemHeight = list.getItemHeight();
	float height = itemHeight
			* (maxListCount <= 0 ? selectBox.items.size : Math.min(maxListCount, selectBox.items.size));
	Drawable scrollPaneBackground = getStyle().background;
	if (scrollPaneBackground != null)
		height += scrollPaneBackground.getTopHeight() + scrollPaneBackground.getBottomHeight();
	Drawable listBackground = list.getStyle().background;
	if (listBackground != null)
		height += listBackground.getTopHeight() + listBackground.getBottomHeight();

	float heightBelow = screenPosition.y - itemHeight;
	float heightAbove = stage.getCamera().viewportHeight - screenPosition.y - selectBox.getHeight();
	boolean below = true;
	if (height > heightBelow) {
		if (heightAbove > heightBelow) {
			below = false;
			height = Math.min(height, heightAbove);
		} else
			height = heightBelow;
	}

	if (below)
		setY(screenPosition.y - height);
	else
		setY(screenPosition.y + selectBox.getHeight());
	setX(screenPosition.x);
	setHeight(height);
	validate();
	float width = Math.max(getPrefWidth(), selectBox.getWidth());
	if (getPrefHeight() > height && !isScrollingDisabledY())
		width += getScrollBarWidth();
	setWidth(width);

	filterField.setX(getX());
	filterField.setWidth(getWidth());
	filterField.setHeight(filterField.getPrefHeight());
	filterField.setY(getY() + getHeight() - filterField.getHeight());
	stage.setKeyboardFocus(filterField);
	filterField.validate();
	setY(getY() - filterField.getHeight());

	validate();
	scrollTo(0, list.getHeight() - selectBox.getSelectedIndex() * itemHeight - itemHeight / 2, 0, 0, true,
			true);
	updateVisualScroll();

	previousScrollFocus = null;
	Actor actor = stage.getScrollFocus();
	if (actor != null && !actor.isDescendantOf(this))
		previousScrollFocus = actor;
	stage.setScrollFocus(this);

	list.getSelection().set(selectBox.getSelected());
	list.setTouchable(Touchable.enabled);
	clearActions();
	selectBox.onShow(this, below);

	filterField.setText("");
	setListItems(items.toArray());
}