818b00115a3e9452ac1e577e0319ae6678955b0c braney Fri Nov 5 07:38:43 2010 -0700 some cactus stuff for benedict diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c index a90e3c1..a51919a 100644 --- src/hg/hgTracks/simpleTracks.c +++ src/hg/hgTracks/simpleTracks.c @@ -9601,99 +9601,135 @@ char *cactusName(struct track *tg, void *item) /* Get name to use for refGene item. */ { return ""; } void cactusDraw(struct track *tg, int seqStart, int seqEnd, struct hvGfx *hvg, int xOff, int yOff, int width, MgFont *font, Color color, enum trackVisibility vis) { double scale = scaleForWindow(width, seqStart, seqEnd); struct slList *item; + color=MG_RED; +hvGfxSetClip(hvg, insideX, yOff, insideWidth, tg->height); for (item = tg->items; item != NULL; item = item->next) { - if(tg->itemColor != NULL) - color = tg->itemColor(tg, item, hvg); + //if(tg->itemColor != NULL) + //color = tg->itemColor(tg, item, hvg); + /* + if (color == MG_BLACK) + color=MG_RED; + else + color=MG_BLACK; + */ char *name = tg->itemName(tg, item); name = strchr(name, '.'); if (name != NULL) name++; int y = atoi(name) * tg->lineHeight + yOff; tg->drawItemAt(tg, item, hvg, xOff, y, scale, font, color, vis); } +hvGfxUnclip(hvg); //linkedFeaturesDraw(tg, seqStart, seqEnd, //hvg, xOff, yOff, width, //font, color, vis); } void cactusDrawAt(struct track *tg, void *item, struct hvGfx *hvg, int xOff, int y, double scale, MgFont *font, Color color, enum trackVisibility vis) { linkedFeaturesDrawAt(tg, item, hvg, xOff, y, scale, font, color, vis); } int cactusHeight(struct track *tg, enum trackVisibility vis) { -tg->height = 3 * tg->lineHeight; +tg->height = 5 * tg->lineHeight; return tg->height; } int cactusItemHeight(struct track *tg, void *item) { return tg->lineHeight; } Color cactusNameColor(struct track *tg, void *item, struct hvGfx *hvg) { return MG_WHITE; } void cactusLeftLabels(struct track *tg, int seqStart, int seqEnd, struct hvGfx *hvg, int xOff, int yOff, int width, int height, boolean withCenterLabels, MgFont *font, Color color, enum trackVisibility vis) { } +Color cactusColor(struct track *tg, void *item, struct hvGfx *hvg) +{ +static boolean firstTime = TRUE; +static unsigned colorArray[5]; + +if (firstTime) + { + firstTime = FALSE; + int ii; + for(ii=0; ii < 5; ii++) + colorArray[ii] = MG_RED; + } + +char *name = tg->itemName(tg, item); +name = strchr(name, '.'); + +if (name != NULL) + name++; +int y = atoi(name); + +if (colorArray[y] == MG_RED) + colorArray[y] = MG_BLACK; +else + colorArray[y] = MG_RED; +return colorArray[y]; +} + void cactusBedMethods(struct track *tg) /* cactus bed track methods */ { tg->freeItems = linkedFeaturesFreeItems; tg->drawItems = cactusDraw; tg->drawItemAt = cactusDrawAt; tg->mapItemName = linkedFeaturesName; tg->totalHeight = cactusHeight; tg->itemHeight = cactusItemHeight; tg->itemStart = linkedFeaturesItemStart; tg->itemEnd = linkedFeaturesItemEnd; tg->itemNameColor = linkedFeaturesNameColor; tg->nextPrevExon = linkedFeaturesNextPrevItem; tg->nextPrevItem = linkedFeaturesLabelNextPrevItem; tg->loadItems = loadGappedBed; //tg->itemName = cactusName; tg->itemName = linkedFeaturesName; //tg->mapItemName = refGeneMapName; -//tg->itemColor = blastColor; +tg->itemColor = cactusColor; tg->itemNameColor = cactusNameColor; tg->drawLeftLabels = cactusLeftLabels; } void blastMethods(struct track *tg) /* blast protein track methods */ { tg->loadItems = loadBlast; tg->itemName = refGeneName; tg->mapItemName = refGeneMapName; tg->itemColor = blastColor; tg->itemNameColor = blastNameColor; }