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);
710 if (el == 0) target = 0;
733 while ( currentEntry ) {
735 currentMenu = currentEntry->
GetPopup();
736 if ( currentEntry != currentMenu->
GetCurrent() )
747 if (!hot || (hot != keysym))
continue;
977 gClient->UnregisterPopup(
this);
1020 UInt_t tw, ph = 0, pw = 0;
1032 Int_t max_ascent, max_descent;
1033 nw->
fEw = tw + pw +18+12;
1115 UInt_t tw, ph = 0, pw = 0;
1123 Int_t max_ascent, max_descent;
1124 nw->
fEw = tw + pw +18+12;
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 *";
2353 if (option && strstr(option,
"keep_names"))
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
const Mask_t kWASaveUnder
const Mask_t kAnyModifier
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
Handle_t GContext_t
Graphics context handle.
const Mask_t kButtonReleaseMask
const Mask_t kEnterWindowMask
Handle_t FontStruct_t
Pointer to font structure.
ULong_t Pixel_t
Pixel value.
Handle_t Window_t
Window handle.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
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 TList * GetList() const
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
virtual UInt_t GetDefaultWidth() const
virtual Int_t MustCleanup() const
virtual void MapSubwindows()
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.
virtual void DoRedraw()
Redraw the frame.
static const TGGC & GetBlackGC()
Get black graphics context.
UInt_t fOptions
frame options
virtual void MapRaised()
map raised
UInt_t fHeight
frame height
Int_t fBorderWidth
frame border width
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a frame widget as a C++ statement(s) on output stream out.
TGDimension GetSize() const
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.
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
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 void Move(Int_t x, Int_t y)
Move frame.
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
virtual Bool_t HandleMotion(Event_t *)
virtual Pixel_t GetBackground() const
static const TGGC & GetBckgndGC()
Get background color graphics context.
virtual void UnmapWindow()
unmap window
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.
virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y)
Draw a hot string and underline the hot character.
This class describes layout hints used by the layout classes.
Int_t GetPadRight() const
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
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.
const char * GetName() const
Returns name of object.
void Draw(Option_t *="")
Default Draw method for all objects.
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 const char * GetName() const
Return unique name, used in SavePrimitive methods.
virtual void RequestFocus()
request focus
const TGWindow * fParent
Parent window.
virtual void DestroyWindow()
destroy window
const TGWindow * GetParent() const
virtual void Add(TObject *obj)
virtual TObject * After(const TObject *obj) const
Returns the object after object obj.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
virtual void AddBefore(const TObject *before, TObject *obj)
Insert object before object before in the list.
virtual TObject * Before(const TObject *obj) const
Returns the object before object obj.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
virtual void AddLast(TObject *obj)
Add object at the end of the list.
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=0, void *receiver=0, const char *slot=0)
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)
EGEventType fType
of event (see EGEventType)
Window_t fWindow
window reported event is relative to
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)?