Strona 1 z 1
Jak wyłączyć krzyżyk zamykający dialog?
: pt cze 20, 2014 4:21 pm
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.
Re: Jak wyłączyć krzyżyk zamykający dialog?
: pt cze 20, 2014 10:15 pm
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).
Re: Jak wyłączyć krzyżyk zamykający dialog?
: pt cze 20, 2014 11:01 pm
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?
Re: Jak wyłączyć krzyżyk zamykający dialog?
: sob cze 21, 2014 11:14 pm
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
Re: Jak wyłączyć krzyżyk zamykający dialog?
: pn cze 23, 2014 8:58 pm
autor: krzys59
Dzięki, tego szukałem.