= self::_0 && $keyCode <= self::_9) || ($keyCode >= self::A && $keyCode <= self::Z)) { return chr($keyCode); } // Function keys if ($keyCode >= self::F1 && $keyCode <= self::F12) { return "F".($keyCode - EGW_KEY_F1 + 1); } // Special keys switch ($keyCode) { case self::BACKSPACE: return lang("Back"); case self::TAB: return lang("Tab"); case self::DELETE: return lang("Del"); case self::SPACE: return lang("Space"); case self::PAGE_UP: return lang("Pg up"); case self::PAGE_DOWN: return lang("Pg down"); } return ""; } /** * Generates the caption of the given shortcut and returns it */ public static function shortcut_caption($keyCode, $shift = false, $ctrl = false, $alt = false) { $elems = array(); if ($shift) { $elems[] = lang("Shift"); } if ($ctrl) { $elems[] = lang("Ctrl"); } if ($alt) { $elems[] = lang("Alt"); } $elems[] = self::key_name($keyCode); return implode(" + ", $elems); } /** * Generates a shortcut structure which can be JSON encoded and send to the * egw action system. This function and class could later be used to provide * user defined shortcuts. */ public static function shortcut($keyCode, $shift = false, $ctrl = false, $alt = false) { return array( "keyCode" => $keyCode, "shift" => (boolean)$shift, "ctrl" => (boolean)$ctrl, "alt" => (boolean)$alt, "caption" => self::shortcut_caption($keyCode, $shift, $ctrl, $alt) ); } }