public int processEvent(MiEvent event) { if ((event.type == Mi_WINDOW_EXIT_EVENT) || (event.type == Mi_MOUSE_EXIT_EVENT)) { setVisible(false); visible = false; } else if ((event.type != Mi_IDLE_EVENT) && (event.type != Mi_TIMER_TICK_EVENT)) { if (!cursorIsAttached) { event.editor.appendAttachment(cursor); cursorIsAttached = true; } boolean makeVisible = true; if (showOnlyDuringTheseEventStates != null) { for (int i = 0; i < showOnlyDuringTheseEventStates.size(); ++i) { makeVisible = false; MiEvent validEvent = (MiEvent) showOnlyDuringTheseEventStates.get(i); if (((validEvent.getModifiers() == event.getModifiers()) || (validEvent.getModifiers() == Mi_ANY_MODIFIERS_HELD_DOWN)) && (validEvent.getMouseButtonState() == event.getMouseButtonState())) { makeVisible = true; break; } } } if (hideDuringTheseEventStates != null) { for (int i = 0; i < hideDuringTheseEventStates.size(); ++i) { MiEvent validEvent = (MiEvent) hideDuringTheseEventStates.get(i); if (((validEvent.getModifiers() == event.getModifiers()) || (validEvent.getModifiers() == Mi_ANY_MODIFIERS_HELD_DOWN)) && (validEvent.getMouseButtonState() == event.getMouseButtonState())) { makeVisible = false; break; } } } if (makeVisible) { event.editor.getWorldBounds(editorWorld); if ((!event.worldPt.equals(cursorPt)) || (!editorWorld.equals(cursorWorldBounds))) { cursorPt.copy(event.worldPt); cursorWorldBounds.copy(editorWorld); setCursor(cursorPt, cursorWorldBounds); if (!visible) { setVisible(true); visible = true; } } } else { setVisible(false); visible = false; } } return (Mi_PROPOGATE_EVENT); }