Changes Made to Tix

ToDo: Make things in reverse order

Contents

Very Old Stuff


12-4-94
	(1) Coded the geometry management hooks to write
	    geometry managers in TCL
	(2) "cute circle" optional in scrollbar
	(3) "-sizecommand" for listbox
	(4) Buttons handle -buff option

12-7-94
	(1) Now Geometry Hook Works
	(2) Tix startup don't need tixInit anymore. Use resources
	    and command line arguments.

	    The following explains why tixBindMaster is necessary
	(3) ScrolledWindow is half way through

12-8-94
	(1) Created a template for new widgets.
	(2) Started the thermometer widget using the new template.

12-9-94
	(1) Geometry hooks now will generate background errors

12-10-94
	(1) tixInit.c now parses arguments and options database. Old
	    tixInit procedure is not neded anymore.

12-15-94
	(1) Now ScrolledWidget is working -- ported to tixGeometry
	    mechanism. Now they have a common framework.

	(2) Cleaned up tkMenu.c. All previous extensions to tkConfig.c
	    are removed. Now all Tix specific resources are handled by
	    customed resource handlers inside tixConfig.c. tkConfig.c
	    is not explicitely linked to anymore.

12-16-94
	(1) Ported all TK GL widgets (the glw package) from Tix 3.6 to
	    Tix 4.0.

	(2) Try to modify the look of TK scrollbar's arrows. Don't
	    look good. File abandoned in tix/src/old

12-17-94
	(1) Overlay Menu finally working without problems. There are
	    still some hacks (I commented as "mysterious behavior" in
	    the source file tkmenu.c). Overlay menu also works for JK.

12-18-94
	(1) Started porting the whole of the Intrinsics to C. Got
	    rid of "csn". This port will take a couple of days to
	    finish.

12-20-94
	(1) Simple class objects now working to a certain extend:
		tix foo
		tix getbitmap
		tix config
		tix config -scheme
		tix config -s
		tix getvar -scheme
1-1-95
      	(1) Tix4.0a1 is released
      	(2) set up a mailing list tix-info@graphics.cis.upenn.edu

1-9-95
      	(1) tixTmpLine: now is used in PanedWindow, MwmClient, ResizeHandle
      	(2) "wm release" and "wm capture"

1-15-95
	(1) tixNoteBook is almost ready.

Changes made to Tix before Tix4.0a6

Most of changes before Tix4.0a6 were not documented. Here are only a few of them that caught my attention.

04/02/95

Incompatible -- The -type option of ComboBox was replaced by two options: -editable and -history

04/08/95

Added the global variables tix_version and tix_patchlevel.

04/08/95

all "setsilent" methods are replaced by the command tixSetChooser

Changes made to Tix since Tix4.0a6

4/12/95

New command tixWidgetDoWhenIdle. It calls the idle handler only if the mega-widget associated with this handler exists.

4/13/95

The -listcmd option of ComboBox is always called, when the user pops up the listbox. If you want to fill the listbox just for once, add "$combo config -listcmd {}" at the first line of the -listcmd command

Incompatible -- All Tix "Library Options" in the X options database are now prefixed with "tix". {scheme Scheme} is changed to {tixScheme TixScheme}. {bindings Bindings} is changed to {tixBinding TixBinding}. {fontSet FontSet} is changed to {tixFontSet TixFontSet}. N.B. {tixLibrary TixLibrary} remains the same.

New option -listwidth added to ComboBox.

When Tix sharts up, it checks existance of fonts specified by a FontSet file. If a font does not exist, prints out any error and use the font "fixed" instead.

-backpagecolor option added to tixNbFrame widget. This specifies the color of the area that's not covered by the tabs nor the notebook pages (upper right corner of the notebook).

In TixNoteBook, I used to use a tixNoteBookFrame widget as the root widget. Now it is changed to be a subwidget (w:nbframe).

4/14/95

-allowempty option added to tixControl. This makes it easy to have a "tristated" control that doesn't show any value. Without this command you need to fiddle with the -validatecmd option.

4/15/95

Names of all fontset and scheme initialization procedures use the : infix instead of the :: infix. E.g. tixSetColorScheme::TixGray changed to tixSetColorScheme:TixGray.

During initialization of Tix, when a fontset or scheme is not available, use a default fontset or scheme instead. (used to print out error message and exit).

HList mouse bindings finally implemented. Now selections works real good.

The MS Windows look-a-like file dialog box, tixExFileSelectBox, is finally ready. A screen shot can be located on line at http://www.xpi.com/tix/screenshot.html

4/16/95

Most of the default bindings for tixHList are hooked up.

4/18/95

Incompatible. The first entry inserted into the ComboBox is no longer used as the -value of the ComboBox. You must set the initial value explicitly.

4/20/95

-image support added to tixHList. hide command added to HList. Plus a lot other changes. All the changes are documented in the manual page. Started to work on the focus handling and keyboard traversal of mega-widgets.

4/24/95

The Form geometry manager now supports the "-0" attachment. Also m any bugs fixed for the form. Now it should be safe to transfer a client from one master window to another master window, delete clients or delete master windows. It is still not safe to manage two widgets using different geometry managers in the same master window. i.e.:
label .l1 -text Label1
label .l2 -text Label2
tixForm .l1 -top 0 -bottom -0 -right -0
pack .l2 -expand yes
Now this type of error (hazard) is detected and tixForm will give up after 50 iterations of trying to set the geometry of the master window.

4/26/95

All features of the Form geometry manager are finished. Everything should work as described in the manual page.

Incompatible -- The "grid" option of the tixForm command is changed to tixForm grid master ?x_size y_size?.

The Tix_SubCmdInfo structure is changed. One more element added to the structure. Should be backward compatible, but you need to recompile the C code.

typedef struct _Tix_SubCmdInfo {
    int			namelen;
    char      	      * name;
    int			minargc;
    int			maxargc;
    Tix_SubCmdProc 	proc;
    char      	      * info;
    Tix_CheckArgvProc   checkArgvProc;
} Tix_SubCmdInfo;

5/3/95

Incompatible: the hide and show commands in HList need a new argument, so that their syntax will be compatible with the syntax of the delete command. Current only pathName hide entry entryPath is supported, but the all, sibilings and offsprings options will be added soon.

info selection command is added to HList (requested by shyamp@loc3.tandem.com).

5/7/95

PopupMenu now works under Tk 4.0b3.

ExFileDialog now displays a busy clock.

5/10/95

New syntax of tixForm is documented in Form.n.

5/12/95

Many changes to HList select command.

6/13/95

Notebooks now supported underlines in page tabs. Also supports tab traversal and keyboard accelerators. The pageconfigure command has been implemented.

New option -dialogtype added to tixFileEntry. It can be set to either tixFileSelectDialog or tixExFileDialog.

wm release and wm capture finally seem to work, at least on all my machines.

Many people requested for LabelEntry. It has been implemented (20 lines of code :-).

6/15/95

The -llimit and -ulimit options in tixControl have been renamed to -min and -max. -llimit and -ulimit are now aliases to -min and -max so they can still be used in your script. However, the resources names Ulimit and LLimit are gone so you have to change your resource descriptions:
        from

    option add *TixControl.ULimit 4

        to

    option add *TixControl.Max 4
    
Bindings for Up/Down arrow keys added to tixControl.

Keyboard bindings are added to tixNoteBook. Now you can use the Tab key to cycle among a set of pages.

Pixmap images fixed to work with windows of depths different than the root window of the display.

6/15/95

New image type "compound". See manual page for more details.

6/18/95

The format of the -filetypes option of tixExFileSelextBox has been slightly changed. Please see the manual page for details.

-dircmd option has been added to DirList and ExFileBox. The original request:

From: nchannen@hookup.net, Neil Channen, Wed Mar 29, 13:02:19, 1995

