parent
9de793750f
commit
fa8c4115b3
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
gcc main.c -o menu -lncurses
|
||||||
|
|
||||||
|
./menu
|
@ -0,0 +1,146 @@
|
|||||||
|
/**
|
||||||
|
* This is a menu made with ncurses, i wil do my best to comment every aspect of it
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include <ncurses.h>
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
// Variable declarations
|
||||||
|
int height, width, start_y, start_x = 0;
|
||||||
|
height = 10;
|
||||||
|
width = 30;
|
||||||
|
start_y = 10;
|
||||||
|
start_x = 10;
|
||||||
|
|
||||||
|
//Init sequence. to set up the screen and init the memory usage
|
||||||
|
initscr(); // inits the screen and sets up the screen
|
||||||
|
|
||||||
|
// To use the standart linux bash commanc lije ctrl-c ctrl-x and so on : Is active as default
|
||||||
|
cbreak();
|
||||||
|
|
||||||
|
// To use every input as raw input and not a command
|
||||||
|
//raw();
|
||||||
|
|
||||||
|
// Doesn't show the pressed char in the scrren
|
||||||
|
noecho();
|
||||||
|
|
||||||
|
// Creating a window
|
||||||
|
WINDOW * win= newwin(height,width,start_y, start_x);
|
||||||
|
//This refresh will initialize the base screen.
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
// Making a box out of the window
|
||||||
|
box(win,'|','#');
|
||||||
|
|
||||||
|
// this will print on 0,0 coordinate of rhtis window
|
||||||
|
wprintw(win,"this is an new window");
|
||||||
|
|
||||||
|
//and this refresh will only refresh the created window
|
||||||
|
wrefresh(win);
|
||||||
|
|
||||||
|
getch();
|
||||||
|
|
||||||
|
// Adwanced border customization variables
|
||||||
|
int left, right, top, bottom, tlc, trc, blc, brc = 0;
|
||||||
|
left = '|'; // Left side of the box
|
||||||
|
right = '/'; // Right side of the box
|
||||||
|
top = '#'; // Top side of the box
|
||||||
|
bottom = '-'; // Bottom side of the box
|
||||||
|
tlc = '0'; // Top Left Corner of the box
|
||||||
|
trc = '1'; // Top Roght Corner of the box
|
||||||
|
blc = '2'; // Bottom Left Corner of the box
|
||||||
|
brc = '3'; // Bottom Right Corner of the box
|
||||||
|
|
||||||
|
// Adwanced border customization function call
|
||||||
|
wborder(win, left, right, top, bottom, tlc, trc, blc, brc);
|
||||||
|
|
||||||
|
//and this refresh will only refresh the created window
|
||||||
|
wrefresh(win);
|
||||||
|
|
||||||
|
//this will moove inside of the window an print to tth given coordinate
|
||||||
|
mvwprintw(win,5,5,"Content of the box");
|
||||||
|
|
||||||
|
//and this refresh will only refresh the created window
|
||||||
|
wrefresh(win);
|
||||||
|
|
||||||
|
// Gets the user input before quiting
|
||||||
|
getch();
|
||||||
|
|
||||||
|
// Delocates memory and ends ncurses
|
||||||
|
endwin();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tutorial_0_1() // Hello Word and user input
|
||||||
|
{
|
||||||
|
int c,y,x = 0;
|
||||||
|
|
||||||
|
y=10;
|
||||||
|
x=10;
|
||||||
|
|
||||||
|
//Init sequence. to set up the screen and init the memory usage
|
||||||
|
initscr(); // inits the screen and sets up the screen
|
||||||
|
|
||||||
|
move(y,x);// Moving to the given coordinates
|
||||||
|
|
||||||
|
printw("Hello World!");
|
||||||
|
//Refeshes the screen to match what is in the memory
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
// Gets the user input
|
||||||
|
c = getch();
|
||||||
|
|
||||||
|
// Clreasthe screen
|
||||||
|
clear();
|
||||||
|
|
||||||
|
move(0,0);
|
||||||
|
printw("You pressed %d", c);
|
||||||
|
|
||||||
|
// Gets the user input before quiting
|
||||||
|
getch();
|
||||||
|
|
||||||
|
// Delocates memory and ends ncurses
|
||||||
|
endwin();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int tutorial_2() // create a box and write into it
|
||||||
|
{
|
||||||
|
// VAriable declarations
|
||||||
|
int height, width, start_y, start_x = 0;
|
||||||
|
height = 10;
|
||||||
|
width = 30;
|
||||||
|
start_y = 10;
|
||||||
|
start_x = 10;
|
||||||
|
|
||||||
|
//Init sequence. to set up the screen and init the memory usage
|
||||||
|
initscr(); // inits the screen and sets up the screen
|
||||||
|
|
||||||
|
// Creating a window
|
||||||
|
WINDOW * win= newwin(height,width,start_y, start_x);
|
||||||
|
//This refresh will initialize the base screen.
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
// Making a box out of the window
|
||||||
|
box(win,0,0);
|
||||||
|
|
||||||
|
// this will print on 0,0 coordinate of rhtis window
|
||||||
|
wprintw(win,"this is an new window");
|
||||||
|
|
||||||
|
//and this refresh will only refresh the created window
|
||||||
|
wrefresh(win);
|
||||||
|
|
||||||
|
//this will moove inside of the window an print to tth given coordinate
|
||||||
|
mvwprintw(win,5,5,"Content of the box");
|
||||||
|
|
||||||
|
//and this refresh will only refresh the created window
|
||||||
|
wrefresh(win);
|
||||||
|
|
||||||
|
// Gets the user input before quiting
|
||||||
|
getch();
|
||||||
|
|
||||||
|
// Delocates memory and ends ncurses
|
||||||
|
endwin();
|
||||||
|
return 0;
|
||||||
|
}
|
Binary file not shown.
Loading…
Reference in new issue