babylon.gui.label.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. module BABYLON {
  2. @className("Label", "BABYLON")
  3. export class Label extends Control {
  4. static textProperty: Prim2DPropInfo;
  5. constructor(settings?: {
  6. id ?: string,
  7. parent ?: UIElement,
  8. templateName ?: string,
  9. styleName ?: string,
  10. text ?: string,
  11. marginTop ?: number | string,
  12. marginLeft ?: number | string,
  13. marginRight ?: number | string,
  14. marginBottom ?: number | string,
  15. margin ?: number | string,
  16. marginHAlignment?: number,
  17. marginVAlignment?: number,
  18. marginAlignment ?: string,
  19. paddingTop ?: number | string,
  20. paddingLeft ?: number | string,
  21. paddingRight ?: number | string,
  22. paddingBottom ?: number | string,
  23. padding ?: string,
  24. }) {
  25. if (!settings) {
  26. settings = {};
  27. }
  28. super(settings);
  29. if (settings.text != null) {
  30. this.text = settings.text;
  31. }
  32. }
  33. protected get _position(): Vector2 {
  34. return Vector2.Zero();
  35. }
  36. private static _emptyArray = new Array<UIElement>();
  37. protected _getChildren(): UIElement[] {
  38. return Label._emptyArray;
  39. }
  40. protected createVisualTree() {
  41. super.createVisualTree();
  42. let p = this._visualChildrenPlaceholder;
  43. }
  44. @dependencyProperty(Control.CONTROL_PROPCOUNT + 0, pi => Label.textProperty = pi)
  45. public get text(): string {
  46. return this._text;
  47. }
  48. public set text(value: string) {
  49. this._text = value;
  50. }
  51. private _text: string;
  52. }
  53. @registerWindowRenderingTemplate("BABYLON.Label", "Default", () => new DefaultLabelRenderingTemplate())
  54. export class DefaultLabelRenderingTemplate extends UIElementRenderingTemplateBase {
  55. createVisualTree(owner: UIElement, visualPlaceholder: Group2D): { root: Prim2DBase; contentPlaceholder: Prim2DBase } {
  56. let r = new Text2D("", { parent: visualPlaceholder });
  57. r.createSimpleDataBinding(Text2D.textProperty, "text");
  58. r.dataSource = <any>owner;
  59. return { root: r, contentPlaceholder: r };
  60. }
  61. }
  62. }