Febuary 8 - FOX STABLE 1.4.1
 |
- Fixed bug in fxsaveJPG() routine; saving JPEG images didn't work properly.
- Fixed problem with ControlPanel crash. ControlPanel would crash when registry
was empty.
Febuary 7 - FOX STABLE 1.4.0
 |
Well, after another last-minute feature got snuck in over the weekend, I'm pleased
to present the new major stable release, the FOX Toolkit version 1.4!
This release is going to make a lot of people happy, since we've accomplished quite a bit
of work since the 1.2 release!
- Smooth dragging and side-by-side docking of toolbars and dockable panels
has been implemented.
- A new class FXIconSource facilitates loading and scaling of images or icons,
from a large variety of image formats.
- The file selection widget now support thumbnail previewing mode. If a filename is
recognized as an image, and the thumbnail mode is in effect, the image is loaded and
scaled down to serve as the thumbnail.
- Support was added for shaped windows, allowing you to make non-rectangular windows.
- Thread support was augmented with synchronization primitives and a global application
mutex was added to deconflict worker threads and GUI thread.
Also, a new class FXGUISignal serves to wake the GUI thread from a worker thread.
- Editable cell support were added for the Table widgets.
- SUN Raster image and Amiga IFF image file formats have been added.
- Upgraded to XDND release 5, the latest specification of the XDND standard; interoperability
with OpenOffice has been accomplished.
- Exception handling for common resource errors was introduced, allowing FOX programs
to gracefully handle various runtime errors like running out of window handles and bitmaps and so on.
- Added alpha channel support for TGA format.
- New 7 Segment Display widget was added. It is arbitrarily scalable.
- Ruler widget was completed. This is a document ruler widget a-la MS-Word.
- New class added for support of Memory Mapped Files. This sure helps with
manipulating large blocks of data in a platform-independent way.
- New class FXSplashWindow has been added. It uses the new shaped window
facility to present an attractive, arbitrarily shaped introduction window for your
application.
Febuary 7 - FOX DEVELOPMENT 1.4.0
 |
