Skip to content

Commit 8db5abf

Browse files
committed
More comments in examples.
1 parent c2b3fd6 commit 8db5abf

9 files changed

Lines changed: 311 additions & 264 deletions

File tree

EXAMPLES/CAGas.cpp

Lines changed: 116 additions & 105 deletions
Large diffs are not rendered by default.

EXAMPLES/Linktest.cpp

Lines changed: 59 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
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()
144147
int 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
/* */

EXAMPLES/Testmous.cpp

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
//-/////////////////////////////////////////////////////////////////////////////////////////
1+
/// @file
2+
/// @brief A sample SYMSHELLA program demonstrating mouse support/
3+
/// Przykładowy program SYMSHELLA demonstrujący obsługę myszy.
4+
/// @date 2026-04-24 (last update)
5+
//-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
26
/// @page page_e4_mouse SYMSHELL TEST FOR Mouse
3-
/// @brief Program SYMSHELL'A obsługujący klikanie myszką
7+
/// @brief SYMSHELL'S program that handles mouse clicking/Program SYMSHELL'A obsługujący klikanie myszką.
48
///
5-
/// @section intro_sec_e4 Opis przykładu "Użycie myszy"
6-
/// Demonstruje obsługę zdarzeń myszowych.
7-
/// Zapamiętuje punkty kliknięć i potrafi je odrysować po naciśnięciu ENTER
8-
/// W tle miga napisem "Klikaj!"
9-
/// @include Testmous.cpp
9+
/// @section intro_sec_e4 Description of the "Using the Mouse" example/Opis przykładu "Użycie myszy"
1010
///
11-
/// @file
12-
/// @brief Przykładowy program SYMSHELLA demonstrujący obsługę myszy.
13-
/// @date 2026-04-17 (last update)
14-
//-/////////////////////////////////////////////////////////////////////////////////////////
11+
/// EN: Demonstrates mouse event handling. Remembers click points and can redraw them after pressing ENTER.
12+
/// Flashes "Click!" in the background.
13+
///
14+
/// PL: Demonstruje obsługę zdarzeń myszowych. Zapamiętuje punkty kliknięć i potrafi je odrysować po naciśnięciu ENTER
15+
/// W tle miga napisem "Click!"
16+
/// @include Testmous.cpp
17+
//-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1518

1619
#include <iostream>
1720

@@ -71,7 +74,7 @@ void read_mouse()
7174
if(click_index<max_points-1)
7275
{
7376
click_index++;
74-
printf(" Punkt %d ",click_index);
77+
printf(" Point %d ",click_index);
7578
}
7679
table[click_index].x=xpos;
7780
table[click_index].y=ypos;
@@ -88,7 +91,7 @@ int main(int argc,const char* argv[])
8891
unsigned ysize=200;
8992
mouse_activity(1);
9093
shell_setup(argv[0],argc,argv); //Program file name used as window title!
91-
cout<<"TEST OBSŁUGI MYSZY W PRZENOŚNEJ POWŁOCE GRAFICZNEJ SYMSHELL'A:\n q-quit\n";
94+
cout<<"MOUSE OPERATION TEST IN SYMSHELL`S PORTABLE GRAPHIC SHELL:\n q-quit\n";
9295
cout.flush();
9396

9497
init_plot(xsize,ysize,0,0); //No extra space for text in the margins
@@ -123,8 +126,8 @@ int main(int argc,const char* argv[])
123126

124127
switch(step % WAIT)
125128
{
126-
case 0: printc(5,0,128,255,"Klikaj!");break;
127-
case (WAIT/2):printc(5,0,255,28,"Klikaj!");break;
129+
case 0: printc(5,0,128,255,"Click! Click!!!");break;
130+
case (WAIT/2):printc(5,0,255,28,"Click! Click!!!");break;
128131
}
129132

130133
step++;

EXAMPLES/Testpale.cpp

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
1-
//-/////////////////////////////////////////////////////////////////////////////////////////
2-
/// @page page_e2_paleta SYMSHELL - RESKALOWALNA PALETA
3-
/// @brief Program SYMSHELL'A z automatycznym reskalowaniem i funkcją odrysowywania
1+
/// @file
2+
/// @brief Przykładowy program z reskalowaniem okna/Window rescaling example program.
3+
// --------------------------------------------------------------------------
4+
/// @date 2026-04-24 (last update)
5+
//-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
6+
/// @page page_e2_paleta SYMSHELL - RESKALOWALNA PALETA/RESCALABLE PALETTE
7+
/// @brief Program SYMSHELL'A z automatycznym reskalowaniem i funkcją odrysowywania/
8+
/// SYMSHELL application with automatic rescalling in replot function.
9+
/// @section intro_sec_e2 Opis przykładu "Reskalowalna paleta"/Example description: "Rescalable palette"
410
///
5-
/// @section intro_sec_e2 Opis przykładu "Reskalowalna paleta"
6-
/// Demonstruje skalowanie okna niezależne od aplikacyjnej strony programu
7-
/// i robione w funkcjach symshell'a. Pętla obsługi zdarzeń bez pracy w tle
8-
/// , czyli oczekuje na zdarzenia.
9-
/// @include Testpale.cpp
11+
/// PL: Demonstruje skalowanie okna niezależne od aplikacyjnej strony programu
12+
/// i robione w funkcjach symshell'a. Pętla obsługi zdarzeń bez pracy w tle, czyli oczekuje na zdarzenia.
1013
///
11-
/// @file
12-
/// @brief Przykładowy program SYMSHELL'A z reskalowaniem
13-
/// @date 2026-02-16 (last update)
14-
//-/////////////////////////////////////////////////////////////////////////////////////////
14+
/// EN: Demonstrates window scaling independent of the application side of the program
15+
/// and performed within symshell functions. Event loop without background processing, i.e., it waits for events.
16+
/// @include Testpale.cpp
17+
//-/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1518

1619
#include "symshell.h"
1720
#include <cstdio>
1821
#include <cstdlib>
1922

20-
///On demand, it redraws the entire image - primitive but effective.
23+
/// On demand, it redraws the entire image - primitive but effective.
2124
void replot()
2225
{
2326
unsigned int i,j;
@@ -32,7 +35,7 @@ void replot()
3235
plot(j,i,pom);
3336
}
3437

35-
printbw(0,16,"%s","PALETA");
38+
printbw(0,16,"%s","ENJOY PALETTE!");
3639
flush_plot();
3740
mouse_activity(old);
3841
}
@@ -48,7 +51,7 @@ int main(int argc,const char* argv[])
4851
mouse_activity(0); //We don't need the use_mouse now, so we deactivate it
4952
set_background(128);
5053
buffering_setup(0); //We don't need the animation, so we deactivate it
51-
shell_setup("SYMSHELL - RESKALOWALNA PALETA ",argc,argv);
54+
shell_setup("SYMSHELL - RESCALABLE PALETTE ",argc,argv);
5255
printf("COLORS= 256 q-quit s-switch stdout on/off\n"
5356
"setup options:\n"
5457
" -mapped -buffered -bestfont -traceevt\n"
@@ -93,7 +96,7 @@ int main(int argc,const char* argv[])
9396

9497
//Terminating this application
9598
close_plot();
96-
printf("Do widzenia!!! / Goodbye!!!\n");
99+
printf("\nDo widzenia!!! / Goodbye!!!\n");
97100
return 0;
98101
}
99102

0 commit comments

Comments
 (0)