mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 12:30:23 -04:00 
			
		
		
		
	A few more tweaks to the GUI, before starting to import code from
the stand-alone version of map65. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@333 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
		
							parent
							
								
									c0b6e5377a
								
							
						
					
					
						commit
						ad9e31b056
					
				
							
								
								
									
										2
									
								
								map65.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								map65.py
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | |||||||
| #------------------------------------------------------------------ MAP65 | #------------------------------------------------------------------- MAP65 | ||||||
| # $Date$ $Revision$ | # $Date$ $Revision$ | ||||||
| # | # | ||||||
| from Tkinter import * | from Tkinter import * | ||||||
|  | |||||||
							
								
								
									
										128
									
								
								specjt.py
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								specjt.py
									
									
									
									
									
								
							| @ -61,23 +61,23 @@ npal=IntVar() | |||||||
| npal.set(2) | npal.set(2) | ||||||
| nscroll=0 | nscroll=0 | ||||||
| nspeed0=IntVar() | nspeed0=IntVar() | ||||||
| nspeed00=99 |  | ||||||
| root_geom="" | root_geom="" | ||||||
| t0="" | t0="" | ||||||
| tol0=400 | tol0=400 | ||||||
| ttot=0.0 | ttot=0.0 | ||||||
| 
 | 
 | ||||||
| c=Canvas() | c=Canvas() | ||||||
| 
 | NX=750 | ||||||
| a=zeros(750*130,'s') | NY=130 | ||||||
| im=Image.new('P',(750,130)) | a=zeros(NX*NY,'s') | ||||||
| line0=Image.new('P',(750,1))  #Image fragment for top line of waterfall | im=Image.new('P',(NX,NY)) | ||||||
|  | line0=Image.new('P',(NX,1))  #Image fragment for top line of waterfall | ||||||
| draw=ImageDraw.Draw(im) | draw=ImageDraw.Draw(im) | ||||||
| pim=ImageTk.PhotoImage(im) | pim=ImageTk.PhotoImage(im) | ||||||
| 
 | 
 | ||||||
| a2=zeros(750*130,'s') | a2=zeros(NX*NY,'s') | ||||||
| im2=Image.new('P',(750,130)) | im2=Image.new('P',(NX,NY)) | ||||||
| line02=Image.new('P',(750,1)) #Image fragment for top line of zoomed waterfall | line02=Image.new('P',(NX,1)) #Image fragment for top line of zoomed waterfall | ||||||
| draw2=ImageDraw.Draw(im2) | draw2=ImageDraw.Draw(im2) | ||||||
| pim2=ImageTk.PhotoImage(im2) | pim2=ImageTk.PhotoImage(im2) | ||||||
| 
 | 
 | ||||||
| @ -224,7 +224,7 @@ def freeze_decode(event): | |||||||
| 
 | 
 | ||||||
| #---------------------------------------------------- update | #---------------------------------------------------- update | ||||||
| def update(): | def update(): | ||||||
|     global a,b0,c0,g0,im,isec0,line0,newMinute,nscroll,nspeed00,pim, \ |     global a,b0,c0,g0,im,isec0,line0,newMinute,nscroll,pim, \ | ||||||
|            root_geom,t0,mousedf0,nfreeze0,tol0,mode0,nmark0,logm0, \ |            root_geom,t0,mousedf0,nfreeze0,tol0,mode0,nmark0,logm0, \ | ||||||
|            fmid,fmid0,frange,frange0 |            fmid,fmid0,frange,frange0 | ||||||
|      |      | ||||||
| @ -243,10 +243,6 @@ def update(): | |||||||
|     if g.showspecjt==1: |     if g.showspecjt==1: | ||||||
|         showspecjt() |         showspecjt() | ||||||
|     nspeed=nspeed0.get()                        #Waterfall update rate |     nspeed=nspeed0.get()                        #Waterfall update rate | ||||||
|     if (nspeed<6 and nspeed00>=6) or (nspeed>=6 and nspeed00<6): |  | ||||||
|         draw_axis() |  | ||||||
|     nspeed00=nspeed |  | ||||||
| 
 |  | ||||||
|     brightness=sc1.get() |     brightness=sc1.get() | ||||||
|     contrast=sc2.get() |     contrast=sc2.get() | ||||||
|     logm=logmap.get() |     logm=logmap.get() | ||||||
| @ -261,16 +257,16 @@ def update(): | |||||||
|         newdat=0 |         newdat=0 | ||||||
| 
 | 
 | ||||||
