mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 03:31:45 +08:00
171 lines
7.2 KiB
TypeScript
171 lines
7.2 KiB
TypeScript
//@private
|
|
declare module "ui/styling/style" {
|
|
import styling = require("ui/styling");
|
|
import {DependencyObservable, Property} from "ui/core/dependency-observable";
|
|
import {View} from "ui/core/view";
|
|
import {Color} from "color";
|
|
import styleProperty = require("ui/styling/style-property");
|
|
|
|
export interface Thickness {
|
|
left: number;
|
|
top: number;
|
|
right: number;
|
|
bottom: number;
|
|
}
|
|
|
|
export interface CommonLayoutParams {
|
|
width: number;
|
|
height: number;
|
|
|
|
widthPercent: number;
|
|
heightPercent: number;
|
|
|
|
leftMargin: number;
|
|
topMargin: number;
|
|
rightMargin: number;
|
|
bottomMargin: number;
|
|
|
|
leftMarginPercent: number;
|
|
topMarginPercent: number;
|
|
rightMarginPercent: number;
|
|
bottomMarginPercent: number;
|
|
|
|
horizontalAlignment: string;
|
|
verticalAlignment: string;
|
|
}
|
|
|
|
export class Style extends DependencyObservable implements styling.Style {
|
|
public color: Color;
|
|
public backgroundColor: Color;
|
|
public backgroundImage: string;
|
|
public backpublic: string;
|
|
public backgroundSize: string;
|
|
public backgroundPosition: string;
|
|
public backgroundRepeat: string;
|
|
public borderColor: Color;
|
|
public borderWidth: number;
|
|
public borderRadius: number;
|
|
public fontSize: number;
|
|
public fontFamily: string;
|
|
public fontStyle: string;
|
|
public fontWeight: string;
|
|
public font: string;
|
|
public textAlignment: string;
|
|
public textDecoration: string;
|
|
public textTransform: string;
|
|
public minWidth: number;
|
|
public minHeight: number;
|
|
public width: number;
|
|
public height: number;
|
|
public margin: string;
|
|
public marginLeft: number;
|
|
public marginTop: number;
|
|
public marginRight: number;
|
|
public marginBottom: number;
|
|
public padding: string;
|
|
public paddingLeft: number;
|
|
public paddingTop: number;
|
|
public paddingRight: number;
|
|
public paddingBottom: number;
|
|
public horizontalAlignment: string;
|
|
public verticalAlignment: string;
|
|
public visibility: string;
|
|
public opacity: number;
|
|
public whiteSpace: string;
|
|
|
|
constructor(parentView: View);
|
|
|
|
public _beginUpdate();
|
|
public _endUpdate();
|
|
public _resetCssValues(): void;
|
|
public _syncNativeProperties(): void;
|
|
public _inheritStyleProperty(property: Property): void;
|
|
public _inheritStyleProperties(): void;
|
|
public _boundsChanged(): void;
|
|
public _updateTextDecoration(): void;
|
|
public _updateTextTransform(): void;
|
|
}
|
|
|
|
export function registerNoStylingClass(className);
|
|
export function getHandler(property: Property, view: View): StylePropertyChangedHandler;
|
|
// Property registration
|
|
export var colorProperty: styleProperty.Property;
|
|
export var backgroundImageProperty: styleProperty.Property;
|
|
export var backgroundColorProperty: styleProperty.Property;
|
|
export var backgroundRepeatProperty: styleProperty.Property;
|
|
export var backgroundSizeProperty: styleProperty.Property;
|
|
export var backgroundPositionProperty: styleProperty.Property;
|
|
export var borderColorProperty: styleProperty.Property;
|
|
export var borderWidthProperty: styleProperty.Property;
|
|
export var borderRadiusProperty: styleProperty.Property;
|
|
export var backgroundInternalProperty: styleProperty.Property;
|
|
export var fontSizeProperty: styleProperty.Property;
|
|
export var fontFamilyProperty: styleProperty.Property;
|
|
export var fontStyleProperty: styleProperty.Property;
|
|
export var fontWeightProperty: styleProperty.Property;
|
|
export var fontInternalProperty: styleProperty.Property;
|
|
export var textAlignmentProperty: styleProperty.Property;
|
|
export var minWidthProperty: styleProperty.Property;
|
|
export var minHeightProperty: styleProperty.Property;
|
|
export var visibilityProperty: styleProperty.Property;
|
|
export var opacityProperty: styleProperty.Property;
|
|
export var textDecorationProperty: styleProperty.Property;
|
|
export var textTransformProperty: styleProperty.Property;
|
|
export var whiteSpaceProperty: styleProperty.Property;
|
|
|
|
// Helper property holding most layout related properties available in CSS.
|
|
// When layout related properties are set in CSS we chache them and send them to the native view in a single call.
|
|
export var nativeLayoutParamsProperty: styleProperty.Property;
|
|
export var widthProperty: styleProperty.Property;
|
|
export var heightProperty: styleProperty.Property;
|
|
export var verticalAlignmentProperty: styleProperty.Property;
|
|
export var horizontalAlignmentProperty: styleProperty.Property;
|
|
export var marginLeftProperty: styleProperty.Property;
|
|
export var marginRightProperty: styleProperty.Property;
|
|
export var marginTopProperty: styleProperty.Property;
|
|
export var marginBottomProperty: styleProperty.Property;
|
|
|
|
// Helper property holding all paddings. When paddings are set through CSS we cache them and send them to the native view in a single call.
|
|
export var nativePaddingsProperty: styleProperty.Property;
|
|
export var paddingLeftProperty: styleProperty.Property;
|
|
export var paddingRightProperty: styleProperty.Property;
|
|
export var paddingTopProperty: styleProperty.Property;
|
|
export var paddingBottomProperty: styleProperty.Property;
|
|
|
|
/**
|
|
* Represents an object that defines how style property should be applied on a native view/widget.
|
|
*/
|
|
export class StylePropertyChangedHandler {
|
|
/**
|
|
* Creates a new StylePropertyChangedHandler object.
|
|
* @param applyCallback - called when a property value should be applied onto the native view/widget.
|
|
* @param resetCallback - called when the property value is cleared to restore the native view/widget in its original state. The callback
|
|
* also receives as a parameter the value stored by the getNativeValue callback.
|
|
* @param getNativeValue - called when a style property is set for the first time to get the default native value for this property
|
|
* in the native view/widget. This value will be passed to resetCallback in case the property value is cleared. Optional.
|
|
*/
|
|
constructor(applyCallback: (view: View, newValue: any) => void,
|
|
resetCallback: (view: View, nativeValue: any) => void,
|
|
getNativeValue?: (view: View) => any);
|
|
}
|
|
|
|
/**
|
|
* Represents a sceleton for an object that holds all style related callbacks and registers handlers.
|
|
* Used for better code readability.
|
|
*/
|
|
export class Styler {
|
|
public static registerHandlers();
|
|
}
|
|
|
|
/**
|
|
* A function that actually registers a property with a StylePropertyChangedHandler.
|
|
* @param property - Usually a style dependency property which should be registered for style changes.
|
|
* @param handler - The handler that reacts on property changes.
|
|
* @param className(optional) - This parameter (when set) registers handler only for the class with that name and all its inheritors.
|
|
*/
|
|
export function registerHandler(property: Property, handler: StylePropertyChangedHandler, className?: string);
|
|
|
|
export var ignorePropertyHandler;
|
|
|
|
}
|