universe@3: /* universe@3: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. universe@3: * universe@3: * Copyright 2014 Mike Becker. All rights reserved. universe@3: * universe@3: * Redistribution and use in source and binary forms, with or without universe@3: * modification, are permitted provided that the following conditions are met: universe@3: * universe@3: * 1. Redistributions of source code must retain the above copyright universe@3: * notice, this list of conditions and the following disclaimer. universe@3: * universe@3: * 2. Redistributions in binary form must reproduce the above copyright universe@3: * notice, this list of conditions and the following disclaimer in the universe@3: * documentation and/or other materials provided with the distribution. universe@3: * universe@3: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" universe@3: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE universe@3: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE universe@3: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE universe@3: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR universe@3: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF universe@3: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS universe@3: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN universe@3: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) universe@3: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE universe@3: * POSSIBILITY OF SUCH DAMAGE. universe@3: * universe@3: */ universe@3: universe@3: #ifndef INPUT_H universe@3: #define INPUT_H universe@3: universe@30: #include universe@30: #include universe@30: universe@3: #ifdef __cplusplus universe@3: extern "C" { universe@3: #endif universe@3: universe@7: int prompt_yesno(char *msg); universe@3: universe@32: universe@32: /** universe@32: * Asynchronous variant of mvwgetnstr(). universe@32: * universe@32: * Needs halfdelay mode enabled! universe@32: * universe@32: * @param w the window universe@32: * @param y the window y position universe@32: * @param x the window x position universe@32: * @param str the buffer for the read string universe@32: * @param pos a pointer to the object containing the current buffer position universe@32: * @param len the length of the buffer universe@32: * @return 0 if reading is in progress and 1 when a complete line is read universe@32: */ universe@32: int mvwasyncgetnstr(WINDOW* w,int y,int x,char *str,size_t *pos,size_t len); universe@32: universe@32: /** universe@32: * Asynchronous variant of mvgetnstr(). universe@32: * universe@32: * Needs halfdelay mode enabled! universe@32: * universe@32: * @param y the window y position universe@32: * @param x the window x position universe@32: * @param str the buffer for the read string universe@32: * @param pos a pointer to the object containing the current buffer position universe@32: * @param len the length of the buffer universe@32: * @return 0 if reading is in progress and 1 when a complete line is read universe@32: */ universe@32: #define mvasyncgetnstr(y,x,str,pos,len) mvwasyncgetnstr(stdscr,y,x,str,pos,len) universe@32: universe@32: /** universe@32: * Asynchronous variant of getnstr(). universe@32: * universe@32: * Needs halfdelay mode enabled! universe@32: * universe@32: * @param str the buffer for the read string universe@32: * @param pos a pointer to the object containing the current buffer position universe@32: * @param len the length of the buffer universe@32: * @return 0 if reading is in progress and 1 when a complete line is read universe@32: */ universe@37: #define asyncgetnstr(str,pos,len) mvwasyncgetnstr(stdscr, getcury(stdscr), \ universe@37: getcurx(stdscr), str, pos, len) universe@30: universe@3: universe@3: #ifdef __cplusplus universe@3: } universe@3: #endif universe@3: universe@3: #endif /* INPUT_H */ universe@3: