Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: D.A. Tiger 26. 01. 2021, 23:45:01

Název: Nefunkční událost SEL_LEFTBUTTOPRESS ve Foxlib
Přispěvatel: D.A. Tiger 26. 01. 2021, 23:45:01
Zdravým,
rád bych poprosil o radu někoho zkušenějšího, kdo se vyzná v C++ GUI knihovně Foxlib:

Snažím se vytvořit komponentu podobnou HeaderBaru v GTK/Gnome 3. Rád bych, aby přes HeaderBar bylo možné ovládat myší pozici okna stejně, jak je tomu v Gnome. Bohužel jsem narazil na to, že mi z nějakého důvodu systém neodesílá do widgetu zprávy typu SEL_LEFTBUTTONPRESS a SEL_LEFTBUTTONRELEASE. Přitom třeba tlačítka, posuvníky a pod, fungují bez problému. Test aplikace, přikládáne k Fox toolkitu, taktéž  - takže se s největší pravděpodobností nejedná o bug přímo v knihovně.

Třída widgetu je potomkem třídy FXVerticalFrame, a jejím GUI předkem je vždy nějaké toplevel okno. verze Fox 1.7.74

Kód třídy (obsah hlavičkového i implementačního souboru ) jsem vystavil na pastebin. Byl by někdo prosím ochotný se mi na to mrknout a poradit mi, co dělám špatně, popř. proč se to nechová podle očekávaní? Já na to nemohu za boha sám přijít.

https://www.pastebin.cz/en/p/Go7ScEz

Dopředu díky.
Název: Re:Nefunkční událost SEL_LEFTBUTTOPRESS ve Foxlib
Přispěvatel: D.A. Tiger 30. 01. 2021, 20:45:27
Zdravím
Problém se mi nakonec podařilo vyřešit. Pro případ, že by to někdy někdo potřeboval posílám i řešení:

FXVerticalFrame, FXHorizontalFrame a předpokládám, že i ostatní správci layoutu, nemají povoleno přijímat události z myši a klávesnice (vyjímkou jsou zprávy typu SEL_ENTER a SEL_LEAVE). Pro ovládání této vlastnosti okna (widgetu) slouží tři metody, které dědí potomci třídy FXWindow.
virtual void FXWindow::enable( )              povoleni
virtual void FXWindow::disable( )             zákaz
FXbool FXWindow::isEnabled( )                Vrátí aktuální stav