Nefunkční událost SEL_LEFTBUTTOPRESS ve Foxlib

D.A. Tiger

  • ****
  • 464
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Nefunkční událost SEL_LEFTBUTTOPRESS ve Foxlib
« kdy: 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.


D.A. Tiger

  • ****
  • 464
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re:Nefunkční událost SEL_LEFTBUTTOPRESS ve Foxlib
« Odpověď #1 kdy: 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
« Poslední změna: 30. 01. 2021, 20:53:52 od D.A. Tiger »