Jak wyłączyć krzyżyk zamykający dialog?

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
krzys59
Posty: 78
Rejestracja: pt cze 19, 2009 2:59 pm

Jak wyłączyć krzyżyk zamykający dialog?

Post autor: krzys59 »

Czy da się jakoś wyłączyć krzyżyk zamykający okno dialogowe? Chciałbym wymusić zamykanie dialogu moim przyciskiem z oprogramowanym kodem.
Nie potrafię znaleźć jasnej odpowiedzi na to pytanie.
Jan_J
Posty: 4579
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Jak wyłączyć krzyżyk zamykający dialog?

Post autor: Jan_J »

O ile się znam na API bibliotek okienkowych, to dekoracje takie jak przyciski na belce, sama belka itp. są dostępne niskopoziomowo, np. jako styl okna o kodzie zależnym od systemu.
Szukałbym parametru o nazwie style (albo podobnym) w funkcji tworzącej okno dialogowe. Parametr ten winien być typu całkowitoliczbowego (int) i zazwyczaj jest zadawany w postaci bitowej alternatywy wielu różnych masek, z których jedna mogłaby mieć nazwę has_close_button (albo podobną). Tak to się robi w Windows API, w GTK+, w Qt, w wxWidgets.
Nie potrafię powiedzieć z pamięci, czy tego typu opcje da się przekazać poprzez wywołania UNO API, czyli ze znacznie wyższego poziomu. Być może coś tu wyczytasz, a może nie da się w prosty sposób?
Inna możliwość to pozostawić kontrolkę, ale spiąć ją z akcją wykluczającą zamknięcie okna. O tym powinien decydować wynik funkcji przypisanej do zdarzenia (0|1).
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
krzys59
Posty: 78
Rejestracja: pt cze 19, 2009 2:59 pm

Re: Jak wyłączyć krzyżyk zamykający dialog?

Post autor: krzys59 »

Jan_J pisze:...Inna możliwość to pozostawić kontrolkę, ale spiąć ją z akcją wykluczającą zamknięcie okna....
Taki miałem początkowo pomysł, ale nie potrafię "rozpoznać" momentu zamykania okna, nie wiem jak oprogramować to zdarzenie, kliknięcia na krzyżyku. Jakbym to wiedział to nie mam powodu do usuwania go w dialogu.
Jest na to jakiś prosty sposób, bez odwoływani się do głębokich pokładów systemu operacyjnego?
Jan_J
Posty: 4579
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Jak wyłączyć krzyżyk zamykający dialog?

Post autor: Jan_J »

Jeżeli projektujesz dialog w interfejsie wizualnym, to na liście właściwości masz "With title bar". Ustawienie "No" spowoduje ukrycie listwy tytułowej, a wraz z nią i przycisku [x].
W przypadku dostępu z poziomu języka programowania myślę, że trzeba użyć listenera do obsługi zdarzeń. Ale nie wyśledziłem, jak to zrobić w szczegółach.

Patrz też
https://wiki.openoffice.org/wiki/Docume ... g_Controls
https://wiki.openoffice.org/wiki/Docume ... at_Runtime
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
krzys59
Posty: 78
Rejestracja: pt cze 19, 2009 2:59 pm

Re: Jak wyłączyć krzyżyk zamykający dialog?

Post autor: krzys59 »

Dzięki, tego szukałem.
ODPOWIEDZ