- Added thumbnail icon previewing mode to FXFileList, when set in big icon mode.
This feature uses the new FXIconSource for the loading and scaling.
It is quite fast for loading icons, but a bit tardy for directories with large
collections of photographs.
- Changed setIcon API's in the various list widgets. An optional owned flag is
now passed. If the old icon was owned by the list item, it is deleted, and
replaced by the new icon. If the new icon is set to be owned, it will be
deleted when the list item is deleted, or when it in its turn is replaced when a
new icon is set. As a special case, resetting the same icon does not
delete the icon but just changes the owned flag; this allows the application
to "reposses" or "disown" the icon.
- Also added a new class, FXIconSource, which embodies the knowledge
of various image file formats. It has three main API's: loading an icon
from a file, loading an icon from a reswrapped stream, or loading an icon
from an already opened FXStream.
These API's are in turn invoked by three other API's, which can load and
scale an icon down to a certain size, using either the fast image
rescaler or the slower high-quality scaler.
These six API's are duplicated for loading images instead of icons.
Finally, the core loading API's are virtual so that the FXIconSource may
be subclassed to provide additional image format support.
- Split off FXIconDict into its own class, and reorganized it to use the
new FXIconSource class. Consequently a set of API's has been added to
FXIconDict to set/get the FXIconSource.
FXIconDict manages the lifetime of the FXIconSource object it uses; initially,
it creates its own icon source.
- Every time I explain the new toolbar system to someone, I say "dock site"
when I meant FXToolBarDock. Obviously, the latter is the wrong name.
As of today, there is another reason why this name is not ideal and that is
that I have added another class, FXDockBar, which is basically a general-
purpose FXPacker with docking capabilities.
FXToolBar now derives from that, adding just the reorientation capabilities
to the FXDockBar's capabilities.
So now we have a general purpose packer that can be floated, we need a different-
looking handle to move it around, and indeed, that is another class now which
is another flavor of FXToolBarGrip called FXDockTitle. This serves as
both decorative title as well as a grip for moving the bar.
We reserve the toolbar grip for small handle-bars inside FXToolBars.
- FXMenuTitle now pops its FXMenuPane to the side depending on where the
FXMenuBar containing the FXMenuTitle is docked. The idea is to prevent
obscuring the other FXMenuTitles and to try and make sure the mouse is
not over the menu pane when first popped up; the latter is potentially
dangerous since the risk exists of accidentally invoking a menu option
by releasing, without movement, the mouse button [under normal circumstances
pressing and releasing the mouse lets the panel stay up; but if the panel
appears right under the cursor, a menu option may be invoked instead].
- A few more toolbar docking issues; first, toolbars which are stretched
should undock only when their default size sticks out, or oscillation will
result. Next, new API's have been added to FXToolBarDock which adjust the
layout options of the remaining items in the dock when toolbars are undocked
or docked.
Finally, when releasing the mouse in the toolbar grip, the toolbar was not
docking at the same place as it was when the timer expired. This has now
been fixed.
- Refactored the code a bit between FXToolBar and FXDockSite. Its FXDockSite's
responsibility to know about the interpretation of the layout issues of the
toolbar inside of itself; this means FXDockSite needs to be informed when
toolbars dock and undock, or are moved around. It falls upon FXToolBar to
find which dock should be attempted, and to determine based on heuristic
fudge constants when something docks or undocks. We now have a single
internal function which decides dock/no dock. While not perfect, it can
be counted upon to give the same answer solely based on the relative
relationships of toolbar and dock, regardless of whether we're docking
or undocking. It is hoped that this prevents oscillation as much as
possible.
- Finally, we have a new option in the right-mouse popup menu over
FXToolBarGrip which gives the user the ability to flip the orientation
of the toolbar without having to dock it.
- Fixed bug to allow dragging even when no alternate parent has
been specified; you should be able to reorganize the layout inside
a dock site even if floating is not an option.
- Hold Control key while dragging toolbars to prevent docking; this
allows parking toolbars near edges of the main window where they would
otherwise have docked.
- Drag and drop between FOX and OpenOffice
works too!
OpenOffice appears to be using XDND 5. also. I've managed to drag both text from
Adie as well as JPEG image files via PathFinder into OpenOffice; I think I may get
used to this!.
- Fixed bug in drawEllipse() on Windows; thanks to Mauro Zecchini
for discovering this problem.
- FXFile::search() now expands environment variables (e.g. $HOME) and user names (e.g. ~user)
in directories from the search path.
Januari 31 - FOX DEVELOPMENT 1.3.26
 |
- Upgraded to XDND version
5 standard. Verified interoperation between KDE and FOX, as well as GTK and FOX.
using application/x-color drag. Unfortunately, GTK does not accept color drags
from FOX, but FOX does accept color drags from GTK. The problem is GTK, since
it doesn't accept color drags from KDE either.
XDND version 5 brings a final confirmation in response to endDrag().
It is possible that the drop target, in processing the drop, encounters some
sort of error. The XDND 5 implementation in FOX allows the drop target to
call acceptDrop(), indication which action the target DID manage to
perform.
For example, when attempting to move a file from one place to another, the
drop target may accept a drop but be unable to perform it [e.g. running
out of disk space]. Returning DRAG_REJECT will allow the drop target to
tell the drag source it was unsuccessful, and that it should remove the
original file
Note that we used to perform such a thing by trying to obtain TWO DND data's
from the source, the real data and NULL data using the "DELETE" atom.
- FXSettings, doesn't quote values unless leading and trailing spaces
or special characters in it.
- Updated Control Panel with capability to set file bindings; thanks
to Sander for this!
- Minor tweaks to toolbar dragging.
Januari 30 - FOX DEVELOPMENT 1.3.25
 |
