src/hg/hgTracks/simpleTracks.c 1.115

1.115 2009/12/05 01:29:01 larrym
CONTEXT_MENU stuff; mostly turned off, except map area id's are live
Index: src/hg/hgTracks/simpleTracks.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/simpleTracks.c,v
retrieving revision 1.114
retrieving revision 1.115
diff -b -B -U 4 -r1.114 -r1.115
--- src/hg/hgTracks/simpleTracks.c	1 Dec 2009 05:49:36 -0000	1.114
+++ src/hg/hgTracks/simpleTracks.c	5 Dec 2009 01:29:01 -0000	1.115
@@ -553,8 +553,13 @@
  * If chrom is non-null then jump to chrom:start-end.
  * Add extra string to the URL if it's not NULL */
 {
 struct dyString *ui = uiStateUrlPart(toggleGroup);
+struct dyString *id = dyStringNew(0);
+if(toggleGroup)
+    {
+    dyStringPrintf(id, " id='%s'", toggleGroup->mapName);
+    }
 x = hvGfxAdjXW(hvg, x, width);
 
 if (extra != NULL)
     {
@@ -574,9 +579,9 @@
     //#ifdef IMAGEv2_SHORT_MAPITEMS
     //    if(x < insideX && x+width > insideX)
     //        warn("mapBoxReinvoke(%s) map item spanning slices. LX:%d TY:%d RX:%d BY:%d  link:[%s]",hStringFromTv(toggleGroup->visibility),x, y, x+width, y+height, link);
     //#endif//def IMAGEv2_SHORT_MAPITEMS
-    imgTrackAddMapItem(curImgTrack,link,(char *)(message != NULL?message:NULL),x, y, x+width, y+height);
+    imgTrackAddMapItem(curImgTrack,link,(char *)(message != NULL?message:NULL),x, y, x+width, y+height, toggleGroup != NULL ? toggleGroup->mapName : NULL);
     }
 else
     {
     hPrintf("<AREA SHAPE=RECT COORDS=\"%d,%d,%d,%d\" ", x, y, x+width, y+height);
@@ -584,11 +589,12 @@
         hgTracksName(), chrom, start+1, end);
     hPrintf("&%s\"", ui->string);
     if (message != NULL)
         mapStatusMessage("%s", message);
-    hPrintf(">\n");
+    hPrintf("%s>\n", dyStringContents(id));
     }
 freeDyString(&ui);
+freeDyString(&id);
 }
 
 void mapBoxToggleVis(struct hvGfx *hvg, int x, int y, int width, int height,
 	struct track *curGroup)
@@ -634,12 +640,14 @@
                        char *extra)
 /* Print out image map rectangle that would invoke the hgc (human genome click)
  * program. */
 {
+struct dyString *id = dyStringNew(0);
 if (x < 0) x = 0;
 x = hvGfxAdjXW(hvg, x, width);
 int xEnd = x+width;
 int yEnd = y+height;
+dyStringPrintf(id, " id='%s'", track);
 
 if (x < xEnd)
     {
     char *encodedItem = cgiEncode(item);
@@ -665,9 +673,9 @@
         #ifdef IMAGEv2_SHORT_MAPITEMS
             if(x < insideX && xEnd > insideX)
                 warn("mapBoxHgcOrHgGene(%s) map item spanning slices. LX:%d TY:%d RX:%d BY:%d  link:[%s]",track,x, y, xEnd, yEnd, link);
         #endif//def IMAGEv2_SHORT_MAPITEMS
-        imgTrackAddMapItem(curImgTrack,link,(char *)(statusLine!=NULL?statusLine:NULL),x, y, xEnd, yEnd);
+        imgTrackAddMapItem(curImgTrack,link,(char *)(statusLine!=NULL?statusLine:NULL),x, y, xEnd, yEnd, track);
         }
     else
         {
         hPrintf("<AREA SHAPE=RECT COORDS=\"%d,%d,%d,%d\" ", x, y, xEnd, yEnd);
@@ -689,13 +697,14 @@
             hPrintf("&%s", extra);
         hPrintf("\" ");
         if (statusLine != NULL)
         mapStatusMessage("%s", statusLine);
-        hPrintf(">\n");
+        hPrintf("%s>\n", dyStringContents(id));
         }
     freeMem(encodedItem);
     freeMem(encodedTrack);
     }
+freeDyString(&id);
 }
 
 void mapBoxHc(struct hvGfx *hvg, int start, int end, int x, int y, int width, int height,
 	char *track, char *item, char *statusLine)