开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 27

MicroOS/MiniGUI

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (9)
标签 (1)
master
rel-3-2
drm
dev-3-4
complex-scripts
tmp-3-2-2
dev-3-2-2
rel-3-0
64b
ver-4-0-0
master
分支 (9)
标签 (1)
master
rel-3-2
drm
dev-3-4
complex-scripts
tmp-3-2-2
dev-3-2-2
rel-3-0
64b
ver-4-0-0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (9)
标签 (1)
master
rel-3-2
drm
dev-3-4
complex-scripts
tmp-3-2-2
dev-3-2-2
rel-3-0
64b
ver-4-0-0
MiniGUI
/
src
/
gui
/
transkey.c
MiniGUI
/
src
/
gui
/
transkey.c
transkey.c 5.42 KB
一键复制 编辑 原始数据 按行查看 历史
Vincent Wei 提交于 2019年07月15日 14:17 +08:00 . prepend excpetion list statement
///////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT NOTICE
//
// The following open source license statement does not apply to any
// entity in the Exception List published by FMSoft.
//
// For more information, please visit:
//
// https://www.fmsoft.cn/exception-list
//
//////////////////////////////////////////////////////////////////////////////
/*
* This file is part of MiniGUI, a mature cross-platform windowing
* and Graphics User Interface (GUI) support system for embedded systems
* and smart IoT devices.
*
* Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd.
* Copyright (C) 1998~2002, WEI Yongming
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Or,
*
* As this program is a library, any link to this program must follow
* GNU General Public License version 3 (GPLv3). If you cannot accept
* GPLv3, you need to be licensed from FMSoft.
*
* If you have got a commercial license of this program, please use it
* under the terms and conditions of the commercial license.
*
* For more information about the commercial license, please refer to
* <http://www.minigui.com/en/about/licensing-policy/>.
*/
/*
** transkey.c: The Key Messages Translator
**
** Create date: 1999.05 by Wei Yongming.
**
** Used abbreviations:
** ime: input method
*/
#include <ctype.h>
#include "common.h"
#include "minigui.h"
#include "gdi.h"
#include "window.h"
//table1, translating depends on capslock & shift
static const char keymap11 [] = { 0,
27,'1','2','3','4','5','6','7','8','9','0', //11
'-','=','\b','\t', //4
'q','w','e','r','t','y','u','i','o','p','[',']','\n',0, //14
'a','s','d','f','g','h','j','k','l',';','\'','`',0,'\\', //14
'z','x','c','v','b','n','m',',','.','/',0,'*',0,' ',0, //15
};
static const char keymap12 [] = { 0,
27,'!','@','#','$','%','^','&','*','(',')','_','+','\b',
'\t',
'Q','W','E','R','T','Y','U','I','O','P','{','}','\n',0,
'A','S','D','F','G','H','J','K','L',':','"','~',0,'|',
'Z','X','C','V','B','N','M','<','>','?',0,'*',0,' ',0,
};
#define TABLE_SPLIT_VAL 58
//table2 translating depends on numlock & shift
static const char keymap21 [] = { 0,
0,0,0,0,0,0,0,0,0,0,0,0, // f1-f10 numlock & scrolllock
0,0,0,'-',0,0,0,'+',0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,
'\n',0,'/'
};
static const char keymap22 [] = { 0,
0,0,0,0,0,0,0,0,0,0,0,0, // f1-f10 numlock & scrolllock
'7','8','9','-','4','5','6','+','1','2','3','0','.',0,0,0,
0,0,0,0,0,0,0,0,0,
'\n',0,'/'
};
#define TABLE_SPLIT_VAL2 98
unsigned char GUIAPI KeyMessageToChar (PMSG pMsg)
{
short caplock = 0, numlock = 0, shift = 0;
if (pMsg->message != MSG_KEYDOWN
&& pMsg->message != MSG_SYSKEYDOWN
&& pMsg->message != MSG_KEYUP
&& pMsg->message != MSG_SYSKEYUP
&& pMsg->message != MSG_KEYALWAYSPRESS
&& pMsg->message != MSG_KEYLONGPRESS) {
return 0;
}
if (pMsg->lParam & KS_CTRL)
return 0;
if (pMsg->wParam <= TABLE_SPLIT_VAL2)
{
if (pMsg->lParam & KS_CAPSLOCK)
caplock=1;
if (pMsg->lParam & KS_NUMLOCK)
numlock=1;
if (pMsg->lParam & KS_SHIFT)
shift=1;
if (pMsg->wParam <= TABLE_SPLIT_VAL) // translate using table1
{
// alpha chars, capslock affects
if (isalpha(keymap11[pMsg ->wParam])) {
// caps lock not on or shift & caps lock both on
if (! (caplock ^ shift))
return keymap11 [pMsg -> wParam];
else
return keymap12 [pMsg -> wParam];
}
// non-alpha, capslock doesn't matter
else if (shift)
return keymap12 [pMsg -> wParam];
else
return keymap11 [pMsg -> wParam];
}
else
{
// caps lock not on or shift & caps lock both on
if (!(numlock ^ shift))
return keymap21 [pMsg -> wParam - TABLE_SPLIT_VAL];
else
return keymap22 [pMsg -> wParam - TABLE_SPLIT_VAL];
}
}
else
return 0;
}
BOOL GUIAPI TranslateMessage (PMSG pMsg)
{
unsigned char iChar;
if ((pMsg->hwnd != HWND_DESKTOP)
&& (pMsg->message == MSG_KEYDOWN || pMsg->message == MSG_SYSKEYDOWN)) {
// can be transed to WM_CHAR
if ((iChar = KeyMessageToChar (pMsg))) {
if (pMsg->message == MSG_SYSKEYDOWN)
SendMessage (pMsg->hwnd,
MSG_SYSCHAR, iChar, pMsg->lParam);
else
SendMessage (pMsg->hwnd,
MSG_CHAR, iChar, pMsg->lParam);
return TRUE;
}
}
return FALSE;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

MiniGUI 是一个自由软件项目。其目标是提供一个快速、稳定、跨操作系统的图形用户界面(GUI)支持系统,尤其是基于 Linux/uClinux、eCos 以及其他传统 RTOS(如 VxWorks、ThreadX、uC/OS-II、Nucleus 等)的实时嵌入式操作系统。
暂无标签
GPL-3.0
使用 GPL-3.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/MicroOS/MiniGUI.git
git@gitee.com:MicroOS/MiniGUI.git
MicroOS
MiniGUI
MiniGUI
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /