TGImageMap*¶
A TGImageMap provides the functionality like a clickable image ina web browser with sensitive regions (MAP HTML tag).
TGImageMap (with TGRegion and TGRegionWithId help classes)
TGRegion 继承 TObjectDescribes a region
TGRegionWithId 继承 TGRegionRegion with id, tooltip text and popup menu
TGImageMap 继承 TGPictureButtonClickable image (like MAP in HTML)
class¶
TGRegion
enum ERegionType { kRectangle, kEllipse };
TGRegion();
TGRegion(Int_t x, Int_t y, UInt_t w, UInt_t h, ERegionType = kRectangle);/// Create and initialize a region with a rectangle.
TGRegion(Int_t n, TPoint *points, Bool_t winding = kFALSE);/// Create and intialize a region with a polygon.
TGRegion(Int_t n, Int_t *x, Int_t *y, Bool_t winding = kFALSE);/// Create and initialize a region with an X and Y array of points.
TGRegion(const TArrayS &x, const TArrayS &y, Bool_t winding = kFALSE);/// Create and initialize a region with an X and a Y array of points.
TGRegion(const TGRegion ®);
virtual ~TGRegion();
Bool_t Contains(const TPoint &p) const;/// Return true if point p is contained in the region.
Bool_t Contains(Int_t x, Int_t y) const;/// Return true if point (x,y) is contained in the region.
TGRegion Unite(const TGRegion &r) const;/// Return the union of this region with r.
TGRegion Intersect(const TGRegion &r) const;/// Returns a region which is the intersection of this region and r.
TGRegion Subtract(const TGRegion &r) const;/// Returns a region which is r subtracted from this region.
TGRegion Eor(const TGRegion &r) const;
/// Returns a region which is the difference between the union and
/// intersection this region and r.
TGDimension GetDimension() const;/// Return dimension of region (widht, height).
TGPosition GetPosition() const;/// Return position of region (x, y).
Bool_t IsNull() const;/// Return true if region is not set.
Bool_t IsEmpty() const;/// Return true if region is empty.
TGRegion operator|(const TGRegion &r) const { return Unite(r); }
TGRegion operator+(const TGRegion &r) const { return Unite(r); }
TGRegion operator&(const TGRegion &r) const { return Intersect(r); }
TGRegion operator-(const TGRegion &r) const { return Subtract(r); }
TGRegion operator^(const TGRegion &r) const { return Eor(r); }
TGRegion& operator|=(const TGRegion &r) { return *this = *this | r; }
TGRegion& operator+=(const TGRegion &r) { return *this = *this + r; }
TGRegion& operator&=(const TGRegion &r) { return *this = *this & r; }
TGRegion& operator-=(const TGRegion &r) { return *this = *this - r; }
TGRegion& operator^=(const TGRegion &r) { return *this = *this ^ r; }
Bool_t operator==(const TGRegion &r) const;
Bool_t operator!=(const TGRegion &r) const { return !(operator==(r)); }
TGRegion &operator=(const TGRegion &r);
TGRegionWithId
TGRegionWithId();/// Create GUI region (with id and possible tooltip).
TGRegionWithId(Int_t id, Int_t x, Int_t y, UInt_t w, UInt_t h,
ERegionType = kRectangle);
/// Create GUI region (with id and possible tooltip).
TGRegionWithId(Int_t id, Int_t n, TPoint *points, Bool_t winding = kFALSE);/// Create GUI region (with id and possible tooltip).
TGRegionWithId(const TGRegionWithId ®);/// Copy constructor.
TGRegionWithId(const TGRegion ®, Int_t id);/// Copy ctor which allows setting of new id.
virtual ~TGRegionWithId();
Int_t GetId() const { return fId; }
TGToolTip *GetToolTipText() const { return fTip; }
void SetToolTipText(const char *text, Long_t delayms,
const TGFrame *frame);
/// Set tool tip text associated with this region. The delay is in
/// milliseconds (minimum 250). To remove tool tip call method with
/// text = 0.
TGPopupMenu *GetPopup() const { return fPopup; }
void SetPopup(TGPopupMenu *popup) { fPopup = popup; }
void DisplayPopup();/// Display popup menu associated with this region.
TGImageMap
enum ENavMode { kNavRegions, kNavGrid };
TGImageMap(const TGWindow *p = 0, const TGPicture *pic = 0);/// Create an image map widget.
TGImageMap(const TGWindow *p, const TString &pic);/// Create an image map widget.
virtual ~TGImageMap();/// Cleanup image map widget.
virtual Bool_t HandleButton(Event_t *event);/// Handle button events.
virtual Bool_t HandleDoubleClick(Event_t *event);/// Handle double click events.
virtual Bool_t HandleMotion(Event_t *event);/// Handle mouse motion events.
ENavMode GetNavMode() { return fNavMode; }
void AddRegion(const TGRegion ®ion, Int_t id);/// Add a region to the image map.
TGPopupMenu *CreatePopup(Int_t id);/// Create popoup menu or returns existing for regions with specified id.
TGPopupMenu *GetPopup(Int_t id);/// Return popup for regions with specified id.
void SetToolTipText(const char *text, Long_t delayms = 300);
/// Set tooltip text for main region.
void SetToolTipText(Int_t id, const char *text, Long_t delayms = 300);
/// Set tooltip text for regions with specified id.
void SetCursor(ECursor cursor = kHand) { fCursorMouseOver = cursor; }
void SetPicture(const TGPicture * /*new_pic*/) { } // disabled
virtual void RegionClicked(Int_t id); // *SIGNAL*
/// Handle when mouse was clicked on region id. Emits signal
/// RegionClicked(Int_t).
virtual void DoubleClicked(Int_t id); // *SIGNAL*
/// Handle when mouse is double clicked on region id. Emits signal
/// DoubleClicked(Int_t).
virtual void DoubleClicked(); // *SIGNAL*
/// Handle when mouse is double clicked on main map. Emits signal
/// DoubleClicked().
virtual void OnMouseOver(Int_t id); // *SIGNAL*
/// Handle when mouse moves over region id. Emits signal
/// OnMouseOver(Int_t).
virtual void OnMouseOut(Int_t id); // *SIGNAL*
/// Handle when mouse moves from region id. Emits signal
/// OnMouseOut(Int_t).
code¶
#include "TGImageMap.h"
// TGImageMap
// 插入图片
TGImageMap* fImageMap;
fImageMap = new TGImageMap(frame, "picture.jpg");
frame->AddFrame(fImageMap);
fImageMap->Connect("RegionClicked(Int_t)", "WorldMap", this,"PrintCode(Int_t)");