|     if newdat or brightness!=b0 or contrast!=c0 or logm!=logm0: |     if newdat or brightness!=b0 or contrast!=c0 or logm!=logm0: | ||||||
|         if brightness==b0 and contrast==c0 and logm==logm0 and nspeed<6: |         if brightness==b0 and contrast==c0 and logm==logm0: | ||||||
|             n=Audio.gcom2.nlines |             n=Audio.gcom2.nlines | ||||||
|             box=(0,0,750,300-n)                 #Define region |             box=(0,0,NX,300-n)                 #Define region | ||||||
|             region=im.crop(box)                 #Get all but last line(s) |             region=im.crop(box)                 #Get all but last line(s) | ||||||
|             try: |             try: | ||||||
|                 im.paste(region,(0,n))          #Move waterfall down |                 im.paste(region,(0,n))          #Move waterfall down | ||||||
|             except: |             except: | ||||||
|                 print "Images did not match, continuing anyway." |                 print "Images did not match, continuing anyway." | ||||||
|             for i in range(n): |             for i in range(n): | ||||||
|                 line0.putdata(a[750*i:750*(i+1)])   #One row of pixels to line0 |                 line0.putdata(a[NX*i:NX*(i+1)])   #One row of pixels to line0 | ||||||
|                 im.paste(line0,(0,i))               #Paste in new top line |                 im.paste(line0,(0,i))               #Paste in new top line | ||||||
|             nscroll=nscroll+n |             nscroll=nscroll+n | ||||||
|         else:                                   #A scale factor has changed |         else:                                   #A scale factor has changed | ||||||
| @ -293,16 +289,6 @@ def update(): | |||||||
|         graph1.delete(ALL) |         graph1.delete(ALL) | ||||||
|         #For some reason, top two lines are invisible, so we move down 2 |         #For some reason, top two lines are invisible, so we move down 2 | ||||||
|         graph1.create_image(0,0+2,anchor='nw',image=pim) |         graph1.create_image(0,0+2,anchor='nw',image=pim) | ||||||
| 
 |  | ||||||
|         if nspeed>5: |  | ||||||
|             color="white" |  | ||||||
|             if g.cmap=="gray1": color="black" |  | ||||||
|             t=time.strftime("%H:%M:%S",time.gmtime(Audio.gcom2.ntime + \ |  | ||||||
|                 0.1*Audio.gcom1.ndsec)) |  | ||||||
|             graph1.create_text(5,110,anchor=W,text=t,fill=color) |  | ||||||
|             t=g.filetime(g.ftnstr(Audio.gcom2.fnamea)) |  | ||||||
|             graph1.create_text(5,260,anchor=W,text=t,fill=color) |  | ||||||
| 
 |  | ||||||
|         newMinute=0 |         newMinute=0 | ||||||
| 
 | 
 | ||||||
|     if (Audio.gcom2.mousedf != mousedf0 or Audio.gcom2.dftolerance != tol0): |     if (Audio.gcom2.mousedf != mousedf0 or Audio.gcom2.dftolerance != tol0): | ||||||
| @ -347,57 +333,45 @@ def draw_axis(): | |||||||
|     xmid=fmid |     xmid=fmid | ||||||
|     if naxis.get(): xmid=xmid-1270.46 |     if naxis.get(): xmid=xmid-1270.46 | ||||||
|     c.delete(ALL) |     c.delete(ALL) | ||||||
|     if nspeed0.get()<6: |  | ||||||
| # Draw the frequency or DF tick marks | # Draw the frequency or DF tick marks | ||||||
|         if(frange==2000): |     if(frange==2000): | ||||||
|             for ix in range(-1300,5001,20): |         for ix in range(-1300,5001,20): | ||||||
|                 i=374.5 + (ix-xmid)/df |             i=374.5 + (ix-xmid)/df | ||||||
|                 j=20 |  | ||||||
|                 if (ix%100)==0 : |  | ||||||
|                     j=16 |  | ||||||
|                     x=i-2 |  | ||||||
|                     if ix<1000 : x=x+2 |  | ||||||
|                     y=8 |  | ||||||
|                     c.create_text(x,y,text=str(ix)) |  | ||||||
|                 c.create_line(i,25,i,j,fill='black') |  | ||||||
| 
 |  | ||||||