I would like to use your file selection box to browse a list of files on a remote system (via ftp). Thus, I need to have a hook in the fsb that would call an external TCL routine to fill in the list of files and directories, rather than having the fsb do it itself. I have hacked this into the fsb myself, but I suspect that other people may have similar needs. Would it be possible for you to add a "-readcmd" option to the fsb, which would specify the name of a TCL procedure for the fsb to call when it needs to rebuild the directory/file lists? I am enclosing some code below which I am currently using to do this. Note that the code is based on the Alpha 3 version of Tix.

6/20/95

There is not a strdup() function for those machines that don't have it.

6/23/95

-state options added to the Tabs in the tixNBFrame widget. Also, now tixNoteBook widgets support automatic bindings of , which invokes the notebook pages according to the underlined character inside the tabs of the pages.

-state option added to HList. Disabled entryes cannot be selected or invoked.

7/10/95

ComboBox: If -selectmode is not "browse", then the Tab key is equivalent to the return key.

7/12/95

filedialog command added to the FileEnt widget.

7/13/95

Changes made to FileSelectBox to handle invalid directories more gracefully.

7/15/95

Major rewrite of tixHList.c. Now it uses the Tix_DItem (DisplayItems) API and can support different types of entryes (text, imagetext, window, etc).

Simple Drag+Drop implemented. This is bascially just to be used in tixplorer.

7/16/95

Now you can create a multi-column tixHList widget (-columns option and "column" widget command. See man page).

tixHList supports -at, -after and -before options for "add" and "addchild" widget commands. You can use these options to create new entries at arbitrary positions. The default is still appending the element at the end of the list.

7/21/95

Now NoteBook supports -disabledforeground.

Now the -file argument to tixwish can be omitted.

tixwish will not print prompt unless the --enable-debug flag is set during the configure script or the variable tcl_interactive is set inside the user's run time RC file.

"info hidden" command added for HList

New flag for configure "--enable-patches"

9/05/95

-xscrollincrement and -yscrollincrement added to ScrolledWindow.

9/15/95

ET (Embeeded TK) now works with TIX. Change to the et/ subdirectory and type configure.

9/26/95

Bindings changed for ComboBox and FileEntry: noe the -value is updated whenever the user presses Return, Tab or changes the focus to another widget.

9/27/95

DirTree widget is officially released.

10/05/95

Fixed bug: give proper error message if argument is missing from widget creation command.

Fixed bug: tixControl used to call -command callback too frequently: now -command is only called when (1) User types return or (2) User changes value and types Tab

New feature: it is now possible to check the validity of the widget options: you can add a 5th field to the -configspec's of a WidgetClass declaration. See tixComboBox.tcl for an example.

Fixed bug: any pixel values (E.g, 10, 1.0m, 20i) can now be used as offset value for TixForm.

10/10/95

New feature: new command tixDestroy destroys objects created by tixClass'es. Improvement: Fixing the code of tixHList.c

10/11/95

Fixed bug: tixComboBox used to call -command callback too frequently: now -command is only called when (1) User types return or (2) User changes value and types Tab

Fixed bug: etixwish used to clear the options database during start-up. Now it checks the $data(et) flag brfore doing so.

10/12/95

Improvement: Use subst instead of tixInt_Expand in tixClass.c.

Improvement: Now tixBalloon is much more intelligent that it used to be. When the user presses the mouse button inside a "balloon'ed" widget, the balloon will be withdrawn.

Fixed bug: OptionMenu did not de-emphasize the label when the -state is disabled.

10/13/95

Fixed bug: Now the -variable option of all widgets can take variable names that have spaces in them. For example, $w config -variable "g(1 2)" .

10/13/95

Fixed bug: (patch from Richard Ball): tixNoteBook widget used to react to "residual mouse button press events". Improvement: Now XPM image reader knows the size of the image immediately after the image is created (used to know the size only when image is used in a widget). Fixed bug: tixForm (by Scott Ananian cananian@phoenix.Princeton.EDU):
   
    src/tixFormMisc.c:

    line 176 is:
    >       clientPtr->att[axis][which].grid  = grid+1;

    and is *should* be:
    <       clientPtr->att[axis][which].grid  = grid;

10/18/95

Fixed bug: Compound images were not using the imageX and imageY arguments in ImgCmpDisplay().

10/26/95

Fixed bug: Pressing "filter" button in FileSelectDialog used to ignore the -selection option of the "Filter" ComboBox.

11/2/95

Fixed bug: tixwish now accepts inputs from its stdin, for example "cat script.tcl | tixwish".

11/5/95

The variable tixOption(courier_font) has been changed to tixOption(fixed_font).

Improvement: new widget commands delete, enable , disable , entryconfigure and entrycget have been added to TixOptionMenu. Also, new option -validatecmd is added.

Improvement: the -title option of PopupMenu widgets can be set in run-time.

Fixed bug: The tix(Ex)FileSelectBox widgets now respond to the command $w config -directory and automatically display the files in the new directory.

11/7/95

Improvement: New commands tixPushGrab and tixPopGrab allows you to "cascade" grabbing.

11/9/95

Improvement: tools/tixindex is now installed by the install.sh program. Also, the tclIndex file generated by tixindex now correctly states that this tclIndex file is generated by tixindex, not auto_mkindex.

Fixed bug: *relief is no longer included in the color schemes.

11/9/95

Improvement: the configure script is now much more clever and detects the location of the TK, TCL and XPM header files and library files.

11/16/95

Improvement: the configure script and the setup program have been moved from the src subdirectory to the toplevel directory. Now one single ./configure command is needed to configure all subdirectories (et, src and demos-c).

Improvement: the configure scriptnow checks whether the config.cache file is froma different platform. If so, it doesn't use it.


Changes Since Tix 4.0

11/19/95

Improvement: Now Tix is more or less a standard Tcl/Tk extension. It doesn't temper with the internals of Tk anymore. the main.c program is gone, replaced by a standard tixAppInit.c. main.c was there because I wanted to be able to type into tixwish even if it was invoked as "tixwish some_prog.tcl". main.c turned out to be an unnecessarily big hack. This problem is now sufficiently solved by the code in TixAppContext::Constructor.

Improvement: The setup program now records the options in the file .setup.rc. These options are used automatically the next time you invoke setup. This saves you a lot of typing on non-standard systems.

11/21/95

Improvement: Balloon widget has been completely rewritten. I think this time I am getting it right. Now it works with mega-widgets very well. It is possible to annotate a mega widget and its subwidgets separately. For example:
tixBalloon .b
tixComboBox .c
.b bind .c -msg "This is a ComboBox"
.b bind [.c subwidget arrow] -msg "Press this to see a list"
pack .c

Improvement: Tix now bundles the XPM library source code for those who do not have a required version of XPM installed on their system. The existence of the XPM library is detected automatically by configure. If it is not installed on your system, Tix will use the bundled XPM library automatically.

Incompatible: The "message" subwidget in TixBalloon has been changed from a Message class widget to a Label class widget.

12/6/95

Improvement: delete method added to PanedWindow.

Improvement: Now some widgets support percent substitution for their -command and -browsecmd options. Percent substitution is enabled if you call tix config -percentsubst true or if your command has percent sign(s) in it.

Improvement: -indicator option and indicator widget command are added to the HList widget. The indicator is silimar to "little triangles" in the Mac.

Bug Fix: ComboBox has been completely rewritten, using state-machine style implementation. It code had been the most ugly part in Tix (garbage had piled up since the Tix 1.0 days).

Improvement: New command tixBalIgnoreWhenGrabbed: Tells the balloon not to pop up if a certain widget (or widget class) has grabbed the screen. This is necessary for the Balloon to behave properly for menu and combobox widgets.

12/9/95

Bug Fix: (By Richard Ball) Bug fixed for DeleteNode() in tixHList.c.

Bug Fix: The tix public header file is now installed by the make install command.

Bug Fix: Fixed some mysterious code in NoteBook.tcl (Thanks to Richard Ball).

12/11/95

Improvement: New widget command "entries" for tixOptionMenu widget.

12/15/95

New Widget: TixVTree base widget for all tree widgets based on HList.

New Widget: TixTree widget: user-configurable tree

