/**************************************************************************** * apps/examples/pdcurses/tui.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. The * ASF licenses this file to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * ****************************************************************************/ /**************************************************************************** * Adapted from the original public domain pdcurses by Gregory Nutt ****************************************************************************/ #ifndef __APPS_EXAMPLES_PDCURSES_TUI_H #define __APPS_EXAMPLES_PDCURSES_TUI_H /**************************************************************************** * Included Files ****************************************************************************/ #include "graphics/curses.h" /**************************************************************************** * Pre-processor Defintiions ****************************************************************************/ #ifdef A_COLOR # define A_ATTR (A_ATTRIBUTES ^ A_COLOR) /* A_BLINK, A_REVERSE, A_BOLD */ #else # define A_ATTR (A_ATTRIBUTES) /* standard UNIX attributes */ #endif #define MAXSTRLEN 256 #define KEY_ESC 0x1b /* Escape */ #define editstr(s,f) (weditstr(stdscr,s,f)) #define mveditstr(y,x,s,f) (move(y,x)==ERR?ERR:editstr(s,f)) #define mvweditstr(w,y,x,s,f) (wmove(w,y,x)==ERR?ERR:weditstr(w,s,f)) #define inputbox(l,c) (winputbox(stdscr,l,c)) #define mvinputbox(y,x,l,c) (move(y,x)==ERR?w:inputbox(l,c)) #define mvwinputbox(w,y,x,l,c) (wmove(w,y,x)==ERR?w:winputbox(w,l,c)) /**************************************************************************** * Public Types ****************************************************************************/ typedef void (*FUNC)(void); typedef struct { char *name; /* item label */ FUNC func; /* (pointer to) function */ char *desc; /* function description */ } menu; /**************************************************************************** * Public Function Prototypes ****************************************************************************/ void clsbody(void); int bodylen(void); WINDOW *bodywin(void); void rmerror(void); void rmstatus(void); void titlemsg(char *msg); void bodymsg(char *msg); void errormsg(char *msg); void statusmsg(char *msg); bool keypressed(void); int getkey(void); int waitforkey(void); void tui_exit(void); void startmenu(menu *mp, char *title); void domenu(const menu *mp); int weditstr(WINDOW *win, char *buf, int field); WINDOW *winputbox(WINDOW *win, int nlines, int ncols); int getstrings(const char *desc[], char *buf[], int field); #endif /* __APPS_EXAMPLES_PDCURSES_TUI_H */