Slider3Demo.C: Simple macro showing capabilities of triple slider | Graphics User Interface | buttonChangelabel.C: This macro gives an example for changing text button labels anytime |
// This macro shows how to use a TGImageMap class. // // A TGImageMap provides the functionality like a clickable image in // with sensitive regions (similar to MAP HTML tag). //Author: Valeriy Onuchin #include <TGPicture.h> #include <TGMenu.h> #include <TGImageMap.h> #include <TGMsgBox.h> #include <TGClient.h> //////////////////////////////////////////////////////////////////////////////// class WorldMap { protected: TGMainFrame* fMain; // main frame TGImageMap* fImageMap; // image map virtual void InitMap(); virtual void InitRU(); virtual void InitUS(); // virtual void InitCN(); virtual void InitAU(); virtual void InitFR(); virtual void InitUK(); public: // the name corresponds to TLD code (http://www.iana.org/cctld/cctld-whois.htm) // the value to "country phone code" (http://www.att.com/traveler/tools/codes.html) enum ECountryCode { kRU = 7, kUS = 1, kFR = 33, kDE = 49, kCH = 41, kCN = 86, kAU = 61, kUK = 44, kUA = 380, kBR = 55 }; WorldMap(const char *picName = "worldmap.jpg"); virtual ~WorldMap() {} virtual void Show() { fMain->MapRaised(); } TGImageMap* GetImageMap() const { return fImageMap; } virtual TString GetTitle() const; // slots void PrintCode(Int_t code); }; //__________________________________________________________________________ WorldMap::WorldMap(const char* picName) { // fMain = new TGMainFrame(gClient->GetRoot(), 750, 420); fImageMap = new TGImageMap(fMain, picName); fMain->AddFrame(fImageMap); fMain->SetWindowName(GetTitle().Data()); fMain->SetIconName("World Map"); TGDimension size = fMain->GetDefaultSize(); fMain->Resize(size); fMain->MapSubwindows(); InitMap(); fImageMap->Connect("RegionClicked(Int_t)", "WorldMap", this, "PrintCode(Int_t)"); } //__________________________________________________________________________ TString WorldMap::GetTitle() const { // title return "Country Code (left button). City/Area Codes (right button)"; } //__________________________________________________________________________ void WorldMap::InitRU() { // int x[12] = { 403, 406, 427, 444, 438, 470, 508, 568, 599, 632, 645, 493 }; int y[12] = { 68, 90, 120, 125, 109, 94, 109, 101, 122, 107, 74, 46 }; TGRegion reg(12, x, y); fImageMap->AddRegion(reg, kRU); fImageMap->SetToolTipText(kRU, "Russia"); TGPopupMenu* pm = fImageMap->CreatePopup(kRU); pm->AddLabel("City Codes"); pm->AddSeparator(); pm->AddEntry("Moscow = 095", 95); pm->AddEntry("Protvino = 0967", 967); pm->AddEntry("St.Petersburg = 812", 812); } //__________________________________________________________________________ void WorldMap::InitUS() { // int x[5] = { 136, 122, 165, 194, 232 }; int y[5] = { 110, 141, 158, 160, 118 }; TGRegion reg(5, x, y); fImageMap->AddRegion(reg, kUS); int alaskaX[4] = { 86, 131, 154, 117 }; int alaskaY[4] = { 90, 82, 64, 63 }; TGRegion alaska(4, alaskaX, alaskaY); fImageMap->AddRegion(alaska, kUS); fImageMap->SetToolTipText(kUS, "USA"); TGPopupMenu* pm = fImageMap->CreatePopup(kUS); pm->AddLabel("Area Codes"); pm->AddSeparator(); pm->AddEntry("Illinois = 217", 217); pm->AddEntry("New York = 212", 212); } //__________________________________________________________________________ void WorldMap::InitFR() { // int x[5] = { 349, 353, 368, 368, 358 }; int y[5] = { 112, 123, 119, 108, 107 }; TGRegion reg(5, x, y); fImageMap->AddRegion(reg, kFR); fImageMap->SetToolTipText(kFR, "France"); } //__________________________________________________________________________ void WorldMap::InitUK() { // int x[4] = { 346, 348, 359, 352 }; int y[4] = { 93, 104, 103, 87 }; TGRegion reg(4, x, y); fImageMap->AddRegion(reg, kUK); fImageMap->SetToolTipText(kUK, "United Kingdom"); } //__________________________________________________________________________ void WorldMap::InitAU() { // int x[6] = { 582, 576, 634, 658, 641, 607 }; int y[6] = { 271, 300, 310, 283, 251, 253 }; TGRegion reg(6, x, y); fImageMap->AddRegion(reg, kAU); fImageMap->SetToolTipText(kAU, "Australia"); } //__________________________________________________________________________ void WorldMap::InitMap() { // InitRU(); InitUS(); InitFR(); InitAU(); InitUK(); fImageMap->SetToolTipText(GetTitle().Data(), 300); } //__________________________________________________________________________ void WorldMap::PrintCode(Int_t code) { // EMsgBoxIcon icontype = kMBIconAsterisk; Int_t buttons = 0; Int_t retval; TGMsgBox* box = new TGMsgBox(gClient->GetRoot(), fMain, "Country Code", Form("Country Code=%d",code), icontype, buttons, &retval); } void WorldMap() { WorldMap *map = new WorldMap; map->Show(); } WorldMap.C:1 WorldMap.C:2 WorldMap.C:3 WorldMap.C:4 WorldMap.C:5 WorldMap.C:6 WorldMap.C:7 WorldMap.C:8 WorldMap.C:9 WorldMap.C:10 WorldMap.C:11 WorldMap.C:12 WorldMap.C:13 WorldMap.C:14 WorldMap.C:15 WorldMap.C:16 WorldMap.C:17 WorldMap.C:18 WorldMap.C:19 WorldMap.C:20 WorldMap.C:21 WorldMap.C:22 WorldMap.C:23 WorldMap.C:24 WorldMap.C:25 WorldMap.C:26 WorldMap.C:27 WorldMap.C:28 WorldMap.C:29 WorldMap.C:30 WorldMap.C:31 WorldMap.C:32 WorldMap.C:33 WorldMap.C:34 WorldMap.C:35 WorldMap.C:36 WorldMap.C:37 WorldMap.C:38 WorldMap.C:39 WorldMap.C:40 WorldMap.C:41 WorldMap.C:42 WorldMap.C:43 WorldMap.C:44 WorldMap.C:45 WorldMap.C:46 WorldMap.C:47 WorldMap.C:48 WorldMap.C:49 WorldMap.C:50 WorldMap.C:51 WorldMap.C:52 WorldMap.C:53 WorldMap.C:54 WorldMap.C:55 WorldMap.C:56 WorldMap.C:57 WorldMap.C:58 WorldMap.C:59 WorldMap.C:60 WorldMap.C:61 WorldMap.C:62 WorldMap.C:63 WorldMap.C:64 WorldMap.C:65 WorldMap.C:66 WorldMap.C:67 WorldMap.C:68 WorldMap.C:69 WorldMap.C:70 WorldMap.C:71 WorldMap.C:72 WorldMap.C:73 WorldMap.C:74 WorldMap.C:75 WorldMap.C:76 WorldMap.C:77 WorldMap.C:78 WorldMap.C:79 WorldMap.C:80 WorldMap.C:81 WorldMap.C:82 WorldMap.C:83 WorldMap.C:84 WorldMap.C:85 WorldMap.C:86 WorldMap.C:87 WorldMap.C:88 WorldMap.C:89 WorldMap.C:90 WorldMap.C:91 WorldMap.C:92 WorldMap.C:93 WorldMap.C:94 WorldMap.C:95 WorldMap.C:96 WorldMap.C:97 WorldMap.C:98 WorldMap.C:99 WorldMap.C:100 WorldMap.C:101 WorldMap.C:102 WorldMap.C:103 WorldMap.C:104 WorldMap.C:105 WorldMap.C:106 WorldMap.C:107 WorldMap.C:108 WorldMap.C:109 WorldMap.C:110 WorldMap.C:111 WorldMap.C:112 WorldMap.C:113 WorldMap.C:114 WorldMap.C:115 WorldMap.C:116 WorldMap.C:117 WorldMap.C:118 WorldMap.C:119 WorldMap.C:120 WorldMap.C:121 WorldMap.C:122 WorldMap.C:123 WorldMap.C:124 WorldMap.C:125 WorldMap.C:126 WorldMap.C:127 WorldMap.C:128 WorldMap.C:129 WorldMap.C:130 WorldMap.C:131 WorldMap.C:132 WorldMap.C:133 WorldMap.C:134 WorldMap.C:135 WorldMap.C:136 WorldMap.C:137 WorldMap.C:138 WorldMap.C:139 WorldMap.C:140 WorldMap.C:141 WorldMap.C:142 WorldMap.C:143 WorldMap.C:144 WorldMap.C:145 WorldMap.C:146 WorldMap.C:147 WorldMap.C:148 WorldMap.C:149 WorldMap.C:150 WorldMap.C:151 WorldMap.C:152 WorldMap.C:153 WorldMap.C:154 WorldMap.C:155 WorldMap.C:156 WorldMap.C:157 WorldMap.C:158 WorldMap.C:159 WorldMap.C:160 WorldMap.C:161 WorldMap.C:162 WorldMap.C:163 WorldMap.C:164 WorldMap.C:165 WorldMap.C:166 WorldMap.C:167 WorldMap.C:168 WorldMap.C:169 WorldMap.C:170 WorldMap.C:171 WorldMap.C:172 WorldMap.C:173 WorldMap.C:174 WorldMap.C:175 WorldMap.C:176 WorldMap.C:177 WorldMap.C:178 WorldMap.C:179 WorldMap.C:180 WorldMap.C:181 WorldMap.C:182 WorldMap.C:183 WorldMap.C:184 WorldMap.C:185 |
|