Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. #include <curses.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #define START_LINIA 2
  5. #define MAX 7
  6. #define INFOKOLUMNA 15
  7. #define INFOWIERSZ START_LINIA+MAX+3
  8. #define STRZALA "<<---"
  9. #define ENTER 0xa /*w ncurses mo¿na równie¿ u¿yæ KEY_ENTER*/
  10. int main() {
  11. int klawisz, wybor=1;
  12. initscr();
  13. cbreak();
  14. keypad(stdscr, TRUE);
  15. noecho();
  16. start_color();
  17. init_pair(1, COLOR_RED, COLOR_BLACK);
  18. init_pair(2, COLOR_BLUE, COLOR_BLACK);
  19. clear();
  20. move(1, 1);
  21. printw("MENU");
  22. attrset(COLOR_PAIR(2));
  23. mvprintw(START_LINIA+1, 3, "Wybor 1");
  24. mvprintw(START_LINIA+2, 3, "Wybor 2");
  25. mvprintw(START_LINIA+3, 3, "Wybor 3");
  26. mvprintw(START_LINIA+4, 3, "Wybor 4");
  27. mvprintw(START_LINIA+5, 3, "Wybor 5");
  28. mvprintw(START_LINIA+6, 3, "Wybor 6");
  29. mvprintw(START_LINIA+7, 3, "Wybor 7");
  30. refresh();
  31. attroff(COLOR_PAIR(2));
  32. attrset(COLOR_PAIR(1) | A_BOLD);
  33. mvprintw((START_LINIA+1), 15, STRZALA);
  34. klawisz = getch();
  35. #ifdef BEEP
  36. beep();
  37. #endif
  38. while ((klawisz != 'q') && (klawisz != ERR) )
  39. {
  40. move(INFOWIERSZ, INFOKOLUMNA);
  41. clrtoeol();
  42. mvprintw(INFOWIERSZ,INFOKOLUMNA, "Klawisz %d -- 0%o -- 0x%x -- %c", klawisz, klawisz, klawisz, klawisz);
  43. switch (klawisz) {
  44. case KEY_UP:
  45. if (wybor == 1) {
  46. klawisz = getch();
  47. #ifdef BEEP
  48. beep();
  49. #endif
  50. continue;
  51. }
  52. --wybor;
  53. move((START_LINIA+wybor+1), 15);
  54. clrtoeol();
  55. mvprintw((START_LINIA+wybor), 15, STRZALA);
  56. break;
  57. case KEY_DOWN:
  58. if (wybor == MAX) {
  59. klawisz = getch();
  60. #ifdef BEEP
  61. beep();
  62. #endif
  63. continue;
  64. }
  65. ++wybor;
  66. move((START_LINIA+wybor-1), 15);
  67. clrtoeol();
  68. mvprintw((START_LINIA+wybor), 15, STRZALA);
  69. break;
  70. case KEY_HOME:
  71. if (wybor == 1) {
  72. klawisz = getch();
  73. #ifdef BEEP
  74. beep();
  75. #endif
  76. continue;
  77. }
  78. move((START_LINIA+wybor), 15);
  79. clrtoeol();
  80. wybor = 1;
  81. mvprintw((START_LINIA+1), 15, STRZALA);
  82. break;
  83. case KEY_END:
  84. if (wybor == MAX) {
  85. klawisz = getch();
  86. #ifdef BEEP
  87. beep();
  88. #endif
  89. continue;
  90. }
  91. move((START_LINIA+wybor), 15);
  92. clrtoeol();
  93. wybor = MAX;
  94. mvprintw((START_LINIA+MAX), 15, STRZALA);
  95. break;
  96. case ENTER:
  97. move(LINES-1, 1);
  98. clrtoeol();
  99. mvprintw(LINES-1, 1, "Zatwierdzono: %d", wybor);
  100. refresh();
  101. break;
  102. default:
  103. klawisz = getch();
  104. #ifdef BEEP
  105. beep();
  106. #endif
  107. continue;
  108. break;
  109. }
  110. refresh();
  111. usleep(50000);
  112. klawisz = getch();
  113. #ifdef BEEP
  114. beep();
  115. #endif
  116. }
  117. endwin();
  118. exit(0);
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement