diff --git a/ked/ncurses/compile_run.sh b/ked/ncurses/compile_run.sh new file mode 100755 index 0000000..c49fe20 --- /dev/null +++ b/ked/ncurses/compile_run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +gcc main.c -o menu -lncurses + +./menu diff --git a/ked/ncurses/main.c b/ked/ncurses/main.c new file mode 100644 index 0000000..d89f96b --- /dev/null +++ b/ked/ncurses/main.c @@ -0,0 +1,146 @@ +/** + * This is a menu made with ncurses, i wil do my best to comment every aspect of it + **/ + +#include + +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; +} diff --git a/ked/ncurses/menu b/ked/ncurses/menu new file mode 100755 index 0000000..eb95889 Binary files /dev/null and b/ked/ncurses/menu differ