
de.lessvoid.nifty.examples.mouse.MouseStartScreen Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nifty-examples Show documentation
Show all versions of nifty-examples Show documentation
Lots of Nifty example code! You can find the source for nearly all demos/tutorials in here.
package de.lessvoid.nifty.examples.mouse;
import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.NiftyEventSubscriber;
import de.lessvoid.nifty.NiftyMouse;
import de.lessvoid.nifty.controls.Label;
import de.lessvoid.nifty.elements.Element;
import de.lessvoid.nifty.elements.events.*;
import de.lessvoid.nifty.examples.NiftyExample;
import de.lessvoid.nifty.input.NiftyMouseInputEvent;
import de.lessvoid.nifty.screen.Screen;
import de.lessvoid.nifty.screen.ScreenController;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.IOException;
/**
* @author void
*/
public class MouseStartScreen implements ScreenController, NiftyExample {
private Nifty nifty;
private Screen screen;
@Nullable
private Label mousePrimaryText;
@Nullable
private Label mouseSecondaryText;
@Nullable
private Label mouseTertiaryText;
@Nullable
private Label mouseMoveText;
@Nullable
private Label mouseWheelText;
@Nullable
private Label mouseEventsPrimaryText;
@Nullable
private Label mouseEventsSecondaryText;
@Nullable
private Label mouseEventsTertiaryText;
@Nullable
private Label mouseEventsMoveText;
@Nullable
private Label mouseEventsWheelText;
@Nullable
private Label mouseEventsText;
@Override
public void bind(@Nonnull final Nifty newNifty, @Nonnull final Screen newScreen) {
this.nifty = newNifty;
this.screen = newScreen;
this.mousePrimaryText = screen.findNiftyControl("mousePrimaryText", Label.class);
this.mouseSecondaryText = screen.findNiftyControl("mouseSecondaryText", Label.class);
this.mouseTertiaryText = screen.findNiftyControl("mouseTertiaryText", Label.class);
this.mouseMoveText = screen.findNiftyControl("mouseMoveText", Label.class);
this.mouseWheelText = screen.findNiftyControl("mouseWheelText", Label.class);
this.mouseEventsPrimaryText = screen.findNiftyControl("mouseEventsPrimaryText", Label.class);
this.mouseEventsSecondaryText = screen.findNiftyControl("mouseEventsSecondaryText", Label.class);
this.mouseEventsTertiaryText = screen.findNiftyControl("mouseEventsTertiaryText", Label.class);
this.mouseEventsMoveText = screen.findNiftyControl("mouseEventsMoveText", Label.class);
this.mouseEventsWheelText = screen.findNiftyControl("mouseEventsWheelText", Label.class);
this.mouseEventsText = screen.findNiftyControl("mouseEventsText", Label.class);
}
@Override
public void onStartScreen() {
System.out.println(screen.debugOutput());
}
@Override
public void onEndScreen() {
}
public void quit() {
nifty.setAlternateKeyForNextLoadXml("fade");
nifty.fromXml("all/intro.xml", "menu");
}
// the old regular interact kinda way
// primay
public void primaryClick() {
mousePrimaryText.setText("clicked");
}
public void primaryRelease() {
mousePrimaryText.setText("");
}
public void primaryClickMouseMoved() {
mousePrimaryText.setText("clicked mouse moved");
}
// secondary
public void secondaryClick() {
mouseSecondaryText.setText("clicked");
}
public void secondaryClickMouseMove() {
mouseSecondaryText.setText("clicked mouse moved");
}
public void secondaryRelease() {
mouseSecondaryText.setText("");
}
// tertiary
public void tertiaryClick() {
mouseTertiaryText.setText("clicked");
}
public void tertiaryClickMouseMove() {
mouseTertiaryText.setText("clicked mouse moved");
}
public void tertiaryRelease() {
mouseTertiaryText.setText("");
}
// mouse over
public void mouseOver(final Element element, @Nonnull final NiftyMouseInputEvent event) {
mouseMoveText.setText(event.getMouseX() + ", " + event.getMouseY());
}
// mouse wheel
public void mouseWheel(final Element element, @Nonnull final NiftyMouseInputEvent event) {
mouseWheelText.setText(String.valueOf(event.getMouseWheel()));
}
// the new event subscriber way. please note that these methods really could be anywhere as long as
// you call nifty.processAnnotations() on the class that implements them.
// primary
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementPrimaryClick(final String id, final NiftyMousePrimaryClickedEvent event) {
mouseEventsPrimaryText.setText("clicked");
}
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementPrimaryClickMove(final String id, final NiftyMousePrimaryClickedMovedEvent event) {
mouseEventsPrimaryText.setText("clicked mouse move");
}
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementPrimaryRelease(final String id, final NiftyMousePrimaryReleaseEvent event) {
mouseEventsPrimaryText.setText("");
}
// secondary
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementSecondaryClick(final String id, final NiftyMouseSecondaryClickedEvent event) {
mouseEventsSecondaryText.setText("clicked");
}
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementSecondaryClickMove(final String id, final NiftyMouseSecondaryClickedMovedEvent event) {
mouseEventsSecondaryText.setText("clicked mouse moved");
}
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementSecondaryRelease(final String id, final NiftyMouseSecondaryReleaseEvent event) {
mouseEventsSecondaryText.setText("");
}
// Tertiary
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementTertiaryClick(final String id, final NiftyMouseTertiaryClickedEvent event) {
mouseEventsTertiaryText.setText("clicked");
}
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementTertiaryClickMove(final String id, final NiftyMouseTertiaryClickedMovedEvent event) {
mouseEventsTertiaryText.setText("clicked mouse moved");
}
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementTertiaryRelease(final String id, final NiftyMouseTertiaryReleaseEvent event) {
mouseEventsTertiaryText.setText("");
}
// mouse move
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementMouseMove(final String id, @Nonnull final NiftyMouseMovedEvent event) {
mouseEventsMoveText.setText(event.getMouseX() + ", " + event.getMouseY());
}
// mouse wheel
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementMouseWheel(final String id, @Nonnull final NiftyMouseWheelEvent event) {
mouseEventsWheelText.setText(String.valueOf(event.getMouseWheel()));
}
// general
@NiftyEventSubscriber(id = "mouseEvents")
public void onElementMouse(final String id, @Nonnull final NiftyMouseEvent event) {
mouseEventsText.setText(
id + " -> " + event.getMouseX() + ", " + event.getMouseY() + ", " + event.getMouseWheel() + "\n" +
event.isButton0Down() + ", " + event.isButton1Down() + ", " + event.isButton2Down() + "\n" +
event.isButton0Release() + ", " + event.isButton1Release() + ", " + event.isButton2Release());
}
@Nonnull
@Override
public String getStartScreen() {
return "start";
}
@Nonnull
@Override
public String getMainXML() {
return "mouse/mouse.xml";
}
@Nonnull
@Override
public String getTitle() {
return "Nifty Mouse Control Example";
}
@Override
public void prepareStart(@Nonnull Nifty nifty) {
// get the NiftyMouse interface that gives us access to all mouse cursor related stuff
NiftyMouse niftyMouse = nifty.getNiftyMouse();
try {
// register/load a mouse cursor (this would be done somewhere at the beginning)
niftyMouse.registerMouseCursor("mouseId", "nifty-cursor.png", 0, 0);
// change the cursor to the one we've loaded before
niftyMouse.enableMouseCursor("mouseId");
} catch (IOException e) {
System.err.println("Failed to load mouse cursor!");
}
// we could set the position like so
niftyMouse.setMousePosition(20, 20);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy