All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.qt.gui.QScreen Maven / Gradle / Ivy

There is a newer version: 6.8.0
Show newest version
package io.qt.gui;

import io.qt.*;


/**
 * 

Used to query screen properties

*

Java wrapper for Qt class QScreen

*/ public final class QScreen extends io.qt.core.QObject { static { QtJambi_LibraryUtilities.initialize(); } /** * This variable stores the meta-object for the class. */ public static final io.qt.core.@NonNull QMetaObject staticMetaObject = io.qt.core.QMetaObject.forType(QScreen.class); /** *

See QScreen::availableGeometryChanged(QRect)

*/ @QtPropertyNotify(name="availableSize") public final @NonNull Signal1 availableGeometryChanged = new Signal1<>(); /** *

See QScreen::geometryChanged(QRect)

*/ @QtPropertyNotify(name="size") public final @NonNull Signal1 geometryChanged = new Signal1<>(); /** *

See QScreen::logicalDotsPerInchChanged(qreal)

*/ @QtPropertyNotify(name="logicalDotsPerInchX") public final @NonNull Signal1 logicalDotsPerInchChanged = new Signal1<>(); /** *

See QScreen::orientationChanged(Qt::ScreenOrientation)

*/ @QtPropertyNotify(name="orientation") public final @NonNull Signal1 orientationChanged = new Signal1<>(); /** *

See QScreen::physicalDotsPerInchChanged(qreal)

*/ @QtPropertyNotify(name="physicalDotsPerInchX") public final @NonNull Signal1 physicalDotsPerInchChanged = new Signal1<>(); /** *

See QScreen::physicalSizeChanged(QSizeF)

*/ @QtPropertyNotify(name="physicalSize") public final @NonNull Signal1 physicalSizeChanged = new Signal1<>(); /** *

See QScreen::primaryOrientationChanged(Qt::ScreenOrientation)

*/ @QtPropertyNotify(name="primaryOrientation") public final @NonNull Signal1 primaryOrientationChanged = new Signal1<>(); /** *

See QScreen::refreshRateChanged(qreal)

*/ @QtPropertyNotify(name="refreshRate") public final @NonNull Signal1 refreshRateChanged = new Signal1<>(); /** *

See QScreen::virtualGeometryChanged(QRect)

*/ @QtPropertyNotify(name="virtualSize") public final @NonNull Signal1 virtualGeometryChanged = new Signal1<>(); /** *

See QScreen::angleBetween(Qt::ScreenOrientation,Qt::ScreenOrientation)const

*/ @QtUninvokable public final int angleBetween(io.qt.core.Qt.@NonNull ScreenOrientation a, io.qt.core.Qt.@NonNull ScreenOrientation b){ return angleBetween_native_Qt_ScreenOrientation_Qt_ScreenOrientation_constfct(QtJambi_LibraryUtilities.internal.nativeId(this), a.value(), b.value()); } @QtUninvokable private native int angleBetween_native_Qt_ScreenOrientation_Qt_ScreenOrientation_constfct(long __this__nativeId, int a, int b); /** *

See QScreen::availableGeometry()const

*/ @QtPropertyReader(name="availableGeometry") @QtUninvokable public final io.qt.core.@NonNull QRect availableGeometry(){ return availableGeometry_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QRect availableGeometry_native_constfct(long __this__nativeId); /** *

See QScreen::availableSize()const

*/ @QtPropertyReader(name="availableSize") @QtUninvokable public final io.qt.core.@NonNull QSize availableSize(){ return availableSize_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QSize availableSize_native_constfct(long __this__nativeId); /** *

See QScreen::availableVirtualGeometry()const

*/ @QtPropertyReader(name="availableVirtualGeometry") @QtUninvokable public final io.qt.core.@NonNull QRect availableVirtualGeometry(){ return availableVirtualGeometry_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QRect availableVirtualGeometry_native_constfct(long __this__nativeId); /** *

See QScreen::availableVirtualSize()const

*/ @QtPropertyReader(name="availableVirtualSize") @QtUninvokable public final io.qt.core.@NonNull QSize availableVirtualSize(){ return availableVirtualSize_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QSize availableVirtualSize_native_constfct(long __this__nativeId); /** *

See QScreen::depth()const

*/ @QtPropertyReader(name="depth") @QtPropertyConstant @QtUninvokable public final int depth(){ return depth_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native int depth_native_constfct(long __this__nativeId); /** *

See QScreen::devicePixelRatio()const

*/ @QtPropertyReader(name="devicePixelRatio") @QtUninvokable public final double devicePixelRatio(){ return devicePixelRatio_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double devicePixelRatio_native_constfct(long __this__nativeId); /** *

See QScreen::geometry()const

*/ @QtPropertyReader(name="geometry") @QtUninvokable public final io.qt.core.@NonNull QRect geometry(){ return geometry_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QRect geometry_native_constfct(long __this__nativeId); /** *

See QScreen::grabWindow(WId,int,int,int,int)

*/ @QtUninvokable public final io.qt.gui.@NonNull QPixmap grabWindow(long window, int x, int y, int w, int h){ return grabWindow_native_WId_int_int_int_int(QtJambi_LibraryUtilities.internal.nativeId(this), window, x, y, w, h); } @QtUninvokable private native io.qt.gui.QPixmap grabWindow_native_WId_int_int_int_int(long __this__nativeId, long window, int x, int y, int w, int h); /** *

See QScreen::isLandscape(Qt::ScreenOrientation)const

*/ @QtUninvokable public final boolean isLandscape(io.qt.core.Qt.@NonNull ScreenOrientation orientation){ return isLandscape_native_Qt_ScreenOrientation_constfct(QtJambi_LibraryUtilities.internal.nativeId(this), orientation.value()); } @QtUninvokable private native boolean isLandscape_native_Qt_ScreenOrientation_constfct(long __this__nativeId, int orientation); /** *

See QScreen::isPortrait(Qt::ScreenOrientation)const

*/ @QtUninvokable public final boolean isPortrait(io.qt.core.Qt.@NonNull ScreenOrientation orientation){ return isPortrait_native_Qt_ScreenOrientation_constfct(QtJambi_LibraryUtilities.internal.nativeId(this), orientation.value()); } @QtUninvokable private native boolean isPortrait_native_Qt_ScreenOrientation_constfct(long __this__nativeId, int orientation); /** *

See QScreen::logicalDotsPerInch()const

*/ @QtPropertyReader(name="logicalDotsPerInch") @QtUninvokable public final double logicalDotsPerInch(){ return logicalDotsPerInch_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double logicalDotsPerInch_native_constfct(long __this__nativeId); /** *

See QScreen::logicalDotsPerInchX()const

*/ @QtPropertyReader(name="logicalDotsPerInchX") @QtUninvokable public final double logicalDotsPerInchX(){ return logicalDotsPerInchX_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double logicalDotsPerInchX_native_constfct(long __this__nativeId); /** *

See QScreen::logicalDotsPerInchY()const

*/ @QtPropertyReader(name="logicalDotsPerInchY") @QtUninvokable public final double logicalDotsPerInchY(){ return logicalDotsPerInchY_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double logicalDotsPerInchY_native_constfct(long __this__nativeId); /** *

See QScreen::manufacturer()const

*/ @QtPropertyReader(name="manufacturer") @QtPropertyConstant @QtUninvokable public final java.lang.@NonNull String manufacturer(){ return manufacturer_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native java.lang.String manufacturer_native_constfct(long __this__nativeId); /** *

See QScreen::mapBetween(Qt::ScreenOrientation,Qt::ScreenOrientation,QRect)const

*/ @QtUninvokable public final io.qt.core.@NonNull QRect mapBetween(io.qt.core.Qt.@NonNull ScreenOrientation a, io.qt.core.Qt.@NonNull ScreenOrientation b, io.qt.core.@NonNull QRect rect){ return mapBetween_native_Qt_ScreenOrientation_Qt_ScreenOrientation_cref_QRect_constfct(QtJambi_LibraryUtilities.internal.nativeId(this), a.value(), b.value(), QtJambi_LibraryUtilities.internal.checkedNativeId(rect)); } @QtUninvokable private native io.qt.core.QRect mapBetween_native_Qt_ScreenOrientation_Qt_ScreenOrientation_cref_QRect_constfct(long __this__nativeId, int a, int b, long rect); /** *

See QScreen::model()const

*/ @QtPropertyReader(name="model") @QtPropertyConstant @QtUninvokable public final java.lang.@NonNull String model(){ return model_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native java.lang.String model_native_constfct(long __this__nativeId); /** *

See QScreen::name()const

*/ @QtPropertyReader(name="name") @QtPropertyConstant @QtUninvokable public final java.lang.@NonNull String name(){ return name_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native java.lang.String name_native_constfct(long __this__nativeId); /** *

See QScreen::nativeOrientation()const

*/ @QtPropertyReader(name="nativeOrientation") @QtUninvokable public final io.qt.core.Qt.@NonNull ScreenOrientation nativeOrientation(){ return io.qt.core.Qt.ScreenOrientation.resolve(nativeOrientation_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this))); } @QtUninvokable private native int nativeOrientation_native_constfct(long __this__nativeId); /** *

See QScreen::orientation()const

*/ @QtPropertyReader(name="orientation") @QtUninvokable public final io.qt.core.Qt.@NonNull ScreenOrientation orientation(){ return io.qt.core.Qt.ScreenOrientation.resolve(orientation_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this))); } @QtUninvokable private native int orientation_native_constfct(long __this__nativeId); /** *

See QScreen::physicalDotsPerInch()const

*/ @QtPropertyReader(name="physicalDotsPerInch") @QtUninvokable public final double physicalDotsPerInch(){ return physicalDotsPerInch_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double physicalDotsPerInch_native_constfct(long __this__nativeId); /** *

See QScreen::physicalDotsPerInchX()const

*/ @QtPropertyReader(name="physicalDotsPerInchX") @QtUninvokable public final double physicalDotsPerInchX(){ return physicalDotsPerInchX_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double physicalDotsPerInchX_native_constfct(long __this__nativeId); /** *

See QScreen::physicalDotsPerInchY()const

*/ @QtPropertyReader(name="physicalDotsPerInchY") @QtUninvokable public final double physicalDotsPerInchY(){ return physicalDotsPerInchY_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double physicalDotsPerInchY_native_constfct(long __this__nativeId); /** *

See QScreen::physicalSize()const

*/ @QtPropertyReader(name="physicalSize") @QtUninvokable public final io.qt.core.@NonNull QSizeF physicalSize(){ return physicalSize_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QSizeF physicalSize_native_constfct(long __this__nativeId); /** *

See QScreen::primaryOrientation()const

*/ @QtPropertyReader(name="primaryOrientation") @QtUninvokable public final io.qt.core.Qt.@NonNull ScreenOrientation primaryOrientation(){ return io.qt.core.Qt.ScreenOrientation.resolve(primaryOrientation_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this))); } @QtUninvokable private native int primaryOrientation_native_constfct(long __this__nativeId); /** *

See QScreen::refreshRate()const

*/ @QtPropertyReader(name="refreshRate") @QtUninvokable public final double refreshRate(){ return refreshRate_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native double refreshRate_native_constfct(long __this__nativeId); /** *

See QScreen::serialNumber()const

*/ @QtPropertyReader(name="serialNumber") @QtPropertyConstant @QtUninvokable public final java.lang.@NonNull String serialNumber(){ return serialNumber_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native java.lang.String serialNumber_native_constfct(long __this__nativeId); /** *

See QScreen::size()const

*/ @QtPropertyReader(name="size") @QtUninvokable public final io.qt.core.@NonNull QSize size(){ return size_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QSize size_native_constfct(long __this__nativeId); /** *

See QScreen::transformBetween(Qt::ScreenOrientation,Qt::ScreenOrientation,QRect)const

*/ @QtUninvokable public final io.qt.gui.@NonNull QTransform transformBetween(io.qt.core.Qt.@NonNull ScreenOrientation a, io.qt.core.Qt.@NonNull ScreenOrientation b, io.qt.core.@NonNull QRect target){ return transformBetween_native_Qt_ScreenOrientation_Qt_ScreenOrientation_cref_QRect_constfct(QtJambi_LibraryUtilities.internal.nativeId(this), a.value(), b.value(), QtJambi_LibraryUtilities.internal.checkedNativeId(target)); } @QtUninvokable private native io.qt.gui.QTransform transformBetween_native_Qt_ScreenOrientation_Qt_ScreenOrientation_cref_QRect_constfct(long __this__nativeId, int a, int b, long target); /** *

See QScreen::virtualGeometry()const

*/ @QtPropertyReader(name="virtualGeometry") @QtUninvokable public final io.qt.core.@NonNull QRect virtualGeometry(){ return virtualGeometry_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QRect virtualGeometry_native_constfct(long __this__nativeId); /** *

See QScreen::virtualSiblingAt(QPoint)

*/ @QtUninvokable public final io.qt.gui.@Nullable QScreen virtualSiblingAt(io.qt.core.@NonNull QPoint point){ return virtualSiblingAt_native_QPoint(QtJambi_LibraryUtilities.internal.nativeId(this), QtJambi_LibraryUtilities.internal.checkedNativeId(point)); } @QtUninvokable private native io.qt.gui.QScreen virtualSiblingAt_native_QPoint(long __this__nativeId, long point); /** *

See QScreen::virtualSiblings()const

*/ @QtUninvokable public final io.qt.core.@NonNull QList virtualSiblings(){ return virtualSiblings_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QList virtualSiblings_native_constfct(long __this__nativeId); /** *

See QScreen::virtualSize()const

*/ @QtPropertyReader(name="virtualSize") @QtUninvokable public final io.qt.core.@NonNull QSize virtualSize(){ return virtualSize_native_constfct(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private native io.qt.core.QSize virtualSize_native_constfct(long __this__nativeId); /** * Constructor for internal use only. * @param p expected to be null. * @hidden */ @NativeAccess protected QScreen(QPrivateConstructor p) { super(p); } @QtUninvokable public final QNativeInterface nativeInterface(java.lang.Class name){ return nativeInterface(QtJambi_LibraryUtilities.internal.nativeId(this), name); } @QtUninvokable private native QNativeInterface nativeInterface(long __this__nativeId, java.lang.Class name); /** *

See operator<<(QDebug,const QScreen*)

*/ @QtUninvokable @Override public @NonNull String toString() { return toString_native(QtJambi_LibraryUtilities.internal.nativeId(this)); } @QtUninvokable private static native String toString_native(long __this_nativeId); /** * @hidden *

Kotlin property getter. In Java use {@link #availableGeometry()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QRect getAvailableGeometry() { return availableGeometry(); } /** * @hidden *

Kotlin property getter. In Java use {@link #availableSize()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QSize getAvailableSize() { return availableSize(); } /** * @hidden *

Kotlin property getter. In Java use {@link #availableVirtualGeometry()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QRect getAvailableVirtualGeometry() { return availableVirtualGeometry(); } /** * @hidden *

Kotlin property getter. In Java use {@link #availableVirtualSize()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QSize getAvailableVirtualSize() { return availableVirtualSize(); } /** * @hidden *

Kotlin property getter. In Java use {@link #depth()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final int getDepth() { return depth(); } /** * @hidden *

Kotlin property getter. In Java use {@link #devicePixelRatio()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getDevicePixelRatio() { return devicePixelRatio(); } /** * @hidden *

Kotlin property getter. In Java use {@link #geometry()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QRect getGeometry() { return geometry(); } /** *

Overloaded function for {@link #grabWindow(long, int, int, int, int)} * with h = -1.

*/ @QtUninvokable public final io.qt.gui.@NonNull QPixmap grabWindow(long window, int x, int y, int w) { return grabWindow(window, x, y, w, (int)-1); } /** *

Overloaded function for {@link #grabWindow(long, int, int, int, int)}

*

with:

    *
  • w = -1
  • *
  • h = -1
  • *
*/ @QtUninvokable public final io.qt.gui.@NonNull QPixmap grabWindow(long window, int x, int y) { return grabWindow(window, x, y, (int)-1, (int)-1); } /** *

Overloaded function for {@link #grabWindow(long, int, int, int, int)}

*

with:

    *
  • y = 0
  • *
  • w = -1
  • *
  • h = -1
  • *
*/ @QtUninvokable public final io.qt.gui.@NonNull QPixmap grabWindow(long window, int x) { return grabWindow(window, x, (int)0, (int)-1, (int)-1); } /** *

Overloaded function for {@link #grabWindow(long, int, int, int, int)}

*

with:

    *
  • x = 0
  • *
  • y = 0
  • *
  • w = -1
  • *
  • h = -1
  • *
*/ @QtUninvokable public final io.qt.gui.@NonNull QPixmap grabWindow(long window) { return grabWindow(window, (int)0, (int)0, (int)-1, (int)-1); } /** *

Overloaded function for {@link #grabWindow(long, int, int, int, int)}

*

with:

    *
  • window = 0
  • *
  • x = 0
  • *
  • y = 0
  • *
  • w = -1
  • *
  • h = -1
  • *
*/ @QtUninvokable public final io.qt.gui.@NonNull QPixmap grabWindow() { return grabWindow((long)0, (int)0, (int)0, (int)-1, (int)-1); } /** * @hidden *

Kotlin property getter. In Java use {@link #logicalDotsPerInch()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getLogicalDotsPerInch() { return logicalDotsPerInch(); } /** * @hidden *

Kotlin property getter. In Java use {@link #logicalDotsPerInchX()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getLogicalDotsPerInchX() { return logicalDotsPerInchX(); } /** * @hidden *

Kotlin property getter. In Java use {@link #logicalDotsPerInchY()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getLogicalDotsPerInchY() { return logicalDotsPerInchY(); } /** * @hidden *

Kotlin property getter. In Java use {@link #manufacturer()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final java.lang.@NonNull String getManufacturer() { return manufacturer(); } /** * @hidden *

Kotlin property getter. In Java use {@link #model()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final java.lang.@NonNull String getModel() { return model(); } /** * @hidden *

Kotlin property getter. In Java use {@link #name()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final java.lang.@NonNull String getName() { return name(); } /** * @hidden *

Kotlin property getter. In Java use {@link #nativeOrientation()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.Qt.@NonNull ScreenOrientation getNativeOrientation() { return nativeOrientation(); } /** * @hidden *

Kotlin property getter. In Java use {@link #orientation()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.Qt.@NonNull ScreenOrientation getOrientation() { return orientation(); } /** * @hidden *

Kotlin property getter. In Java use {@link #physicalDotsPerInch()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getPhysicalDotsPerInch() { return physicalDotsPerInch(); } /** * @hidden *

Kotlin property getter. In Java use {@link #physicalDotsPerInchX()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getPhysicalDotsPerInchX() { return physicalDotsPerInchX(); } /** * @hidden *

Kotlin property getter. In Java use {@link #physicalDotsPerInchY()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getPhysicalDotsPerInchY() { return physicalDotsPerInchY(); } /** * @hidden *

Kotlin property getter. In Java use {@link #physicalSize()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QSizeF getPhysicalSize() { return physicalSize(); } /** * @hidden *

Kotlin property getter. In Java use {@link #primaryOrientation()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.Qt.@NonNull ScreenOrientation getPrimaryOrientation() { return primaryOrientation(); } /** * @hidden *

Kotlin property getter. In Java use {@link #refreshRate()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final double getRefreshRate() { return refreshRate(); } /** * @hidden *

Kotlin property getter. In Java use {@link #serialNumber()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final java.lang.@NonNull String getSerialNumber() { return serialNumber(); } /** * @hidden *

Kotlin property getter. In Java use {@link #size()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QSize getSize() { return size(); } /** * @hidden *

Kotlin property getter. In Java use {@link #virtualGeometry()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QRect getVirtualGeometry() { return virtualGeometry(); } /** * @hidden *

Kotlin property getter. In Java use {@link #virtualSize()} instead.

*/ @QtPropertyReader(enabled=false) @QtUninvokable public final io.qt.core.@NonNull QSize getVirtualSize() { return virtualSize(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy