Log of /trunk/gui/gui/src/TGComboBox.cxx
Parent Directory
Revision
45252 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 27 10:36:51 2012 UTC (2 years, 5 months ago) by
tpochep
File length: 31423 byte(s)
Diff to
previous 45132
Modification for different popups: with cocoa I can not guarantee the stack order for borderless popup window
(it's "main" window can in some cases become main and key window and overlay popup).
With transient hint (which makes a popup window into a children of some other window) the problem is fixed,
now GUI does not fall to pieces at any unexpected user action.
Revision
45132 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 18 15:21:10 2012 UTC (2 years, 6 months ago) by
tpochep
File length: 31325 byte(s)
Diff to
previous 44507
Fix for a combobox. The problem is quite subtle and tough - with Cocoa I have to
process "paint events" immediately, but ROOT also can draw outside of paint event.
And with combobox there are 2 "rendering passes", one is with incorrect sizes, the second one
is with correct sizes. With X11/Win32 these passes are sequenced - and the second
one is initiated by expose event. With Cocoa the second pass actually happens before the
first one. This, plus some implementation details and different event order results
in quite ugly visual artefact - the button in the right part of combobox is
not correctly repainted.
Revision
44507 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 4 12:30:41 2012 UTC (2 years, 7 months ago) by
axel
File length: 30991 byte(s)
Diff to
previous 43556
Remove
using namespace std;
from Riostream.h, which has huge consequences for all of ROOT.
Riostream.h is now a simple wrapper for fstream, iostream, iomanip for backward compatibility; Riosfwd.h simply wraps iosfwd.
Because of templates and their inline functions, Riostream.h needed to be included in headers, too (e.g. TParameter.h), which violated the assumption that Riostream.h is not exposing its using namespace std to headers.
ROOT now requires R__ANSISTREAM, R__SSTREAM, which does not change the set of supported compilers.
Without "using namespace std", several identifiers are now prefixed by std::; e.g. roofit/* source files now have a using namespace std to keep their coding style.
TFile::MakeProject() now generates "using namespace std" to convert the CINT-style class names into C++ ones.
Revision
43556 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 29 14:14:16 2012 UTC (2 years, 9 months ago) by
bellenot
File length: 30871 byte(s)
Diff to
previous 42641
Fix a weird behavior in combo boxes: When the mouse button was pressed on the scrollbar of the combobox popup, and then released outside, the "dragging" flag was not released, and the scrollbar element was following the mouse move events (as if it was grabbed). Thanks Timur for pointing out this oddity.
Revision
36649 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Nov 13 06:10:53 2010 UTC (4 years, 2 months ago) by
brun
File length: 27873 byte(s)
Diff to
previous 35582
From Mattias Ellert:
If the TGFontTypeComboBox constructor detects that the requested X11 font is not installed and falls back to TGTextLBEntry::GetDefaultFontStruct(), then the destructor must not call gVirtualX->DeleteFont() on this font.
The current version lacks protection for this which leads crashes when the default font struct is used after it has been wrongfully deleted by the TGFontTypeComboBox destructor. The backtrace generated can piont anywhere where the default font struct is used, but there is also an error message that says:
Root > Error in <RootX11ErrorHandler>: BadFont (invalid Font parameter) (XID: 71303382, XREQ: 46)
https://savannah.cern.ch/bugs/?75281
Revision
15672 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 3 16:10:46 2006 UTC (8 years, 6 months ago) by
brun
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 26015 byte(s)
Diff to
previous 15280
from Axel:
Change the signature of SavePrimitive from
void SavePrimitive(ofstream &out, Option_t *option);
to
void SavePrimitive(ostream &out, Option_t *option = "");
With this change one can do, eg
myhist.SavePrimitive(std::cout);
WARNING: do rm -f tree/src/*.o
Revision
15191 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun May 28 20:08:00 2006 UTC (8 years, 7 months ago) by
brun
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 25527 byte(s)
Diff to
previous 14805
From valeriy Onuchine:
- TImage, TASImage
o Change return type of Vectorize method from "void" to "Double_t*".
o Implement FromWindow method under X11. This method allows to
create "snapshot image" from any ROOT window or frame.
- config/Makefile.depend
Add dependency of libGuiBld lib on libGraf.
GuiBuilder uses internally TImage/TASImage class.
- GX11Gui.cxx
X11 error handler was slightly modified.
Many X11 errors lead to freezing X11 server and
did not allow debugging.
To prevent freezing, a "forced seg.violation" was added
to the error handler.
The usage of the new "feature" is the following:
0. run "gdb root.exe"
1. set "gDebug = (int)gVirtualX" - that activates the new error handling.
2. run application which has X11 errors.
On X11 error the application was stopped by the "forced seg.violation".
3. "gdb>bt" - backtrace the problem.
!!! A big list of changes in libGui initiated by gui builder development !!!
- TGButton.h, TGButton.cxx
TGButton class:
o SetDown methods removed from context menu.
o SetEnabled method of context menu changed to TOGGLE.
Setting fWidgetFlags was added.
- TGTextButton class
o GetNormGC(), GetFontStruct() methods are introduced.
o SetFont removed from context menu.
o ChangeText(const char *title) was introduced and added to context menu.
o fixed an error in SetFont method which set font globally instead of
locally.
o SavePrimitive - save text justification
- TGPictureButton
o added getter method GetDisabledPicture()
- TGCanvas
o added to GuiBuilder widgets palette.
- TGColorDialog
o new methods:
- TGColorPalette *GetPalette(),
- TGColorPalette *GetCustomPalette(),
- void SetCurrentColor(Pixel_t col)
o new signal:
- void ColorSelected(Pixel_t)
o new parameter added to contructor "Bool_t wait".
If "wait" is kTRUE, "gClient->WaitForUnmap" is called internally
(normal/old usage). If "wait" is kFALSE - "gClient->WaitForUnmap"
should be called by user.
o few "usefull" colors added to "custom" palette.
- TGColorSelect
o added to GuiBuilder widgets palette.
- TGComboBox
o new methods:
- SortByName - allows to sort combobox entries by names.
- SetEnabled, IsEnabled.
- TGFontDialog was rewritten.
o Previous version worked under win32 only,
now it works on X11 also.
It allows to select any font available on the system.
o new parameter added to contructor "Bool_t wait".
If "wait" is kTRUE, "gClient->WaitForUnmap" is called internally
(normal/old usage). If "wait" is kFALSE - "gClient->WaitForUnmap"
should be called by user.
o new methods:
void SetFont(TGFont *font);
void SetColor(Pixel_t color);
void SetAlign(Int_t align);
void EnableAlign(Bool_t on = kTRUE);
void UpdateStyleSize(const char *family);
o new signals:
- FontSelected(char *font)
- AlignSelected(Int_t a)
- ColorSelected(Pixel_t c)
- TGFrame
o unused static member fgContextMenu removed.
- TGCompositeFrame
o TGCompositeFrame::SetEditDisabled modified. It is used for setting
fEditDisableXX attribute during gui buildind.
o ChangeSubframesBackground helper method was introduced.
- TGGroupFrame
o SetTextFont, SetTextColor methods were corrected for
"local" changing of the font.
- TGWindow
o kEditDisableKeyEnable added to EEditMode enum.
If this flag is set - window can handle keyboard events during gui
building.
- TGLabel
o new methods:
- GetNormGC, GetFontStruct
o fixed bugs in setting label's "local" text font.
o SavePrimitive - saving text justification added.
- TGListBox
o new methods:
- SortByName - allow to sort listbox entries by names.
- new auxilary/internal class TGLBFrameElement created.
It's used for ascending/descending sort of list box entries.
o reimplemented methods:
ChangeBackground, Layout, GetDefaultWidth
o disable changing layout manager in SetLayoutManager method.
Layout manager is not used for layout of list box.
- TGIcon
o SetImagePath method was corrected.
- TGScrollBarElement
o new methods:
- SetEnabled, IsEnabled. These methods are used in enabling/disabling
TGNumberEntry objects.
- TGScrollBar
o new getter methods:
- GetHead, GetTail, GetSlider
o new signals:
- PositionChanged, RangeChanged, PageSizeChanged
o ChangeBackground was reimplemented.
- TGShutter
o new methods:
- AddPage, RemovePage, RenamePage
o new signal Selected.
o disable changing layout manager in SetLayoutManager method.
Layout manager is not used for layout.
- TGView
o disable changing layout manager by SetLayoutManager method.
Layout manager is not used for layout.
o ChangeBackground(Pixel_t col) method added which changes background
color only of the canvas frame.
- TGNumberEntry
o more options added to context menu.
- TGProgressBar
o new getter/setter methods:
- GetBarColor, GetNormGC, GetFontStruct, SetForegroundColor.
- TGTab
o disable SetEditDisabled method to avoid changing "edit disable
attribute".
- TGTextEdit, TGTextView, TGView
o fixed bug - "character replace" mode didn't work
o setting insert mode added to context menu.
o setting "read only" mode added to context menu.
o new method which enable/disable "popup menu for edit actions" added.
o few corrections to SavePrimitive method.
- TGTextEntry
o guibuilder specific code was removed.
- TGuiBuilder.h, TGuiBldAction
o possibility to set picture for context menu entry added.
- treeviewer/inc/TSessionViewer.h
o forward declaration of TContextMenu class added.
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/TGComboBox.cxx
File length: 24759 byte(s)
Diff to
previous 14698
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
14698 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 13 15:32:35 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 24884 byte(s)
Diff to
previous 14691
From Valeriy Onuchin:
- TGWindow
o kEditDisableBtnEnable - bit intoduced, which says
"window cannot be edited but can handle mouse button events".
Typical usage is buttons in complex widgets like
buttons in scroll bar, tab elements in TGTab etc.
- TGFrame
o SetBgndColor(const char *hexvalue) method is introduced.
This method allows to set frame background color as
hexvalue e.g. "#0c0c0c", or by color name "white", "blue" etc.
This method was added to guibuilder context menu.
- TGCompositeFrame
o TGLayoutManager *GetLayoutManager() const.
void SetLayoutManager(TGLayoutManager *l) made virtual.
That hepled to fix bugs #15, #16 fronm guibuilder bugs list.
o SetBgndColor(const char *hexvalue) is overloaded in order
to set background color for all subframes.
- TGListBox. Few methods added to context menu.
o New method NewEntry(const char *s = "Entry") -
creates new entry placed next to selected entry.
o void RemoveEntry(Int_t id = -1) - remove selected
entry/entries from listbox
o void SetBgndColor(const char *color) - overloaded to
set background color for list box entries.
o void SetMultipleSelections(Bool_t) - toggle on/off
multiple selection
o TGListBox widget was added to guibuilder widgte palette.
- TGMenu.
o new method was introduced: CheckEntryByData(void *user_data)
It allows to check/uncheck menu entry by specifying
user data associated with entry.
- TGNumberEntry. Few methods added as submemu of context menu
of guibuilder. That greatly simplifies paremeter selection.
o Set fixed height for guibuilding.
- TGScrollBars, TGSliders. Fix height for horizontal bar/slider,
fix width for vertical bar/slider when it is resized during
guibuilding.
- TGTextEntry.
o Several context menu methods are now selected via context
submenu.
o Set fixed height for guibuilding.
- TGComboBox. Changes made in order add
TGComboBox widget to guibuilder.
Revision
14691 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 13 13:02:56 2006 UTC (8 years, 9 months ago) by
antcheva
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 21984 byte(s)
Diff to
previous 14667
From Olivier and me:
- added new TGLineWidthComboBox entry "None" for the case line width = 0 according to the value of the last parameter in the constructor Bool_t none = kFALSE by default (needed by TGraph's exclusion zone GUI)
- follow up changes in TGListBox class
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/TGComboBox.cxx
File length: 20086 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/TGComboBox.cxx
File length: 19656 byte(s)
Diff to
previous 11770
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
11340 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 15 09:38:09 2005 UTC (9 years, 10 months ago) by
rdm
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 19342 byte(s)
Diff to
previous 10904
From Daniel Sigg and Ilka:
TGTab was setting the input mask for button press for its entire window.
This then interferes with combo boxes that are located inside a TGTab
and makes it that none of the mouse clicks outside the pop-up are sent
to the combo box. This is particular annoying if you have a tabbed
application.
Revision
10904 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 12 18:39:30 2005 UTC (10 years ago) by
brun
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 19296 byte(s)
Diff to
previous 10389
From Valeriy Onuchin:
- new concept of "pseudo-window" introduced.
pseudo-window - is an object inherited from TGWindow which
is not created by window system (X11 or M$ Windows).
It does not consume window system resouces.
The main use-case of pseudo-windows is GUI containers
with very large number of items. For example, listviews, listboxes,
where listview/listbox items/entries are pseudo-windows.
Pseudo-window has "window id" equal to zero.
In order to "activate pseudo-window concept" the parent should
have fIsMapSubwindows dat member to be kFALSE.
So, it's backward compatible, setting fIsMapSubwindows=kTRUE in parent window
will activate normal behavior, i.e. will be created in window system.
Introduction of "pseudo-window concept" forced the changes in
TGX11, TGWin32 classes to avoid TVirtualX methods execution when
"window id" is NULL (the case of pseudo-window).
Introduction of pseudo-windows which do not consume window system resouces
greately improved performance of TGListView, TGListBox, TGComboBox objects.
Now it's possible to have these containers with more than 10000 items.
- some optimization in TGLBContainer drawing
- add SetWindowName to most GUI classes. It's very usefull for GUI debugging.
Revision
10389 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 22 07:31:58 2004 UTC (10 years, 3 months ago) by
rdm
Original Path:
trunk/gui/src/TGComboBox.cxx
File length: 19194 byte(s)
Diff to
previous 10245
From Valeriy:
- TGFrame dtor, TGFrame::Cleanup I omitted a call fList->Remove(el);
That caused a lot of problems. I appologize.
- TPad::Print(".gif") - added protection against warnings when loading
libAfterImage. Typo fixed.
- added protection against double deletion in TGComboBox, TGView dtors.
- TGListBoxt::InsertEntry - correct init of TGFrameElement
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/TGComboBox.cxx
File length: 17132 byte(s)
Diff to
previous 8228
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
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/TGComboBox.cxx
File length: 12279 byte(s)
Diff to
previous 6663
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
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/TGComboBox.cxx
File length: 10946 byte(s)
Diff to
previous 781
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
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/TGComboBox.cxx
File length: 10180 byte(s)
Diff to
previous 3
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.