source: trunk/design/ui/source/wui-widgets-labels.adb

Last change on this file was 5720, checked in by vadim.godunko, 8 months ago

Add convinient constructor.

  • Property svn:keywords set to Author Date Revision
File size: 5.2 KB
Line 
1------------------------------------------------------------------------------
2--                                                                          --
3--                            Matreshka Project                             --
4--                                                                          --
5--                               Web Framework                              --
6--                                                                          --
7--                        Runtime Library Component                         --
8--                                                                          --
9------------------------------------------------------------------------------
10--                                                                          --
11-- Copyright © 2017, Vadim Godunko <vgodunko@gmail.com>                     --
12-- All rights reserved.                                                     --
13--                                                                          --
14-- Redistribution and use in source and binary forms, with or without       --
15-- modification, are permitted provided that the following conditions       --
16-- are met:                                                                 --
17--                                                                          --
18--  * Redistributions of source code must retain the above copyright        --
19--    notice, this list of conditions and the following disclaimer.         --
20--                                                                          --
21--  * Redistributions in binary form must reproduce the above copyright     --
22--    notice, this list of conditions and the following disclaimer in the   --
23--    documentation and/or other materials provided with the distribution.  --
24--                                                                          --
25--  * Neither the name of the Vadim Godunko, IE nor the names of its        --
26--    contributors may be used to endorse or promote products derived from  --
27--    this software without specific prior written permission.              --
28--                                                                          --
29-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS      --
30-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT        --
31-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR    --
32-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT     --
33-- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,   --
34-- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED --
35-- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR   --
36-- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF   --
37-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING     --
38-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS       --
39-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.             --
40--                                                                          --
41------------------------------------------------------------------------------
42--  $Revision: 5720 $ $Date: 2017-01-24 16:41:12 +0000 (Tue, 24 Jan 2017) $
43------------------------------------------------------------------------------
44with WebAPI.DOM.Nodes;
45with WebAPI.DOM.Texts;
46with WebAPI.HTML.Globals;
47
48package body WUI.Widgets.Labels is
49
50   ------------------
51   -- Constructors --
52   ------------------
53
54   package body Constructors is
55
56      type Label_Internal_Access is access all Label'Class;
57
58      ------------
59      -- Create --
60      ------------
61
62      function Create
63       (Element : not null WebAPI.HTML.Elements.HTML_Element_Access)
64          return not null Label_Access
65      is
66         Result : not null Label_Internal_Access := new Label;
67
68      begin
69         Initialize (Result.all, Element);
70
71         return Label_Access (Result);
72      end Create;
73
74      ------------
75      -- Create --
76      ------------
77
78      function Create
79       (Id : League.Strings.Universal_String) return not null Label_Access is
80      begin
81         return
82           Create
83            (WebAPI.HTML.Elements.HTML_Element_Access
84              (WebAPI.HTML.Globals.Window.Get_Document.Get_Element_By_Id
85                (Id)));
86      end Create;
87
88      ----------------
89      -- Initialize --
90      ----------------
91
92      procedure Initialize
93       (Self    : in out Label'Class;
94        Element : not null WebAPI.HTML.Elements.HTML_Element_Access) is
95      begin
96         WUI.Widgets.Constructors.Initialize (Self, Element);
97      end Initialize;
98
99   end Constructors;
100
101   --------------
102   -- Set_Text --
103   --------------
104
105   procedure Set_Text
106    (Self : in out Label'Class;
107     To   : League.Strings.Universal_String)
108   is
109      use type WebAPI.DOM.Nodes.Node_Access;
110
111      Text : WebAPI.DOM.Texts.Text_Access;
112
113   begin
114      --  Remove all children nodes.
115
116      while Self.Element.Get_First_Child /= null loop
117         Self.Element.Remove_Child (Self.Element.Get_First_Child);
118      end loop;
119
120      --  Create new text node and insert it.
121
122      Text := Self.Element.Get_Owner_Document.Create_Text_Node (To);
123      Self.Element.Append_Child (Text);
124   end Set_Text;
125
126end WUI.Widgets.Labels;
Note: See TracBrowser for help on using the repository browser.