|         if(frange==4000): |  | ||||||
|             for ix in range(-2600,5401,50): |  | ||||||
|                 i=374.5 + (ix-xmid)/(2*df) |  | ||||||
|                 j=20 |  | ||||||
|                 if (ix%200)==0 : |  | ||||||
|                     j=16 |  | ||||||
|                     x=i-2 |  | ||||||
|                     if ix<1000 : x=x+2 |  | ||||||
|                     y=8 |  | ||||||
|                     c.create_text(x,y,text=str(ix)) |  | ||||||
|                 c.create_line(i,25,i,j,fill='black') |  | ||||||
|                  |  | ||||||
|         dx=288.7 + (1500-fmid)/df |  | ||||||
|         dff=df |  | ||||||
|         if frange==4000: |  | ||||||
|             dx=375 + (1270.5-fmid)/(2*df) |  | ||||||
|             dff=2*df |  | ||||||
|         if Audio.gcom2.nfreeze==0: |  | ||||||
|             x1=(Audio.gcom2.mousedf-600)/dff + dx |  | ||||||
|             x2=(Audio.gcom2.mousedf+600)/dff + dx |  | ||||||
|         else: |  | ||||||
|             tol=Audio.gcom2.dftolerance     |  | ||||||
|             x1=(Audio.gcom2.mousedf-tol)/dff + dx |  | ||||||
|             x2=(Audio.gcom2.mousedf+tol)/dff + dx |  | ||||||
|         c.create_line(x1,25,x2,25,fill='green',width=2) |  | ||||||
|              |  | ||||||
|     else: |  | ||||||
|         for ix in range(1,31): |  | ||||||
|             i=25*ix |  | ||||||
|             j=20 |             j=20 | ||||||
|             if (ix%5)==0: |             if (ix%100)==0 : | ||||||
|                 j=16 |                 j=16 | ||||||
|                 x=i |                 x=i-2 | ||||||
|                 if x==750: x=745 |                 if ix<1000 : x=x+2 | ||||||
|                 c.create_text(x,8,text=str(ix)) |                 y=8 | ||||||
|  |                 c.create_text(x,y,text=str(ix)) | ||||||
|             c.create_line(i,25,i,j,fill='black') |             c.create_line(i,25,i,j,fill='black') | ||||||
| 
 | 
 | ||||||
|  |     if(frange==4000): | ||||||
|  |         for ix in range(-2600,5401,50): | ||||||
|  |             i=374.5 + (ix-xmid)/(2*df) | ||||||
|  |             j=20 | ||||||
|  |             if (ix%200)==0 : | ||||||
|  |                 j=16 | ||||||
|  |                 x=i-2 | ||||||
|  |                 if ix<1000 : x=x+2 | ||||||
|  |                 y=8 | ||||||
|  |                 c.create_text(x,y,text=str(ix)) | ||||||
|  |             c.create_line(i,25,i,j,fill='black') | ||||||
|  |              | ||||||
|  |     dx=288.7 + (1500-fmid)/df | ||||||
|  |     dff=df | ||||||
|  |     if frange==4000: | ||||||
|  |         dx=375 + (1270.5-fmid)/(2*df) | ||||||
|  |         dff=2*df | ||||||
|  |     if Audio.gcom2.nfreeze==0: | ||||||
|  |         x1=(Audio.gcom2.mousedf-600)/dff + dx | ||||||
|  |         x2=(Audio.gcom2.mousedf+600)/dff + dx | ||||||
|  |     else: | ||||||
|  |         tol=Audio.gcom2.dftolerance     | ||||||
|  |         x1=(Audio.gcom2.mousedf-tol)/dff + dx | ||||||
|  |         x2=(Audio.gcom2.mousedf+tol)/dff + dx | ||||||
|  |     c.create_line(x1,25,x2,25,fill='green',width=2) | ||||||
|  |              | ||||||
| #-------------------------------------------------------- Create GUI widgets | #-------------------------------------------------------- Create GUI widgets | ||||||
| 
 | 
 | ||||||
