Added 'C_C++/ncurses_text_subwin_overflow.c'
This commit is contained in:
parent
0abf997128
commit
e28423b438
48
C_C++/ncurses_text_subwin_overflow.c
Normal file
48
C_C++/ncurses_text_subwin_overflow.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// @BAKE gcc $@ -o $*.out $(pkg-config --libs ncurses)
|
||||||
|
#include <ncurses.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
const char *long_msg = "The dull BONG of metal against a face followed by a pained ‘NYAAAH!’ tell you all you need to know! As Tzah-Tzie tumbles onto the dock like a bag of groceries, you give the air her head previously occupied a good SMACK with your hand and send a heavy, metal barrel cover clattering to the floor!";
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
WINDOW *mainwin, *subwin;
|
||||||
|
|
||||||
|
// Initialize ncurses
|
||||||
|
initscr();
|
||||||
|
noecho();
|
||||||
|
cbreak();
|
||||||
|
|
||||||
|
// Create the main window
|
||||||
|
int height = 20, width = 40, starty = 2, startx = 4;
|
||||||
|
mainwin = newwin(height, width, starty, startx);
|
||||||
|
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
box(mainwin, 0, 0); // Add a border to the main window
|
||||||
|
mvwprintw(mainwin, 0, 1, "Main Window");
|
||||||
|
|
||||||
|
// Create a subwindow: narrow but tall
|
||||||
|
int sub_height = height - 4, sub_width = 15;
|
||||||
|
int sub_starty = starty + 2, sub_startx = startx + 2;
|
||||||
|
subwin = derwin(mainwin, sub_height, sub_width, 2, 2);
|
||||||
|
box(subwin, 0, 0); // Add a border to the subwindow
|
||||||
|
mvwprintw(subwin, 0, 1, "Subwin");
|
||||||
|
|
||||||
|
// Print the message into the subwindow
|
||||||
|
mvwprintw(subwin, 1, 1, "%s", long_msg);
|
||||||
|
|
||||||
|
// Refresh both windows
|
||||||
|
wrefresh(mainwin);
|
||||||
|
wrefresh(subwin);
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
// Wait for input before closing
|
||||||
|
getch();
|
||||||
|
|
||||||
|
// Clean up and end ncurses
|
||||||
|
delwin(subwin);
|
||||||
|
delwin(mainwin);
|
||||||
|
endwin();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user