- Changed algorithm that determines when a toolbar docks. For a horizontal
dock site, the new algorithm docks the toolbar when the upper or lower edge
of the bar falls inside the dock (with a slight amount of fudge since dock
sites may be collapsed to 0 pixels when there's no bar inside), and when the
bar doesn't stick out too much (mostly overlaps with the dock horizontally).
- Also added some small icons to the toolbar grip docking menu.
- Implemented workaround for grab-lost problems which happen under X11 when
a window which is grabbed is docked or undocked. The workaround appear to
really kill the issue dead and the opaque-dragging toolbars work just super
now.
- LAYOUT_DOCK_NEXT and LAYOUT_DOCK_SAME options conflicted with other
layout options. One of the two reserved flag bits has now been used.
- Removed the undock timer. Undocking now happens immediately, but docking
is still done with a timer since we shouldn't dock just casually dragging
a toolbar across a dock site by accident.
- Docking back now happens not only when hovering near a dock area, but also when
you release the toolbar grip near a dock area.
- FXMenuTitle now pops its FXMenuPane besides itself instead of below, if the menubar
is oriented vertically.
- Fixed SUN Solaris build issue with FXGUISignal class.
Januari 28 - FOX DEVELOPMENT 1.3.24
 |
- Reintroduced FXTextCodec's. These were not be part of official 1.4 API, but apparently
were being used by the FOX based SWT Widget Set
for the Eclipse Project.
Note that FXWString really is permanently gone:- FOX 1.5 will take a different approach
to unicode support.
- Fixed Borland C++ build issues and some Borland C++ specific compiler warnings.
- Fixed Visual C++ build issues.
Januari 27 - FOX DEVELOPMENT 1.3.23
 |
- Added new class, FXGUISignal, which allows an FXThread to awaken the FOX GUI and
cause it to run some callback message handler. Any number of FXGUISignals may be
installed.
- Changed FXToolBar class for docking/floating behaviour against FXToolBarDock.
- Added new class called FXToolBarDock. FXToolBarDock implements rearranging of FXToolBars
inside of it. FXToolBarDock is meant to be placed against the sides of an FXTopWindow
where docking of toolbars and menubars is to be allowed. FXToolBarDock arranges
FXToolBar in multiple galleys or rows. Each galley can have one or more FXToolBar
widgets parked side-by-side.
When space runs out, FXToolBarDock adjusts the number of toolbars on each galley
by placing the last bar on the galley onto the next galley down until each
galley fits.
- Added new API's to FXUndoList and FXCommand to allow merging of undo records.
The undo records can be made mergeable by implementing canMerge() and mergeWith()
API's in your subclass of FXCommand. FXUndoList uses these to merge two
records when adding a new FXCommand to the undo list.
- Added before() and after() API's to FXWindow to allow testing of order of
sinbling windows.
- Changed reparent() function to have extra argument. The new reparent() API makes
it possible to insert a widget at any location in the widget tree with a single
call. If the widget keeps the same parent, all that happens is a layout recalculation;
otherwise, the widget is reparented using a call to the native window interface.
The old linkBefore() and linkAfter() API's are now obsolete.
- Added option MBOX_SAVE_CANCEL_DONTSAVE; patch contributed by Sander.
- Augmented FXStream for long file support.
- Added own replacement strtoll() and strtoull() functions in case not
available in local C-library.
- 64-bit FXlong and FXulong datatypes are now ALWAYS available.
- Updated FXFile, FXFileList, FXDirList for long file support.
- Added FXLongVal, FXULongVal and signed and unsigned long FXStringVal API's
for FXString.
- Dropped FXWString and old text codecs; these are obsolete now.
- Fixed bug in Windows event processing of WM_MOUSEMOVE. When mouse was grabbed,
coordinates were wrong when cursor moves outside of grabbed window.
- Fixed bug in getAppName() and getVendorName() in FXApp and similar
problems in FXRegistry.
- Upgraded internals of FXIconList, FXList, and FXHeader widgets to use
FXObjectListOf template class instead of maintaining own array; this saves
some code.
- Changed many access function to return const FXString& instead
of FXString. This eliminates generating a string copy.
- Fixed FXMutex reserved memory size to be sufficient for
IBM PowerPC/AIX.
X-Mas Release - FOX DEVELOPMENT 1.3.22
 |
- Completed layout computation for FXDockSite widget.
- Fixed highlighting in FXToolBarGrip widget.
- Added API's to FXStream: setBigEndian() and isBigEndian(). These force
the FXStream into a particular byte order. Byte swapping will be enabled or
disabled depending on the endianness of the platform. The old API isLittleEndian()
is removed: to determine byte order, just use FOX_BIGENDIAN macro directly.
- Simplify code for FXHorizontalFrame and FXVerticalFrame a little bit.
December 21 - FOX STABLE 1.2.13
 |
- Backported fixes to 1.2 branch.
December 14 - FOX DEVELOPMENT 1.3.21
 |
- In the FX***Image classes, loadPixels() now can be called even after the image
has been created already. It'll resize the server-side pixel storage but not yet
call render(), since further manipulations may be desired prior to render().
- Added new colors to FXApp for selected menu foreground and background.
- Fixed some long-standing issues with FXPopup menu handling code. It works
better now...
- Added API's like fxcheckTIF(), fxcheckJPG(), etc. These API's read a portion
of the image file from the stream, determine if the image format is recognized,
and then rewind the stream back to the same point. Thus, you can successively
try each image type, create the right FXXXXImage class, and call loadPixels().
A few of these fxcheckXYZ() API's need some further testing [mostly, due to poorly
designed image formats where it is hard to determine the correct type easily].
- Fixed issues with reswrap: first, when passing a prefix for the resource name,
the resource name can start with a digit since the prefix is in front of it.
Second, the prefix is now also used when using the -r altname option.
Finally, filenames on windows can have mixed \ and / path separators.
When turning filenames into legal identifiers, we now allow ":" in the name since
one could use scope-resolution operator in icon name.
- FXFile::absolute() no longerdoes tilde or environment expansion; there were
cases where this was inappropriate and unexpected. You can call FXFile::expand()
explicitly where desired.
- FXFileList now shows "." instead of ".." when displaying root of a file system.
- FXFile::simplify didn't handle cases like "/." to "/", causing trouble with the
change made to FXFileList; we all knew we had to do slashdot right ;-).
- FXFileDialog could not select "/" when in Directory selection mode. Adding "." in
the top directory and simplifying "/." to "/" fixed this problem.
- Changed handling of default color settings; system settings now applied
only to settings NOT superceded from FOX Registry. Also, added support to
read a few of the most important color settings from X Defaults database, which
means FOX displays in colors as set up by your local window manager.
- Updated HTML Syntax patterns from Andy Preston.
- Updated Makefile Syntax patterns.
- Fixed focus navigation code eating key/modifier combinations other than
the ones its supposed to; thanks to chafar@alcances.net for pointing this out.
- Hmmm, the FLTK people seem to like my timer-handling
code too ;-)
November 29 - FOX DEVELOPMENT 1.3.20
 |