| #-------------------------------------------------------- Menu bar | #-------------------------------------------------------- Menu bar | ||||||
| @ -460,19 +434,19 @@ bfmid2.pack(side=LEFT) | |||||||
| for i in (5, 4, 3, 2, 1): | for i in (5, 4, 3, 2, 1): | ||||||
|     t=str(i) |     t=str(i) | ||||||
|     Radiobutton(mbar,text=t,value=i,variable=nspeed0).pack(side=RIGHT) |     Radiobutton(mbar,text=t,value=i,variable=nspeed0).pack(side=RIGHT) | ||||||
| nspeed0.set(6) | nspeed0.set(3) | ||||||
| lab2=Label(mbar,text='Speed: ',bd=0) | lab2=Label(mbar,text='Speed: ',bd=0) | ||||||
| lab2.pack(side=RIGHT) | lab2.pack(side=RIGHT) | ||||||
| #------------------------------------------------- Graphics frame | #------------------------------------------------- Graphics frame | ||||||
| iframe1 = Frame(frame, bd=1, relief=SUNKEN) | iframe1 = Frame(frame, bd=1, relief=SUNKEN) | ||||||
| c=Canvas(iframe1, bg='white', width=750, height=25,bd=0) | c=Canvas(iframe1, bg='white', width=NX, height=25,bd=0) | ||||||
| c.pack(side=TOP) | c.pack(side=TOP) | ||||||
| Widget.bind(c,"<Shift-Button-1>",freq_range) | Widget.bind(c,"<Shift-Button-1>",freq_range) | ||||||
| Widget.bind(c,"<Shift-Button-2>",freq_range) | Widget.bind(c,"<Shift-Button-2>",freq_range) | ||||||
| Widget.bind(c,"<Shift-Button-3>",freq_range) | Widget.bind(c,"<Shift-Button-3>",freq_range) | ||||||
| #Widget.bind(c,"<Control-Button-1>",freq_center) | #Widget.bind(c,"<Control-Button-1>",freq_center) | ||||||
| 
 | 
 | ||||||
| graph1=Canvas(iframe1, bg='black', width=750, height=130,bd=0,cursor='crosshair') | graph1=Canvas(iframe1, bg='black', width=NX, height=NY,bd=0,cursor='crosshair') | ||||||
| graph1.pack(side=TOP) | graph1.pack(side=TOP) | ||||||
| Widget.bind(graph1,"<Motion>",fdf_change) | Widget.bind(graph1,"<Motion>",fdf_change) | ||||||
| #Widget.bind(graph1,"<Button-1>",decode_request) | #Widget.bind(graph1,"<Button-1>",decode_request) | ||||||
| @ -481,14 +455,14 @@ Widget.bind(graph1,"<Button-1>",set_freezedf) | |||||||
| Widget.bind(graph1,"<Double-Button-1>",freeze_decode) | Widget.bind(graph1,"<Double-Button-1>",freeze_decode) | ||||||
| iframe1.pack(expand=1, fill=X) | iframe1.pack(expand=1, fill=X) | ||||||
| 
 | 
 | ||||||
| c2=Canvas(iframe1, bg='white', width=750, height=25,bd=0) | c2=Canvas(iframe1, bg='white', width=NX, height=25,bd=0) | ||||||
| c2.pack(side=TOP) | c2.pack(side=TOP) | ||||||
| Widget.bind(c2,"<Shift-Button-1>",freq_range) | Widget.bind(c2,"<Shift-Button-1>",freq_range) | ||||||
| Widget.bind(c2,"<Shift-Button-2>",freq_range) | Widget.bind(c2,"<Shift-Button-2>",freq_range) | ||||||
| Widget.bind(c2,"<Shift-Button-3>",freq_range) | Widget.bind(c2,"<Shift-Button-3>",freq_range) | ||||||
| #Widget.bind(c2,"<Control-Button-1>",freq_center) | #Widget.bind(c2,"<Control-Button-1>",freq_center) | ||||||
| 
 | 
 | ||||||
| graph2=Canvas(iframe1, bg='black', width=750, height=130,bd=0,cursor='crosshair') | graph2=Canvas(iframe1, bg='black', width=NX, height=NY,bd=0,cursor='crosshair') | ||||||
| graph2.pack(side=TOP) | graph2.pack(side=TOP) | ||||||
| Widget.bind(graph2,"<Motion>",fdf_change) | Widget.bind(graph2,"<Motion>",fdf_change) | ||||||
| #Widget.bind(graph2,"<Button-1>",decode_request) | #Widget.bind(graph2,"<Button-1>",decode_request) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user