1*6348e3f3Sblymn /* $NetBSD: getyx.c,v 1.8 2024/12/23 02:58:03 blymn Exp $ */ 270f4bbdcSjdc 370f4bbdcSjdc /* 470f4bbdcSjdc * Copyright (c) 2000 The NetBSD Foundation, Inc. 570f4bbdcSjdc * All rights reserved. 670f4bbdcSjdc * 770f4bbdcSjdc * This code is derived from software contributed to The NetBSD Foundation 870f4bbdcSjdc * by Julian Coleman. 970f4bbdcSjdc * 1070f4bbdcSjdc * Redistribution and use in source and binary forms, with or without 1170f4bbdcSjdc * modification, are permitted provided that the following conditions 1270f4bbdcSjdc * are met: 1370f4bbdcSjdc * 1. Redistributions of source code must retain the above copyright 1470f4bbdcSjdc * notice, this list of conditions and the following disclaimer. 1570f4bbdcSjdc * 2. Redistributions in binary form must reproduce the above copyright 1670f4bbdcSjdc * notice, this list of conditions and the following disclaimer in the 1770f4bbdcSjdc * documentation and/or other materials provided with the distribution. 1870f4bbdcSjdc * 1970f4bbdcSjdc * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2070f4bbdcSjdc * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2170f4bbdcSjdc * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2270f4bbdcSjdc * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2370f4bbdcSjdc * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2470f4bbdcSjdc * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2570f4bbdcSjdc * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2670f4bbdcSjdc * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2770f4bbdcSjdc * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2870f4bbdcSjdc * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2970f4bbdcSjdc * POSSIBILITY OF SUCH DAMAGE. 3070f4bbdcSjdc */ 3170f4bbdcSjdc 3266cab71cSblymn #include <sys/cdefs.h> 3366cab71cSblymn #ifndef lint 34*6348e3f3Sblymn __RCSID("$NetBSD: getyx.c,v 1.8 2024/12/23 02:58:03 blymn Exp $"); 3566cab71cSblymn #endif /* not lint */ 3666cab71cSblymn 3770f4bbdcSjdc #include <stdlib.h> 3870f4bbdcSjdc 3970f4bbdcSjdc #include "curses.h" 4070f4bbdcSjdc #include "curses_private.h" 4170f4bbdcSjdc 4270f4bbdcSjdc /* 4323231c1aSblymn * getpary -- 44146d03e6Sandvar * Get the y position of the window relative to the parent window 4523231c1aSblymn * return -1 if not a subwindow. 4623231c1aSblymn */ 4723231c1aSblymn int 4823231c1aSblymn getpary(WINDOW *win) 4923231c1aSblymn { 5050a63ac8Sroy 5123231c1aSblymn if (win == NULL) 5223231c1aSblymn return -1; 5323231c1aSblymn 5423231c1aSblymn if (win->orig == NULL) 5523231c1aSblymn return -1; 5623231c1aSblymn 5750a63ac8Sroy return win->begy - win->orig->begy; 5823231c1aSblymn } 5923231c1aSblymn 6023231c1aSblymn /* 6123231c1aSblymn * getparx -- 62146d03e6Sandvar * Get the x position of the window relative to the parent window 6323231c1aSblymn * return -1 if not a subwindow. 6423231c1aSblymn */ 6523231c1aSblymn int 6623231c1aSblymn getparx(WINDOW *win) 6723231c1aSblymn { 6850a63ac8Sroy 6923231c1aSblymn if (win == NULL) 7023231c1aSblymn return -1; 7123231c1aSblymn 7223231c1aSblymn if (win->orig == NULL) 7323231c1aSblymn return -1; 7423231c1aSblymn 7550a63ac8Sroy return win->begx - win->orig->begx; 7623231c1aSblymn } 7723231c1aSblymn 7823231c1aSblymn /* 7970f4bbdcSjdc * getcury -- 8070f4bbdcSjdc * Get current y position on window. 8170f4bbdcSjdc */ 8270f4bbdcSjdc int 83aaf74682Sblymn getcury(WINDOW *win) 8470f4bbdcSjdc { 8550a63ac8Sroy 86*6348e3f3Sblymn if (__predict_false(win == NULL)) 87*6348e3f3Sblymn return ERR; 88*6348e3f3Sblymn 8950a63ac8Sroy return win->cury; 9070f4bbdcSjdc } 9170f4bbdcSjdc 9270f4bbdcSjdc /* 9370f4bbdcSjdc * getcurx -- 9470f4bbdcSjdc * Get current x position on window. 9570f4bbdcSjdc */ 9670f4bbdcSjdc int 97aaf74682Sblymn getcurx(WINDOW *win) 9870f4bbdcSjdc { 9950a63ac8Sroy 100*6348e3f3Sblymn if (__predict_false(win == NULL)) 101*6348e3f3Sblymn return ERR; 102*6348e3f3Sblymn 10350a63ac8Sroy return win->curx; 10470f4bbdcSjdc } 10570f4bbdcSjdc 10670f4bbdcSjdc /* 10770f4bbdcSjdc * getbegy -- 10870f4bbdcSjdc * Get begin y position on window. 10970f4bbdcSjdc */ 11070f4bbdcSjdc int 111aaf74682Sblymn getbegy(WINDOW *win) 11270f4bbdcSjdc { 11350a63ac8Sroy 114*6348e3f3Sblymn if (__predict_false(win == NULL)) 115*6348e3f3Sblymn return ERR; 116*6348e3f3Sblymn 11750a63ac8Sroy return win->begy; 11870f4bbdcSjdc } 11970f4bbdcSjdc 12070f4bbdcSjdc /* 12170f4bbdcSjdc * getbegx -- 12270f4bbdcSjdc * Get begin x position on window. 12370f4bbdcSjdc */ 12470f4bbdcSjdc int 125aaf74682Sblymn getbegx(WINDOW *win) 12670f4bbdcSjdc { 12750a63ac8Sroy 128*6348e3f3Sblymn if (__predict_false(win == NULL)) 129*6348e3f3Sblymn return ERR; 130*6348e3f3Sblymn 13150a63ac8Sroy return win->begx; 13270f4bbdcSjdc } 13370f4bbdcSjdc 13470f4bbdcSjdc /* 13570f4bbdcSjdc * getmaxy -- 13670f4bbdcSjdc * Get maximum y position on window. 13770f4bbdcSjdc */ 13870f4bbdcSjdc int 139aaf74682Sblymn getmaxy(WINDOW *win) 14070f4bbdcSjdc { 14150a63ac8Sroy 142*6348e3f3Sblymn if (__predict_false(win == NULL)) 143*6348e3f3Sblymn return ERR; 144*6348e3f3Sblymn 14550a63ac8Sroy return win->maxy; 14670f4bbdcSjdc } 14770f4bbdcSjdc 14870f4bbdcSjdc /* 14970f4bbdcSjdc * getmaxx -- 15070f4bbdcSjdc * Get maximum x position on window. 15170f4bbdcSjdc */ 15270f4bbdcSjdc int 153aaf74682Sblymn getmaxx(WINDOW *win) 15470f4bbdcSjdc { 15550a63ac8Sroy 156*6348e3f3Sblymn if (__predict_false(win == NULL)) 157*6348e3f3Sblymn return ERR; 158*6348e3f3Sblymn 15950a63ac8Sroy return win->maxx; 16070f4bbdcSjdc } 161