Programowanie w języku C 2 - instrukcja do laboratorium nr 3
Autor: Mariusz Wiśniewski


  1. Obsługa okien nakładających się na siebie - Panele
    Biblioteka curses umożliwia tworzenie okien natomiast biblioteka panel umożliwia obsługę okien nakładających się na siebie.

    Korzystanie z biblioteki panel:
        #include <panel.h>

    Kompilowanie programów używających panel:
        gcc prog.c -o prog -lcurses -lpanel

    Podstawowe struktury i stałe:
        PANEL *panel; - Wskaźnik na strukturę PANEL - uchwyt panelu okna.

    Podstawowe funkcje biblioteki panel:
    pan = new_panel(WINDOW *okno); - funkcja tworzy panel skojarzony z wybranym oknem,
    del_panel(panel); - funkcja usuwa panel, ale nie usuwa okna skojarzonego z panelem,
    panel_window(panel); - funkcja zwraca wskaźnik na okno skojarzone z panelem,
    update_panels(); - odświerzenie zawartości wszystkich paneli - rysowanie paneli na ekranie wirtualnym,
    doupdate(); - funkcja wywoływana bezpośrednio po funkcji update_panels() powodująca wyświetlenie okien paneli,
    move_panel(panel, y, x); - funkcja przesuwa panel do pozycji y i x,
    top_panel(panel); - funkcja umieszcza panel na wierzchu,
    bottom_panel(panel); - funkcja umieszcza panel pod spodem,
    hide_panel(panel); - funkcja ukrywa panel,
    show_panel(panel); - funkcja pokazuje ukryty panel,
    panel_hidden(panel); - funkcja sprawdza, czy panel jest widoczny (TRUE gdy nie jest).

  2. Zadania do samodzielnego wykonania
    Korzystając z powyższych funkcji należy przygotować program tworzący 7 okien i panele do nich. Okna powinny mieć obryś i zadana szerokość oraz wysokość. W oknach powinny się znajdować duże cyfry określające ich numer, np dla numeru 2:
       222
     22   22
    22     22
          22
        22
      22
     22    22
    222222222
        
    Wciskanie klawiszy od 1 do 7 powinno pozwalać na wybieranie okna. Wybrane okno musi mieć ramkę odróżniajacą się od ramek pozostałych okien. Dla wybranego okna program ma mieć możliwość wykonania następujących operacji:
    • przesuniecie okna na wierzch lub spód (dwa osobne klawisze),
    • przesuniecie okna do przodu lub do tyłu (dwa osobne klawisze),
    • przesuniecie polożenia okna za pomocą klawiszy kursorów - należy zapewnić, że okno nie zostanie przesunięte poza ekran.
    Program powinien zakończyć działanie po naciśnięciu klawisza ESC tylko wtedy, gdy następiło to w oknie pierwszoplanowym.