46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								USING: kernel strings assocs sequences math ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								IN: x.keysym-table
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: keysym-table ( -- table )
							 | 
						||
| 
								 | 
							
								H{ { HEX: FF08 "BACKSPACE"     }
							 | 
						||
| 
								 | 
							
								   { HEX: FF09 "TAB"           }
							 | 
						||
| 
								 | 
							
								   { HEX: FF0D "RETURN"        }
							 | 
						||
| 
								 | 
							
								   { HEX: FF8D "ENTER"         }
							 | 
						||
| 
								 | 
							
								   { HEX: FF1B "ESCAPE"        }
							 | 
						||
| 
								 | 
							
								   { HEX: FFFF "DELETE"        }
							 | 
						||
| 
								 | 
							
								   { HEX: FF50 "HOME"          }
							 | 
						||
| 
								 | 
							
								   { HEX: FF51 "LEFT"          }
							 | 
						||
| 
								 | 
							
								   { HEX: FF52 "UP"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FF53 "RIGHT"         }
							 | 
						||
| 
								 | 
							
								   { HEX: FF54 "DOWN"          }
							 | 
						||
| 
								 | 
							
								   { HEX: FF55 "PAGE-UP"       }
							 | 
						||
| 
								 | 
							
								   { HEX: FF56 "PAGE-DOWN"     }
							 | 
						||
| 
								 | 
							
								   { HEX: FF57 "END"           }
							 | 
						||
| 
								 | 
							
								   { HEX: FF58 "BEGIN"         }
							 | 
						||
| 
								 | 
							
								   { HEX: FFBE "F1"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFBF "F2"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC0 "F3"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC1 "F4"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC2 "F5"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC3 "F6"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC4 "F7"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC5 "F8"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC6 "F9"            }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC7 "F10"           }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC8 "F11"           }
							 | 
						||
| 
								 | 
							
								   { HEX: FFC9 "F12"           }
							 | 
						||
| 
								 | 
							
								   { HEX: FFE1 "LEFT-SHIFT"    }
							 | 
						||
| 
								 | 
							
								   { HEX: FFE2 "RIGHT-SHIFT"   }
							 | 
						||
| 
								 | 
							
								   { HEX: FFE3 "LEFT-CONTROL"  }
							 | 
						||
| 
								 | 
							
								   { HEX: FFE4 "RIGHT-CONTROL" }
							 | 
						||
| 
								 | 
							
								   { HEX: FFE5 "CAPSLOCK"      }
							 | 
						||
| 
								 | 
							
								   { HEX: FFE9 "LEFT-ALT"      }
							 | 
						||
| 
								 | 
							
								   { HEX: FFEA "RIGHT-ALT"     }
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: keysym>name ( keysym -- name )
							 | 
						||
| 
								 | 
							
								dup keysym-table at dup [ nip ] [ drop 1string ] if ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: name>keysym ( name -- keysym ) keysym-table value-at ;
							 |