74#include "RConfigure.h"
206 menuTitle->
GetMenu()->
Connect(
"PoppedUp()",
"TGMenuBar",
this,
"PopupConnection()");
227 beforeMenu = beforeMenuTitle->
GetMenu();
296 const char* signal_name = connlist->GetName();
297 TIter next2(connlist);
299 const char* slot_name = conn->GetName();
300 void* receiver = conn->GetReceiver();
317 const char* signal_name = connlist->GetName();
318 if (strcmp(signal_name,
"Activated(int)") == 0) {
319 TIter next2(connlist);
322 const char* slot_name = conn->GetName();
323 const char* class_name = conn->GetClassName();
324 void* receiver = conn->GetReceiver();
365 hot =
e->GetLabel()->GetHotChar();
387 if (!
main || !
main->InheritsFrom(
"TGMainFrame"))
return;
506 if (!
f->InheritsFrom(
"TGMenuTitle")) {
507 Error(
"AddFrameBefore",
"may only add TGMenuTitle objects to a menu bar");
602 dummy, dummy, wtarget);
635 dummy, dummy, wtarget);
699 gVirtualX->LookupString(event, tmp,
sizeof(tmp), keysym);
733 while ( currentEntry ) {
735 currentMenu = currentEntry->
GetPopup();
736 if ( currentEntry != currentMenu->
GetCurrent() )
747 if (!hot || (hot != keysym))
continue;
878 TIter nexte(
target->GetMenu()->GetListOfEntries());
887 target->GetMenu()->Activate(ptr);
977 gClient->UnregisterPopup(
this);
1020 UInt_t tw, ph = 0, pw = 0;
1023 ph =
p->GetHeight();
1032 Int_t max_ascent, max_descent;
1033 nw->
fEw = tw + pw +18+12;
1115 UInt_t tw, ph = 0, pw = 0;
1118 ph =
p->GetHeight();
1123 Int_t max_ascent, max_descent;
1124 nw->
fEw = tw + pw +18+12;
1177 ph =
p->GetHeight();
1181 Int_t max_ascent, max_descent;
1182 nw->
fEw = tw + pw+18+12;
1255 if (
gVirtualX->InheritsFrom(
"TGWin32")) {
1324 gClient->UnregisterPopup(
this);
1397 static Int_t twice = 0;
1525 int max_ascent, max_descent;
1526 gVirtualX->GetFontProperties(font, max_ascent, max_descent);
1527 int tx = entry->
fEx +
fXl;
1529 int offset = (entry->
fEh - (max_ascent + max_descent)) / 2;
1530 int ty = entry->
fEy + max_ascent +
offset - 1;
1534 switch (entry->
fType) {
1550 if (entry->
fPic != 0)
1570 if (entry->
fPic != 0)
1606 if (
gClient->GetStyle() > 0) {
1636 int m = (t +
b) >> 1;
1655 t = (t +
b - 8) >> 1; ++t;
1657 seg[0].
fX1 = 1+
l; seg[0].
fY1 = 3+t; seg[0].
fX2 = 3+
l; seg[0].
fY2 = 5+t;
1658 seg[1].
fX1 = 1+
l; seg[1].
fY1 = 4+t; seg[1].
fX2 = 3+
l; seg[1].
fY2 = 6+t;
1659 seg[2].
fX1 = 1+
l; seg[2].
fY1 = 5+t; seg[2].
fX2 = 3+
l; seg[2].
fY2 = 7+t;
1660 seg[3].
fX1 = 3+
l; seg[3].
fY1 = 5+t; seg[3].
fX2 = 7+
l; seg[3].
fY2 = 1+t;
1661 seg[4].
fX1 = 3+
l; seg[4].
fY1 = 6+t; seg[4].
fX2 = 7+
l; seg[4].
fY2 = 2+t;
1662 seg[5].
fX1 = 3+
l; seg[5].
fY1 = 7+t; seg[5].
fX2 = 7+
l; seg[5].
fY2 = 3+t;
1674 t = (t +
b - 5) >> 1; ++t;
1675 l = (
l +
r - 5) >> 1; ++
l;
1677 seg[0].
fX1 = 1+
l; seg[0].
fY1 = 0+t; seg[0].
fX2 = 3+
l; seg[0].
fY2 = 0+t;
1678 seg[1].
fX1 = 0+
l; seg[1].
fY1 = 1+t; seg[1].
fX2 = 4+
l; seg[1].
fY2 = 1+t;
1679 seg[2].
fX1 = 0+
l; seg[2].
fY1 = 2+t; seg[2].
fX2 = 4+
l; seg[2].
fY2 = 2+t;
1680 seg[3].
fX1 = 0+
l; seg[3].
fY1 = 3+t; seg[3].
fX2 = 4+
l; seg[3].
fY2 = 3+t;
1681 seg[4].
fX1 = 1+
l; seg[4].
fY1 = 4+t; seg[4].
fX2 = 3+
l; seg[4].
fY2 = 4+t;
1698 ptr->
fStatus &= ~kMenuDefaultMask;
1714 ptr->
fStatus &= ~kMenuHideMask;
1759 ptr->
fStatus &= ~kMenuEnableMask;
1813 if (ptr->
fEntryId ==
id) { ptr->
fStatus &= ~kMenuCheckedMask;
break; }
1825 ptr->
fStatus &= ~kMenuCheckedMask;
1839 if (ptr->
fUserData == user_data) { ptr->
fStatus &= ~kMenuCheckedMask;
break; }
1870 ptr->
fStatus &= ~kMenuRadioMask;
2043 Int_t max_ascent, max_descent;
2048 Resize(tw + 8, max_ascent + max_descent + 7);
2068 0, 0, ax, ay, wdummy);
2092 int x,
y, max_ascent, max_descent;
2099 if (
gClient->GetStyle() > 1) {
2114 if (
gClient->GetStyle() > 1) {
2178 out <<
" TGPopupMenu *";
2179 out <<
GetName() <<
" = new TGPopupMenu(gClient->GetDefaultRoot()"
2183 Int_t r_first, r_last, r_active;
2184 r_active = r_first = r_last = -1;
2191 Int_t i, lentext, hotpos;
2200 outext =
new char[lentext+2];
2202 while (
text && lentext) {
2203 if (i == hotpos-1) {
2208 i++;
text++; lentext--;
2214 memset(shortcut, 0, 80);
2220 out <<
" " <<
GetName() <<
"->AddEntry(" << quote
2231 out <<
",gClient->GetPicture(" << quote << picname << quote <<
")";
2233 out <<
");" << std::endl;
2238 out <<
" // cascaded menu " << quote << mentry->
GetName() << quote <<std::endl;
2243 outext =
new char[lentext+2];
2245 while (
text && lentext) {
2246 if (i == hotpos-1) {
2251 i++;
text++; lentext--;
2255 out <<
" " <<
GetName() <<
"->AddPopup(" << quote
2257 <<
");" << std::endl;
2261 out <<
" " <<
GetName() <<
"->AddLabel(" << quote
2262 << mentry->
GetName() << quote;
2264 out <<
",gClient->GetPicture(" << quote
2268 out <<
");" << std::endl;
2271 out <<
" " <<
GetName() <<
"->AddSeparator();" << std::endl;
2277 <<
");" << std::endl;
2281 <<
");" << std::endl;
2285 <<
");" << std::endl;
2289 <<
");" << std::endl;
2301 }
else if (hasradio) {
2302 out <<
" " <<
GetName() <<
"->RCheckEntry(" << r_active <<
"," << r_first
2303 <<
"," << r_last <<
");" << std::endl;
2305 r_active = r_first = r_last = -1;
2318 out <<
" // " << quote <<
fLabel->
GetString() << quote <<
" menu" << std::endl;
2325 char *outext =
new char[lentext+2];
2328 if (i == hotpos-1) {
2333 i++;
text++; lentext--;
2336 out <<
" " <<
fParent->
GetName() <<
"->AddPopup(" << quote << outext
2348 out <<
" // menu bar" << std::endl;
2350 out <<
" TGMenuBar *";
2354 out <<
" " <<
GetName() <<
"->SetName(\"" <<
GetName() <<
"\");" << std::endl;
2364 out <<
");" << std::endl;
const Mask_t kWAOverrideRedirect
const Mask_t kKeyLockMask
const Mask_t kButtonPressMask
const Mask_t kKeyMod1Mask
typically the Alt key
Handle_t Window_t
Window handle.
const Mask_t kWASaveUnder
const Mask_t kAnyModifier
Handle_t GContext_t
Graphics context handle.
const Mask_t kButton1Mask
const Mask_t kPointerMotionMask
const Mask_t kKeyShiftMask
const Mask_t kKeyMod2Mask
typically mod on numeric keys
const Mask_t kLeaveWindowMask
const Mask_t kButtonReleaseMask
const Mask_t kEnterWindowMask
ULong_t Pixel_t
Pixel value.
Handle_t FontStruct_t
Pointer to font structure.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t points
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
Option_t Option_t TPoint TPoint const char text
R__EXTERN TSystem * gSystem
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
const TGWindow * GetDefaultRoot() const
Returns the root (i.e.
void RegisterPopup(TGWindow *w)
Add a popup menu to the list of popups.
const TGResourcePool * GetResourcePool() const
TGWindow * GetWindowById(Window_t sw) const
Find a TGWindow via its handle. If window is not found return 0.
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
virtual TList * GetList() const
UInt_t GetDefaultWidth() const override
Int_t MustCleanup() const override
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
TList * fList
container of frame elements
virtual void RemoveFrame(TGFrame *f)
Remove frame from composite frame.
static TGLayoutHints * fgDefaultHints
Encapsulate fonts used in the GUI system.
FontStruct_t GetFontStruct() const
A subclasses of TGWindow, and is used as base class for some simple widgets (buttons,...
static Pixel_t GetDefaultSelectedBackground()
Get default selected frame background.
void AddInput(UInt_t emask)
Add events specified in the emask to the events the frame should handle.
static const TGGC & GetBlackGC()
Get black graphics context.
UInt_t fOptions
frame options
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
UInt_t fHeight
frame height
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a frame widget as a C++ statement(s) on output stream out.
Int_t fBorderWidth
frame border width
TGDimension GetSize() const
void DoRedraw() override
Redraw the frame.
virtual Pixel_t GetForeground() const
Return frame foreground color.
static const TGGC & GetHilightGC()
Get highlight color graphics context.
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
void Move(Int_t x, Int_t y) override
Move frame.
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
void UnmapWindow() override
unmap window
virtual void SendMessage(const TGWindow *w, Longptr_t msg, Longptr_t parm1, Longptr_t parm2)
Send message (i.e.
static const TGGC & GetShadowGC()
Get shadow color graphics context.
virtual Bool_t HandleMotion(Event_t *)
virtual Pixel_t GetBackground() const
static const TGGC & GetBckgndGC()
Get background color graphics context.
void MapRaised() override
map raised
Encapsulate a graphics context used in the low level graphics.
A composite frame that layout their children in horizontal way.
TGHotString is a string with a "hot" character underlined.
void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y) override
Draw a hot string and underline the hot character.
This class describes layout hints used by the layout classes.
Int_t GetPadRight() const
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save layout hints as a C++ statement(s) on output stream out.
ULong_t GetLayoutHints() const
Defines top level windows that interact with the system Window Manager.
TGClient * fClient
Connection to display server.
Handle_t fId
X11/Win32 Window identifier.
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
void Draw(Option_t *="") override
Default Draw method for all objects.
const char * GetName() const override
Returns name of object.
Cursor_t GetGrabCursor() const
TGString wraps a TString and adds some graphics routines like drawing, size of string on screen depen...
const char * GetString() const
virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y)
Draw string.
ROOT GUI Window base class.
virtual const TGWindow * GetMainFrame() const
Returns top level main frame.
virtual void RequestFocus()
request focus
const TGWindow * fParent
Parent window.
virtual void DestroyWindow()
destroy window
const TGWindow * GetParent() const
const char * GetName() const override
Return unique name, used in SavePrimitive methods.
TObject * After(const TObject *obj) const override
Returns the object after object obj.
TObject * Before(const TObject *obj) const override
Returns the object before object obj.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
void AddLast(TObject *obj) override
Add object at the end of the list.
TObject * Last() const override
Return the last object in the list. Returns 0 when list is empty.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
void AddBefore(const TObject *before, TObject *obj) override
Insert object before object before in the list.
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Named parameter, streamable and storable.
TQConnection class is an internal class, used in the object communication mechanism.
TList * GetListOfSignals() const
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Bool_t Disconnect(const char *signal=nullptr, void *receiver=nullptr, const char *slot=nullptr)
Disconnects signal of this object from slot of receiver.
const char * Data() const
TString & Remove(Ssiz_t pos)
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual const char * UnixPathName(const char *unixpathname)
Convert from a local pathname to a Unix pathname.
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
Handles synchronous and a-synchronous timer events.
void Reset()
Reset the timer.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
EGEventType fType
of event (see EGEventType)
Int_t fY
pointer x, y coordinates in event window
Window_t fWindow
window reported event is relative to
UInt_t fState
key or button mask
UInt_t fCode
key or button code
Graphics context structure.
Mask_t fMask
bit mask specifying which fields are valid
FontH_t fFont
default text font for text operations
Point structure (maps to the X11 XPoint structure)
Used for drawing line segments (maps to the X11 XSegments structure)
Attributes that can be used when creating or changing a window.
Bool_t fOverrideRedirect
boolean value for override-redirect
Mask_t fMask
bit mask specifying which fields are valid
Bool_t fSaveUnder
should bits under be saved (popups)?