Improvement: Now DirTree is based on VTree.

Improvement: HList bindings for single and browse modes are completely rewritten. State diagrams are used to develop the bindings.

Improvement: New delete command for PanedWindow.

Improvement: HList now supports headers.

12/15/95

Improvement: The filedialog widget command for TixFileEntry now accepts additional arguments and acts like the "subwidget" command.

12/17/95

Improvement: HList widget now supports headers. New widget command: header. New option: -header.

12/20/95

Improvement: New widget command cget is added to the TixPanedWindow widget. Also, the paneconfigure command is extended to do all what is is supposed to do.

Bug Fix: The cget command in NoteBook unsed to return wrongly typed value.

12/20/95

Bug Fix: The InputOnly widget now supports standard widget commands cget and configure.

12/22/95

Bug Fix: Some "integer cannot be represented" messages fixed in Control.tcl.

12/24/95

Temp: Added the parse routines for access control for mega widgets: there will be the flags -exportopt, -restrictopt, etc for controlling the access of the subwidgets' and root widget's options and commands. These features are not fully implemented, though -- the flags are parsed, but never used. Access control will be implemented in Tix 4.1. These flags will probably be used in the folowing way:
    -subwidget {
	root {
	    -exportopt {
		all
	    }
	    -exportcmd {
		all
	    }
	}
    } 

12/26/95

Incompatible -- The function Tix_WishInit() and Tix_MainLoop() are no longer available. Now you should initialize Tix as a "normal" Tk extension.

Incompatible -- Tix_Init_Internal() is not exported anymore.

12/30/95

Bug Fix: There was bad interaction between TK geometry managers and frame widgets (see the comments around the function tixPrimitive::config in Primitiv.tcl) which caused the combobox to flash when the listbox is popped up. A true fix will require the patching up of Tk, I have just kludged around.

Improvement: Now the "window" display items can be used anywhere inside an HList widget: any columns, header, indicator.

Bug Fix: Window item resizing was not handled properly in HList: if a window item is a frame with some buttons packed inside, the size requested by the packer was ignored.

1/1/96

The Tix Home Page has been moved to
http://www.xpi.com/tix .

1/2/96

Improvement: Now all Tix widgets allocate a pixmap for double buffered rendering only if there is enough resources in the X server. Otherwise all drawings are done directly to the screen. This advoids creashing on low-end X terminals.

1/3/96

Improvement: Now the et/ subdirectory is better organized. The file etixAppInit.c is much simplified and most the ugly stuff moved to etixInit.c. It should be easy to use to create new applications that uses both Tix and ET.

1/4/96

Bug Fix: Some sample programs had used the command tixItemStyle to create display styles. However, the official name of the command should be tixDisplayStyle , as mentioned in the man page. Now all sample programs have been changed to use tixDisplayStyle instead. The command alias tixItemStyle is kept just for backward compatibility reasons.

Improvement: -selectmode option and update method are added to TixFileEntry. They work the same way as the -selectmode option and update method of the TixControl widget.

Improvement: New display item type: image. It is basically a stripped-down imagetext item.


Changes Since Tix 4.0.1

1/10/96

Improvement: New methods forget and manage for PanedWindow.

1/13/96

Improvement: Now HList draws the background for its indicators. This makes it possible to use 1-bit bitmaps as indicators. Howeverm, now it is necessary to explicitly set the padding of the indicators to be zero by using Display Styles.

1/15/96

Bug fix: The scrolled widgets did not immediately honor requests like "$sw subwidget hsb config -height 10".

Improvement: New XPM reader that does not require the libXpm.a library.

1/16/96

Bug fix: Now the tixMwm command does not require a patch to tkXEvent.c. The patched version of tkXEvent.c is removed from the src/ directory.

1/17/96

Improvement: Major rearrangement of the configure script. Now it handles compilations with both tk 4.0 and 4.1. A description of the current configuration method and directory arrangement is in Install.html.

1/18/96

Bug fix: The "Foo" bindtag in Primitiv.tcl was changed to "TixDestroyHandler" to advoid namespace pollution.

1/24/96

