@nativescript/core
Version:
A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.
57 lines • 1.67 kB
JavaScript
// cache the MeasureSpec constants here, to prevent extensive marshaling calls to and from Java
// TODO: While this boosts the performance it is error-prone in case Google changes these constants
export const MODE_SHIFT = 30;
export const MODE_MASK = 0x3 << MODE_SHIFT;
export const UNSPECIFIED = 0 << MODE_SHIFT;
export const EXACTLY = 1 << MODE_SHIFT;
export const AT_MOST = 2 << MODE_SHIFT;
export const MEASURED_HEIGHT_STATE_SHIFT = 0x00000010; /* 16 */
export const MEASURED_STATE_TOO_SMALL = 0x01000000;
export const MEASURED_STATE_MASK = 0xff000000;
export const MEASURED_SIZE_MASK = 0x00ffffff;
export function getMode(mode) {
switch (mode) {
case EXACTLY:
return 'Exact';
case AT_MOST:
return 'AtMost';
default:
return 'Unspecified';
}
}
export function getMeasureSpecMode(spec) {
return spec & MODE_MASK;
}
export function getMeasureSpecSize(spec) {
return spec & ~MODE_MASK;
}
export function measureSpecToString(measureSpec) {
const mode = getMeasureSpecMode(measureSpec);
const size = getMeasureSpecSize(measureSpec);
let text = 'MeasureSpec: ';
if (mode === UNSPECIFIED) {
text += 'UNSPECIFIED ';
}
else if (mode === EXACTLY) {
text += 'EXACTLY ';
}
else if (mode === AT_MOST) {
text += 'AT_MOST ';
}
text += size;
return text;
}
export function round(value) {
const res = Math.floor(value + 0.5);
if (res !== 0) {
return res;
}
else if (value === 0) {
return 0;
}
else if (value > 0) {
return 1;
}
return -1;
}
//# sourceMappingURL=layout-helper-common.js.map