![]() |
News
![]() |
Februari 26, 2002 - New drop: FOX 1.0.0
![]() |
New API's to FXString. FXString::vscan() and FXString::scan() are API's to parse a string via sscanf-style format conventions. This is very useful in many cases, and obviates the need for some complex coding in the past.
New API's to FXRegistry (actually, FXSettings). FXSettings::readFormatEntry() and FXSettings::writeFormatEntry() perform sscanf- and sprintf-style access to registry database strings. As with FXString, this obviates the need for complex coding and is very compact and convenient.
Removed deprecated functions from fxdefs.h. The following functions have been removed: fxprefix(), fxsuffix(), fxexpand(), fxpathname(), fxdirpart(), fxfiletitle(), fxfilepart(), fxfileext(), fxexists(), fxisdir(), fxisfile(), fxbakname(), fxidentical(), fxsplit(), fxshortestpath(), fxupdir(), fxabspath(), fxistopdir(), fxgetcurrentdir(), fxmkdir(), fxgethomedir(), fxsearchpath(). These functions have been moved to the file:
and
Should your application need them, simply include these two files into your project. Note, the functions above have better maintained, and easier-to-use equivalents in the FXFile namespace.
A new file, vsscanf.cpp, was added for those systems where vsscanf() and its ilk are not available. Under Linux, and other C99 standard compliant C Libraries, this file is not used.
Added some missing API's to FXListBox, FXComboBox, and FXTreeListBox; simplified internals of these widgets a bit.
Fixed some FXDirBox problems; removed reliance on deprecated API's.
Added a SELECTFILE_MULTIPLE_ALL to FXFileSelector (and FXFileDialog). This mode allows selection of a mix of files and directories. The mode SELECTFILE_MULTIPLE works as before, and selects only multiple, existing filename names (and no directories).
Fixed FXPopup focus navigation:- hidden menu items should not be focused upon.
Fixed little biddy problem in FXText and style settings.
Fixed text in FXReplaceDialog and FXSearchDialog; was not proper.
Fixed little problem in FXRex::substitute().
Fixed some minor configure issues. You can pass overrides for JPEGLIB, PNGLIB, TIFFLIB, ZLIB, and MATHLIB. This is useful if you want to force a different library than the one found in the usual places (for example if you loaded a newer version than your system came with, or want to force static linking, etc.). Also added a test to search for vsscanf() function in your C library.
Added quick-and-dirty, ad-hoc, "hack" to Adie for syntax coloring. It still piggy-backs on the timer. However, the dialogs to set up highlight styles, language recognition, and syntax patterns is essentially complete. You can now add and remove, and edit syntax patterns fairly reliably. I added a sample C++ and C syntax file you can drop into your .foxrc/Adie registry (or in any of the usual global registry places /usr/lib/foxrc/Adie, /usr/local/lib/foxrc/Adie, etc.) to kick-start some patterns to get you started. The stylizer can now also use patterns with back-references, or capturing parentheses; I will still figure some way to color captured parentheses some day as well.
WANTED: syntax patterns for various languages: PERL, RUBY, PYTHON, HTML, XML, Pascal, Eiffel, and whatever else you can think of. I will collect these patterns and distribute them in future versions of Adie.
January 8, 2002 - New drop: FOX 0.99.189
![]() |
- Style table support was added. You can specify up to 127 different styles, where a style is a combination of fg/bg colors for normal, selected, or highlighted display, i.e. 6 different colors.
- New API's added to manipulate contents of the style buffer. First, normal API's like appendText() and so on now have an equivalent appendStyledText(). The style is a single value 0-127 indexing into style table, to which 128 may be added to achieve underlining. This makes it very easy to add colorful text....
- Its still possible I will add flags to the style table for underlining instead of use a bit in the style buffer; I don't know yet...
- changeStyle() changes the style w/o affecting the text.
- Despite the style additions, drawing has actually been speeded up quite a bit, as some old crap has been removed:
- FXText now maintains a cursor column in terms of the indent offset from the row start, rather than byte offset. This means that while moving up/down in the buffer the preferred column is much better observed when tabs are around (it can't be perfect as we can not move the cursor in the middle of a tab!).
- incremental movement of the selection/highlight is now much better optimized:- special cases for when the highlight overlaps (e.g. extended by being dragged), v.s. disjunct is now taken care off.
- also minor buglet caused tail-end of line to be exposed when the last character was highlighted, this was fixed also.
- FXText no longer sends SEL_REPLACED. instead, it sends SEL_DELETED followed by SEL_INSERTED. - obviously, this is better as it allows for inspection of the new buffer contents in SEL_INSERTED. [You need to be able to inspect the buffer after a change so you can update the style info......].
December 31, 2001 - New drop: FOX 0.99.188
![]() |
- A new flag REX_VERBATIM was added to FXRex. This compiles a pattern with no interpretation of magic characters or escape codes. Useful to apply the FXRex machinery to literal strings. Note that case-insensitive flag may still be used!
- Added REX_SYNTAX mode to FXRex also. This causes FXRex to perform only a syntax check; compiling the pattern takes roughly twice the time as just syntax checking it.
- Added REX_NOT_EMPTY. This causes match to fail when matching empty string. Changed MATCH_FORWARD to REX_FORWARD for consistency. Added more documentation for FXRex as well.
- Added regular expression search and replace capability to FXText; FXText::findText() API may still need some minor revision, however!
- Found & fixed nasty little bug in FXFileDict. Was never noticed on UNIX systems by pure chance.
- Dropped fxregex.h. It is obsoleted by FXRex. FXRex is a more powerful matcher, and is easier to use to as well. If you still need the old files, they're available as fxregex.h and fxregex.cpp should you need them; I recommend however to switch to FXRex so as to be able take advantage of PERL-compatible syntax.
-FXList now allows arbitrary icon sizes to be mixed. This also means when using subclasses items, they don't have to be all the same size!
- Added facility in FXScrollArea for subclasses to easily map the mouse wheel to horizontal scrolling instead of the default vertical scrolling (when wheeling inside the widget).
- Fixed drawIconShaded for WIN32; the pattern offset must be adjusted when scrolling.
- Added API drawFocusRectangle to FXDC. This is now used everywhere to draw a dotted rectangle. Hopefully this fixes bad-looking focus rectangle under Windows. The drawFocusRectangle() API was removed from FXFrame as it is now part of FXDC.
Fixed a few warnings, and one uninitialized memory read in FXTable.
- Completed FXSlider tickmark drawing. If tickmark delta set to 0 (zero), the ticks will be placed at each position in the logical range; otherwise, they're placed every delta units in the logical range.
- Fixed FXFile::isExecutable() API (and similar ones like isOwnerExecutable()). The POSIX function access() was not working as advertised under Windows.
- FXMessageBox buttons rearranged in the order according to FOX style guidelines.
- FXLabel::onHotKeyPress() was not moving the focus to the following widget if the widget was a composite, only if the sibling was a simple control. This caused label-mnemonics not to move the focus correctly when the next focusable control was in a composite.
- FXReplaceDialog. Small accelerator conflict fixed.
- Warnings in fxpcxio.cpp fixed.
December 19, 2001 - New drop: FOX 0.99.187
![]() |
Added documentation to FXRex class.
More small additions to FXFileDialog.
FXText much improved brace matching technique. Also added highlight capability, i.e. a new text style. This also has its own colors. It is currently used for the new brace matching method.
Added support in Adie for the above. Note brace match time must now be set in milliseconds, not microseconds.
Added method to FXInputDialog to set text field width.
Bullet-proofed FXString::left(), FXString::right(), FXString::mid(), and FXString::trunc() against bad arguments.
Fixed bug in FXTable drawing loops; references were made outside the cell array.
Fixed potential bug in ICO loader.
Added argument to FXApp::init() to suppress opening display. You can open display later using FXApp::openDisplay(). This allows FOX GUI's to start in non-GUI mode.
December 10, 2001 - New drop: FOX 0.99.182
![]() |
FXFile::concatenate bug fixed.
FXImage::getChannels() API added.
FXImage::setPixel(), FXImage::getPixel() API's added.
Small fixes to FXTGAImage, etc.
FXFileDict. Compile-time option to enable all available image formats; see INSTALL file.
FXGLCanvas swapbuffers bug fix for Windows 2000/NT (in) compatibility.
Other stuff that has been reported in the past couple of weeks.
November 27, 2001 - New drop: FOX 0.99.181
![]() |
The Return key is now reported to the default widget as ordinary SEL_KEYPRESS or SEL_KEYRELEASE messages.
The ID_INSERT_CHAR message in FXText and FXTextField has been deleted; a new message ID_OVERST_STRING has been added to implement overstrike mode capability. The overstrike mode in FXText is now more sophisticated about spaces and tabs.
Added API's to FXImage: setPixel() and getPixel() to access image buffer on pixel by pixel basis.
Corrected API's to FXGLSphere.
Made ctx member of FXGLCanvas and FXGLContext protected.
Added some screen shots.
Made data() public in FXSettings; this is needed to write iterations over all sections.
November 22, 2001 - New drop: FOX 0.99.180
![]() |
BMP, GIF, XPM, PCX, JPG, PNG, ICO, TIFF, and TARGA.
Note to MS-Windows users: FOX supports not only BMP images and icons, but also ICO format. This means you can design icons directly with VC++ built-in icon editor.
FXJPEGImage, FXJPEGIcon renamed to FXJPGImage, FXJPGIcon [but a typedef should keep your app compiling].
FOX now properly handles default buttons. The default button is
the one responding to the Return key in a dialog.
You can designate any number of buttons to become the default button when
the focus moves into it.
One special button is called the initial default button; the initial
default button is the button that will initially be the default button.
It is also the button to which the default returns when the keyboard
focus moves to another control.
For this purpose, the meaning of the old BUTTON_DEFAULT flag has been
changed to mean that the button MAY become the default
button. A new flag BUTTON_INITIAL means the button is the INITIAL default
button.
New API's are available to set initial default widgets:
setInitial(enable)This makes the window the initial default window, i.e. the target for the Return key.
isInitial()
This determines if the widget is the initial default window.
setDefault(enable)
This sets the widget to the default widget if enable is TRUE; if enable is FALSE, it makes the widget normal again; if enable is MAYBE, the default returns to the initial default window.
isDefault()
This returns true if the window is the default, i.e. the window which will get the Return key even if the focus is on another control. Of course it will not get the Return key if the other control handles the Return key.
Only one window can be the initial default, and only one window can be the default.
FXGLObject now starts counting at message ID=10000, this means you can make your FXGLViewer subclass start counting from FXGLViewer::ID_LAST, just as you would with any other subclassed widget.
FXStatusline and FXProgressBar now automatically call repaint() and flush() so you won't have to. This is useful to update these widgets while performing a long callback routine [e.g. reading a file].
FXSectionDict has disappeared. Basically, its only use was in FXSettings; what has happened is that FXSettings now derives from FXDict directly, and takes over all of FXSectionDict's functionality.
Fixed focus navigation in FXTopWindow.
Focus navigation in FXMatrix was moving to incorrect widget.
FXText could read out-of-bounds when searching.
Note, I did not implement Daniel Gehriger's menu patch yet; still looking at that issue some more.
November 13, 2001 - New drop: FOX 0.99.179
![]() |
The header file organization has been changed to allow programs to include only those widgets which are needed.
A resource leak in OpenGL context has been removed (under Windows).
The style BUTTON_DEFAULT causes a button to have the focus first time around; buttons which have the focus are drawn with a FAT border and respond to the Enter key.
The flag MENU_DEFAULT, and the setDefault() and setOther() API's have been removed.
The new API FXWindow::isDefault() returns TRUE if the widget is in the focus chain.
Updated project files for VC++.
Added stub-icon/images to be shown when JPEG, PNG, or TIFF libraries are not available; the stub images allow programs which use FXJPEGImage, FXPNGImage, and FXTIFImage to work with reduced functionality when the necessary libraries are not available.
October 19, 2001 - New drop: FOX 0.99.177
![]() |
October 16, 2001 - New drop: FOX 0.99.176
![]() |
Janusz Ganczarski donated support for Windows ICO format support;
we have both an FXICOIcon and FXICOImage classes.
This is an important contribution because now you can create your
icons simply from within VC++ or so without any other conversion
step (other than the usual reswrap).
A huge amount of improvement to FXTable has been performed; we have more to do, but here's what's been done that you can now start to play with:
For the table itself:
Popup menus improved under Windows, thanks to Daniel Gehriger.
FXFile::listFiles now has many matching modes.
FXFile::simplify() was much improved now; it was not entirely working correctly in all cases.
FXColorSelector has been augmented with a hue/saturation dial, a value bar, and a color picker.
Off-by-one error fixed in FXDCWindow::drawArc under MS-Windows.
FXDCWindow::drawIcon() FXDCWindow::drawIconShader(), FXDCWindow::drawIconSunken() have been fixed to take into account the clipping rectangle of the FXDCWindow. This may in some cases result in slightly faster/more flicker-free drawing, and of course it now clips correctly!!
Added another ctor to FXMessageBox in case there's no owner widget.
FXWindow::hide did not ungrab under Windows.
Fixed compile bug for Borland C++.
Fixed GUI updating problem in FXListBox, FXComboBox, FXTreeListBox.
Fixed problems which occurred when FXIcon, FXImage, FXFont, FXCursor resources were being deleted AFTER closing the display; now the destroy() function for all resources becomes a NO-OP after the display is closed; everything is assumed to be already gone!
FXDCPrint::drawImage now implemented for PostScript.
Sublt layout bug fixed in FXTabBook:- calculated size was a bit too wide given the content size.
FXSpinner was sending wrong parameter in message.
Extremely subtle buglet in FXSlider fixed.
API added to FXGLCanvas to return GL context.
FXPacker focus movement had potential infinite loop in it due to typo.
FXProgressBar dial mode drawing improved.
Drag and drop enabling was in wrong place.
Keyboard handling slightly changed; FXComposite now dispatches to accel table first before trying focus child.
Calculator does keypad now...
Adie updates.
August 30, 2001 - New drop: FOX 0.99.175
![]() |
July 19, 2001 - New drop: FOX 0.99.174
![]() |