New feature: New option -dynamicgeometry for NoteBook widget.

New feature: Now the -scrollbar options for all the scrolled widgets can have the following extended format for "auto" :

    auto [+x] [-x] [+y] [-y]
The +x, -x, etc are optional switches that specifies that the x (or y) scrollbar should always be shown (or hidden).

1/26/96

New feature: Now Init.tcl checks whether the version of the script library matches with the binary. Prints out error message if they don't match. Hopefully this will make it easier to detect bad installations.

1/29/96

New feature: Now Tix automatically configures itself to compile with Tk 4.0, 4.1, ITcl 2.0 and ET. Also, you can compile libtix.so for dynamic loading under Tcl 7.5/Tk4.0.

1/30/96

Improvement: Some changes to make Tix work with ITcl 2.0:

New feature: Now Tix comes with a small automatic test suite. You can type make test to test various features of Tix. More test programs will be added in the future.

2/4/96

Improvement: With ITCL, all Tix widget commands are evaluated in the global scope by default. This seems to be the only way for the Tix widgets to work within ITCL classes. See the test file test/itcl/scope1.tcl.

Change: Now the recommended method to setup the Tix package is the setup script. Direct use of the configure script is greatly discouraged.

Change: Now the installation of the main part of Tix (TCL script library and man pages) are handled by the toplevel Makefile.in. The installation of specific binaries are handled by unix-tk4.0/Makefile.in, unix-tk4.1/Makefile.in, etc.


Changes Since Tix 4.0.2

2/8/96

Bug fix: Many setup/config/installation bugs have been fixed.

Change: Now all options taken by the configure script can be specified in the command line to configure. This way setup and configure and be used inter-changeably.

Change: Direct use of the configure script is no longer "strongly discouraged".

Improvement: New resource *tixSchemePriority. You can add this into the .Xdefaults files to adjust the priority level of the options set by the Tix schemes. Please refer to the Tix.n man page.


Changes Since Tix 4.0.3

2/12/96

Bug fix: The balloon was not keeping the button states correctly and not appear again after the user clicks the mouse several times, especially during grab transitions.

2/15/96

Bug fix: ComboBox didn't react to paste events properly.

Bug fix: XPM reader wasn't parsing the header properly and couldn't read any XPM files that heas the header "/* XPM2 */".

2/16/96

Bug fix: NoteBook no longer complains when all of the pages have been deleted.

New feature: New command refresh for DirTree.

2/17/96

New feature: New option -ignoreinvoke added to TixVTree: if set to false, the branch of the tree is not opened/closed if the user invokes an entry in the tree

. Bug fix: Tix no longer uses the tkNormalUid variable that used to be exported by Tk.

2/18/96

New feature: New class tixListNoteBook.

2/22/96

New feature: New color scheme "Bisque" that looks similar (bu not identical) to the color scheme of Tk 3.6.

Changes: New command "flash" for ComboBox. ComboBox doesn't automatically flash anymore when the user selects an entry. You have to call "flash" explicitly.

Changes: Major changes in Schemes:

2/27/96

Incompatible Changes: All %E substitutions have been changed to %V substitutions. The HList widgets supported an undocumented feature: Any string %E in the -command or -browsecmd option will be substituted by the current highlighted entry. This has been changed to %V to advoid name conflict with TK.

2/28/96

Bug fix: The XPM reader didn't handle properly the color names that contain space characters.

Bug fix: The ScrolledWindow widget didn't resize the scrollbars accordingly when the client window changed its size.

2/29/96

Bug fix: The XPM reader didn't handle quotation properly. Also, now it can handle comments anywhere in the XPM image file.

3/1/96

New feature: New command -activatecmd for FileEnt widget: it specifies a command to be executed when the user presses the "file" button. Can be used to customize the file dialog before it pops up.

New feature: New option -dynamicgeometry for tixOptionMenu. When set to false (the default), the size of the menubutton subwidget will be wide enough to display every menu entry fully and does not change when the user selects different entries.

New Doc: NBFrame documentation is available.


Last modified Mar 3 02:02