Code:
#include <curses.h>
#include <stdlib.h>
#include <unistd.h>
#define ENTER 10
#define ESCAPE 27
int y, x, i;
WINDOW *menue,*nachrichten;
void haupt();
void oberflaeche();
void fenster_aendern()
{
printw(" %i", i);
i++;
refresh();
sleep(1);
werase(menue);
werase(nachrichten);
refresh();
oberflaeche();
}
void init_curses()
{
initscr();
start_color();
init_pair(1, COLOR_WHITE, COLOR_BLUE);
init_pair(2, COLOR_BLACK, COLOR_GREEN);
init_pair(3, COLOR_RED, COLOR_GREEN);
curs_set(0);
noecho();
keypad(stdscr, TRUE);
}
void mach_menue(WINDOW *menubar)
{
wbkgd(menue, COLOR_PAIR(2));
waddstr(menue, "Datenbank (");
wattron(menue, COLOR_PAIR(3));
waddstr(menue, "F2");
wattroff(menue, COLOR_PAIR(3));
waddstr(menue, ") |");
wmove(menue, 0, 17);
waddstr(menue, "Log (");
wattron(menue, COLOR_PAIR(3));
waddstr(menue, "F3");
wattroff(menue, COLOR_PAIR(3));
waddstr(menue, ") |");
wmove(menue, 0, 28);
waddstr(menue, "DK40 beenden (");
wattron(menue, COLOR_PAIR(3));
waddstr(menue, "F4");
wattroff(menue, COLOR_PAIR(3));
waddstr(menue, ") |");
wmove(menue, 0, x-22);
waddstr(menue, "Programm beenden ");
wattron(menue, COLOR_PAIR(3));
waddstr(menue, "(ESC)");
wattroff(menue, COLOR_PAIR(3));
}
void oberflaeche()
{
getmaxyx(stdscr, y, x);
bkgd(COLOR_PAIR(1));
menue = subwin(stdscr,1,x,0,0);
nachrichten = subwin(stdscr,1,x-1,y-1,1);
mach_menue(menue);
move(2,1);
printw("Bitte eine Funktionstaste druecken. x: %i, y: %i", x, y);
move(3,1);
printw("ESC beendet das Programm");
refresh();
}
void hauptschleife()
{
int key;
do
{
key = getch();
refresh();
werase(nachrichten);
wrefresh(nachrichten);
if (key == KEY_F(2))
{
touchwin(stdscr);
refresh();
} else
if (key == KEY_F(3))
{
fenster_aendern();
} else
if (key == KEY_F(4))
{
touchwin(stdscr);
refresh();
} /*else
if (key == KEY_RESIZE)
{
fenster_aendern();
}*/
} while (key != ESCAPE);
}
int main()
{
init_curses();
oberflaeche();
hauptschleife();
delwin(menue);
delwin(nachrichten);
endwin();
return 0;
}
Ich bedanke jetzt schon für alle hilfreichen Beiträge
Lesezeichen