![JAR search and dependency download from the Maven repository](/logo.png)
com.bugvm.apple.uikit.UIControl Maven / Gradle / Ivy
/*
* Copyright (C) 2013-2015 RoboVM AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.bugvm.apple.uikit;
/**/
import java.io.*;
import java.nio.*;
import java.util.*;
import com.bugvm.objc.*;
import com.bugvm.objc.annotation.*;
import com.bugvm.objc.block.*;
import com.bugvm.rt.*;
import com.bugvm.rt.annotation.*;
import com.bugvm.rt.bro.*;
import com.bugvm.rt.bro.annotation.*;
import com.bugvm.rt.bro.ptr.*;
import com.bugvm.apple.foundation.*;
import com.bugvm.apple.coreanimation.*;
import com.bugvm.apple.coregraphics.*;
import com.bugvm.apple.coredata.*;
import com.bugvm.apple.coreimage.*;
import com.bugvm.apple.coretext.*;
import com.bugvm.apple.corelocation.*;
/* */
/**/
/**
* @since Available in iOS 2.0 and later.
*/
/* */
/**/@Library("UIKit") @NativeClass/* */
/**/public/* */ class /**/UIControl/* */
extends /**/UIView/* */
/**//* */ {
/**/public static class UIControlPtr extends Ptr {}/* */
/**/static { ObjCRuntime.bind(UIControl.class); }/* */
/**//* */
/**/
public UIControl() {}
protected UIControl(long handle) { super(handle); }
protected UIControl(SkipInit skipInit) { super(skipInit); }
/* */
public UIControl(CGRect frame) {
super(frame);
}
/**/
@Property(selector = "isEnabled")
public native boolean isEnabled();
@Property(selector = "setEnabled:")
public native void setEnabled(boolean v);
@Property(selector = "isSelected")
public native boolean isSelected();
@Property(selector = "setSelected:")
public native void setSelected(boolean v);
@Property(selector = "isHighlighted")
public native boolean isHighlighted();
@Property(selector = "setHighlighted:")
public native void setHighlighted(boolean v);
@Property(selector = "contentVerticalAlignment")
public native UIControlContentVerticalAlignment getContentVerticalAlignment();
@Property(selector = "setContentVerticalAlignment:")
public native void setContentVerticalAlignment(UIControlContentVerticalAlignment v);
@Property(selector = "contentHorizontalAlignment")
public native UIControlContentHorizontalAlignment getContentHorizontalAlignment();
@Property(selector = "setContentHorizontalAlignment:")
public native void setContentHorizontalAlignment(UIControlContentHorizontalAlignment v);
@Property(selector = "state")
public native UIControlState getState();
@Property(selector = "isTracking")
public native boolean isTracking();
@Property(selector = "isTouchInside")
public native boolean isTouchInside();
/* */
/**//* */
private static final Selector handleTouchEvent = Selector.register("handleTouchEvent");
private static final Selector handleEvent = Selector.register("handleEvent");
private static class ListenerWrapper extends NSObject {
private final Listener listener;
private final UIControlEvents controlEvent;
private final Selector selector;
private ListenerWrapper(Listener listener, UIControlEvents controlEvent, Selector selector) {
this.listener = listener;
this.controlEvent = controlEvent;
this.selector = selector;
}
@Method(selector = "handleTouchEvent")
private void handleTouchEvent(UIControl control, UIEvent event) {
if (controlEvent == UIControlEvents.TouchDown) {
((OnTouchDownListener) listener).onTouchDown(control, event);
} else if (controlEvent == UIControlEvents.TouchUpInside) {
((OnTouchUpInsideListener) listener).onTouchUpInside(control, event);
} else if (controlEvent == UIControlEvents.TouchUpOutside) {
((OnTouchUpOutsideListener) listener).onTouchUpOutside(control, event);
} else if (controlEvent == UIControlEvents.TouchCancel) {
((OnTouchCancelListener) listener).onTouchCancel(control, event);
} else if (controlEvent == UIControlEvents.TouchDownRepeat) {
((OnTouchDownRepeatListener) listener).onTouchDownRepeat(control, event);
} else if (controlEvent == UIControlEvents.TouchDragEnter) {
((OnTouchDragEnterListener) listener).onTouchDragEnter(control, event);
} else if (controlEvent == UIControlEvents.TouchDragExit) {
((OnTouchDragExitListener) listener).onTouchDragExit(control, event);
} else if (controlEvent == UIControlEvents.TouchDragInside) {
((OnTouchDragInsideListener) listener).onTouchDragInside(control, event);
} else if (controlEvent == UIControlEvents.TouchDragOutside) {
((OnTouchDragOutsideListener) listener).onTouchDragOutside(control, event);
}
}
@Method(selector = "handleEvent")
private void handleEvent(UIControl control) {
if (controlEvent == UIControlEvents.ValueChanged) {
((OnValueChangedListener) listener).onValueChanged(control);
} else if (controlEvent == UIControlEvents.EditingChanged) {
((OnEditingChangedListener) listener).onEditingChanged(control);
} else if (controlEvent == UIControlEvents.EditingDidBegin) {
((OnEditingDidBeginListener) listener).onEditingDidBegin(control);
} else if (controlEvent == UIControlEvents.EditingDidEnd) {
((OnEditingDidEndListener) listener).onEditingDidEnd(control);
} else if (controlEvent == UIControlEvents.EditingDidEndOnExit) {
((OnEditingDidEndOnExitListener) listener).onEditingDidEndOnExit(control);
}
}
}
protected interface Listener {}
public interface OnTouchDownListener extends Listener {
void onTouchDown(UIControl control, UIEvent event);
}
public interface OnTouchDownRepeatListener extends Listener {
void onTouchDownRepeat(UIControl control, UIEvent event);
}
public interface OnTouchDragInsideListener extends Listener {
void onTouchDragInside(UIControl control, UIEvent event);
}
public interface OnTouchDragOutsideListener extends Listener {
void onTouchDragOutside(UIControl control, UIEvent event);
}
public interface OnTouchDragEnterListener extends Listener {
void onTouchDragEnter(UIControl control, UIEvent event);
}
public interface OnTouchDragExitListener extends Listener {
void onTouchDragExit(UIControl control, UIEvent event);
}
public interface OnTouchUpInsideListener extends Listener {
void onTouchUpInside(UIControl control, UIEvent event);
}
public interface OnTouchUpOutsideListener extends Listener {
void onTouchUpOutside(UIControl control, UIEvent event);
}
public interface OnTouchCancelListener extends Listener {
void onTouchCancel(UIControl control, UIEvent event);
}
public interface OnValueChangedListener extends Listener {
void onValueChanged(UIControl control);
}
public interface OnEditingDidBeginListener extends Listener {
void onEditingDidBegin(UIControl control);
}
public interface OnEditingChangedListener extends Listener {
void onEditingChanged(UIControl control);
}
public interface OnEditingDidEndListener extends Listener {
void onEditingDidEnd(UIControl control);
}
public interface OnEditingDidEndOnExitListener extends Listener {
void onEditingDidEndOnExit(UIControl control);
}
public void addOnTouchDownListener(OnTouchDownListener l) {
addListener(l, UIControlEvents.TouchDown);
}
public void addOnTouchDownRepeatListener(OnTouchDownRepeatListener l) {
addListener(l, UIControlEvents.TouchDownRepeat);
}
public void addOnTouchDragInsideListener(OnTouchDragInsideListener l) {
addListener(l, UIControlEvents.TouchDragInside);
}
public void addOnTouchDragOutsideListener(OnTouchDragOutsideListener l) {
addListener(l, UIControlEvents.TouchDragOutside);
}
public void addOnTouchDragEnterListener(OnTouchDragEnterListener l) {
addListener(l, UIControlEvents.TouchDragEnter);
}
public void addOnTouchDragExitListener(OnTouchDragExitListener l) {
addListener(l, UIControlEvents.TouchDragExit);
}
public void addOnTouchUpInsideListener(OnTouchUpInsideListener l) {
addListener(l, UIControlEvents.TouchUpInside);
}
public void addOnTouchUpOutsideListener(OnTouchUpOutsideListener l) {
addListener(l, UIControlEvents.TouchUpOutside);
}
public void addOnTouchCancelListener(OnTouchCancelListener l) {
addListener(l, UIControlEvents.TouchCancel);
}
public void addOnValueChangedListener(OnValueChangedListener l) {
addListener(l, UIControlEvents.ValueChanged);
}
public void addOnEditingDidBegin(OnEditingDidBeginListener l) {
addListener(l, UIControlEvents.EditingDidBegin);
}
public void addOnEditingChangedListener(OnEditingChangedListener l) {
addListener(l, UIControlEvents.EditingChanged);
}
public void addOnEditingDidEndListener(OnEditingDidEndListener l) {
addListener(l, UIControlEvents.EditingDidEnd);
}
public void addOnEditingDidEndOnExitListener(OnEditingDidEndOnExitListener l) {
addListener(l, UIControlEvents.EditingDidEndOnExit);
}
@SuppressWarnings("unchecked")
private List getListeners(boolean create) {
synchronized (UIControl.class) {
List listeners =
(List) getAssociatedObject(UIControl.class.getName() + ".listeners");
if (listeners == null && create) {
listeners = new LinkedList();
setAssociatedObject(UIControl.class.getName() + ".listeners", listeners);
}
return listeners;
}
}
private void addListener(Listener listener, UIControlEvents controlEvent) {
Selector selector = handleTouchEvent;
if (listener instanceof OnValueChangedListener
|| listener instanceof OnEditingChangedListener
|| listener instanceof OnEditingDidBeginListener
|| listener instanceof OnEditingDidEndListener
|| listener instanceof OnEditingDidEndOnExitListener) {
selector = handleEvent;
}
ListenerWrapper wrapper = new ListenerWrapper(listener, controlEvent, selector);
List listeners = getListeners(true);
synchronized (listeners) {
listeners.add(wrapper);
}
addTarget(wrapper, selector, controlEvent);
}
public void removeListener(Listener listener) {
List listeners = getListeners(false);
if (listeners == null) {
return;
}
synchronized (listeners) {
for (Iterator it = listeners.iterator(); it.hasNext();) {
ListenerWrapper wrapper = it.next();
if (wrapper.listener == listener) {
removeTarget(wrapper, wrapper.selector, wrapper.controlEvent);
it.remove();
break;
}
}
}
}
/**/
@Method(selector = "beginTrackingWithTouch:withEvent:")
public native boolean beginTracking(UITouch touch, UIEvent event);
@Method(selector = "continueTrackingWithTouch:withEvent:")
public native boolean continueTracking(UITouch touch, UIEvent event);
@Method(selector = "endTrackingWithTouch:withEvent:")
public native void endTracking(UITouch touch, UIEvent event);
@Method(selector = "cancelTrackingWithEvent:")
public native void cancelTracking(UIEvent event);
@Method(selector = "addTarget:action:forControlEvents:")
public native void addTarget(NSObject target, Selector action, UIControlEvents controlEvents);
@Method(selector = "removeTarget:action:forControlEvents:")
public native void removeTarget(NSObject target, Selector action, UIControlEvents controlEvents);
@Method(selector = "allTargets")
public native NSSet> getAllTargets();
@Method(selector = "allControlEvents")
public native UIControlEvents getAllControlEvents();
@Method(selector = "actionsForTarget:forControlEvent:")
public native @com.bugvm.rt.bro.annotation.Marshaler(NSArray.AsStringListMarshaler.class) List getActions(NSObject target, UIControlEvents controlEvent);
@Method(selector = "sendAction:to:forEvent:")
public native void sendAction(Selector action, NSObject target, UIEvent event);
@Method(selector = "sendActionsForControlEvents:")
public native void sendControlEventsActions(UIControlEvents controlEvents);
/* */
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy