73#include "RConfigure.h"
97class TPopupDelayTimer :
public TTimer {
108Bool_t TPopupDelayTimer::Notify()
110 fPopup->HandleTimer(0);
205 menuTitle->
GetMenu()->
Connect(
"PoppedUp()",
"TGMenuBar",
this,
"PopupConnection()");
226 beforeMenu = beforeMenuTitle->
GetMenu();
295 const char* signal_name = connlist->GetName();
296 TIter next2(connlist);
298 const char* slot_name = conn->GetName();
299 void* receiver = conn->GetReceiver();
316 const char* signal_name = connlist->GetName();
317 if (strcmp(signal_name,
"Activated(int)") == 0) {
318 TIter next2(connlist);
321 const char* slot_name = conn->GetName();
322 const char* class_name = conn->GetClassName();
323 void* receiver = conn->GetReceiver();
364 hot =
e->GetLabel()->GetHotChar();
386 if (!
main || !
main->InheritsFrom(
"TGMainFrame"))
return;
505 if (!
f->InheritsFrom(
"TGMenuTitle")) {
506 Error(
"AddFrameBefore",
"may only add TGMenuTitle objects to a menu bar");
601 dummy, dummy, wtarget);
634 dummy, dummy, wtarget);
698 gVirtualX->LookupString(event, tmp,
sizeof(tmp), keysym);
709 if (el == 0) target = 0;
732 while ( currentEntry ) {
734 currentMenu = currentEntry->
GetPopup();
735 if ( currentEntry != currentMenu->
GetCurrent() )
746 if (!hot || (hot != keysym))
continue;
976 gClient->UnregisterPopup(
this);
1019 UInt_t tw, ph = 0, pw = 0;
1031 Int_t max_ascent, max_descent;
1032 nw->
fEw = tw + pw +18+12;
1114 UInt_t tw, ph = 0, pw = 0;
1122 Int_t max_ascent, max_descent;
1123 nw->
fEw = tw + pw +18+12;
1180 Int_t max_ascent, max_descent;
1181 nw->
fEw = tw + pw+18+12;
1254 if (
gVirtualX->InheritsFrom(
"TGWin32")) {
1323 gClient->UnregisterPopup(
this);
1396 static Int_t twice = 0;
1524 int max_ascent, max_descent;
1525 gVirtualX->GetFontProperties(font, max_ascent, max_descent);
1526 int tx = entry->
fEx +
fXl;
1528 int offset = (entry->
fEh - (max_ascent + max_descent)) / 2;
1529 int ty = entry->
fEy + max_ascent + offset - 1;
1533 switch (entry->
fType) {
1549 if (entry->
fPic != 0)
1569 if (entry->
fPic != 0)
1605 if (
gClient->GetStyle() > 0) {
1635 int m = (t +
b) >> 1;
1654 t = (t +
b - 8) >> 1; ++t;
1656 seg[0].
fX1 = 1+
l; seg[0].
fY1 = 3+t; seg[0].
fX2 = 3+
l; seg[0].
fY2 = 5+t;
1657 seg[1].
fX1 = 1+
l; seg[1].
fY1 = 4+t; seg[1].
fX2 = 3+
l; seg[1].
fY2 = 6+t;
1658 seg[2].
fX1 = 1+
l; seg[2].
fY1 = 5+t; seg[2].
fX2 = 3+
l; seg[2].
fY2 = 7+t;
1659 seg[3].
fX1 = 3+
l; seg[3].
fY1 = 5+t; seg[3].
fX2 = 7+
l; seg[3].
fY2 = 1+t;
1660 seg[4].
fX1 = 3+
l; seg[4].
fY1 = 6+t; seg[4].
fX2 = 7+
l; seg[4].
fY2 = 2+t;
1661 seg[5].
fX1 = 3+
l; seg[5].
fY1 = 7+t; seg[5].
fX2 = 7+
l; seg[5].
fY2 = 3+t;
1673 t = (t +
b - 5) >> 1; ++t;
1674 l = (
l +
r - 5) >> 1; ++
l;
1676 seg[0].
fX1 = 1+
l; seg[0].
fY1 = 0+t; seg[0].
fX2 = 3+
l; seg[0].
fY2 = 0+t;
1677 seg[1].
fX1 = 0+
l; seg[1].
fY1 = 1+t; seg[1].
fX2 = 4+
l; seg[1].
fY2 = 1+t;
1678 seg[2].
fX1 = 0+
l; seg[2].
fY1 = 2+t; seg[2].
fX2 = 4+
l; seg[2].
fY2 = 2+t;
1679 seg[3].
fX1 = 0+
l; seg[3].
fY1 = 3+t; seg[3].
fX2 = 4+
l; seg[3].
fY2 = 3+t;
1680 seg[4].
fX1 = 1+
l; seg[4].
fY1 = 4+t; seg[4].
fX2 = 3+
l; seg[4].
fY2 = 4+t;
1697 ptr->
fStatus &= ~kMenuDefaultMask;
1713 ptr->
fStatus &= ~kMenuHideMask;
1758 ptr->
fStatus &= ~kMenuEnableMask;
1812 if (ptr->
fEntryId ==
id) { ptr->
fStatus &= ~kMenuCheckedMask;
break; }
1824 ptr->
fStatus &= ~kMenuCheckedMask;
1838 if (ptr->
fUserData == user_data) { ptr->
fStatus &= ~kMenuCheckedMask;
break; }
1869 ptr->
fStatus &= ~kMenuRadioMask;
2042 Int_t max_ascent, max_descent;
2047 Resize(tw + 8, max_ascent + max_descent + 7);
2067 0, 0, ax, ay, wdummy);
2091 int x,
y, max_ascent, max_descent;
2098 if (
gClient->GetStyle() > 1) {
2113 if (
gClient->GetStyle() > 1) {
2177 out <<
" TGPopupMenu *";
2178 out <<
GetName() <<
" = new TGPopupMenu(gClient->GetDefaultRoot()"
2182 Int_t r_first, r_last, r_active;
2183 r_active = r_first = r_last = -1;
2190 Int_t i, lentext, hotpos;
2199 outext =
new char[lentext+2];
2201 while (
text && lentext) {
2202 if (i == hotpos-1) {
2207 i++;
text++; lentext--;
2213 memset(shortcut, 0, 80);
2219 out <<
" " <<
GetName() <<
"->AddEntry(" << quote
2230 out <<
",gClient->GetPicture(" << quote << picname << quote <<
")";
2232 out <<
");" << std::endl;
2237 out <<
" // cascaded menu " << quote << mentry->
GetName() << quote <<std::endl;
2242 outext =
new char[lentext+2];
2244 while (
text && lentext) {
2245 if (i == hotpos-1) {
2250 i++;
text++; lentext--;
2254 out <<
" " <<
GetName() <<
"->AddPopup(" << quote
2256 <<
");" << std::endl;
2260 out <<
" " <<
GetName() <<
"->AddLabel(" << quote
2261 << mentry->
GetName() << quote;
2263 out <<
",gClient->GetPicture(" << quote
2267 out <<
");" << std::endl;
2270 out <<
" " <<
GetName() <<
"->AddSeparator();" << std::endl;
2276 <<
");" << std::endl;
2280 <<
");" << std::endl;
2284 <<
");" << std::endl;
2288 <<
");" << std::endl;
2300 }
else if (hasradio) {
2301 out <<
" " <<
GetName() <<
"->RCheckEntry(" << r_active <<
"," << r_first
2302 <<
"," << r_last <<
");" << std::endl;
2304 r_active = r_first = r_last = -1;
2317 out <<
" // " << quote <<
fLabel->
GetString() << quote <<
" menu" << std::endl;
2324 char *outext =
new char[lentext+2];
2327 if (i == hotpos-1) {
2332 i++;
text++; lentext--;
2335 out <<
" " <<
fParent->
GetName() <<
"->AddPopup(" << quote << outext
2347 out <<
" // menu bar" << std::endl;
2349 out <<
" TGMenuBar *";
2352 if (option && strstr(option,
"keep_names"))
2353 out <<
" " <<
GetName() <<
"->SetName(\"" <<
GetName() <<
"\");" << std::endl;
2363 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.
virtual void RemoveFrame(TGFrame *f)
Remove frame from composite frame.
static TGLayoutHints * fgDefaultHints
FontStruct_t GetFontStruct() const
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.
virtual void MapRaised()
map raised
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.
virtual void SendMessage(const TGWindow *w, Long_t msg, Long_t parm1, Long_t parm2)
Send message (i.e.
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
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
virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y)
Draw a hot string and underline the hot character.
Int_t GetPadRight() const
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
ULong_t GetLayoutHints() const
const char * GetName() const
Returns name of object.
void Draw(Option_t *="")
Default Draw method for all objects.
Cursor_t GetGrabCursor() const
const char * GetString() const
virtual void Draw(Drawable_t id, GContext_t gc, Int_t x, Int_t y)
Draw string.
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
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.
virtual Bool_t Notify()
Notify when timer times out.
Short_t Max(Short_t a, Short_t 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)?