2 * scr.c from Access Point SNMP Utils for Linux
3 * program output & screen related functions
5 * Copyright (c) 2002 Roman Festchook <roma at polesye dot net>
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License Version 2 from
9 * June 1991 as published by the Free Software Foundation.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #include "ap-curses.h"
28 extern WINDOW *main_sub, *win_for_help, *main_win;
31 scroll_rows(struct MacListStat *first, int begin, int end, int row,
35 struct MacListStat *curr = first;
43 while (end-- > begin) {
46 "%4u %02X%02X%02X%02X%02X%02X %3u%5u %3u",
47 begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
48 curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
49 curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
50 curr->quality, curr->idle, curr->rssi);
53 "%2u %02X%02X%02X%02X%02X%02X %3d%% %4ddBm %3u %2u %s",
55 curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
56 curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
57 curr->addr[4] & 0xFF, curr->addr[5] & 0xFF,
58 curr->quality, curr->rssi, curr->Status, curr->Port, inet_ntoa(curr->IP));
60 sprintf(message, "%4u %02X%02X%02X%02X%02X%02X",
61 begin + i, curr->addr[0] & 0xFF, curr->addr[1] & 0xFF,
62 curr->addr[2] & 0xFF, curr->addr[3] & 0xFF,
63 curr->addr[4] & 0xFF, curr->addr[5] & 0xFF);
65 mvwaddstr(main_sub, row + i, 0, message);
73 void print_help(char *mess)
75 unsigned short int j, len = (COLS - strlen(mess))/2;
79 for (j = 0; j <= len; j++) {
80 mvwaddch(win_for_help, 0, j, ' ');
81 mvwaddch(win_for_help, 0, COLS - j - 1, ' ');
84 mvwaddstr(win_for_help, 0, len, mess);
85 wrefresh(win_for_help);
88 void print_helperr(char *mess)
90 wattrset(win_for_help, COLOR_PAIR(4) | A_BOLD);
92 wattrset(win_for_help, COLOR_PAIR(1));
95 void print_title(char *mess)
99 for (i = 0; i < COLS - MCOLS - 1; i++)
100 mvwaddch(main_win, 0, i, ACS_BSBS);
101 wattrset(main_win, A_BOLD);
102 mvwaddstr(main_win, 0, COLS - MCOLS - strlen(mess) - 2, mess);
103 wattrset(main_win, A_NORMAL);
107 void print_viewtype(int v)
111 sprintf(message, "View: %c", v + '0');
112 wattrset(main_win, A_BOLD);
113 mvwaddstr(main_win, 0, 1, message);
114 wattrset(main_win, A_NORMAL);
118 void print_menusel(int y, int x, char *mess1, char *mess2)
120 mvwaddstr(main_sub, y, x, mess1);
121 wattrset(main_sub, A_BOLD);
122 waddstr(main_sub, mess2);
123 wattrset(main_sub, A_NORMAL);
127 void print_bottom(char *mess)
131 extern short ap_type;
132 extern char *ap_types[];
134 sprintf(message, _("Current AP: %s Type: %s"), mess, ap_types[ap_type]);
136 for (i = 0; i < COLS - MCOLS - 1; i++)
137 mvwaddch(main_win, LINES - 3, i, ACS_BSBS);
138 wattrset(main_win, A_BOLD);
139 mvwaddstr(main_win, LINES - 3, COLS - MCOLS - strlen(message) - 1,
141 wattrset(main_win, A_NORMAL);
146 void clear_main(int m)
148 clear_main_new(m, LINES - 4);
151 void clear_main_new(int m, int n)
154 wmove(main_sub, m, 0);
155 for (i = m; i < n; i++)
156 for (j = 0; j < COLS - MCOLS - 1; j++)
157 waddch(main_sub, ' ');