main.c: add zooming on mousewheel events
Signed-off-by: Dave Reisner <d@falconindy.com>
This commit is contained in:
		
							parent
							
								
									13eb5ac929
								
							
						
					
					
						commit
						9a35f40224
					
				
							
								
								
									
										27
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								main.c
									
									
									
									
									
								
							| @ -31,10 +31,12 @@ | |||||||
| 
 | 
 | ||||||
| void on_keypress(XEvent*); | void on_keypress(XEvent*); | ||||||
| void on_configurenotify(XEvent*); | void on_configurenotify(XEvent*); | ||||||
|  | void on_buttonpress(XEvent*); | ||||||
| 
 | 
 | ||||||
| void update_title(); | void update_title(); | ||||||
| 
 | 
 | ||||||
| static void (*handler[LASTEvent])(XEvent*) = { | static void (*handler[LASTEvent])(XEvent*) = { | ||||||
|  | 	[ButtonPress] = on_buttonpress, | ||||||
| 	[KeyPress] = on_keypress, | 	[KeyPress] = on_keypress, | ||||||
| 	[ConfigureNotify] = on_configurenotify | 	[ConfigureNotify] = on_configurenotify | ||||||
| }; | }; | ||||||
| @ -126,6 +128,31 @@ void cleanup() { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void on_buttonpress(XEvent *ev) { | ||||||
|  | 	int changed; | ||||||
|  | 	XButtonEvent *buttonevent; | ||||||
|  | 
 | ||||||
|  | 	changed = 0; | ||||||
|  | 	buttonevent = &ev->xbutton; | ||||||
|  | 
 | ||||||
|  | 	switch (buttonevent->button) { | ||||||
|  | 		case Button4: | ||||||
|  | 			changed = img_zoom_in(&img); | ||||||
|  | 			break; | ||||||
|  | 		case Button5: | ||||||
|  | 			changed = img_zoom_out(&img); | ||||||
|  | 			break; | ||||||
|  | 		default: | ||||||
|  | 			return; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (changed) { | ||||||
|  | 		img_render(&img, &win); | ||||||
|  | 		update_title(); | ||||||
|  | 		timeout = 0; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void on_keypress(XEvent *ev) { | void on_keypress(XEvent *ev) { | ||||||
| 	char key; | 	char key; | ||||||
| 	KeySym keysym; | 	KeySym keysym; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dave Reisner
						Dave Reisner