db78bd4ad3426168586dd823d1b7f3a121172808 tdreszer Thu Aug 12 17:10:20 2010 -0700 Needed to make subtrack four state CB logic available to hgTracks diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 3e15cf1..dfd3345 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -2093,41 +2093,39 @@ // Four State checkboxes can be checked/unchecked by enable/disabled // NOTE: fourState is not a bitmap because it is manipulated in javascript and int seemed easier at the time -#define FOURSTATE_KEY "fourState" -#define FOURSTATE_EMPTY 666 -#define FOURSTATE_UNCHECKED 0 -#define FOURSTATE_CHECKED 1 -#define FOURSTATE_DISABLE(val) {while((val) >= 0) (val) -= 2;} -#define FOURSTATE_ENABLE(val) {while((val) < 0) (val) += 2;} -#define fourStateChecked(fourState) ((fourState) == 1 || (fourState) == -1) -#define fourStateEnabled(fourState) ((fourState) >= 0) -#define fourStateVisible(fourState) ((fourState) == 1) - -static int subtrackFourStateChecked(struct trackDb *subtrack, struct cart *cart) +#define FOUR_STATE_KEY "fourState" +#define FOUR_STATE_EMPTY 666 +//#define FOUR_STATE_UNCHECKED 0 +//#define FOUR_STATE_CHECKED 1 +//#define FOUR_STATE_CHECKED_DISABLED -1 +#define FOUR_STATE_DISABLE(val) {while((val) >= 0) (val) -= 2;} +#define FOUR_STATE_ENABLE(val) {while((val) < 0) (val) += 2;} + +int subtrackFourStateChecked(struct trackDb *subtrack, struct cart *cart) /* Returns the four state checked state of the subtrack */ { char * setting = NULL; char objName[SMALLBUF]; -int fourState = (int)(long)tdbExtrasGetOrDefault(subtrack,FOURSTATE_KEY,(void *)FOURSTATE_EMPTY); -if(fourState != FOURSTATE_EMPTY) +int fourState = (int)(long)tdbExtrasGetOrDefault(subtrack,FOUR_STATE_KEY,(void *)FOUR_STATE_EMPTY); +if(fourState != FOUR_STATE_EMPTY) return fourState; -fourState = FOURSTATE_UNCHECKED; // default to unchecked, enabled +fourState = FOUR_STATE_UNCHECKED; // default to unchecked, enabled if ((setting = trackDbLocalSetting(subtrack, "parent")) != NULL) { if(findWordByDelimiter("off",' ',setting) == NULL) - fourState = FOURSTATE_CHECKED; + fourState = FOUR_STATE_CHECKED; } // Now check visibility setting = tdbResolveVis(cart,subtrack,FALSE); // If subtrack's view is hide then fourstate includes disabled if(sameWord(setting,TV_HIDE) && subtracksViewIsHidden(cart,subtrack)) - FOURSTATE_DISABLE(fourState); + FOUR_STATE_DISABLE(fourState); safef(objName, sizeof(objName), "%s_sel", subtrack->track); fourState = cartUsualInt(cart, objName, fourState); -tdbExtrasAddOrUpdate(subtrack,FOURSTATE_KEY,(void *)(long)fourState); +tdbExtrasAddOrUpdate(subtrack,FOUR_STATE_KEY,(void *)(long)fourState); return fourState; }