private void timeLineSetButClickHandler(TimeLineSet set) {
		propHelper.setObject(set, "timelineSet");
		int[] point = buttonsDraw.getBoundObjectInsideCoord(set, mouseX, mouseY);
		if (point[0]>12){
			if ((mouseButton==RIGHT) && (!"".equals(inputMode))) {
				setInputStr(set.getId());
			}else {
				if (timeLineSet==null) {
					timeLineSelection.clear();
					timeLineSelection.addAll(set.getSet());
					timeLineSet = set;
					updateTimeLineDisplays();
				} else {
					timeLineSet=null;
				}
			}
		} else if (point[0]<=12) {
/* logic here is :-
 *
 * if (set is cued) {decue it}
 * if (ctrl || none playing ) {
 * 			dont que - play now
 *  		if (!shift) { stop others}
 * }
 * if (other timeline in group playing) {cue timeline & decue others cued  }
 */
			//play/loop the cilcked timeline   this event is used just to send data
			String playMode="p";
			if (mouseButton==RIGHT) {	playMode="l";	}
			
			Vector group = getTimeLineGroup(set.getId(), true);
			Vector grpPlaying = checkOthersPlaying(set.getId());
			
			if (cue.checkQued(set) ) {
				cue.deCueEveryWhere(set);return;
			}
			if (ctrl || (grpPlaying.size()==0)) {
				if (!shift) {
					for (int j=0; j<group.size(); j++) {
						Cueable to = (Cueable)group.get(j);//TimeLineObject
						if ( to instanceof TimeLineObject) {
							TimeLineObject t = (TimeLineObject) to;
							t.playMode = "";
						}
					}
				}
				playTimeLines( set.getSet(), playMode );
				return;
			}
			if ( (grpPlaying.size()>0)) {//grpPlaying.contains(selTimeLine)
				// decue others
				for (Iterator i = group.iterator();i.hasNext()  ; ) {
					Cueable groupObject=(Cueable) i.next();
					cue.deCueEveryWhere(groupObject);
				}
				// encue timeline	
				for (Iterator i = grpPlaying.iterator();i.hasNext()  ; ) {
					TimeLineObject trig=(TimeLineObject) i.next();
					cue.addToCue(trig, set, playMode, true, true);
				}
			}
		}
	}