- Fixed problems with FXFileSelector/FXFileDialog; right-mouse popup menu
functions Move/Copy/Link/Delete were not quite working right when multiple
files were selected.
- Added overloaded setData() to FXImage which changes shape as well as contents
of client-side pixel buffer from given pixel array.
- Updated FXDockSite.
- FXFile::getUserDirectory() now uses %USERPROFILE%.
- Added Python and Makefile patterns to Adie.stx syntax coloring file.
November 24 - FOX DEVELOPMENT 1.3.19
 |
- New program, fxdesktop control panel, allows you to set FOX colors and other
settings interactively.
- The quaternion function arc() now returns the quaternion representing
the rotation of the two vectors, instead of double the angle of rotation about
the same axis.
- More new functions for manipulation of quaternions.
- Ascii mode FXRegistry now uses %USERPROFILE% as default location for
registry subdirectory. This affects few FOX programs since on Windows,
the normal Windows Registry is used by default.
- Added support for Xft in glUseFXFont(). It now properly generates OpenGL
display list bitmaps for FreeType fonts.
- Further work in FXFont support for Xft:- now properly fill in properties
of the font that matched the desired font.
- Made some API's in FXGLViewer virtual upon request from ESI-Group.
- Fixed some HTML highlight pattern for Adie.
- Read/write ascii based registry from %USERPROFILE%/foxrc on Windows;
this is a more logical choice on Windows that %HOME%/.foxrc, which was the
old choice. Note, this only affects programs which use the ascii-based
registry on Windows. Most FOX programs use the Windows Registry and are
thus not affected by this change.
- Fixed problem with FXMessageBox ID_CLICKED_SKIP and ID_CLICKED_SKIPALL.
- Fixed bug in FXStream usage of FXHash.
Halloween Release - FOX DEVELOPMENT 1.3.18
 |
