public Image getImage(TimeLine timeLine) {
		clearImage();
		drawButton(0,0,9,9,"D",true,"Debug window","debugButton",Color.white,Color.GRAY);
		drawButton(0,10,9,9,"C",true,"Compile window","compilerButton",Color.black,Color.yellow);
		drawButton(10,10,9,9,"M",true,"MIDI window","midiButton",Color.white,new Color(128,0,0));
		drawButton(10,0,9,9,"F",true,"Filter edit","filterButton",Color.white,new Color(0,128,0));
		drawButton(20,0,9,9,"N",true,"Notes window","notesButton",Color.white,new Color(0,128,128));
		drawButton(20,10,9,9,"K",true,"Color edit","colorButton",Color.white,new Color(128,128,255));
		drawButton(30,0,9,9,"L",true,"Log Window","logButton",Color.black,new Color(255,128,255));
		drawButton(30,10,9,9,"O",true,"Object Edit","objectButton",Color.black,new Color(255,128,128));
		drawButton(40,0,9,9,"X",true,"MIDI Key Edit","keyButton",Color.black,new Color(255,128,255));
		drawButton(40,10,9,9,"P",true,"Properties","propButton",Color.black,new Color(255,0,255));
		drawButton(50,0,9,9,"I",true,"Interface","ifaceButton",Color.black,new Color(255,0,255));
		drawButton(width-50,0,19,19,">", false, "Play button", "playButton", Color.green, Color.GRAY);
		drawButton(width-20,0,19,19,"||", false, "Pause button", "pauseButton",Color.orange, Color.GRAY);
		
		int inputLeft=60;
	   	if (!"".equals(timeLine.inputMode)) {
			// input at bottom.
			g2.setColor(timeLine.timeLineObject.getAwtColor());
			g2.fillRect(inputLeft,0,15,20);
			text(timeLine.inputMode, inputLeft,height-5);
			if ("fFvk=+hvyTiI".indexOf(timeLine.inputMode)>-1) {
				addBoundedObject("inputButton",inputLeft,0,15,20);
				g2.setColor(Color.WHITE);
				g2.drawRect(inputLeft,0,15,20);
				g2.setColor(timeLine.timeLineObject.getAwtColor());
				drawButton(inputLeft,0,15,20,timeLine.inputMode, true, "Input help", "inputButton",Color.white, timeLine.timeLineObject.getAwtColor());
			}
			if (timeLine.editValueIndex>-1) { text(""+timeLine.editValueIndex, 25,height-5);}
			String dispInputStr="";
			if (timeLine.inputStr.length()>0) {
				//write string with cursor in it.
				if (timeLine.cursorPos>timeLine.inputStr.length()) {timeLine.cursorPos=timeLine.inputStr.length();}
				dispInputStr=timeLine.inputStr.substring(0,timeLine.cursorPos)+"|"+timeLine.inputStr.substring(timeLine.cursorPos,timeLine.inputStr.length());
			}
			text(dispInputStr, inputLeft+15,this.height-5);
			g2.drawLine(inputLeft+15, this.height-2,515,this.height-2);
			inputTextLeft = inputLeft+15;
			addBoundedObject("inputField", inputLeft+15, 0, 520, 20);
		}
		
		if (timeLine.msgCtr>-1) {
			Color c=Color.red;
			if (timeLine.msgType==LogWindow.TYPE_WARN) {
				c=Color.orange;
			} else if (timeLine.msgType==LogWindow.TYPE_MSG){
				c=Color.green;
			}
			text(timeLine.msg, 515,height-6,c);
			timeLine.msgCtr++;
			if (timeLine.msgCtr>20) {timeLine.msgCtr=-1;}
		}
		
		return this.img;
	}