ncurses 6.3 - patch 20211127
[ncurses.git] / gen / terminal_interface-curses-panels.ads.m4
1 --  -*- ada -*-
2 define(`HTMLNAME',`terminal_interface-curses-panels__ads.htm')dnl
3 include(M4MACRO)dnl
4 ------------------------------------------------------------------------------
5 --                                                                          --
6 --                           GNAT ncurses Binding                           --
7 --                                                                          --
8 --                      Terminal_Interface.Curses.Panels                    --
9 --                                                                          --
10 --                                 S P E C                                  --
11 --                                                                          --
12 ------------------------------------------------------------------------------
13 -- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc.              --
14 --                                                                          --
15 -- Permission is hereby granted, free of charge, to any person obtaining a  --
16 -- copy of this software and associated documentation files (the            --
17 -- "Software"), to deal in the Software without restriction, including      --
18 -- without limitation the rights to use, copy, modify, merge, publish,      --
19 -- distribute, distribute with modifications, sublicense, and/or sell       --
20 -- copies of the Software, and to permit persons to whom the Software is    --
21 -- furnished to do so, subject to the following conditions:                 --
22 --                                                                          --
23 -- The above copyright notice and this permission notice shall be included  --
24 -- in all copies or substantial portions of the Software.                   --
25 --                                                                          --
26 -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
27 -- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
28 -- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
29 -- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
30 -- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
31 -- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
32 -- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
33 --                                                                          --
34 -- Except as contained in this notice, the name(s) of the above copyright   --
35 -- holders shall not be used in advertising or otherwise to promote the     --
36 -- sale, use or other dealings in this Software without prior written       --
37 -- authorization.                                                           --
38 ------------------------------------------------------------------------------
39 --  Author:  Juergen Pfeifer, 1996
40 --  Version Control:
41 --  $Revision: 1.22 $
42 --  $Date: 2014/05/24 21:31:57 $
43 --  Binding Version 01.00
44 ------------------------------------------------------------------------------
45 with System;
46
47 package Terminal_Interface.Curses.Panels is
48    pragma Preelaborate (Terminal_Interface.Curses.Panels);
49    pragma Linker_Options ("-lpanel" & Curses_Constants.DFT_ARG_SUFFIX);
50
51    type Panel is private;
52
53    ---------------------------
54    --  Interface constants  --
55    ---------------------------
56    Null_Panel : constant Panel;
57
58    -------------------
59    --  Exceptions   --
60    -------------------
61
62    Panel_Exception : exception;
63
64    --  MANPAGE(`panel.3x')
65
66    --  ANCHOR(`new_panel()',`Create')
67    function Create (Win : Window) return Panel;
68    --  AKA
69    pragma Inline (Create);
70
71    --  ANCHOR(`new_panel()',`New_Panel')
72    function New_Panel (Win : Window) return Panel renames Create;
73    --  AKA
74    --  pragma Inline (New_Panel);
75
76    --  ANCHOR(`bottom_panel()',`Bottom')
77    procedure Bottom (Pan : Panel);
78    --  AKA
79    pragma Inline (Bottom);
80
81    --  ANCHOR(`top_panel()',`Top')
82    procedure Top (Pan : Panel);
83    --  AKA
84    pragma Inline (Top);
85
86    --  ANCHOR(`show_panel()',`Show')
87    procedure Show (Pan : Panel);
88    --  AKA
89    pragma Inline (Show);
90
91    --  ANCHOR(`update_panels()',`Update_Panels')
92    procedure Update_Panels;
93    --  AKA
94    pragma Import (C, Update_Panels, "update_panels");
95
96    --  ANCHOR(`hide_panel()',`Hide')
97    procedure Hide (Pan : Panel);
98    --  AKA
99    pragma Inline (Hide);
100
101    --  ANCHOR(`panel_window()',`Get_Window')
102    function Get_Window (Pan : Panel) return Window;
103    --  AKA
104    pragma Inline (Get_Window);
105
106    --  ANCHOR(`panel_window()',`Panel_Window')
107    function Panel_Window (Pan : Panel) return Window renames Get_Window;
108    --  pragma Inline (Panel_Window);
109
110    --  ANCHOR(`replace_panel()',`Replace')
111    procedure Replace (Pan : Panel;
112                       Win : Window);
113    --  AKA
114    pragma Inline (Replace);
115
116    --  ANCHOR(`move_panel()',`Move')
117    procedure Move (Pan    : Panel;
118                    Line   : Line_Position;
119                    Column : Column_Position);
120    --  AKA
121    pragma Inline (Move);
122
123    --  ANCHOR(`panel_hidden()',`Is_Hidden')
124    function Is_Hidden (Pan : Panel) return Boolean;
125    --  AKA
126    pragma Inline (Is_Hidden);
127
128    --  ANCHOR(`panel_above()',`Above')
129    function Above (Pan : Panel) return Panel;
130    --  AKA
131    pragma Import (C, Above, "panel_above");
132
133    --  ANCHOR(`panel_below()',`Below')
134    function Below (Pan : Panel) return Panel;
135    --  AKA
136    pragma Import (C, Below, "panel_below");
137
138    --  ANCHOR(`del_panel()',`Delete')
139    procedure Delete (Pan : in out Panel);
140    --  AKA
141    pragma Inline (Delete);
142
143 private
144       type Panel is new System.Storage_Elements.Integer_Address;
145       Null_Panel : constant Panel := 0;
146
147 end Terminal_Interface.Curses.Panels;