11// / @file
22// / @brief Test linkowania podprogramów SYMSHELL'a.
3- // / @date 2026-02-18 (last update)
3+ // / ----------------------------------------
4+ // / @date 2026-04-24 (last update)
45// / @author W.Borkowski: https://github.com/borkowsk
5- // / @details Linking test for:
6+ // / @details
7+ // / ##Linking test for:
68// / SYMSHELL.H - SIMPLE PORTABLE GRAPHICS & INPUT INTERFACE for C/C++
79// / *****************************************************************
810// / ##HISTORY
9- // / - Last changed massively: 22.06.2007
10- // / - Comments edition: 19.11.2021
11- // / - Small changes: 06.02.2023
12- // / - Next....
11+ // / - Last changed massively: 22.06.2007
12+ // / - Comments edition: 19.11.2021
13+ // / - Small changes: 06.02.2023
14+ // / - Cleaning for bi-lingual version 04.2026
15+ // / - Next...
1316
1417#include " symshell.h"
1518
@@ -22,84 +25,84 @@ void test()
2225 unsigned char r=100 ,g=100 ,b=250 ;
2326
2427 /* inicjacja grafiki */
25- shell_setup (" Just a linking test" ,0 ,nullptr ); /* Przekazanie parametrów wywołania */
26- buffering_setup (1 ); /* Przełączanie buforowania okna. Może nie działać po inicjacji*/
27- fix_size (0 ); /* Czy symulować niezmienność rozmiarów okna, nawet gdy zmiana możliwa? */
28- set_background (256 +128 ); /* Ustala index koloru do czyszczenia okna. Może nie działać po inicjacji*/
29- mouse_activity (1 ); /* Ustala czy mysz ma byc obsługiwana. Zwraca poprzedni stan flagi */
30- init_plot (400 , 400 , 1 , 1 ); /* inicjacja grafiki (kiedyś też semigrafiki) */
31- set_title (" LINK TEST FOR SYMSHELL " ); /* Ustawienie tytułu okna. Może nie być możliwe na niektórych platformach. */
28+ shell_setup (" Just a linking test" ,0 ,nullptr ); /* Przekazanie parametrów wywołania */
29+ buffering_setup (1 ); /* Przełączanie buforowania okna. Może nie działać po inicjacji*/
30+ fix_size (0 ); /* Czy symulować niezmienność rozmiarów okna, nawet gdy zmiana możliwa? */
31+ set_background (256 +128 ); /* Ustala index koloru do czyszczenia okna. Może nie działać po inicjacji*/
32+ mouse_activity (1 ); /* Ustala czy mysz ma byc obsługiwana. Zwraca poprzedni stan flagi */
33+ init_plot (400 , 400 , 1 , 1 ); /* inicjacja grafiki (kiedyś też semigrafiki) */
34+ set_title (" SYMSHELL LINK TEST" ); /* Ustawienie tytułu okna. Może nie być możliwe na niektórych platformach. */
3235
3336 /* Operacje przestawiania własności pracy okna graficznego */
34- print_transparently (1 ); /* Włącza drukowanie tekstu bez zamazywania tła. Zwraca stan poprzedni */
35- line_width (2 ); /* Ustala szerokość linii. Może być trochę kosztowne. Zwraca stan poprzedni */
36- line_style (SSH_LINE_SOLID ); /* Ustala styl rysowania linii: SSH_LINE_SOLID, SSH_LINE_DOTTED, SSH_LINE_DASHED */
37- put_style (SSH_SOLID_PUT ); /* Ustala stosunek nowego rysowania do starej zawartości ekranu: SSH_SOLID_PUT,SSH_XOR_PUT */
37+ print_transparently (1 ); /* Włącza drukowanie tekstu bez zamazywania tła. Zwraca stan poprzedni */
38+ line_width (2 ); /* Ustala szerokość linii. Może być trochę kosztowne. Zwraca stan poprzedni */
39+ line_style (SSH_LINE_SOLID ); /* Ustala styl rysowania linii: SSH_LINE_SOLID, SSH_LINE_DOTTED, SSH_LINE_DASHED */
40+ put_style (SSH_SOLID_PUT ); /* Ustala stosunek nowego rysowania do starej zawartości ekranu: SSH_SOLID_PUT,SSH_XOR_PUT */
3841
39- set_rgb (1 , 10 , 100 , 200 ); /* Zmienia definicje koloru w palecie kolorów. Indeksy 0..255 */
40- set_gray (511 , 250 ); /* Zmienia definicje odcienia szarości w palecie szarości. Indeksy 256..511 */
42+ set_rgb (1 , 10 , 100 , 200 ); /* Zmienia definicje koloru w palecie kolorów. Indeksy 0..255 */
43+ set_gray (511 , 250 ); /* Zmienia definicje odcienia szarości w palecie szarości. Indeksy 256..511 */
4144
42- set_pen (100 , 1 , SSH_SOLID_PUT ); /* Ustala aktualny kolor linii za pomocą typu ssh_color */
43- set_brush (100 ); /* Ustala aktualny kolor wypełnień za pomocą typu ssh_color */
44- set_pen_rgb (r, g, b, 2 , SSH_SOLID_PUT ); /* Ustala aktualny kolor linii za pomocą składowych RGB */
45- set_brush_rgb (r, g, b); /* Ustala aktualny kolor wypełnień za pomocą składowych RGB */
45+ set_pen (100 , 1 , SSH_SOLID_PUT ); /* Ustala aktualny kolor linii za pomocą typu ssh_color */
46+ set_brush (100 ); /* Ustala aktualny kolor wypełnień za pomocą typu ssh_color */
47+ set_pen_rgb (r, g, b, 2 , SSH_SOLID_PUT ); /* Ustala aktualny kolor linii za pomocą składowych RGB */
48+ set_brush_rgb (r, g, b); /* Ustala aktualny kolor wypełnień za pomocą składowych RGB */
4649
47- set_pen_rgba (200 , g, b, 64 , 2 , SSH_SOLID_PUT ); /* Ustala aktualny kolor linii za pomocą składowych RGBA(-lpha) */
48- set_brush_rgba (150 , g, b, 64 ); /* Ustala aktualny kolor wypełnień za pomocą składowych RGBA(-lpha) */
50+ set_pen_rgba (200 , g, b, 64 , 2 , SSH_SOLID_PUT ); /* Ustala aktualny kolor linii za pomocą składowych RGBA(-lpha) */
51+ set_brush_rgba (150 , g, b, 64 ); /* Ustala aktualny kolor wypełnień za pomocą składowych RGBA(-lpha) */
4952
5053
5154 /* ODCZYTYWANIE AKTUALNYCH USTAWIEŃ OKNA GRAFICZNEGO*/
52- int ret=buffered (); /* Zwraca 1, jeśli buforowane */
53- ret=fixed (); /* Czy okno ma zafiksowana wielkość */
54- ssh_color bcg=background (); /* Aktualny kolor tla... */
55- ret=get_line_width (); /* Aktualna grubość linii */
56- ssh_color pn=get_pen (); /* Aktualny kolor linii jako ssh_color */
57- ssh_color br=get_brush (); /* Aktualny kolor wypełnień jako ssh_color */
58- ret=screen_height (); /* Aktualne rozmiary okna po przeliczeniach z init_plot*/
59- ret=screen_width (); /* ...i ewentualnych zmianach uczynionych "ręcznie" przez operatora */
60- ret=char_height (' X' ); /* Aktualne rozmiary znaku */
61- ret=char_width (' X' ); /* ...potrzebne do pozycjonowania tekstu */
62- ret=string_height (" Blablably" ); /* Aktualne rozmiary łańcucha (string'u) */
63- ret=string_width (" Blablably" ); /* ...potrzebne do jego pozycjonowania */
55+ int ret=buffered (); /* Zwraca 1, jeśli buforowane */
56+ ret=fixed (); /* Czy okno ma zafiksowana wielkość */
57+ ssh_color bcg=background (); /* Aktualny kolor tla... */
58+ ret=get_line_width (); /* Aktualna grubość linii */
59+ ssh_color pn=get_pen (); /* Aktualny kolor linii jako ssh_color */
60+ ssh_color br=get_brush (); /* Aktualny kolor wypełnień jako ssh_color */
61+ ret=screen_height (); /* Aktualne rozmiary okna po przeliczeniach z init_plot*/
62+ ret=screen_width (); /* ...i ewentualnych zmianach uczynionych "ręcznie" przez operatora */
63+ ret=char_height (' X' ); /* Aktualne rozmiary znaku */
64+ ret=char_width (' X' ); /* ...potrzebne do pozycjonowania tekstu */
65+ ret=string_height (" Blablably" ); /* Aktualne rozmiary łańcucha (string'u) */
66+ ret=string_width (" Blablably" ); /* ...potrzebne do jego pozycjonowania */
6467
6568#ifdef Z_RYSOWANIEM
6669 /* TE FUNKCJE RACZEJ ZAWSZE SĄ ZAIMPLEMENTOWANE BO TO PODSTAWA */
6770 /* PUNKTOWANIE */
68- plot (100 ,150 , 254 ); /* Wyświetlenie punktu na ekranie w kolorze indeksowanym c= 254 */
71+ plot (100 ,150 , 254 ); /* Wyświetlenie punktu na ekranie w kolorze indeksowanym c = 254 */
6972 plot_rgb (100 ,152 ,200 ,100 ,250 );
7073
7174 /* MALOWANIE */
72- fill_circle_d (100 ,300 ,100 ); /* Wyświetlenie kola w kolorach domyślnych*/
73- fill_rect_d (300 , 300 , 350 , 320 ); /* Wyświetla prostokąt w kolorach domyślnych*/
75+ fill_circle_d (100 ,300 ,100 ); /* Wyświetlenie kola w kolorach domyślnych*/
76+ fill_rect_d (300 , 300 , 350 , 320 ); /* Wyświetla prostokąt w kolorach domyślnych*/
7477 static const ssh_point points[] = { { 10 ,0 },{0 ,-10 },{-10 ,0 },{0 ,10 } };
75- fill_poly_d (250 , 250 , points, 4 ); /* Wypełnia wielokąt przesunięty o vx,vy w kolorach domyślnych */
78+ fill_poly_d (250 , 250 , points, 4 ); /* Wypełnia wielokąt przesunięty o vx,vy w kolorach domyślnych */
7679
77- fill_circle (100 , 300 , 10 ,254 ); /* Wyświetlenie kola w kolorze indeksowanym c=254 */
78- fill_rect (350 ,320 ,380 ,350 ,253 ); /* Wyświetla prostokąt w kolorze c=253 */
80+ fill_circle (100 , 300 , 10 ,254 ); /* Wyświetlenie kola w kolorze indeksowanym c=254 */
81+ fill_rect (350 ,320 ,380 ,350 ,253 ); /* Wyświetla prostokąt w kolorze c=253 */
7982 fill_poly (300 , 250 , points, 4 , 128 ); /* Wypełnia wielokąt przesunięty o vx,vy w kolorze c */
8083
8184 /* RYSOWANIE */
82- line_d (0 , 20 , 500 , 500 ); /* Wyświetlenie linii w kolorze domyślnym */
83- circle_d (200 , 200 , 50 ); /* Wyświetlenie okręgu o promieniu 50 w kolorze domyślnym */
85+ line_d (0 , 20 , 500 , 500 ); /* Wyświetlenie linii w kolorze domyślnym */
86+ circle_d (200 , 200 , 50 ); /* Wyświetlenie okręgu o promieniu 50 w kolorze domyślnym */
8487
85- line (0 , 25 , 250 , 500 ,128 ); /* Wyświetlenie linii w kolorze indeksowanym c=128 */
86- circle (200 , 200 , 75 , 254 ); /* Wyświetlenie okręgu w kolorze indeksowanym c=254 */
88+ line (0 , 25 , 250 , 500 ,128 ); /* Wyświetlenie linii w kolorze indeksowanym c=128 */
89+ circle (200 , 200 , 75 , 254 ); /* Wyświetlenie okręgu w kolorze indeksowanym c=254 */
8790
8891
8992/* fill_flood(int x, int y,
90- ssh_color fill, ssh_color border); // Wypełnia powodziowo lub algorytmem siania
93+ ssh_color fill, ssh_color border); // Wypełnia powodziowo lub algorytmem siania
9194 fill_flood_rgb(int x, int y,
9295 int rf, int gf, int bf, int rb, int gb, int bb); */
9396#endif
9497 /* WYPROWADZANIE TEKSTU */
95- printbw (10 , 10 , " %s" , " ..." ); /* Drukuje w kolorach domyślnych */
96- printc (10 , 24 , 255 , 200 , " %s" , " ..." ); /* Drukuje w kolorach użytkownika */
98+ printbw (10 , 10 , " %s" , " ..." ); /* Drukuje w kolorach domyślnych */
99+ printc (10 , 24 , 255 , 200 , " %s" , " ..." ); /* Drukuje w kolorach użytkownika */
97100
98101 /* OPERACJE DOTYCZĄCE CAŁEGO OKNA GRAFICZNEGO */
99102
100- flush_plot (); /* Ostateczne uzgodnienie zawartości ekranu z zawartością pamięci */
101- dump_screen (" Test" ); /* Zapisuje zawartość ekranu do pliku graficznego w naturalnym formacie platformy: BMP, XBM itp */
102- delay_ms (2000 ); /* Wymuszenie oczekiwania przez pewną liczbę milisekund */
103+ flush_plot (); /* Ostateczne uzgodnienie zawartości ekranu z zawartością pamięci */
104+ dump_screen (" Test" ); /* Zapisuje zawartość ekranu do pliku graficznego w naturalnym formacie platformy: BMP, XBM itp */
105+ delay_ms (2000 ); /* Wymuszenie oczekiwania przez pewną liczbę milisekund */
103106
104107 /* POBIERANIE ZNAKÓW Z KLAWIATURY i ZDARZEŃ OKIENNYCH (w tym z MENU) */
105108 while (true )
@@ -144,16 +147,16 @@ void test()
144147int main ()
145148{
146149 test ();
147- close_plot (); /* zamkniecie grafiki (kiedyś też semigrafiki) */
150+ close_plot (); /* zamkniecie grafiki (kiedyś też semigrafiki) */
148151 return 0 ;
149152}
150153
151154/* *******************************************************************/
152155/* SYMSHELLLIGHT version 2026 */
153156/* *******************************************************************/
154- /* THIS CODE IS DESIGNED & COPYRIGHT BY: */
157+ /* THIS CODE IS DESIGNED & COPYRIGHT BY: */
155158/* W O J C I E C H B O R K O W S K I */
156- /* Instytut Studiów Spolecznych Uniwersytetu Warszawskiego */
159+ /* Instytut Studiów Społecznych Uniwersytetu Warszawskiego */
157160/* WWW: https://www.researchgate.net/profile/WOJCIECH_BORKOWSKI */
158161/* GITHUB: https://github.com/borkowsk */
159162/* */
0 commit comments