You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
(195) |
Jun
(105) |
Jul
(146) |
Aug
(283) |
Sep
(151) |
Oct
(143) |
Nov
(204) |
Dec
(359) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(213) |
Feb
(366) |
Mar
(423) |
Apr
(226) |
May
(195) |
Jun
(270) |
Jul
(282) |
Aug
(255) |
Sep
(218) |
Oct
(328) |
Nov
(261) |
Dec
(358) |
2002 |
Jan
(366) |
Feb
(321) |
Mar
(360) |
Apr
(219) |
May
(284) |
Jun
(227) |
Jul
(592) |
Aug
(432) |
Sep
(530) |
Oct
(307) |
Nov
(320) |
Dec
(177) |
2003 |
Jan
(253) |
Feb
(164) |
Mar
(216) |
Apr
(295) |
May
(260) |
Jun
(297) |
Jul
(438) |
Aug
(339) |
Sep
(169) |
Oct
(174) |
Nov
(225) |
Dec
(221) |
2004 |
Jan
(517) |
Feb
(613) |
Mar
(320) |
Apr
(193) |
May
(165) |
Jun
(358) |
Jul
(502) |
Aug
(386) |
Sep
(474) |
Oct
(298) |
Nov
(305) |
Dec
(403) |
2005 |
Jan
(274) |
Feb
(409) |
Mar
(282) |
Apr
(430) |
May
(329) |
Jun
(309) |
Jul
(380) |
Aug
(363) |
Sep
(440) |
Oct
(271) |
Nov
(270) |
Dec
(173) |
2006 |
Jan
(185) |
Feb
(187) |
Mar
(213) |
Apr
(253) |
May
(204) |
Jun
(230) |
Jul
(155) |
Aug
(211) |
Sep
(159) |
Oct
(127) |
Nov
(162) |
Dec
(84) |
2007 |
Jan
(98) |
Feb
(105) |
Mar
(137) |
Apr
(88) |
May
(142) |
Jun
(174) |
Jul
(159) |
Aug
(107) |
Sep
(41) |
Oct
(84) |
Nov
(77) |
Dec
(43) |
2008 |
Jan
(106) |
Feb
(80) |
Mar
(78) |
Apr
(182) |
May
(79) |
Jun
(105) |
Jul
(51) |
Aug
(69) |
Sep
(79) |
Oct
(47) |
Nov
(42) |
Dec
(32) |
2009 |
Jan
(64) |
Feb
(41) |
Mar
(42) |
Apr
(40) |
May
(47) |
Jun
(86) |
Jul
(32) |
Aug
(57) |
Sep
(52) |
Oct
(38) |
Nov
(89) |
Dec
(32) |
2010 |
Jan
(30) |
Feb
(34) |
Mar
(23) |
Apr
(24) |
May
(17) |
Jun
(20) |
Jul
(49) |
Aug
(30) |
Sep
(77) |
Oct
(41) |
Nov
(66) |
Dec
(31) |
2011 |
Jan
(36) |
Feb
(34) |
Mar
(10) |
Apr
(55) |
May
(21) |
Jun
(21) |
Jul
(29) |
Aug
(55) |
Sep
(33) |
Oct
(8) |
Nov
(17) |
Dec
(17) |
2012 |
Jan
(7) |
Feb
(15) |
Mar
(23) |
Apr
(14) |
May
(20) |
Jun
(36) |
Jul
(35) |
Aug
(35) |
Sep
(9) |
Oct
(6) |
Nov
(29) |
Dec
(30) |
2013 |
Jan
(36) |
Feb
(19) |
Mar
(5) |
Apr
(15) |
May
(21) |
Jun
(12) |
Jul
(7) |
Aug
(18) |
Sep
(30) |
Oct
(5) |
Nov
(7) |
Dec
(9) |
2014 |
Jan
(11) |
Feb
(15) |
Mar
|
Apr
(1) |
May
(10) |
Jun
(16) |
Jul
|
Aug
|
Sep
|
Oct
(7) |
Nov
(17) |
Dec
(21) |
2015 |
Jan
(15) |
Feb
(8) |
Mar
(1) |
Apr
(7) |
May
(3) |
Jun
(22) |
Jul
(10) |
Aug
(37) |
Sep
(8) |
Oct
(2) |
Nov
(18) |
Dec
(8) |
2016 |
Jan
(3) |
Feb
(1) |
Mar
(7) |
Apr
(14) |
May
(4) |
Jun
(13) |
Jul
(19) |
Aug
(21) |
Sep
(6) |
Oct
(1) |
Nov
(3) |
Dec
(9) |
2017 |
Jan
(17) |
Feb
(9) |
Mar
(30) |
Apr
(17) |
May
(7) |
Jun
(55) |
Jul
(1) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(2) |
Dec
(4) |
2018 |
Jan
(21) |
Feb
(5) |
Mar
(9) |
Apr
(6) |
May
(4) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(2) |
Dec
(3) |
2019 |
Jan
(2) |
Feb
(6) |
Mar
(9) |
Apr
|
May
(9) |
Jun
(3) |
Jul
(7) |
Aug
(2) |
Sep
(22) |
Oct
|
Nov
(10) |
Dec
(11) |
2020 |
Jan
(10) |
Feb
(6) |
Mar
(31) |
Apr
(27) |
May
(6) |
Jun
(4) |
Jul
(34) |
Aug
(3) |
Sep
|
Oct
(4) |
Nov
(51) |
Dec
(27) |
2021 |
Jan
(5) |
Feb
(3) |
Mar
(9) |
Apr
(18) |
May
(2) |
Jun
|
Jul
(12) |
Aug
(32) |
Sep
(16) |
Oct
(16) |
Nov
(1) |
Dec
(4) |
2022 |
Jan
(2) |
Feb
(12) |
Mar
(10) |
Apr
(17) |
May
|
Jun
(3) |
Jul
(4) |
Aug
|
Sep
(7) |
Oct
(23) |
Nov
(26) |
Dec
(1) |
2023 |
Jan
(7) |
Feb
(9) |
Mar
(4) |
Apr
(18) |
May
(17) |
Jun
(26) |
Jul
(24) |
Aug
(2) |
Sep
(10) |
Oct
(3) |
Nov
(11) |
Dec
(4) |
2024 |
Jan
(2) |
Feb
(13) |
Mar
(2) |
Apr
(14) |
May
(22) |
Jun
|
Jul
(16) |
Aug
(3) |
Sep
(3) |
Oct
(38) |
Nov
(3) |
Dec
(13) |
2025 |
Jan
(10) |
Feb
|
Mar
(2) |
Apr
|
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: JVZ <je...@fo...> - 2025-05-18 16:28:02
|
On Fri, 16 May 2025 14:25:48 -0400 "John Selverian" <joh...@ja...> wrote: >I had a similar problem. > > > >I have several nested containers/frames/FXScrollWindow/FXTreeList > > > >It turns out the FXTreeList was always handling the mousewheel event. I wound up subclassing FXTreeList and capturing the mousewheel there. Maybe you could so the same with the FXText. I dropped an updated version of FOX this morning [1.7.86]. It fixes the issue of the SEL_MOUSEWHEEL messages not being routed as a "first-shot" chance to the target. So, most widgets will bounce SEL_MOUSEWHEEL to target first; if target does not handle them [which is of course most of the time], the regular processing resumes. A list of other improvements: - SEL_MOUSEWHEEL now bounced to target, similarly to other GUI events. - New implementation of FXQuatf and FXQuatd setAxes() API. This one is singularity-free. - New fastlerp() API in FXQuatf and FXQuatd implements trig-free quaternion interpolation. - Improved pow() implementation in FXQuatf and FXQuatd. - FOX Calculator fixes. - Use argv[0] in adie as name of program in Registry. This means name of editor can be used to provide alternate configuration databases. - FindInFiles shows file before reading it. - FXPath now assumes user name may contain other characters in tilde-expansion. - Missing fxstrcasestr() and fxstrstr() implementation added; needed for this and that. - FXText draws control-characters differently now. - FXString unicode escapes bug fixes. -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 11:20 05/18/2025 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: <je...@fo...> - 2025-05-16 20:27:06
|
On 2025-05-16 13:25, John Selverian wrote: > I had a similar problem. > > > > I have several nested containers/frames/FXScrollWindow/FXTreeList > > > > It turns out the FXTreeList was always handling the mousewheel event. > I wound up subclassing FXTreeList and capturing the mousewheel there. > Maybe you could so the same with the FXText. Subclassing would work. But the standard pattern is to bounce first, and this isn't religiously done for SEL_MOUSEWHEEL events. It should be, so I'll go through stuff and make it so does, because I feel this was an unintended omission. Most ui events [keyboard, mouse, etc] get bounced first. You can do beautiful things when you're able to conditionally handle mouse events, so I feel like I'm leaving some nice functionality on the table if it wasn't implemented. -- JVZ |
From: <je...@fo...> - 2025-05-16 20:08:12
|
On 2025-05-16 11:32, Pasquale via Foxgui-users wrote: > I have 3 FXText widgets and a vertical FXScrollbar in a > horizontalframe. > > I have the code so the scrollbars in the three FXText are hidden, and > the vertical scrollbar moves all three fxtext areas together when you > left click on the scrollbar. > > My issue is when you mousewheel scroll in 1 of the FXText. They get > out of sync. I cannot figure out how to handle/capture the wheel mouse > scroll in a FXText area so I can also code the movement for the other > 2 FXText widgets and the FXScrollbar as well and stay synced. > > Also, moving the mousewheel over the FXScrollbar moves the scrollbar > but doesn't update the scrolling for the FXText widgets. > > I have searched the forum for various phrases and found some > information, but I was not able to figure it out or fully understand > what was written. Any help would be greatly appreciated. Perhaps we should bounce SEL_MOUSEWHEEL events to target prior to handling it in the widget, just like we do with Button and Key events. This way, you can intercept them to handle them differently. FYI, for most widgets, the sequence of events upon a mouse or keyboard event is to: (1) bounce to the widget's target (the message ID is the one from the widget, not 0 anymore). (2) if the target didn't handle it [i.e. target->handle() returned 0], then continue to handle it. (3) if the target *did* handle it, end the SEL_MOUSEWHEEL processing there. It looks like for some reason the wheel event mostly doesn't get processed that way, but this is mot how it works for the other events. All other events get bounced to the target first, so that target can override the processing w/o having to subclass the widget. Often, the bounce-processing is conditional; for example in the editor, the mouse right-release is only processed if there was no mouse movement since the mouse right-press. Then a popup is brought up. If there was a movement, then its not intercepted. -- JVZ |
From: John S. <joh...@ja...> - 2025-05-16 19:43:39
|
I had a similar problem. I have several nested containers/frames/FXScrollWindow/FXTreeList It turns out the FXTreeList was always handling the mousewheel event. I wound up subclassing FXTreeList and capturing the mousewheel there. Maybe you could so the same with the FXText. https://sourceforge.net/p/foxgui/mailman/message/58831015/ js From: Pasquale via Foxgui-users <fox...@li...> Sent: Friday, May 16, 2025 12:33 PM To: FOX Users <fox...@li...> Subject: [Foxgui-users] Mouse Wheel scrolling in Multiple FXText widgets I have 3 FXText widgets and a vertical FXScrollbar in a horizontalframe. I have the code so the scrollbars in the three FXText are hidden, and the vertical scrollbar moves all three fxtext areas together when you left click on the scrollbar. My issue is when you mousewheel scroll in 1 of the FXText. They get out of sync. I cannot figure out how to handle/capture the wheel mouse scroll in a FXText area so I can also code the movement for the other 2 FXText widgets and the FXScrollbar as well and stay synced. Also, moving the mousewheel over the FXScrollbar moves the scrollbar but doesn't update the scrolling for the FXText widgets. I have searched the forum for various phrases and found some information, but I was not able to figure it out or fully understand what was written. Any help would be greatly appreciated. Pasquale |
From: Pasquale <pjr...@pr...> - 2025-05-16 16:33:14
|
I have 3 FXText widgets and a vertical FXScrollbar in a horizontalframe. I have the code so the scrollbars in the three FXText are hidden, and the vertical scrollbar moves all three fxtext areas together when you left click on the scrollbar. My issue is when you mousewheel scroll in 1 of the FXText. They get out of sync. I cannot figure out how to handle/capture the wheel mouse scroll in a FXText area so I can also code the movement for the other 2 FXText widgets and the FXScrollbar as well and stay synced. Also, moving the mousewheel over the FXScrollbar moves the scrollbar but doesn't update the scrolling for the FXText widgets. I have searched the forum for various phrases and found some information, but I was not able to figure it out or fully understand what was written. Any help would be greatly appreciated. Pasquale |
From: <je...@fo...> - 2025-03-10 15:07:58
|
On 2025-03-10 08:38, David Vereb wrote: > Good Morning, > > It seems fox-toolkit.org isn't responding for me. Is anyone else > having the same issue? Perhaps something's up with the hosting? It looks like there's an issue. Trying to find out what caused it. -- JVZ |
From: David V. <de...@er...> - 2025-03-10 14:18:10
|
Good Morning, It seems fox-toolkit.org isn't responding for me. Is anyone else having the same issue? Perhaps something's up with the hosting? Thanks, Dave -- David Vereb /Lead Software Developer/ Office: 814.464.1525 1851 Rudolph Avenue Erie, PA 16502 www.eriestrayer.com <http://www.eriestrayer.com/> Erie Strayer Company Logo & Social Media Icons |
From: Jeroen v. d. Z. <je...@fo...> - 2025-01-31 23:20:34
|
On Fri, 31 Jan 2025 19:01:06 +0000 levan shoshiashvili <sh...@ho...> wrote: > Hello Jeroen > System windows 10 64bit; > VS2022; > Static lib compiles and links fine. > For dll I got those errors: > > 1>imageviewer.cpp > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(104,25): warning C4251: 'FX::FXXML::startDocumentCB': class 'FX::FXCallback<FX::FXXML::Error (void)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(104,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (void)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(107,66): warning C4251: 'FX::FXXML::startElementCB': class 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &,const FX::FXStringDictionary &)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(107,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &,const FX::FXStringDictionary &)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(110,40): warning C4251: 'FX::FXXML::charactersCB': class 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(110,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(113,40): warning C4251: 'FX::FXXML::commentCB': class 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(110,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(116,56): warning C4251: 'FX::FXXML::processingCB': class 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &,const FX::FXString &)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(116,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &,const FX::FXString &)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(119,40): warning C4251: 'FX::FXXML::endElementCB': class 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(110,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (const FX::FXString &)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(122,25): warning C4251: 'FX::FXXML::endDocumentCB': class 'FX::FXCallback<FX::FXXML::Error (void)>' needs to have dll-interface to be used by clients of class 'FX::FXXML' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXXML.h(104,3): message : see declaration of 'FX::FXCallback<FX::FXXML::Error (void)>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXThreadPool.h(70,19): warning C4251: 'FX::FXThreadPool::queue': class 'FX::FXLFQueueOf<FX::FXRunnable>' needs to have dll-interface to be used by clients of class 'FX::FXThreadPool' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXThreadPool.h(34,9): message : see declaration of 'FX::FXLFQueueOf<FX::FXRunnable>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXIconCache.h(58,21): warning C4251: 'FX::FXIconCache::dict': class 'FX::FXDictionaryOf<FX::FXIcon>' needs to have dll-interface to be used by clients of class 'FX::FXIconCache' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXIconCache.h(37,9): message : see declaration of 'FX::FXDictionaryOf<FX::FXIcon>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXFileAssociations.h(104,26): warning C4251: 'FX::FXFileAssociations::bindings': class 'FX::FXDictionaryOf<FX::FXFileAssoc>' needs to have dll-interface to be used by clients of class 'FX::FXFileAssociations' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXFileAssociations.h(50,9): message : see declaration of 'FX::FXDictionaryOf<FX::FXFileAssoc>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXList.h(172,18): warning C4251: 'FX::FXList::items': class 'FX::FXObjectListOf<FX::FXListItem>' needs to have dll-interface to be used by clients of class 'FX::FXList' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXList.h(153,9): message : see declaration of 'FX::FXObjectListOf<FX::FXListItem>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXHeader.h(201,20): warning C4251: 'FX::FXHeader::items': class 'FX::FXObjectListOf<FX::FXHeaderItem>' needs to have dll-interface to be used by clients of class 'FX::FXHeader' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXHeader.h(176,9): message : see declaration of 'FX::FXObjectListOf<FX::FXHeaderItem>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXIconList.h(204,22): warning C4251: 'FX::FXIconList::items': class 'FX::FXObjectListOf<FX::FXIconItem>' needs to have dll-interface to be used by clients of class 'FX::FXIconList' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXIconList.h(172,9): message : see declaration of 'FX::FXObjectListOf<FX::FXIconItem>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXUndoList.h(158,19): warning C4251: 'FX::FXCommandGroup::command': class 'FX::FXArray<FX::FXCommandPtr>' needs to have dll-interface to be used by clients of class 'FX::FXCommandGroup' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXUndoList.h(133,9): message : see declaration of 'FX::FXArray<FX::FXCommandPtr>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXConsole.h(56,18): warning C4251: 'FX::FXConsole::contents': class 'FX::FXArray<FX::FXString>' needs to have dll-interface to be used by clients of class 'FX::FXConsole' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXConsole.h(45,9): message : see declaration of 'FX::FXArray<FX::FXString>' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXConsole.h(57,18): warning C4251: 'FX::FXConsole::style': class 'FX::FXArray<FX::FXString>' needs to have dll-interface to be used by clients of class 'FX::FXConsole' > 1>F:\Users\LAE\levan\work\fox-1.7.85\include\FXConsole.h(45,9): message : see declaration of 'FX::FXArray<FX::FXString>' > 1> Creating library F:\Users\LAE\levan\work\fox-1.7.85\windows\x64\Release\ImageViewer.lib and object F:\Users\LAE\levan\work\fox-1.7.85\windows\x64\Release\ImageViewer.exp > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static class FX::FXMetaClass const FX::FXMainWindow::metaClass" (?metaClass@FXMainWindow@FX@@2VFXMetaClass@2@B) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static unsigned short const * const FX::FXhalf::fhb" (?fhb@FXhalf@FX@@0QBGB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static unsigned char const * const FX::FXhalf::fhs" (?fhs@FXhalf@FX@@0QBEB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static unsigned int const * const FX::FXhalf::hfm" (?hfm@FXhalf@FX@@0QBIB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static unsigned int const * const FX::FXhalf::hfe" (?hfe@FXhalf@FX@@0QBIB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static unsigned short const * const FX::FXhalf::hfw" (?hfw@FXhalf@FX@@0QBGB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXException::exceptionName" (?exceptionName@FXException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXFatalException::exceptionName" (?exceptionName@FXFatalException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXErrorException::exceptionName" (?exceptionName@FXErrorException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXRangeException::exceptionName" (?exceptionName@FXRangeException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXPointerException::exceptionName" (?exceptionName@FXPointerException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXResourceException::exceptionName" (?exceptionName@FXResourceException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXMemoryException::exceptionName" (?exceptionName@FXMemoryException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXWindowException::exceptionName" (?exceptionName@FXWindowException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXImageException::exceptionName" (?exceptionName@FXImageException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXFontException::exceptionName" (?exceptionName@FXFontException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXThreadException::exceptionName" (?exceptionName@FXThreadException@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "public: static char const * const FX::FXString::null" (?null@FXString@FX@@2QBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const (* FX::FXDate::shortMonthName)[4]" (?shortMonthName@FXDate@FX@@0QAY03$$CBDA) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const (* FX::FXDate::longMonthName)[10]" (?longMonthName@FXDate@FX@@0QAY09$$CBDA) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const (* FX::FXDate::shortWeekDay)[4]" (?shortWeekDay@FXDate@FX@@0QAY03$$CBDA) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const (* FX::FXDate::longWeekDay)[10]" (?longWeekDay@FXDate@FX@@0QAY09$$CBDA) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "protected: static char const * const * const FX::FXJSON::errors" (?errors@FXJSON@FX@@1QBQEBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const * const * const FX::FXINI::errors" (?errors@FXINI@FX@@0QBQEBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const * const * const FX::FXXML::errors" (?errors@FXXML@FX@@0QBQEBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static class FX::FXApp * FX::FXApp::app" (?app@FXApp@FX@@0PEAV12@EA) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const * const * const FX::FXRex::errors" (?errors@FXRex@FX@@0QBQEBDB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static unsigned char const * const FX::FXExpression::initial" (?initial@FXExpression@FX@@0QBEB) > 1>imageviewer.obj : error LNK2001: unresolved external symbol "private: static char const * const * const FX::FXExpression::errors" (?errors@FXExpression@FX@@0QBQEBDB) > 1>F:\Users\LAE\levan\work\fox-1.7.85\windows\x64\Release\ImageViewer.exe : fatal error LNK1120: 29 unresolved externals > > Yes I have set -DFOXDLL in imageviewer project options. You might need -DFOX_DLL -DFOXDLL_EXPORTS when *compiling* the library, and just -DFOX_DLL when *using* the library. FYI, project files for VC++ were missing some files; new snapshot cover this. -- JVZ |
From: Jeroen v. d. Z. <je...@fo...> - 2025-01-23 00:58:12
|
On Wed, 22 Jan 2025 23:45:07 +0000 Charbel Khawand <ch...@mi...> wrote: > Hi Jeron, > > I downloaded your Fox ToolKit latest and tried to build it in visual studio 2022. > > I hit an issue with the gif files in Adie.cpp as follows: > > smallicon = new FXGIFIcon(this, small_gif); > newicon=new FXGIFIcon(this,new_gif); > newfileicon=new FXGIFIcon(this,newfile_gif); > reloadicon=new FXGIFIcon(this,reload_gif); > openicon=new FXGIFIcon(this,open_gif); > > etc... > > The icons directory is there under Adie source project but those files fail to build. > > Please let me know if you have a workaround. > > Thanks, The delivered project file is for an older version of VC++ [2015 I believe]. I have tested up to 2019 to upgrade projects, that seems to work. I have not tested VS2022 yet, it is possible some things have changed. I can help you fill in the missing pieces: 1) The first project to be built should be "reswrap". Reswrap is a tool that takes binary files [such as images and icons], and turns them into C data arrays, typically icons.h and icons.cpp. For each such file, it'll generate a declaration in icons.h and a data array in the corresponding icons.cpp. 2) A "custom build rule" runs before the build starts. It kicks of reswrap two times, onces for the icons.h and once for the icons.cpp. These files should be already listed as dependencies for the FOX library, but the files may not yet exist yet until the custom build step creates them. 3) Input to the custom build step is the list of .bmp, .png, and .gif images/icons you find in the lib directory [and the directories of the sub-projects]. Its kind of a long list. You may want to do something like ls *.gif *.png *.bmp > list to build it, then paste the list into the "inputs" box of the custom build rule. 4) In principle, you are now able to build. I suspect the project upgrade may have mangled the custom build step; its also possible some icons got left out by accident. If direct upgrade from VS2015 to VS2022 does not work, maybe upgrade via VS2019 does; I know because I've used this on occasion I believe. Best of luck, -- JVZ |
From: Jeroen v. d. Z. <je...@fo...> - 2025-01-11 13:58:58
|
On Tue, 7 Jan 2025 10:28:59 +0100 Jean Truc <bib...@gm...> wrote: > Hi, > > I've found the following issue in FOX 1.6.58 (compiled in Linux): when the > mouse pointer is located on a menu item, then pressing left or right key > does not move to the previous/next menu item. > > This can easily be seen in some test application, as for example > imageviewer. So, to reproduce the issue: > > 1. Open imageviewer > 2. Place the mouse cursor on the File menu item > 3. Press the right key => nothing happens. The correct behaviour would be > that the next menu item (Edit) should be activated. > > I incidentally noticed that if the mouse cursor appears as a reverse arrow, > then the issue happens. But if the mouse cursor is slightly moved (still > over the menu item) then it becomes a normal arrow and then it's possible > to move to the next item using the right key. This is helpful' the cursor flips when the mouse is grabbed. It is not grabbed while inside the button, so when you arrow-out of the button, it no longer has the focus. If you do same while mouse is grabbed all events continue to be delivered to the FXWindow that grabbed the mouse. > Is this a know issue? Should I fill a bug report? You just did! |
From: Jean T. <bib...@gm...> - 2025-01-10 16:51:39
|
OK, I'll fill a bug report, but I couldn't find a link for that on the FOX Toolkit website? Le mar. 7 janv. 2025 à 10:31, Jean Truc <bib...@gm...> a écrit : > I forgot: I've tested with FOX 1.7.85 (Linux) and the same issue happens. > > Le mar. 7 janv. 2025 à 10:28, Jean Truc <bib...@gm...> a écrit : > >> Hi, >> >> I've found the following issue in FOX 1.6.58 (compiled in Linux): when >> the mouse pointer is located on a menu item, then pressing left or right >> key does not move to the previous/next menu item. >> >> This can easily be seen in some test application, as for example >> imageviewer. So, to reproduce the issue: >> >> 1. Open imageviewer >> 2. Place the mouse cursor on the File menu item >> 3. Press the right key => nothing happens. The correct behaviour would be >> that the next menu item (Edit) should be activated. >> >> I incidentally noticed that if the mouse cursor appears as a reverse >> arrow, then the issue happens. But if the mouse cursor is slightly moved >> (still over the menu item) then it becomes a normal arrow and then it's >> possible to move to the next item using the right key. >> >> Is this a know issue? Should I fill a bug report? >> >> Thanks, >> JT >> >> >> >> |
From: Jean T. <bib...@gm...> - 2025-01-07 09:31:41
|
I forgot: I've tested with FOX 1.7.85 (Linux) and the same issue happens. Le mar. 7 janv. 2025 à 10:28, Jean Truc <bib...@gm...> a écrit : > Hi, > > I've found the following issue in FOX 1.6.58 (compiled in Linux): when the > mouse pointer is located on a menu item, then pressing left or right key > does not move to the previous/next menu item. > > This can easily be seen in some test application, as for example > imageviewer. So, to reproduce the issue: > > 1. Open imageviewer > 2. Place the mouse cursor on the File menu item > 3. Press the right key => nothing happens. The correct behaviour would be > that the next menu item (Edit) should be activated. > > I incidentally noticed that if the mouse cursor appears as a reverse > arrow, then the issue happens. But if the mouse cursor is slightly moved > (still over the menu item) then it becomes a normal arrow and then it's > possible to move to the next item using the right key. > > Is this a know issue? Should I fill a bug report? > > Thanks, > JT > > > > |
From: Jean T. <bib...@gm...> - 2025-01-07 09:29:16
|
Hi, I've found the following issue in FOX 1.6.58 (compiled in Linux): when the mouse pointer is located on a menu item, then pressing left or right key does not move to the previous/next menu item. This can easily be seen in some test application, as for example imageviewer. So, to reproduce the issue: 1. Open imageviewer 2. Place the mouse cursor on the File menu item 3. Press the right key => nothing happens. The correct behaviour would be that the next menu item (Edit) should be activated. I incidentally noticed that if the mouse cursor appears as a reverse arrow, then the issue happens. But if the mouse cursor is slightly moved (still over the menu item) then it becomes a normal arrow and then it's possible to move to the next item using the right key. Is this a know issue? Should I fill a bug report? Thanks, JT |
From: Jean T. <bib...@gm...> - 2025-01-04 11:52:10
|
Thanks a lot for your answers. You pointed me in the right direction! So, I ended up with the following very simple solution. In functions that draw the icons, I added a line to draw the badge, like this : dc.drawIcon(bigIcon, xi, yi); if (bigIconBadge != NULL) { dc.drawIcon(bigIconBadge, xi, yi); } The badge icon (which has transparency) is then correctly displayed above the file icon. Le 03/01/2025 à 15:26, je...@fo... a écrit : > On 2025-01-03 07:38, Roland Hughes via Foxgui-users wrote: >> Traditionally you use a graphics tool, create 2 different icons, then >> use the appropriate icon. This is irregardless (never should have >> banned that word!) of the graphics library you are using. >> >> The left-handed-you-must-have-been-drunk-on-a-Tuesday method is create >> two icons of the exact same size and place them in the exact same >> position. One icon will be at least 50% transparent so when placed on >> top you can still see some of the other below. > > Since FXIcon is derived from FXImage, you can make it the destination > of drawing operations [after create() generates its off-screen X11-server > resident buffer]. > > So, make a mini-image of your badge, then draw it onto the base icon, > then draw the icon to the screen repeatedly. > > The difference between FXIcon and FXImage is, however, that the FXIcon > also has two additional 1-bit buffers for the mask and "etch" mask. > > You may need to find some way to update those as well [I have no > super-easy solution for it, maybe restore() local buffer from updated > server-side buffer, and regenerating the masks, is the best idea for > now. > > > -- JVZ |
From: <je...@fo...> - 2025-01-03 14:42:41
|
On 2025-01-03 07:38, Roland Hughes via Foxgui-users wrote: > Traditionally you use a graphics tool, create 2 different icons, then > use the appropriate icon. This is irregardless (never should have > banned that word!) of the graphics library you are using. > > The left-handed-you-must-have-been-drunk-on-a-Tuesday method is create > two icons of the exact same size and place them in the exact same > position. One icon will be at least 50% transparent so when placed on > top you can still see some of the other below. Since FXIcon is derived from FXImage, you can make it the destination of drawing operations [after create() generates its off-screen X11-server resident buffer]. So, make a mini-image of your badge, then draw it onto the base icon, then draw the icon to the screen repeatedly. The difference between FXIcon and FXImage is, however, that the FXIcon also has two additional 1-bit buffers for the mask and "etch" mask. You may need to find some way to update those as well [I have no super-easy solution for it, maybe restore() local buffer from updated server-side buffer, and regenerating the masks, is the best idea for now. -- JVZ |
From: Roland H. <ro...@lo...> - 2025-01-03 14:18:10
|
Traditionally you use a graphics tool, create 2 different icons, then use the appropriate icon. This is irregardless (never should have banned that word!) of the graphics library you are using. The left-handed-you-must-have-been-drunk-on-a-Tuesday method is create two icons of the exact same size and place them in the exact same position. One icon will be at least 50% transparent so when placed on top you can still see some of the other below. On 1/3/25 06:20, Jean Truc wrote: > Hi folks, > > in an icon list, I'd like to add badges to icons. For example, if a > file is a link, I'd like to add a link sign to the file icon. Or if a > file is important, some attention badge could be added to the file icon. > > My problem probably comes down to: how do I dynamically mix two icons > (badge icon over file icon)? > > Thanks for any help or idea, > JT > > > _______________________________________________ > Foxgui-users mailing list > Fox...@li... > https://lists.sourceforge.net/lists/listinfo/foxgui-users -- Roland Hughes, President Logikal Solutions (630)-205-1593 http://www.theminimumyouneedtoknow.com http://www.infiniteexposure.net http://www.johnsmith-book.com http://www.logikalblog.com http://www.interestingauthors.com/blog |
From: Jean T. <bib...@gm...> - 2025-01-03 12:21:12
|
Hi folks, in an icon list, I'd like to add badges to icons. For example, if a file is a link, I'd like to add a link sign to the file icon. Or if a file is important, some attention badge could be added to the file icon. My problem probably comes down to: how do I dynamically mix two icons (badge icon over file icon)? Thanks for any help or idea, JT |
From: John S. <joh...@ja...> - 2024-12-21 21:45:12
|
Thanks, I also had to add -ljpeg and -ltiff to my makefile for some reason. Js -----Original Message----- From: JVZ <je...@fo...> Sent: Saturday, December 21, 2024 3:03 PM To: joh...@ja... Cc: fox...@li... Subject: Re: [Foxgui-users] errors on new build On Sat, 21 Dec 2024 14:05:27 -0500 joh...@ja... wrote: >I'm installing fox on a new computer (Ubuntu 24.04.1 LTS) and get the >following errors: > > > >> ./configure --with-x --with-xft --with-opengl --disable-shared >> --enable-threadsafe make > > > > >libtool: compile: g++ -DPACKAGE_NAME=\"fox\" -DPACKAGE_TARNAME=\"fox\" >-DPACKAGE_VERSION=\"1.7.50\" "-DPACKAGE_STRING=\"fox 1.7.50\"" >-DPACKAGE_BUGREPORT=\"je...@fo...\" -DPACKAGE_URL=\"\" >-DPACKAGE=\"fox\" -DVERSION=\"1.7.50\" -DSTDC_HEADERS=1 >-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 >-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 >-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 >-D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 >-D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 >-DLT_OBJDIR=\".libs/\" -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1 >-DHAVE_DIRENT_H=1 -DHAVE_LIBRT=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBDL=1 >-DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_READDIR_R=1 >-DHAVE_GETPWUID_R=1 -DHAVE_GETGRGID_R=1 -DHAVE_GETPWNAM_R=1 >-DHAVE_PTHREAD_SETAFFINITY_NP=1 -DHAVE_SCHED_GETCPU=1 -DHAVE_PIPE2=1 >-DHAVE_STATVFS=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_IPC_H=1 >-DHAVE_SYS_SHM_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_MOUNT_H=1 >-DHAVE_SEMAPHORE_H=1 -DHAVE_DLFCN_H=1 -DHAVE_SYS_STATVFS_H=1 >-DHAVE_IMMINTRIN_H=1 -DHAVE_PNG_H=1 -DHAVE_TIFF_H=1 -DHAVE_ZLIB_H=1 >-DHAVE_BZLIB_H=1 -DHAVE_X11_EXTENSIONS_XSHM_H=1 >-DHAVE_X11_EXTENSIONS_SHAPE_H=1 -DHAVE_X11_XCURSOR_XCURSOR_H=1 >-DHAVE_X11_EXTENSIONS_XRENDER_H=1 -DHAVE_X11_EXTENSIONS_XRANDR_H=1 >-DHAVE_X11_EXTENSIONS_XFIXES_H=1 -DHAVE_X11_EXTENSIONS_XINPUT2_H=1 -I. >-I../include -I../include -Wall -Wformat -Woverloaded-virtual -Wshadow >-DHAVE_JPEG_H=1 -DHAVE_PNG_H=1 -DHAVE_TIFF_H=1 -DHAVE_ZLIB_H=1 >-DHAVE_BZ2LIB_H=1 -DHAVE_XFT_H=1 -I/usr/include/freetype2 >-DHAVE_XSHM_H=1 -DHAVE_XSHAPE_H=1 -DHAVE_XCURSOR_H=1 -DHAVE_XRENDER_H=1 >-DHAVE_XRANDR_H=1 -DHAVE_XFIXES_H=1 -DHAVE_XINPUT2_H=1 -DNO_XIM >-DHAVE_GL_H=1 -DHAVE_GLX_H=1 -MT FXGLCone.lo -MD -MP -MF >.deps/FXGLCone.Tpo -c FXGLCone.cpp -o FXGLCone.o >FXGLCone.cpp: In member function 'virtual void >FX::FXGLCone::drawshape(FX::FXGLViewer*)': >FXGLCone.cpp:51:23: error: 'GLUquadric' was not declared in this scope; >did you mean 'GLUquadricObj'? > 51 | #define GLUquadricObj GLUquadric > | ^~~~~~~~~~ >FXGLCone.cpp:121:3: note: in expansion of macro 'GLUquadricObj' > 121 | GLUquadricObj* quad=gluNewQuadric(); > | ^~~~~~~~~~~~~ >FXGLCone.cpp:121:18: error: 'quad' was not declared in this scope > 121 | GLUquadricObj* quad=gluNewQuadric(); > | ^~~~ >FXGLCone.cpp:121:23: error: 'gluNewQuadric' was not declared in this >scope > 121 | GLUquadricObj* quad=gluNewQuadric(); > | ^~~~~~~~~~~~~ >FXGLCone.cpp:122:36: error: 'GLU_FILL' was not declared in this scope; >did you mean 'GL_FILL'? > 122 | gluQuadricDrawStyle(quad,(GLenum)GLU_FILL); > | ^~~~~~~~ > | GL_FILL >FXGLCone.cpp:122:3: error: 'gluQuadricDrawStyle' was not declared in >this scope > 122 | gluQuadricDrawStyle(quad,(GLenum)GLU_FILL); > | ^~~~~~~~~~~~~~~~~~~ >FXGLCone.cpp:129:3: error: 'gluCylinder' was not declared in this scope > 129 | >gluCylinder(quad,radius,0,height,FXGLCONE_SLICES_NUMBER,FXGLCONE _STACKS_NUMBER); > | ^~~~~~~~~~~ >FXGLCone.cpp:130:38: error: 'GLU_INSIDE' was not declared in this >scope; did you mean 'GL_INDEX'? > 130 | gluQuadricOrientation(quad,(GLenum)GLU_INSIDE); > | ^~~~~~~~~~ > | GL_INDEX >FXGLCone.cpp:130:3: error: 'gluQuadricOrientation' was not declared in >this scope; did you mean 'XNQueryOrientation'? > 130 | gluQuadricOrientation(quad,(GLenum)GLU_INSIDE); > | ^~~~~~~~~~~~~~~~~~~~~ > | XNQueryOrientation >FXGLCone.cpp:131:3: error: 'gluDisk' was not declared in this scope > 131 | gluDisk(quad,0,radius,FXGLCONE_SLICES_NUMBER,FXGLCONE_LOOPS); > | ^~~~~~~ >FXGLCone.cpp:132:3: error: 'gluDeleteQuadric' was not declared in this >scope > 132 | gluDeleteQuadric(quad); > | ^~~~~~~~~~~~~~~~ For this its necessary to install glut. -- JVZ -- +---------------------------------------------------------------- ------------+ | Copyright (C) 12:00 03/31/2018 Jeroen van der Zijp. All Rights Reserved. | +---------------------------------------------------------------- ------------+ |
From: JVZ <je...@fo...> - 2024-12-21 20:03:00
|
On Sat, 21 Dec 2024 14:05:27 -0500 joh...@ja... wrote: >I'm installing fox on a new computer (Ubuntu 24.04.1 LTS) and get the >following errors: > > > >> ./configure --with-x --with-xft --with-opengl --disable-shared >> --enable-threadsafe >> make > > > > >libtool: compile: g++ -DPACKAGE_NAME=\"fox\" -DPACKAGE_TARNAME=\"fox\" >-DPACKAGE_VERSION=\"1.7.50\" "-DPACKAGE_STRING=\"fox 1.7.50\"" >-DPACKAGE_BUGREPORT=\"je...@fo...\" -DPACKAGE_URL=\"\" >-DPACKAGE=\"fox\" -DVERSION=\"1.7.50\" -DSTDC_HEADERS=1 >-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 >-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 >-DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 >-D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 >-D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 >-DLT_OBJDIR=\".libs/\" -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1 >-DHAVE_DIRENT_H=1 -DHAVE_LIBRT=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBDL=1 >-DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_READDIR_R=1 >-DHAVE_GETPWUID_R=1 -DHAVE_GETGRGID_R=1 -DHAVE_GETPWNAM_R=1 >-DHAVE_PTHREAD_SETAFFINITY_NP=1 -DHAVE_SCHED_GETCPU=1 -DHAVE_PIPE2=1 >-DHAVE_STATVFS=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_IPC_H=1 >-DHAVE_SYS_SHM_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_MOUNT_H=1 >-DHAVE_SEMAPHORE_H=1 -DHAVE_DLFCN_H=1 -DHAVE_SYS_STATVFS_H=1 >-DHAVE_IMMINTRIN_H=1 -DHAVE_PNG_H=1 -DHAVE_TIFF_H=1 -DHAVE_ZLIB_H=1 >-DHAVE_BZLIB_H=1 -DHAVE_X11_EXTENSIONS_XSHM_H=1 >-DHAVE_X11_EXTENSIONS_SHAPE_H=1 -DHAVE_X11_XCURSOR_XCURSOR_H=1 >-DHAVE_X11_EXTENSIONS_XRENDER_H=1 -DHAVE_X11_EXTENSIONS_XRANDR_H=1 >-DHAVE_X11_EXTENSIONS_XFIXES_H=1 -DHAVE_X11_EXTENSIONS_XINPUT2_H=1 -I. >-I../include -I../include -Wall -Wformat -Woverloaded-virtual -Wshadow >-DHAVE_JPEG_H=1 -DHAVE_PNG_H=1 -DHAVE_TIFF_H=1 -DHAVE_ZLIB_H=1 >-DHAVE_BZ2LIB_H=1 -DHAVE_XFT_H=1 -I/usr/include/freetype2 >-DHAVE_XSHM_H=1 -DHAVE_XSHAPE_H=1 -DHAVE_XCURSOR_H=1 -DHAVE_XRENDER_H=1 >-DHAVE_XRANDR_H=1 -DHAVE_XFIXES_H=1 -DHAVE_XINPUT2_H=1 -DNO_XIM >-DHAVE_GL_H=1 -DHAVE_GLX_H=1 -MT FXGLCone.lo -MD -MP -MF >.deps/FXGLCone.Tpo -c FXGLCone.cpp -o FXGLCone.o >FXGLCone.cpp: In member function 'virtual void >FX::FXGLCone::drawshape(FX::FXGLViewer*)': >FXGLCone.cpp:51:23: error: 'GLUquadric' was not declared in this scope; >did you mean 'GLUquadricObj'? > 51 | #define GLUquadricObj GLUquadric > | ^~~~~~~~~~ >FXGLCone.cpp:121:3: note: in expansion of macro 'GLUquadricObj' > 121 | GLUquadricObj* quad=gluNewQuadric(); > | ^~~~~~~~~~~~~ >FXGLCone.cpp:121:18: error: 'quad' was not declared in this scope > 121 | GLUquadricObj* quad=gluNewQuadric(); > | ^~~~ >FXGLCone.cpp:121:23: error: 'gluNewQuadric' was not declared in this >scope > 121 | GLUquadricObj* quad=gluNewQuadric(); > | ^~~~~~~~~~~~~ >FXGLCone.cpp:122:36: error: 'GLU_FILL' was not declared in this scope; >did you mean 'GL_FILL'? > 122 | gluQuadricDrawStyle(quad,(GLenum)GLU_FILL); > | ^~~~~~~~ > | GL_FILL >FXGLCone.cpp:122:3: error: 'gluQuadricDrawStyle' was not declared in >this scope > 122 | gluQuadricDrawStyle(quad,(GLenum)GLU_FILL); > | ^~~~~~~~~~~~~~~~~~~ >FXGLCone.cpp:129:3: error: 'gluCylinder' was not declared in this scope > 129 | >gluCylinder(quad,radius,0,height,FXGLCONE_SLICES_NUMBER,FXGLCONE_STACKS_NUMBER); > | ^~~~~~~~~~~ >FXGLCone.cpp:130:38: error: 'GLU_INSIDE' was not declared in this scope; >did you mean 'GL_INDEX'? > 130 | gluQuadricOrientation(quad,(GLenum)GLU_INSIDE); > | ^~~~~~~~~~ > | GL_INDEX >FXGLCone.cpp:130:3: error: 'gluQuadricOrientation' was not declared in >this scope; did you mean 'XNQueryOrientation'? > 130 | gluQuadricOrientation(quad,(GLenum)GLU_INSIDE); > | ^~~~~~~~~~~~~~~~~~~~~ > | XNQueryOrientation >FXGLCone.cpp:131:3: error: 'gluDisk' was not declared in this scope > 131 | gluDisk(quad,0,radius,FXGLCONE_SLICES_NUMBER,FXGLCONE_LOOPS); > | ^~~~~~~ >FXGLCone.cpp:132:3: error: 'gluDeleteQuadric' was not declared in this >scope > 132 | gluDeleteQuadric(quad); > | ^~~~~~~~~~~~~~~~ For this its necessary to install glut. -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 12:00 03/31/2018 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: <joh...@ja...> - 2024-12-21 19:35:17
|
I'm installing fox on a new computer (Ubuntu 24.04.1 LTS) and get the following errors: > ./configure --with-x --with-xft --with-opengl --disable-shared > --enable-threadsafe > make libtool: compile: g++ -DPACKAGE_NAME=\"fox\" -DPACKAGE_TARNAME=\"fox\" -DPACKAGE_VERSION=\"1.7.50\" "-DPACKAGE_STRING=\"fox 1.7.50\"" -DPACKAGE_BUGREPORT=\"je...@fo...\" -DPACKAGE_URL=\"\" -DPACKAGE=\"fox\" -DVERSION=\"1.7.50\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIBRT=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBDL=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_READDIR_R=1 -DHAVE_GETPWUID_R=1 -DHAVE_GETGRGID_R=1 -DHAVE_GETPWNAM_R=1 -DHAVE_PTHREAD_SETAFFINITY_NP=1 -DHAVE_SCHED_GETCPU=1 -DHAVE_PIPE2=1 -DHAVE_STATVFS=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_IPC_H=1 -DHAVE_SYS_SHM_H=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_MOUNT_H=1 -DHAVE_SEMAPHORE_H=1 -DHAVE_DLFCN_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_IMMINTRIN_H=1 -DHAVE_PNG_H=1 -DHAVE_TIFF_H=1 -DHAVE_ZLIB_H=1 -DHAVE_BZLIB_H=1 -DHAVE_X11_EXTENSIONS_XSHM_H=1 -DHAVE_X11_EXTENSIONS_SHAPE_H=1 -DHAVE_X11_XCURSOR_XCURSOR_H=1 -DHAVE_X11_EXTENSIONS_XRENDER_H=1 -DHAVE_X11_EXTENSIONS_XRANDR_H=1 -DHAVE_X11_EXTENSIONS_XFIXES_H=1 -DHAVE_X11_EXTENSIONS_XINPUT2_H=1 -I. -I../include -I../include -Wall -Wformat -Woverloaded-virtual -Wshadow -DHAVE_JPEG_H=1 -DHAVE_PNG_H=1 -DHAVE_TIFF_H=1 -DHAVE_ZLIB_H=1 -DHAVE_BZ2LIB_H=1 -DHAVE_XFT_H=1 -I/usr/include/freetype2 -DHAVE_XSHM_H=1 -DHAVE_XSHAPE_H=1 -DHAVE_XCURSOR_H=1 -DHAVE_XRENDER_H=1 -DHAVE_XRANDR_H=1 -DHAVE_XFIXES_H=1 -DHAVE_XINPUT2_H=1 -DNO_XIM -DHAVE_GL_H=1 -DHAVE_GLX_H=1 -MT FXGLCone.lo -MD -MP -MF .deps/FXGLCone.Tpo -c FXGLCone.cpp -o FXGLCone.o FXGLCone.cpp: In member function 'virtual void FX::FXGLCone::drawshape(FX::FXGLViewer*)': FXGLCone.cpp:51:23: error: 'GLUquadric' was not declared in this scope; did you mean 'GLUquadricObj'? 51 | #define GLUquadricObj GLUquadric | ^~~~~~~~~~ FXGLCone.cpp:121:3: note: in expansion of macro 'GLUquadricObj' 121 | GLUquadricObj* quad=gluNewQuadric(); | ^~~~~~~~~~~~~ FXGLCone.cpp:121:18: error: 'quad' was not declared in this scope 121 | GLUquadricObj* quad=gluNewQuadric(); | ^~~~ FXGLCone.cpp:121:23: error: 'gluNewQuadric' was not declared in this scope 121 | GLUquadricObj* quad=gluNewQuadric(); | ^~~~~~~~~~~~~ FXGLCone.cpp:122:36: error: 'GLU_FILL' was not declared in this scope; did you mean 'GL_FILL'? 122 | gluQuadricDrawStyle(quad,(GLenum)GLU_FILL); | ^~~~~~~~ | GL_FILL FXGLCone.cpp:122:3: error: 'gluQuadricDrawStyle' was not declared in this scope 122 | gluQuadricDrawStyle(quad,(GLenum)GLU_FILL); | ^~~~~~~~~~~~~~~~~~~ FXGLCone.cpp:129:3: error: 'gluCylinder' was not declared in this scope 129 | gluCylinder(quad,radius,0,height,FXGLCONE_SLICES_NUMBER,FXGLCONE_STACKS_NUMBER); | ^~~~~~~~~~~ FXGLCone.cpp:130:38: error: 'GLU_INSIDE' was not declared in this scope; did you mean 'GL_INDEX'? 130 | gluQuadricOrientation(quad,(GLenum)GLU_INSIDE); | ^~~~~~~~~~ | GL_INDEX FXGLCone.cpp:130:3: error: 'gluQuadricOrientation' was not declared in this scope; did you mean 'XNQueryOrientation'? 130 | gluQuadricOrientation(quad,(GLenum)GLU_INSIDE); | ^~~~~~~~~~~~~~~~~~~~~ | XNQueryOrientation FXGLCone.cpp:131:3: error: 'gluDisk' was not declared in this scope 131 | gluDisk(quad,0,radius,FXGLCONE_SLICES_NUMBER,FXGLCONE_LOOPS); | ^~~~~~~ FXGLCone.cpp:132:3: error: 'gluDeleteQuadric' was not declared in this scope 132 | gluDeleteQuadric(quad); | ^~~~~~~~~~~~~~~~ make[2]: *** [Makefile:1333: FXGLCone.lo] Error 1 make[2]: Leaving directory '/home/jhs1/fox-1.7.50/lib' make[1]: *** [Makefile:879: all] Error 2 make[1]: Leaving directory '/home/jhs1/fox-1.7.50/lib' make: *** [Makefile:420: all-recursive] Error 1 |
From: JVZ <je...@fo...> - 2024-12-13 02:09:49
|
On Thu, 12 Dec 2024 11:01:30 +0100 Jean Truc <bib...@gm...> wrote: >Sorry, I forgot to paste some lines. Here is the working code: > >// Use IMAGE_KEEP for blending to background >miniIcon->setOptions(IMAGE_KEEP); > >miniIcon->create(); > >[...] > >FXColor* tmpdata; >FXuint w = miniIcon->getWidth(); >FXuint h = miniIcon->getHeight(); > >if (isSelected()) >{ >// Save original pixels >if (!FXMEMDUP(&tmpdata, miniIcon->getData(), FXColor, w * h)) >{ >throw FXMemoryException(_("Unable to load image")); >} > > // Blend to list selection color > miniIcon->blend(app->getSelbackColor()); >miniIcon->render(); > >// Restore original pixels >miniIcon->setData(tmpdata, IMAGE_KEEP, w, h); >} >else >{ >// Save original pixels >FXColor* tmpdata; >if (!FXMEMDUP(&tmpdata, miniIcon->getData(), FXColor, w * h)) >{ >throw FXMemoryException(_("Unable to load image")); >} > > // Blend to list background color > miniIcon->blend(app->getBackColor()); >miniIcon->render(); > >// Restore original pixels >miniIcon->setData(tmpdata, IMAGE_KEEP, w, h); >} > >Le jeu. 12 déc. 2024 à 10:40, Jean Truc <bib...@gm...> a écrit : > >> OK, sorry I missed the important part that original pixels are destroyed >> after blending. >> >> Now, it works! Here is the code for an icon with blending to background or >> to selection background if the icon is selected: >> >> // Use IMAGE_KEEP for blending to background >> miniIcon->setOptions(IMAGE_KEEP); >> >> miniIcon->create(); >> >> [...] >> >> if (isSelected()) >> { >> // Save original pixels >> if (!FXMEMDUP(&tmpdata, miniIcon->getData(), FXColor, w * h)) >> { >> throw FXMemoryException(_("Unable to load image")); >> } >> >> // Blend to list selection color >> miniIcon->blend(app->getSelbackColor()); >> miniIcon->render(); >> >> // Restore original pixels >> miniIcon->setData(tmpdata, IMAGE_KEEP, w, h); >> } >> else >> { >> // Save original pixels >> FXColor* tmpdata; >> if (!FXMEMDUP(&tmpdata, miniIcon->getData(), FXColor, w * h)) >> { >> throw FXMemoryException(_("Unable to load image")); >> } >> >> // Blend to list background color >> miniIcon->blend(app->getBackColor()); >> miniIcon->render(); >> >> // Restore original pixels >> miniIcon->setData(tmpdata, IMAGE_KEEP, w, h); >> } >> >> Thanks a lot Jeroen for your detailed explanations! >> JT Now of course, if you're switching between selected and unselected, it'll probably be faster to just keep two versions of the icon, and switch the icon out by intercepting the list widget's select/deselect messages. This should be quite fast if both icons are created ahead of time and kept around somewhere. -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 12:00 03/31/2018 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ |
From: <je...@fo...> - 2024-12-11 15:29:47
|
On 2024-12-11 08:53, Roland Plüss via Foxgui-users wrote: > I try to use FXMessageChannel to receive logs. The call to > FXMessageChannel::message() can though happen from a worker thread or > the main thread. Debugging a hang of the application it seems the hang > happens inside FXMessageChannel::message() while called from the main > thread. Is there a way to detect if I'm in the main (UI thread) using > FOX means or not? Main GUI thread should *not* use FXMessageChannel to talk to itself. FXMessageChannel uses a pipe. The idea is to wake the consumer when there's activity on the pipe, i.e. there's data ready to read. The GUI (main) thread watches this pipe in its event loop, i.e. when it returns to the event loop, in addition to mouse, keyboard [etc] messages, it also checks for pipes and sockets. When the main thread is doing stuff, it is usually in response to some event. Normally, the main thread sits in the select() [on Windows, MsgWaitForMultipleObjects()] system call, until one of the sources or a timeout wakes it up. Thus, its able to process messages posted by worker threads via FXMessageChannel, which can then be abled in the context of the main thread. If it starts using FXMessageChannel to "talk to itself" then messages can pile up as they won't get handled until returning to the event loop. A problem exists if the pipe data buffer is full. In that case, the write system call blocks until the buffer gets emptied by the consumer. As you will no doubt realize by now, it is its own consumer and thus no one will drain the pipe buffer while its blocked in the write. Result is we'll hang indefinitely. Of course, if the main thread wants to execute a message in its own context, there's really no need to use FXMessageBuffer at all; one could simply just call the handler directly... Hope this explains what you're seeing... -- JVZ |
From: Roland P. <ro...@rp...> - 2024-12-11 14:54:00
|
I try to use FXMessageChannel to receive logs. The call to FXMessageChannel::message() can though happen from a worker thread or the main thread. Debugging a hang of the application it seems the hang happens inside FXMessageChannel::message() while called from the main thread. Is there a way to detect if I'm in the main (UI thread) using FOX means or not? -- Yours sincerely Plüss Roland Game Development and Game Engine Technologies https://dragondreams.ch |
From: <je...@fo...> - 2024-12-10 13:32:11
|
On 2024-12-10 02:50, Jean Truc wrote: > Hi again, > > sorry, I forgot the title in my previous message and I was not clear. > > My question is simple : to blend an icon that has transparency I can > do: > > icon->blend(background_color); > icon->create(); > > But if the background color changes, then: > > icon->blend(new_background_color); > icon->render(); > > doesn't changes the previous blending. > > What I am missing? image->blend(clr) changes the RGB of the image as follows" Rpix = Rclr * (1 - Apix) + Rpix * Apix Gpix = Gclr * (1 - Apix) + Gpix * Apix Bpix = Bclr * (1 - Apix) + Bpix * Apix where (Rpix,Gpix,Bpix,Apix) is the Red, Green, Blue, and Alpha of the image, and (Rclr,Gclr,Bclr) is the pixel of the background. Thus, for opaque pixels, i.e. alpha==1, we keep the original pixel value; for alpha==0 (transparant), we set the color to the background, and for partial alpha's its somewhere in between. In other words, the original image is lost. To re-blend it, you would want to make a copy of the original pixel buffer, so you can put it back. It is important to know that the drawing API (unlike, e.g. OpenGL) does not do transparency, and thus we need to simulate it in the client code. FXImage::render() creates a non-alpha containing pixel representation at the X11 server, where the drawing API actually operates. For many cases, after the X11-side buffer has been filled from the local pixel array, we no longer need the local pixel array, and can thus delete it (the option IMAGE_KEEP prevents this, allowing you to make modifications to the pixel array and render() again). You can get a pointer to the pixel array via: FXColor* pixels = image->getData(); and its size: FXint width = image->getWidth(); FXint height= image->getHeight(); Technically, I think image->blend() should perhaps modify the alpha and set it to 1, as after the blend operation, the image should be interpreted as being opaque.... Hope this helps, -- JVZ |
From: Jean T. <bib...@gm...> - 2024-12-10 08:50:51
|
Hi again, sorry, I forgot the title in my previous message and I was not clear. My question is simple : to blend an icon that has transparency I can do: icon->blend(background_color); icon->create(); But if the background color changes, then: icon->blend(new_background_color); icon->render(); doesn't changes the previous blending. What I am missing? Thanks, JT |