package org.robovm.bindings.admob;
import org.robovm.apple.coregraphics.CGSize;
import org.robovm.apple.foundation.NSObject;
import org.robovm.objc.annotation.Method;
import org.robovm.objc.annotation.NativeClass;
import org.robovm.rt.bro.annotation.ByVal;
/** A valid GADAdSize is considered to be one of the predefined GADAdSize constants or a GADAdSize constructed by
* {@link #getGADAdSize(CGSize)}, {@link #getFullWidthPortrait(float)}, {@link #getFullWidthLandscape(float)}.
*
* To obtain a concrete CGSize, use the function {@link #getCGSize(GADAdSize)}. */
@NativeClass("GADAdSizeWrapped")
public final class GADAdSizeManager extends NSObject {
private GADAdSizeManager () {
}
/** @return iPhone and iPod Touch ad size. Typically 320x50. */
@Method(selector = "banner")
public static native @ByVal
GADAdSize banner ();
/** @return Medium Rectangle size for the iPad (especially in a UISplitView's left pane). Typically 300x250. */
@Method(selector = "mediumRectangle")
public static native @ByVal
GADAdSize mediumRectangle ();
/** @return Full Banner size for the iPad (especially in a UIPopoverController or in UIModalPresentationFormSheet). Typically
* 468x60. */
@Method(selector = "fullBanner")
public static native @ByVal
GADAdSize fullBanner ();
/** @return Leaderboard size for the iPad. Typically 728x90. */
@Method(selector = "leaderboard")
public static native @ByVal
GADAdSize leaderboard ();
/** @return Skyscraper size for the iPad. Mediation only. AdMob/Google does not offer this size. Typically 120x600. */
@Method(selector = "skyscraper")
public static native @ByVal
GADAdSize skyscraper ();
/** @return An ad size that spans the full width of the application in portrait orientation. The height is typically 50 pixels on
* an iPhone/iPod UI, and 90 pixels tall on an iPad UI. */
@Method(selector = "smartBannerPortrait")
public static native @ByVal
GADAdSize smartBannerPortrait ();
/** @return An ad size that spans the full width of the application in landscape orientation. The height is typically 32 pixels
* on an iPhone/iPod UI, and 90 pixels tall on an iPad UI. */
@Method(selector = "smartBannerLandscape")
public static native @ByVal
GADAdSize smartBannerLandscape ();
/** @return Invalid ad size marker. */
@Method(selector = "invalid")
public static native @ByVal
GADAdSize invalid ();
/** Given a CGSize, return a custom GADAdSize. Use this only if you require a non-standard size, otherwise, use one of the
* standard size constants above.
* @param size
* @return */
@Method(selector = "fromCGSize:")
public static native @ByVal
GADAdSize getGADAdSize (@ByVal CGSize size);
/** Get a custom GADAdSize that spans the full width of the application in portrait orientation with the height provided.
* @param height
* @return */
@Method(selector = "fullWidthPortraitWithHeight:")
public static native @ByVal
GADAdSize getFullWidthPortrait (float height);
/** Get a custom GADAdSize that spans the full width of the application in landscape orientation with the height provided.
* @param height
* @return */
@Method(selector = "fullWidthLandscapeWithHeight:")
public static native @ByVal
GADAdSize getFullWidthLandscape (float height);
@Method(selector = "equalToSize:")
public static native boolean equals (@ByVal GADAdSize size1, @ByVal GADAdSize size2);
/** Given a GADAdSize constant, returns a {@link CGSize}. If the GADAdSize is unknown, returns {@link CGSize#Zero()}.
* @param size
* @return */
@Method(selector = "fromAdSize:")
public static native @ByVal
CGSize getCGSize (@ByVal GADAdSize size);
/** @return {@code true} if size is one of the predefined constants or is a custom GADAdSize generated by
* {@link #getGADAdSize(CGSize)}. */
@Method(selector = "isValid:")
public static native boolean isValid (@ByVal GADAdSize size);
/** @return Given a GADAdSize constant, returns a String describing the GADAdSize. */
@Method(selector = "toString:")
public static native String toString (@ByVal GADAdSize size);
}