- Important change: consolidated reparentItem(), moveItemBefore(), and moveItemAfter()
in FXFoldingList and FXTreeList into a single new API called moveItem(). This is
much easier to remember and also allows one to move an item into the right place in
the tree in a single call.
- Another important change: harmonized and simplified item addition API's in FXTreeList,
FXFoldingList, and FXTreeListBox. The new API's are simpler to use, and easier to
remember due to more similar naming to similar API's in the other list widgets.
- Added setHeaders() API's to FXIconList and FXFoldingList. setHeaders() allows
you to populate the entire header control of the list widget with a single call.
- Fixed slight offset in editable cell text v.s. non-edited cell in FXTable.
- Added new API's to list widgets. The new API's fillItems() can be used
to populate a list widget with a number of items in one fell swoop. The new
items are appended to the already existing ones.
- Updated FXSpheref and FXSphered. including one point at a time now produces
smaller bounding spheres. Also, empty sphere cases are now handled properly.
- Fixed FXTreeListBox. When adding or removing items, the field was not updated
properly.
October 28, 2004 - FOX DEVELOPMENT 1.3.17
 |
- Added editability to FXTable. You can edit cells in the table. From a
user's perspective, editing a cell in FXTable is initiated in a number of
different ways:
- Double-click. This will create an input control in the cell and
allow you to type.
- Hit F2 function key, or RETURN key.
- Start typing any printable character. This works if the input control
is a text field; other input controls may drop the input.
- Send an ID_START_INPUT message to the table.
The editing ends in one of two ways. If the input is to be discarded,
you can hit the ESC key. If the input is to be accepted, you can hit
RETURN or nativage to the next cell using arrows or TAB keys.
- Added API's startInput(), cancelInput(), acceptInput() to FXTable.
These API's introduce sub-classable input editing for table items to the
FXTable class.
- Added setEditable() and isEditable() API's to FXTable.
- getColumnX() and getRowY() in FXTable now return proper scrolled
x and y positions of the start of a column (row).
- Removed setColumnX() and setRowY() API's. Functionality of these API's
is more intelligibly supported by calling setColumnWidth() and setColumnHeight().
- Added new API's to FXTableItem. The getControlFor() creates and populates a
editor control to be used to edit the item. It is used by FXTable to determine
what type of control to use to edit a cell. By making this virtual, you can
make custom FXTableItems which are edited by a control of your choice.
The FXTableItem setFromControl() API is used to populate the item from the
control. Its function is to read the control and extract the data into
the item. In typical usage, it is envisioned that getControlFor() and
setFromControl() are both reimplemented for subclassed FXTableItems.
- Added more extensive documentation for FXRegistry.
- Added center-justification mode to FXTextField. In addition to right- and
left-justified text in the text field, you can now also have centered text.
Centered text larger than the text field can scroll both ways.
For backward compatibility reasons, the centered mode is only enabled when
explicitly passing JUSTIFY_CENTER_X in the setJustify() API [otherwise, all
text fields would end up being centered!].
- Added API changeFocus() to FXWindow; it lets a parent widget know when
the focus child is changed.
- Added new API changeFocus() to FXWindow. It can be used by a composite
widget to know when the focus changes to another child.
- Added _POSIX_PTHREAD_SEMANTICS for older SUN Solaris thread support.
- Added some API's in FXXYZStream classes.
- Defaulted the normal FOX font to "helvetica,90" normally and "Sans,90"
when XFT is enabled.
- Removed deprecated timer and chore API's from FXApp.
Older News
 |
Older news...
Copyright © 1997-2005 Jeroen van der Zijp
|