1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
4 <TITLE>terminal_interface-curses-panels.adb</TITLE>
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6 <style type="text/css">
16 <HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
18 <span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
19 <span class="comment"><EM>-- --</EM></span>
20 <span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
21 <span class="comment"><EM>-- --</EM></span>
22 <span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span>
23 <span class="comment"><EM>-- --</EM></span>
24 <span class="comment"><EM>-- B O D Y --</EM></span>
25 <span class="comment"><EM>-- --</EM></span>
26 <span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
27 <span class="comment"><EM>-- Copyright 2020 Thomas E. Dickey --</EM></span>
28 <span class="comment"><EM>-- Copyright 1999-2004,2009 Free Software Foundation, Inc. --</EM></span>
29 <span class="comment"><EM>-- --</EM></span>
30 <span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
31 <span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
32 <span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
33 <span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
34 <span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
35 <span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
36 <span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
37 <span class="comment"><EM>-- --</EM></span>
38 <span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
39 <span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
40 <span class="comment"><EM>-- --</EM></span>
41 <span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
42 <span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
43 <span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
44 <span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
45 <span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
46 <span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
47 <span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
48 <span class="comment"><EM>-- --</EM></span>
49 <span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
50 <span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
51 <span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
52 <span class="comment"><EM>-- authorization. --</EM></span>
53 <span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
54 <span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
55 <span class="comment"><EM>-- Version Control:</EM></span>
56 <span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
57 <span class="comment"><EM>-- @Date: 2020/02/02 23:34:34 @</EM></span>
58 <span class="comment"><EM>-- Binding Version 01.00</EM></span>
59 <span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
60 <b>with</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_46_35">Aux</A>;
61 <b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
63 <b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<span class="symbol"><A NAME="ref_46_40" HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A></span> <b>is</b>
65 <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
67 <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A></span> (<span class="symbol"><A NAME="ref_50_21" HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>
69 <b>function</b> <span class="symbol"><A NAME="ref_52_16">Newpanel</A></span> (<span class="symbol"><A NAME="ref_52_26" HREF="terminal_interface-curses-panels__adb.htm#ref_52_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
70 <b>pragma</b> Import (C, Newpanel, "new_panel");
72 <span class="symbol"><A NAME="ref_55_7">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
74 <A HREF="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_52_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A>);
75 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> <b>then</b>
76 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
78 <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_55_7">Pan</A>;
79 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
81 <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_64_22" HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
83 <b>function</b> <span class="symbol"><A NAME="ref_66_16">Bottompanel</A></span> (<span class="symbol"><A NAME="ref_66_29" HREF="terminal_interface-curses-panels__adb.htm#ref_66_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
84 <b>pragma</b> Import (C, Bottompanel, "bottom_panel");
86 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_66_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
87 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
89 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>;
91 <b>procedure</b> <span class="symbol"><A NAME="ref_74_14" HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A></span> (<span class="symbol"><A NAME="ref_74_19" HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
93 <b>function</b> <span class="symbol"><A NAME="ref_76_16">Toppanel</A></span> (<span class="symbol"><A NAME="ref_76_26" HREF="terminal_interface-curses-panels__adb.htm#ref_76_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
94 <b>pragma</b> Import (C, Toppanel, "top_panel");
96 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_76_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
97 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
99 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>;
101 <b>procedure</b> <span class="symbol"><A NAME="ref_84_14" HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A></span> (<span class="symbol"><A NAME="ref_84_20" HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
103 <b>function</b> <span class="symbol"><A NAME="ref_86_16">Showpanel</A></span> (<span class="symbol"><A NAME="ref_86_27" HREF="terminal_interface-curses-panels__adb.htm#ref_86_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
104 <b>pragma</b> Import (C, Showpanel, "show_panel");
106 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_86_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
107 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
108 <b>end</b> <b>if</b>;
109 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>;
111 <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A></span> (<span class="symbol"><A NAME="ref_94_20" HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
113 <b>function</b> <span class="symbol"><A NAME="ref_96_16">Hidepanel</A></span> (<span class="symbol"><A NAME="ref_96_27" HREF="terminal_interface-curses-panels__adb.htm#ref_96_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
114 <b>pragma</b> Import (C, Hidepanel, "hide_panel");
116 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_96_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
117 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
118 <b>end</b> <b>if</b>;
119 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>;
121 <b>function</b> <span class="symbol"><A NAME="ref_104_13" HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_104_25" HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>
123 <b>function</b> <span class="symbol"><A NAME="ref_106_16">Panel_Win</A></span> (<span class="symbol"><A NAME="ref_106_27" HREF="terminal_interface-curses-panels__adb.htm#ref_106_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>;
124 <b>pragma</b> Import (C, Panel_Win, "panel_window");
126 <span class="symbol"><A NAME="ref_109_7">Win</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_106_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A>);
128 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_109_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_57_4">Null_Window</A> <b>then</b>
129 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
130 <b>end</b> <b>if</b>;
131 <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_109_7">Win</A>;
132 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
134 <b>procedure</b> <span class="symbol"><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A></span> (<span class="symbol"><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
135 <span class="symbol"><A NAME="ref_118_23" HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>)
137 <b>function</b> <span class="symbol"><A NAME="ref_120_16">Replace_Pan</A></span> (<span class="symbol"><A NAME="ref_120_29" HREF="terminal_interface-curses-panels__adb.htm#ref_120_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
138 <span class="symbol"><A NAME="ref_121_29" HREF="terminal_interface-curses-panels__adb.htm#ref_120_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
139 <b>pragma</b> Import (C, Replace_Pan, "replace_panel");
141 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_120_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
142 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
143 <b>end</b> <b>if</b>;
144 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>;
146 <b>procedure</b> <span class="symbol"><A NAME="ref_129_14" HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A></span> (<span class="symbol"><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
147 <span class="symbol"><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Line_Position</A>;
148 <span class="symbol"><A NAME="ref_131_20" HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>)
150 <b>function</b> <span class="symbol"><A NAME="ref_133_16">Move</A></span> (<span class="symbol"><A NAME="ref_133_22" HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
151 <span class="symbol"><A NAME="ref_134_22" HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
152 <span class="symbol"><A NAME="ref_135_22" HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
153 <b>pragma</b> Import (C, Move, "move_panel");
155 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_133_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
156 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
157 <b>end</b> <b>if</b>;
158 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>;
160 <b>function</b> <span class="symbol"><A NAME="ref_143_13" HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_143_24" HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean
162 <b>function</b> <span class="symbol"><A NAME="ref_145_16">Panel_Hidden</A></span> (<span class="symbol"><A NAME="ref_145_30" HREF="terminal_interface-curses-panels__adb.htm#ref_145_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
163 <b>pragma</b> Import (C, Panel_Hidden, "panel_hidden");
165 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_145_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_False</A> <b>then</b>
169 <b>end</b> <b>if</b>;
170 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>;
172 <b>procedure</b> <span class="symbol"><A NAME="ref_155_14" HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A></span> (<span class="symbol"><A NAME="ref_155_22" HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
174 <b>function</b> <span class="symbol"><A NAME="ref_157_16">Del_Panel</A></span> (<span class="symbol"><A NAME="ref_157_27" HREF="terminal_interface-curses-panels__adb.htm#ref_157_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_49_12">C_Int</A>;
175 <b>pragma</b> Import (C, Del_Panel, "del_panel");
177 <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_157_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Err</A> <b>then</b>
178 <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
179 <b>end</b> <b>if</b>;
180 <A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A>;
181 <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A>;
183 <b>end</b> <A HREF="terminal_interface__ads.htm#ref_43_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_45_35">Panels</A>;