source: trunk/design/ui/source/wui-widgets-buttons-check_boxes.ads

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

Move dispatchers of 'change' and 'input' events to Abstract_Widget.

  • Property svn:keywords set to Author Date Revision
File size: 4.6 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: 5743 $ $Date: 2017-01-29 09:06:05 +0000 (Sun, 29 Jan 2017) $
43------------------------------------------------------------------------------
44with League.Strings;
45with WebAPI.HTML.Input_Elements;
46
47with WUI.Boolean_Slots;
48private with WUI.Boolean_Slots.Emitters;
49
50package WUI.Widgets.Buttons.Check_Boxes is
51
52   type Check_Box is new WUI.Widgets.Buttons.Abstract_Button with private;
53
54   type Check_Box_Access is access all Check_Box'Class
55     with Storage_Size => 0;
56
57   not overriding function State_Changed_Signal
58    (Self : in out Check_Box)
59       return not null access WUI.Boolean_Slots.Signal'Class;
60
61   package Constructors is
62
63      function Create
64       (Element :
65          not null WebAPI.HTML.Input_Elements.HTML_Input_Element_Access)
66            return not null Check_Box_Access;
67
68      function Create
69       (Id : League.Strings.Universal_String)
70          return not null Check_Box_Access;
71
72      procedure Initialize
73       (Self    : in out Check_Box'Class;
74        Element :
75          not null WebAPI.HTML.Input_Elements.HTML_Input_Element_Access);
76
77   end Constructors;
78
79private
80
81   type Check_Box is new WUI.Widgets.Buttons.Abstract_Button with record
82      State_Changed : aliased
83        WUI.Boolean_Slots.Emitters.Emitter (Check_Box'Unchecked_Access);
84   end record;
85
86   overriding procedure Change_Event (Self : in out Check_Box);
87
88   overriding procedure Set_Enabled
89    (Self    : in out Check_Box;
90     Enabled : Boolean);
91
92end WUI.Widgets.Buttons.Check_Boxes;
Note: See TracBrowser for help on using the repository browser.