Spinbox Widget Changelog


April 8 1999
Version 1.6

  • Dependency cleanup (Xmp): Spinbox now does its own layout, so XmpLayoutWidget has been removed from the distribution.
  • API/UI change: (ratio) The awful textfield/arrowbutton layout ratio code is now gone; now using reasonable defaults for the different styles.
  • New Resource (XmNleadingZeroes) which pads the display value with leading zeroes (and trailing ones, if XmNdecimalPlaces!=0). This gives a visual cue as to what the legal number in the spinbox are.
  • Build change (libtool): upgraded to libtool 1.2b
  • Build change (automake): upgraded to automake 1.4.
  • Demo tweak: XmNallowResize set to true so the demo spinbox can resize correctly.
  • Code change (long_show_value)(decimal_show_value) merged into (decimal_show_value).
  • Code tweak: added int cast to characters in isdigit/isprint/etc to shut up egcs warnings; ansi library expects ints.
  • API change (XmNarrowOrientation)(XmCArrowOrientation): check to see if XmNarrowOrientation is #defined before #defining it in header; Motif 2.0 defines this resource.
  • Upped version number to 1.6.

July 21 1997
Version 1.5

  • Added new code to allow user right click the arrowButtons to call IncrementLarge()/DecrementLarge().
  • Build change: switched from imake to libtool/automake/autoconf. This makes a few things simpler.
  • New API: (XmpSpinboxGetReal) convenience function returns a double value for number spinboxes with decimal places
  • New API: (XmpSpinboxSetReal) convenience function sets a double value for number spinboxes with decimal places
  • Build change: added configure flag "--enable-debug"
  • Demo tweak: added ``try this...'' box in the demo.
  • Updated the README file.
  • Added AUTHOR, INSTALL, and THANKS files.
  • API change: XmpCreateSpinbox aliased to XmCreateSpinbox so that users won't have to remember Xmp prefix.
  • API change: XmpSpinboxGetValue aliased to XmSpinboxGetValue so that users won't have to remember Xmp prefix.
  • API change: XmpSpinboxSetValue aliased to XmSpinboxSetValue so that users won't have to remember Xmp prefix.
  • API change: XmpSpinboxGetReal aliased to XmSpinboxGetReal so that users won't have to remember Xmp prefix.
  • API change: XmpSpinboxSetReal aliased to XmSpinboxSetReal so that users won't have to remember Xmp prefix.
  • API change: Removed unused XmRDouble and XmNdouble #defines from Spinbox.h.
  • Documentation change: Changed my mail address to cskerr@geocities.com in all the files.
  • Upped version number to 1.5.

Version 1.3

  • API change (XmNvalue): changed from int to long. Many users wanted the larger range of a long.
  • API change (XmNincrement): same.
  • API change (XmNincrementLarge): same.
  • API change (XmNminimum): same.
  • API change (XmNmaximum): same.
  • Added XmRLong and a string-to-long resource converter. (Does this already exist in Xt?)
  • Code change (strtoi): removed; ansi strtol now used
  • Updated the XmNminimum and XmNmaximum values that were INT_MIN+1 and INT_MAX-1 to LONG_MIN+1 and LONG_MAX-1.
  • Rewrote the layout routines again, this time to improve the way the widgets resize. The new layouts should be much more efficient.
  • Added XmNbuttonSizeRatio, which defines the ratio (tf width)/(ab width). The default value is 5. This should allow programmers to better define the appearance of the spinbox in narrow margins.
  • Added a Boolean argument ``notify'' to XmpSpinboxSetValue()'s argument list. This works identically to the XmToggleButtonSetState ``notify'' argument; it sets whether or not the call to XmpSpinboxSetValue() will trigger the XmNvalueChanged callbacks.
  • Attempted to make configuring and building easier on various systems by making most compile specifications configurable from the Spinbox.tmpl file.
  • Fixed some small bugs that made it difficult to set some resources from resource files.
  • Added int_sprintf() to localize the sprintf() return-type confusion in Spinbox.c. Big deal.
  • Slight performance gain by removing an unnecessary call to set_text_field in the tf_activate callback.
  • Slight performance gain in XmpSpinboxSetValue(); it now does nothing if new value == current value.
  • Changed the resource class for ArrowOrientation to Orientation so that it can be set via the resource file.
  • Added XmNspinboxUseClosestValue. If a user types in a value that is over XmNmaximum or under XmNminimum, XmNvalue will be set to XmNmaximum or XmNminimum, respectively. Some people reported their customers were confused that the spinbox would accept some text entry numbers but not others, so this helps give the customers a little feedback about what's happening.
  • Added XmNbuttonSizeRatio, which defines the ratio (tf width)/(ab width). The default value is 5.

