1 /* $NetBSD: getyx.c,v 1.8 2024/12/23 02:58:03 blymn Exp $ */ 2 3 /* 4 * Copyright (c) 2000 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Julian Coleman. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #include <sys/cdefs.h> 33 #ifndef lint 34 __RCSID("$NetBSD: getyx.c,v 1.8 2024/12/23 02:58:03 blymn Exp $"); 35 #endif /* not lint */ 36 37 #include <stdlib.h> 38 39 #include "curses.h" 40 #include "curses_private.h" 41 42 /* 43 * getpary -- 44 * Get the y position of the window relative to the parent window 45 * return -1 if not a subwindow. 46 */ 47 int 48 getpary(WINDOW *win) 49 { 50 51 if (win == NULL) 52 return -1; 53 54 if (win->orig == NULL) 55 return -1; 56 57 return win->begy - win->orig->begy; 58 } 59 60 /* 61 * getparx -- 62 * Get the x position of the window relative to the parent window 63 * return -1 if not a subwindow. 64 */ 65 int 66 getparx(WINDOW *win) 67 { 68 69 if (win == NULL) 70 return -1; 71 72 if (win->orig == NULL) 73 return -1; 74 75 return win->begx - win->orig->begx; 76 } 77 78 /* 79 * getcury -- 80 * Get current y position on window. 81 */ 82 int 83 getcury(WINDOW *win) 84 { 85 86 if (__predict_false(win == NULL)) 87 return ERR; 88 89 return win->cury; 90 } 91 92 /* 93 * getcurx -- 94 * Get current x position on window. 95 */ 96 int 97 getcurx(WINDOW *win) 98 { 99 100 if (__predict_false(win == NULL)) 101 return ERR; 102 103 return win->curx; 104 } 105 106 /* 107 * getbegy -- 108 * Get begin y position on window. 109 */ 110 int 111 getbegy(WINDOW *win) 112 { 113 114 if (__predict_false(win == NULL)) 115 return ERR; 116 117 return win->begy; 118 } 119 120 /* 121 * getbegx -- 122 * Get begin x position on window. 123 */ 124 int 125 getbegx(WINDOW *win) 126 { 127 128 if (__predict_false(win == NULL)) 129 return ERR; 130 131 return win->begx; 132 } 133 134 /* 135 * getmaxy -- 136 * Get maximum y position on window. 137 */ 138 int 139 getmaxy(WINDOW *win) 140 { 141 142 if (__predict_false(win == NULL)) 143 return ERR; 144 145 return win->maxy; 146 } 147 148 /* 149 * getmaxx -- 150 * Get maximum x position on window. 151 */ 152 int 153 getmaxx(WINDOW *win) 154 { 155 156 if (__predict_false(win == NULL)) 157 return ERR; 158 159 return win->maxx; 160 } 161