Log of /trunk/gui/gui/src/TRootBrowserLite.cxx
Parent Directory
Revision
38472 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 17 09:48:55 2011 UTC (3 years, 10 months ago) by
bellenot
File length: 104099 byte(s)
Diff to
previous 38471
Add a default case in the switch statement to avoid the compiler warning: enumeration value 'xyz' not handled in switch
Revision
33811 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 10 09:50:50 2010 UTC (4 years, 7 months ago) by
bellenot
File length: 101837 byte(s)
Diff to
previous 32610
Added the possibility to display the size of directories, tree, and objects associated to keys inside Root files, or any kind of browsable object, as soon as their GetObjectInfo() method returns a long long int formatted in a const char * ("%lld")
Revision
32610 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 15 10:30:52 2010 UTC (4 years, 10 months ago) by
bellenot
File length: 100657 byte(s)
Diff to
previous 31844
- Remove one extra check and fix possible buffer overflow (coverity)
- Use "wt" flags to open the Root mime file (instead of just "w").
The format should always be specified, as the default is not the same on all platforms
Revision
29442 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 10 15:35:26 2009 UTC (5 years, 6 months ago) by
bellenot
File length: 100042 byte(s)
Diff to
previous 29409
- Rename "New Browser" to "New Old Browser" in the "File" menu and use "New Browser" to launch the new version of the ROOT browser.
This allows to have the two versions running side by side (for comparison)
- Add a notification for the user, telling there is a new browser and how to use it
Revision
29409 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 9 10:39:17 2009 UTC (5 years, 6 months ago) by
bellenot
File length: 99371 byte(s)
Diff to
previous 29095
When browsing an object, check if it is already in the browser list tree, otherwise add it
Will be used by the new browser method BrowseObject(TObject *)
Revision
25207 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 22 08:26:27 2008 UTC (6 years, 5 months ago) by
bellenot
File length: 98679 byte(s)
Diff to
previous 23978
- Do not delete and then add TGListTreeItem, but
set the corresponding object to its user data.
This solves a problem when browsing trees with
leaves having the same name than the tree itself.
Thanks to James Jackson and Philippe for the report.
Revision
23664 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 6 14:29:46 2008 UTC (6 years, 8 months ago) by
rdm
File length: 99026 byte(s)
Diff to
previous 23449
From Bertrand:
- Added information on the types of volumes returned by
TWinNTSystem::GetVolumes():
- Type of drive: local, removable, network, CD/DVD
- File System: NTFS, AFS, NFS
- Adapted TGFSCombobox and TGFileBrowser accordingly to these new info
- Added two new icons to represent Network drives on Windows
Revision
20516 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 26 16:17:33 2007 UTC (7 years, 2 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowserLite.cxx
File length: 98000 byte(s)
Copied from:
branches/dev/bertrand/gui/src/TRootBrowserLite.cxx revision 20514
Diff to
previous 20427
From Bertrand:
merged bertrand dev branch changes r20120:20514 into the trunk.
Main new feature is the new TBrowser. To turn it on by default
change the Browser.Name option in rootrc.
Here the detailed ChangeLog:
- Renamed TRootBrowser TRootBrowserLite
- Introduced the new class TRootBrowser, consisting of three
main tabs, as shown below:
______________
| | |
| | |
| |__________|
| | |
|___|__________|
All tabs can 'swallow' frames, thanks to the new method:
ExecPlugin(const char *name = 0, const char *fname = 0,
const char *cmd = 0, Int_t pos = kRight,
Int_t subpos = -1)
allowing to select plugins (can be a macro or a command)
to be executed, and where to embed the frame created by
the plugin. Examples:
// create a new browser:
TBrowser b;
// create a new TCanvas in a new top right tab element:
b.ExecPlugin("Canvas", 0, "new TCanvas()");
// creates a new top right tab element embedding the
// TGMainFrame created by the macro 'myMacro.C':
b.ExecPlugin("MyPlugin", "myMacro.C");
// creates a new bottom tab element embedding the
// TGMainFrame created by the macro 'myMacro.C':
b.ExecPlugin("MyPlugin", "myMacro.C", 0, TRootBrowser::kBottom);
- new class TGFileBrowser, a file browser plugin for the new TRootBrowser
- new class TGCommandPlugin, a command I/O plugin for the new TRootBrowser
- new class TGHtmlBrowser, a html browser plugin for the new TRootBrowser
- new TBrowserImp plugin used to load the selected TBrowser implementation
- the browser implementation can be selected via the env 'Browser.Name' in
.rootrc, (can be TRootBrowser or TRootBrowserLite) the default being
TRootBrowserLite
- a list of options (plugins) for the new TRootBrowser is also specified
via the env 'Browser.Options' in .rootrc, default being: FEHCI
Here is the list of available options:
F: File browser E: Text Editor H: HTML browser C: Canvas I: I/O
redirection P: Proof G: GL viewer
- modified TRootGuiFactory, used to create the real TBrowser
implementation.
Revision
19693 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 27 12:23:03 2007 UTC (7 years, 4 months ago) by
antcheva
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 97007 byte(s)
Diff to
previous 19366
Changed fListView->AdjustHeaders() with fListView->LayoutHeader(0) in
TRootBrowser::ProcessMessage to fix the following case:
1) open a new TBrowser;
2) select Detailed list view mode from the toolbar or file menu.
3) click on a list tree enty (always the same)
Result: the columns grow-up in the right list view on every click
Revision
18976 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 7 08:48:22 2007 UTC (7 years, 7 months ago) by
antcheva
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 88205 byte(s)
Diff to
previous 18931
From Valeriy O.
- do not change cursor while selecting items,
oterwise cursor is constantly switched from/to
watch, hand, pointer shape.
- use forced redraw for list_tree, list_view in many places
of the code by using TGClient::NeedRedraw(widget, kTRUE)
to clean the content and fully redraw immediately.
Revision
18620 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Apr 29 07:06:48 2007 UTC (7 years, 8 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 88068 byte(s)
Diff to
previous 18604
From Bertrand:
- Allow to drag and drop any object that has a default constructor
(required by TBufferFile) but is not a TFolder and not a TClass
(to avoid dragging ROOT class from list of classes) from TBrowser.
- Added check (obj->IsA()->GetMethodAllAny("Draw")) in method
HandleDNDdrop() of TRootCanvas and TRootEmbeddedCanvas
before calling obj->Draw().
Revision
18556 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 23 09:07:27 2007 UTC (7 years, 9 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 87873 byte(s)
Diff to
previous 18536
From Bertrand:
- Improve TGLVEntry picking for Drag operation
- Use Turl for uri-list format in TGTextView::HandleDNDdrop
- Update file infos in TGTextEditor when a file has been dropped
- Change highlight color in TGTextEditor
Revision
18536 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 19 21:07:02 2007 UTC (7 years, 9 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 87871 byte(s)
Diff to
previous 17967
From Bertrand:
Added drag and drop support for Linux (Xdnd) and Windows (Clipboard).
It is now possible to drag an histogram (or any other graphical object)
from an opened file in TBrowser to any TCanvas.
It is also possible to drag a text file from TBrowser to a TGTextView
or TGTextEdit widget (i.e. in TGTextEditor).
On Linux, it is even possible to drag from a Root application to another
one, or to drag a text file (i.e. a macro) from the ROOT browser to an
external editor (i.e. Kate).
On Windows, drag and drop only works within the same ROOT application
(for the time being).
Revision
16796 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 16 17:18:32 2006 UTC (8 years, 2 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 85967 byte(s)
Diff to
previous 16514
Changes to get rid of the config.h and HAVE_CONFIG define. These were way
too trivial (just do a locate config.h to see how many there are):
- replace occurances of config.h by RConfigure.h
- add #warning in config.h that is should not be used
- change HAVE_CONFIG to R__HAVE_CONFIG
Revision
15844 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 24 16:11:45 2006 UTC (8 years, 6 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 83817 byte(s)
Diff to
previous 15176
From David Gonzalez Maline and Bertrand:
A bunch of modifications in TGFileDialog (mainly user requests):
- Sort files by name and not by type anymore.
- Increased the vertical scroll size.
- Implemented multiple file selection; can be turned on/off with a
checkbox on the TGFileDialog.
Here is an example of how to use multiple selection:
TGFileInfo fi;
new TGFileDialog(fClient->GetDefaultRoot(), this, kFDOpen,&fi);
if (fi.fMultipleSelection && fi.fFileNamesList) {
TObjString *el;
TIter next(fi.fFileNamesList);
while ((el = (TObjString *) next())) {
new TFile(el->GetString(), "update");
}
}
else if (fi.fFilename) {
new TFile(fi.fFilename, "update");
}
Revision
14703 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 14 17:54:11 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 83262 byte(s)
Diff to
previous 14447
From Valeriy Onuchin:
- TGClient.
Two getter methods GetWaitForEvent(), GetWaitForWindow() introduced.
New method ResetWaitFor(TGWindow *w) allows to interrupt
WaitForUnmap, WaitForDestroy event loops.
- TGComboBox
minory mods
- TRootBrowser, TRootCanavas
more protection against editting was added
Revision
14398 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 23 15:56:03 2006 UTC (8 years, 10 months ago) by
antcheva
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 83208 byte(s)
Diff to
previous 13730
From Valeriy Onuchin:
Mods in several GUI classes related to the following changes required by
the GUI builder development.
- TGWindow::fEditDisabled converted fron Bool_t to UInt_t
Defined new EEditMode bit flags:
enum EEditMode {
kEditEnable = 0, // allow edit
kEditDisable = BIT(0), // disable edit
kEditDisableEvents = BIT(1), // window events cannot be edited
kEditDisableGrab = BIT(2), // window grab cannot be edited
kEditDisableLayout = BIT(3), // window layout cannot be edited
kEditDisableResize = BIT(4), // window size cannot be edited
kEditDisableHeight = BIT(5), // window height cannot be edited
kEditDisableWidth = BIT(6) // window width cannon be edited
};
- TGWindow::IsEditDisabled renamed as TGWindow::GetEditDisabled
- TGFrame::SavePrimitiveSubframes made public
Revision
13688 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 13 16:03:42 2005 UTC (9 years, 1 month ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 82954 byte(s)
Diff to
previous 13641
From Valeriy Onoutchin
TBrowser, TRootBrowser:
- possiblity to edit and execute browsed macro in the
righgt pane of the browser added.
New toolbar buttons added (buttons appeared only when
ROOT macro is being browsed):
"Execute Macro", "Interrupt Macro", "Save Macro"
- default size of browser was increased on 25%
Revision
12658 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 5 14:21:53 2005 UTC (9 years, 4 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 80853 byte(s)
Diff to
previous 12525
from Bertrand:
add new check box feature to TGListTree widget. This option allows checkboxes
on the tree nodes to turn on/off pieces of the tree hierarchy. Used in the
ROOT browser to toggle visibility of geometries.
In TGListTree see for example the new methods:
void CheckItem(TGListTreeItem *item, Bool_t check = kTRUE);
void SetCheckBox(TGListTreeItem *item, Bool_t on = kTRUE);
void ToggleItem(TGListTreeItem *item);
void Checked(TObject *obj, Bool_t check); //*SIGNAL*
and the checkbox option in:
AddItem(..., Bool_t checkbox);
Revision
12523 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 22 20:02:44 2005 UTC (9 years, 5 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 76995 byte(s)
Diff to
previous 12518
From Bertrand:
- Added protections in TRootBrowser when double-clicking on objects in
the right list view.
- Added protection in TClass when browsing TGWin32 class.
Some protections are still missing when browsing ROOT classes, currently
working on this.
Revision
12518 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 19 09:46:37 2005 UTC (9 years, 5 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 76603 byte(s)
Diff to
previous 12256
From Ilka:
The attached patch fixes memory leaks caused by the method
TGMainFrame::SetIconPixmap following way:
- changed method signature to (the backward compatibility is kept)
const TGPicture *TGMainFrame::SetIconPixmap(const char *iconName);
- added new data members cost TGPicture* fIconPic for TRootCanvas,
TRootBrowser, TRootGuiBuilder classes that allow the icon picture to
be freed in the destructors
- code changes for fixing the memory leaks in TRootCanvas, TRootBrowser
and TRootGuiBuilder.
Revision
12247 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jul 5 12:36:07 2005 UTC (9 years, 6 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 76514 byte(s)
Diff to
previous 11928
From valeriy Onuchin:
- new class TImagePlugin is introduced;
To add possibility to read/write new image format one needs to create
a derived class and to override two methods:
virtual unsigned char *ReadFile(const char *filename, UInt_t &w,UInt_t &h)
virtual Bool_t WriteFile(const char *filename, unsigned char *argb,
UInt_t w, UInt_t h)
... and to specify it in the root resource file:
Plugin.TImagePlugin: ps TASPluginGS ASPluginGS "TASPluginGS(const char*)"
the name of plugin file extension DLL containing an implementation of
TImagePlugin subclass
- new class TASImagePlugin that is a subclass of TImagePlugin with ASImage
specific implementations;
- new class TASPluginGS - an image plugin class that allows to create images from
PS/EPS/PDF files and to display them in TCanvas/TPad. In addition, it allows to
browse PS/EPS/PDF files with the ROOT browser.
New files:
asimage/inc/LinkDefGS.h
asimage/inc/TASImagePlugin.h
asimage/inc/TASPluginGS.h
asimage/src/TASPluginGS.cxx
graf/inc/TImagePlugin.h
icons/pdf.xpm
icons/tb_find.xpm
libAfterImage.tar.gz
- TROOT.h
o new data member fClipboard and corresponding getter GetClipboard();
TSeqCollection *fClipboard; //List of clipboard objects;
- TGFrame
o embedded frames resized correctly now.
- TGCanvas
o several useful methods made public
- TGListBox, TGComboBox
o new method FindEntry(const char *s) added which returns entry by name
- TGMdiMainFrame, TGMdiDecorFrame
o fix bug which changed text color globally
o add displaying scroll bars when mdi frame is moved out of mdi
canvas viewport
- TGTextEdit/TGView, guitest
o added processing of:
2-clicks - selects a word
3-clicks - selects a line
4-clicks - selects the whole text
o change the key handling
Ctrl-F - invokes Search dialog
Ctrl-L - invokes Goto line dialog
Correspondent changes added to guitest.C and guitest.cxx (TextEdit test)
o readonly mode added
- TGSearchDialog
o Text entry was replaced by "text entry" combobox. It allows to
"remember" a history of entered search strings.
o new static method TGSearchDialog *&gDialog() introduced. It returns
a global search dialog.
o Search method - display warning message box when object is not found
- TRootBrowser, mime.types
o possibility to browse PS/EPS/PDF fies added
o possibility to browse text files added. The content of text file
appears in "icon box" window (a la netscape)
o "Search" tool bar button added. It activates the "search dialog" for
searching a specified icon or text when a text file is browsed.
- TGuiBldEditor.
o fix bug which changed text color globally
Revision
11928 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 1 12:35:55 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 72344 byte(s)
Diff to
previous 11924
From Valeriy Onuchin:
- TRootBrowser. Execution of macro can delete browser itself.
Some protection against deletion of browser by calling gROOT->Reset()
from inside a macro added.
- TGComboBox. When return key was pressed in combo box text entry,
do not add new entry if such entry already exists.
Revision
11924 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 31 18:52:45 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 72378 byte(s)
Diff to
previous 11907
From Valeriy Onuchin:
- TGComboBox. New signal ReturnPressed added which is
emitted when Return key pressed in combo box text entry.
The current text entry string is added to combo box list.
- TSystemDirectory. Move, Delete, Copy methods removed from
context menu (will be implemented later).
Thanks to Ilka for both suggestions.
Revision
11907 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon May 30 10:21:14 2005 UTC (9 years, 7 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 72285 byte(s)
Diff to
previous 11904
From Valeriy:
- TSystemFile. New methods Rename, Delete, Copy, Move added.
These methods can be invoked via ContextMenu (press right mouse button)
in ROOT browser.
- TRootBrowser. More improvments in browsing history navigation added.
Revision
11904 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat May 28 07:57:52 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 71237 byte(s)
Diff to
previous 11898
From Valeriy Onuchin:
- TGPictureButton - automatic generation of picture correspondent
to disabled state added.
- TRootBrowser
o correct browser history when object which was browsed was deleted.
o Alt-RighArrow, Alt-LeftArrow handling added, which correspond to
"Forward", "Back" browsing history actions.
- gallery.root - renewed with new contrasted thumbnails
Revision
11898 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 27 12:24:44 2005 UTC (9 years, 8 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 70240 byte(s)
Diff to
previous 11877
From Valeriy:
-TASImage:
o CreateThumbnail() - add more contrastness to generated thumbnails
o GetMask() - gVirtualX->CreateBitmap requires a width of input bitmap to be
even to 8 . This mod fixes the problem of XPM images reading.
- TGListView - more corrections in adjusting page position after
changing vew mode.
- TGPicture. Prblem with reading XPM files via TImage is fixed
(TASImage::GetMask) I removed platform dependent code.
- TRootBrowser
o minory mod in dynamic thumbnal generation
o possibility to navigate through "browsing history" added.
o 3 new buttons added to ROOT browser toolbar -
"Back", "Forward", "Refresh"
- root.mimes - minory mods.
Revision
11867 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 25 16:20:54 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 65160 byte(s)
Diff to
previous 11862
From valeriy Onuchin:
- two new features added to ROOT browser
1. on double-click on a ROOT file browser opens up "ROOT Files" folder
in list tree (left pan) with newly opened file and displays this file in
the right pan.
It makes browser navigation more simpler and more intuitive.
2. Auto generation of thumbnails for browsed files was added.
To test this feature try to browse any macro in ROOT tutorials or some
image file.
If executed macro creates a new canvas the 32x32 pixel image from this
canvas
became a thumbnail for this file.
This feature can be switched on/off in the ROOT resource file by
changing
3. TGListTree. Some protected methods were made public.
Browser.AutoThumbnail: yes (or no)
Revision
11862 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 24 20:05:10 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 62542 byte(s)
Diff to
previous 11795
From Valeriy Onuchin:
- root.mimes. Default actions changed for some image types (*.png, *.gif,
*.jpg etc.)
Drawing images in canvas is better than drawing it as TGPictureButton.
Image drawn in canvas can be processed via context menu, scaled, resized
etc.
- TPad::Print - roll-back recent changes in GIF saving. Use again
TVirtualX::WriteGIF
method for saving GIF files which produces much smaller files.
BTW, the patent on LZW compression was expired july 2004. So, making
GIF is now legal.
- TGMimeTypes - fix nasty typo-bug in GetIcon method. The effect of the
bug was appeared as
no large icons were displayed for qq.png, qq.gif etc. files types.
- TGPicture - minory mods
- TGFileContainer::GetFilePictures - optimised for speed. To test a gain
in performance -
run TBrowser on slow computer and open up $ROOTSYS/icons directory.
New data member TGFileContainer::fCachePictures was added which allows
to switch on/off this mechanism.
- TRootBrowser. Weired "refresh behavior" was fixed - when some macro was
browsed/executed and then canvas was deleted, browser's icon box was
refreshed and
currrent "page position" was changed to the most upper one.
Now page position remains on the same place.
- Refresh TBrowser on F5 pressed action added.
- TGLVEntry - SetPictures method added, whic allows to change list view
entry pictures dynamically.
- TSystemFile. SetIconName, GetIconName methods addd
Revision
11795 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun May 15 07:30:17 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 60586 byte(s)
Diff to
previous 11793
From Valeriy Onuchin:
- TASImage, TRootBrowser, TGMimeTypes.cxx
The size of image thumbnail was enlarged from 32x32 to 64x64 pixels.
Appearance of picture thumbnails was much improved.
- TGPicture. Fix possible buffer overflow in HashName method.
- TRootCanvas. Possibility to save canvas in XCF format added.
This format is used in the GIMP (image processing program).
In general the new method of dynamical creation of object's icon can be
extended for any kind of objects.
Revision
11793 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun May 15 05:53:45 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 60578 byte(s)
Diff to
previous 10867
From Valeriy Onuchin:
- TASImage class:
o new method GetImageBuffer is introduced. It returns in-memory buffer
compressed according to the image type.
Buffer must be deallocated after usage.
This method can be used for sending images over the network.
o new method SetImageBuffer introduced. It creates image from compressed
buffer. Supported formats:
PNG - by default
XPM - two options exist:
1. xpm as a single string (raw buffer). Such a string
is returned by GetImageBuffer method.
For example:
char *buf;
int sz;
im1->GetImageBuffer(&buf, &int, TImage::kXpm); /*raw buffer*/
TImage *im2 = TImage::Create();
im2->SetImageBuffer(&buf, TImage::kXpm);
2. xpm as an array of strigs (preparsed)
For example:
char *xpm[] = {
"64 28 58 1",
" c #0A030C",
". c #1C171B"
...
TImage *im = TImage::Create();
im->SetImageBuffer(xpm, TImage::kXpm);
o custom Streamer was implemented. That allows to save images in ROOT files.
Image's thumbnail is also saved into a file.
o galaxy_image.C tutorial is modified according to new saving schema.
o new demo file gallery.root added to tutorials. It contains thumbnailed
and browsable pictures produced by some ROOT tutorials.
o fix bug im TASImage::DrawRectangle methods. Thanks to Thomas Bretz
for reporting it.
- TKey class.
Possibility to save thumbnail/icon as XPM string along with object added.
Currently such mechanism is used for saving thumbnailed images.
- TGPicture. Platform-dependent code was removed. Now TGPictures
are created by TImage objects.
- TRootBrowser classes. Possibility to show objects with dynamically created
icons added.
- numerous bug fixes in libAfterImage library.
Revision
10373 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 21 12:07:54 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 59664 byte(s)
Diff to
previous 10315
From Valeriy Onuchin:
- in TGContainer::RemoveAll() - TGFrameElements were not deleted.
- in TGComposteFrame dtor. - for all frames and layout hints set frame_elements to ZERO.
- in TGComposteFrame::Cleanup - remove useless code.
- in TGComposteFrame::MapSubwindows - add sanity check.
- in TGLayoutHints::UpdateLayoutHints - small optimization.
-in TGLBContainer - TGFrameElements were not deleted.
-in TRootBrowser::RemoveAll - TGFrameElements were not deleted.
Revision
9986 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Sep 12 10:55:26 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 59415 byte(s)
Diff to
previous 9510
From Valeriy Onuchin:
- TGWindow::fEditDisabled value now is inherited from parent window. Setting
fEditDisabled = kTRUE in parent constructor disables guibulding/editting in all subframes.
- Disable editting/guibuilding for TBrowser.
- SetEditDisabled, IsEditDisabled() added to TGClient which allow to disable/enable
editting/guibuilding globally.
- Add TVirtualGuiBld::Instance() method which loads plugin and creates gGuiBuilder object.
- Correct TGButton::HandleButton when fStayDown is kTRUE. Previously after call
TGButton::AllowStayDown(kTRUE) button remains pressed "forever". After this fix
button is released after next button pressing. TGButton::AllowStayDown(kTRUE) provides
"push button behaviour"
Revision
8233 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 18 20:13:43 2004 UTC (10 years, 11 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 57485 byte(s)
Diff to
previous 8132
The following mega patch is from Ilka. She has integrated and further
developed the original classes from Marek Biskup (summer student last year)..
Valeriy Onuchin has also contributed by extending/adapting existing
GUI classes.
Very first prototype of the new pad editor is available for testing and
feedbacks. It was started by Marek Biskup as his project during the
Summer Student Program 2003.
The new pad editor helps ROOT GUI to become closer to the well known
application GUIs; to be user friendly, having easier and faster access
to the ROOT graphics, to be more intuitive. It is embedded in the
TCanvas window every canvas has an editor.
The editor frame is on the left side of the canvas window. The user can
show it via Edit/Editor menu selection. The editor frame contains a set
of picture buttons for selecting well known graphical primitives for
drawing; below them there are widgets for attribute changing. When an
object is selected its name appears with a set of options available for
changing: fill style and color; line style, width and color; text font,
size and style; marker style, size and color.
New Classes:
TGFontTypeComboBox - a combo box with fonts for a choice;
TGLineWidthComboBox - a combo box with line widths;
TGLineWidthLBEntry - list box entry for different line widths
TGLineStyleComboBox - a combo box with line styles;
TGLineStyleLBEntry - list box entry for a line style
TGedEditor - the new editor containing tool-box and attribute frames of
the selected object;
TGedToolBox - frame with picture buttons for a primitive drawing
TGedAttFrame - a base class for all attribute frames
TGedAttNameFrame - a frame showing the selected object name (if exists)
TGedAttFillFrame - a frame showing the fill attributes
TGedAttLineFrame - a frame showing the line attributes
TGedAttTextFrame - a frame showing the text attributes
TGedAttMarkerFrame - a frame showing the marker attributes
TGedPatternFrame - popup window for fill pattern selection
TGedPatternSelector - a button for pattern selection
TGedSelect - service class for selecting
TGedPopup - service class for popup attribute window
TGPatternSelect - a button for selected pattern
TGedMarkerPopup - popup window for marker selection
TGedMarkerSelect - a button for selected marker
Several changes are made in TCanvas, TPad, TRootCanvas to adapt them for
the new GUI interface. The old GUI interface is kept and it can be used
too. The class TPadEditorOld provides its functionality.
Revision
7880 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Jan 10 10:52:31 2004 UTC (11 years ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 56949 byte(s)
Diff to
previous 7870
From Philippe:
This mega patch introduces a new implementation of the STL I/O
which is backward and forward compatible. In addition this is more
exactly a new implementation or an extension of the container I/O.
We are introducing a new abstract interface:
"TVirtualContainerProxy", which can be implemented to present a
proxy to any collection which the I/O (and TTreeFormula) can use
then transparently.
The TVirtualContainerProxy interface allows to the I/O system to
request some information and to execute some essential function of
the container:
what kind of object/data does it contain
does it contain pointers
how to insert data into the container
how to retrieve an array of pointer to the elements inside
how to create a collection object
how to clear the collection
how to resize the collection
how to streamer the collection (if needed)
how to calculate the sizeof the collection
how to calculate the number of elements of the collection.
Using those primitives, the I/O and TTreeFormula should be able to
access any collection. The I/O should also be able to handle the
splitting of collections that can be split (i.e. contains a single
type of object/data).
The current compromise selected between code duplication,
performance of the I/O of TClonesArray and vector of pointers and
the performance of the I/O of other containers, was to have on
function handle all collection as if they were a C-style array of
pointers to data. This implies for example that the I/O of vector
of object current passes via the construction of temporary array
of pointer. The cost of this construction is usually ~Qjust~R the
cost of calculating the addresses of the elements and assigning it
to an array element.
Registering a collection proxy will be similar to
static int dummy = GenerateInitInstance((CollectType*)0x0)-
>AdoptCollectionProxy(new CollectTypeProxy));
Follows a few details on the modifications made to some of the
files and classes.
Bytes.h:
Work around a problem in the MSVC++ 6.0 optimizer. This should
not affect other compilers.
String:
Included the std::string dictionary into G__Base2.cxx, this
insures its presence at all time.
Added a new file string.cxx holding the streamer for
std::string.
RConfig.h
Added proper ansi stream configuration for AIX, KCC
Added template specialization defect for MSVC
TBrowser
Start adding the ability to browser non TObject classes
TBuffer
To handle the reading and writing array of objects, added:
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const
TClass *clss, const char* classname);
Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const
char *classname);
void ReadFastArray(void *start , TClass *cl, Int_t n=1,
TMemberStreamer *s=0);
void ReadFastArray(void **startp, TClass *cl, Int_t n=1,
Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
void WriteFastArray(void *start, TClass *cl, Int_t n=1,
TMemberStreamer *s=0);
Int_t WriteFastArray(void **startp, TClass *cl, Int_t n=1,
Bool_t isPreAlloc=kFALSE, TMemberStreamer *s=0);
TROOT
Enhancement to make the access to gROOT not dependent for the
library loading order. In particular we added:
ROOT::GetROOT()
which should be used instead of gROOT.
Improve support for STL. In particular, now STL containers do
have a corresponding TClass object
TRealData
Replace SetStreamer by AdoptStreamer that allow to use not only
a streamer function but also streamer object (allowing streamer
with a state for Foreign classes)
TString:
Improve streamer performance
TSystem:
More consistency of the return value of TSystem::CompileMacro
build/unix/makecintdlls.sh
Stop making the string.dll
config:
enhance sgicc makefiles
cont:
fix TBits::operator=
TClassTable now warns for duplicate only for non stl classes
TClonesArray fix a typo
gpad:
Add a new class TInspectObject to enable inspect non TObject
classes
TRootBrowser : enable inspect non TObject classes
TFormula/TTreeFormula
To enhance performance switch from using one array fOper which
contained the operation code and its arguments to using 2 arrays
fActions and fActionParams to store respectively the operation and
its parameters.
A new function Convert is used to convert old version from the
fOper to fActions. This allows cleaner coding and offer
optimization opportunities.
TTreePlayer
Start adding support in MakeClass for STL containers.
TRint/TProofServ
Insure the loading of the string support
Event.cxx
make sure to avoid memory over-write
stress.cxx
Add new parameters
stress <nevent> <style> <subbench> <portion>
if <subbench> is 1 or higher, print the benchmark results after
each test. This allows understand
which test is affect by a performance change.
portion is a binary field to indicate which test to run. This
allows to focus on a particular test.
TVirtualCollectionProxy
Abstract interface used to access any type of containers from
the I/O system and TTreeFormula. See TVectorProxy and
TEmulatedVectorProxy for examples.
TEmulatedVectorProxy
Implementation of a std::vector proxy to be able to read a
std::vector without any libraries.
TVectorProxy
Implementation of TVirtualCollectionProxy for a std::vector for
which we have the library.
TStreamerInfo.cxx
Split in 3 files: TStreamerInfo.cxx
TStreamerInfoReadBuffer.cxx TStreamerInfoWriteBuffer.cxx
All the ReadBuffer, ReadBufferClones and the new ReadBufferSTL
(similarly for WriteBuffer) have been factorized into one
function and 2 short wrappers. The new main function expect an
array of pointer to the objects (this array is most often of size
one).
TClonesArray objects pass GetObjectRef(0) to the common
ReadBuffer
vector<bla*> v pass &(v[0])
vector<bla> needs to create an intermediary array to hold the
address
This mechanism is sometimes not optimal (vector<blah>) but
allows extremely flexibly and extension. Basically, to add
support for a new container type using the StreamerInfo mechanism
(in particular allows splitting), one 'just' need to implement a
TVirtualCollectionProxy, which, in particular, will return an
array of address to the object it contains. Even std::map can be
handled with this mechanism, since, for I/O purposes, it can be
consider as a container of pairs.
Add a few optimization, including more caching via a new array
of a new struct (fComp).
Fixed a problem (re)introduced while implementing the Foreign
class CheckSum. Doing:
class Event;
f = new TFile("Event.root");
resulted in errors.
TCint
Add proper support for TClass of STL containers. Fix a memory
leak.
Add support for load TClass via a typedef.
Fix a problem with multiple inheritance
TClass
Fixed a problem (re)introduced while implementing the Foreign
class CheckSum. Doing:
class Event;
f = new TFile("Event.root");
resulted in errors.
Add a
TClass/TGenericClassInfo/TDataMember
Add support for a new interface (TVirtualCollectionProxy)
useable for STL containers or any user defined containers.
Add support for streamer with are objects (as opposed to free
standing function or methods). This allows the user a greater
flexibility in writing a streamer.
Add a few optimizations
Add CanSplit to answer the question for a whole Class (for
example some collection can not be splitted).
TClassStreamer
New class to wrap a class wide streamer
ClassStreamerFunc_t
typedef for a class wide streamer function
TMemberStreamer
New class to wrap a specific class member streamer
MemberStreamerFunc_t
typedef for a specific class member streamer function
RootStreamer
Macro to specify a free standing streamer object or function
for a class
For example:
RootStreamer(string,std_string_streamer);
TStreamerElement:
A couple of optimization/simplification.
Add support for the new STL I/O
Extend the useful
TBranchElement:
add a connection to the proper TVirtualCollectionProxy
add support for STL containers (non-split and split mode)
TTree
Make the function TTree::GetMakeClass NON-virtual for better
efficiency
Add support for STL containers
TBasket
Left (in comment) a yet unproved improvement proposed by
Victor. The preliminary tests were inconclusive performance wise
and it had (seemingly) problem with backward and forward
compatibility.
TBranch
Performance improvements
metautils
This is a new package for C++ files shared between rootcint and
meta.
It contains TClassEdit a class to help determine some property
of a class given its class name (stl, template, etc).
utils
Introduced a new file RStl.cxx to start separating rootcint in
modules.
Modified rootcint to support the new STL I/O methods.
In particular a new class RStl is in charge of doing the
generating of code for STL containers.
Revision
7520 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 5 13:08:26 2003 UTC (11 years, 2 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 56397 byte(s)
Diff to
previous 7408
From Ilka:
Any ROOT GUI can now be saved as a macro. Executing this macro brings back
the current GUI (minus the action handling). This very important development
allows to get easily the source for any GUI, which can then be inspected or
used to create other GUI's. Also this will allow a GUI builder to save and
restore GUI's.
To save the source of a GUI use the methods TGMainFrame::SaveSource() or
TGTransientFrame::SaveSource(), where the latter saves the source for dialogs.
To trigger the saving of any GUI just use ctrl-s.
Revision
7308 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Sep 20 14:39:57 2003 UTC (11 years, 4 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 56161 byte(s)
Diff to
previous 6863
From Valeriy Onuchin
- cosmetic mods (compacting) in RQ_OBJECT macro
- emit TRootBrowser signals (BrowseObj,DoubleClicked)
before action assotiated with browsing.
These changes were "inspired" by recent question in rootalk:
"How to invoke TH2F::SetOption("colz") while browsing histogram"
Revision
6863 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jul 8 19:42:07 2003 UTC (11 years, 6 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 56050 byte(s)
Diff to
previous 6663
From Valery Onuchin
- I added new example to guitest which demonstrates
how to use TGFileContainer/TGContainer classes.
This example along with TestListDir example added previously
reproduces general functionality of TRootBrowser
- added new simplified constructor to TGLVEntry class
- add new method
TGMenuBar::AddPopup(const TString &s, Int_t padleft, Int_t padright,
Int_t padtop, Int_t padbottom)
which also simplifies adding of popup-menus
- mods in TGFSContainer.h which allow to make #include <TGFSContainer.h>
during ROOT session
Revision
6663 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 28 11:55:32 2003 UTC (11 years, 8 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 56047 byte(s)
Diff to
previous 6655
major changes in the resource management of the GUI classes. Introduced the
new class TGResourcePool which loads and keeps track of the 3 main resource
pools: fonts, picture and graphics contexts. Fonts are now handled via the
new TGFont class (and TGFontPool). In the past the loading of these resources
was done in TGClient and required all GUI classes to have TGClient as friend
to have their global statics initialized by TGClient. Adding a new widget
required TGClient.cxx to be changed too. This was obviously not good.
In addition it is now possible to find the full definition of the original
resource back based on a resource handle (GContext_t or FontStruct_t yielding
a TGGC or TGFont) which is needed for the SavePrimitive() functionality.
The resource pool can be found via TGClient (e.g. gClient->GetResourcePool()).
To see all active graphics contexts, fonts and pictures do:
gClient->GetResourcePool()->GetGCPool()->Print()
gClient->GetResourcePool()->GetFontPool()->Print()
gClient->GetResourcePool()->GetPicturePool()->Print()
For more examples see the widget source code.
These changes are largely backward compatible except maybe for some low
level 3rd party widgets that use some TGFrame internals. In these cases
the following sed command will patch the code:
sed -e "s/fgBlackGC()/GetBlackGC()()/g" \
-e "s/fgWhiteGC()/GetWhiteGC()()/g" \
-e "s/fgHilightGC()/GetHilightGC()()/g" \
-e "s/fgShadowGC()/GetShadowGC()()/g" \
-e "s/fgBckgndGC()/GetBckgndGC()()/g" \
widget.cxx > widget.cxx.new
Revision
6651 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 22 12:20:57 2003 UTC (11 years, 8 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 55997 byte(s)
Diff to
previous 6454
From Valeriy Onuchin:
"recently" destructor of TGToolBar class changed.
Now when it's deleted all frames and layouthints of it deleted also.
I removed deletion of fFSComboBox,fComboLayout which are
deleted with "delete fToolBar;"
Revision
5923 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 16 17:57:37 2003 UTC (12 years ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 56101 byte(s)
Diff to
previous 5801
Two changes in TRootBrowser:
1. two signals added to TRootBrowser class
void BrowseObj(TObject *obj); //*SIGNAL*
void ExecuteDefaultAction(TObject *obj); //*SIGNAL*
2. few data members of TRootBrowser made protected, so one can
gain access to these methods via a derived class.
How to use it?
TBrowser *b;
TRootBrowser *imp = (TRoorBrowser*)b->GetBrowserImp();
imp->Connect("BrowseObj(TObject*)", ...
imp->Connect("ExecuteDefaultAction(TObject*)", ...
Revision
5717 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 2 18:50:12 2002 UTC (12 years, 1 month ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 55766 byte(s)
Diff to
previous 5639
mega patch to remove almost all compiler warnings on MacOS X where the
compiler is by default in pedantic mode (LHCb also like to use this option).
The following issues have been fixed:
- removal of unused arguments
- comparison between signed and unsigned integers
- not calling of base class copy ctor in copy ctor's
To be done, the TGeo classes where we get still many hundred warnings of
the above nature. List forwarded to Andrei.
Revision
5639 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 22 13:13:50 2002 UTC (12 years, 2 months ago) by
brun
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 55771 byte(s)
Diff to
previous 5634
From Valeriy:
1. Correct TRootBrowser::ProcessMessage method.
Add direct "return kTRUE" after IconBoxAction which
prevents form "segmentation violation" when IconBoxAction invokes
execution C++ macro in which this browser could be deleted,
for example via gROOT->Reset().
Revision
5576 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 13 17:32:06 2002 UTC (12 years, 2 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 53376 byte(s)
Diff to
previous 5420
add special icons for TBranchElements that are folders as opposed to leaves.
This is done by overriding TObject::GetIconName() which returns a different
name for a branch folder than for a branch leave. In the mime types file
this icon name is specified with the corresponding icons.
Revision
5413 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 10 17:09:06 2002 UTC (12 years, 3 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 52711 byte(s)
Diff to
previous 5329
widget improvements by Valeriy Onuchin. In particular the TGListTree
should now be able to handle very large tree's (not limited anymore by
the bitmap size). Added key navigation options to TGListTree and some
new signals.
Revision
5034 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 31 21:59:16 2002 UTC (12 years, 5 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 53713 byte(s)
Diff to
previous 4766
a few changes in TBrowser to allow browsing parent directories via
a the '..' uplink. By Christian Holm.
In More detail:
* TSystemDirectory::Browse(TBrowser*):
Puts the '..' and '.' links in the output. If the
'TBrowser::kNoHidden' bit is set in the passed 'TBrowser' objects bit
mask, files beginning with '.' (including the link '.' to current
dir) is not shown. The uplink '..' is always shown. This bit can be
set from the menus.
* TList *TSystemDirectory::GetListOfFile():
Added method to get a list of the contents of the directory. The
'TList' contains 'TSystemDirectory' and 'TSystemFile' objects. I could
forsee situations where the following kind of code could be very
useful:
TChain* chain = new TChain("Tree", "A Tree");
TSystemDirectory* dataDir =
new TSystemDirectory("data", Form("%s/data", gSystem->HomeDirectory()));
TList* contents = dataDir->GetListOfFiles();
TIter next(contents);
TSystemFile* file;
while ((file = (TSystemFile*)next())) {
if (file->IsDirectory())
continue;
if (TString(file->GetName()).EndsWidth(".root"))
chain->Add(Form("%s/%s", file->GetTitle(), file->GetName()));
}
Revision
4703 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 13 16:20:16 2002 UTC (12 years, 7 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 50473 byte(s)
Diff to
previous 4692
improved searching through ListViewContainers.
Currently searching is done "by container name".
Searching is now done by the name of item in container,
through all containers and then highlight the container which
contains this item. By Valeriy Onuchin.
Revision
685 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 29 08:57:05 2000 UTC (14 years, 3 months ago) by
rdm
Original Path:
trunk/gui/src/TRootBrowser.cxx
File length: 41075 byte(s)
Diff to
previous 625
many change connected with the introduction of the TGGC (graphics context)
class (all backward compatible). Also many of the static default GC's and
fontstructs are now available to the user. This can simplify code in many
places. See change in guitest.cxx.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.