Version 1.2

  • Added XmSPINBOX_STACKED style, which puts the arrow buttons on top and bottom of the spinbox.
  • Modified the default incrementLarge to more reasonable settings for most of the spinbox types.
  • Fixed bug that called valueChangedCallback sometimes even if the value hadn't changed.
  • Changed XmNarrowDirections { XmARROW_UPDOWN, XmARROW_LEFTRIGHT } to the more Motifish XmNarrowOrientation { XmVERTICAL, XmHORIZONTAL }.
  • Fixed bug not displaying the negative symbol (-) on numbers with decimal points and values between 0 and -1.
  • Removed the XmNSpinboxClockSeconds and broke the XmSPINBOX_CLOCK type into XmSPINBOX_CLOCK_HM and XmSPINBOX_CLOCK_HMS.
  • Changed the default minimum and maximum for XmSPINBOX_NUMBER to INT_MIN+1 and INT_MAX-1, respectively.
  • Rewrote the code that determines the child widget layouts.
  • All pieces of code changing the value of the widget now call XmpSpinboxSetValue for consistency.
  • Fixed a bug in determining the XmNincrementLarge for XmSPINBOX_NUMBER.
  • Changed decimal_get_value and int_get_value to simply truncate user-entered numbers that have too many decimal places instead of throwing them out completely.
  • Small fix to strtoi that removes useless code.
  • Added #error preprocessor directive to insure PointerSizedIntegral is defined.
  • Fixed a bug in IncrementSmall() and DecrementSmall() actions that incremented or decremented the spinbox by 1 rather than by XmNincrement.
  • Revised the documentation.
  • Updated the demo, including the addition of editres ability.
  • Many other small fixes and tweaks.
  • Removed a trivial bug that showed the negative number in the decimal place in XmNspinboxType of XmSPINBOX_NUMBER with decimal places (-10.-51 instead of -10.51).
  • Spinbox now responds to requests for XmNsensitive.
  • Added XmNspinboxClockSeconds boolean, giving a hour:min:sec format when true and XmNspinboxType is set to XmSPINBOX_CLOCK
  • Removed a bug that occurred only when setting Spinbox style to Separate via resources
  • Added actions for up, down, page-up, and page-down while the textfield has focus. up will increment the value of the spinbox by one, down will decrement by one, page-up will increment by XmNmultiple, page-down will decrement by XmNmultiple.
  • Added XmNmultiple resource to go along with the page-up and page-down actions.
  • Switched from the LGPL to an even looser license. See LICENSE.html for details. licenses.
  • Small fix to XmpSpinboxSetValue() to make it correctly set the textfield to reflect the new value.
  • Switched from the GPL to the LGPL.
  • Added extra options in the .tmpl and Imakefiles to make Life a little easier to compile on systems that have nonstandard library and include structures. Sun patches provided by Andrew Lister (lister@frost.bain.oz.au).
  • Cleaned up process of setting or not setting a default min, max, or both; eliminated a number of potential bugs therein.
  • Eliminated an unnecessary memcpy(), speeding up things an insignificant amount and making life easier for people who for some crazy reason don't have memcpy().
  • Added SPRINTF_BROKEN for people who for whatever inadequate reason don't have an ANSI C compiler.
  • Modified dollar_show_value to show $x instead of $x.00. The code for this was always there, but a dumb bug put in the .00 anyway.
  • Added XtPointer client_data to SpinboxGetValueProc and SpinboxShowValueProc. Suggestion by Esa Laine (esa@mielikki.alta-oh.com).

Version 1.1

  • API change (XmpSpinboxSetStyle) removed: nobody needs to change the layout on-the-fly; it was only useful for the demo.
  • Bug fix (get_text_field) didn't work properly when DONT_USE_XMSTRING_PEEK was #defined.
  • API change (SPinboxShowValueProc): swapped buffer and buffer_len args to follow the "qty follows items" convention
  • new API (alpha_search) added for no good reason.
  • code change (INT_MIN): now include (or sys/limits.h) to Spinbox.c for INT_MIN and INT_MAX.
  • API change (value_changed callback): added string and string_len arguments
  • demo tweak: code change: unnecessary #includes removed.
  • API change (XmNgetValueProc): changed buffer_len type from int to size_t.

Version 1.0

  • Spinbox widget released.