Skip to content

Commit

Permalink
Merge pull request #117 from abgox/v2
Browse files Browse the repository at this point in the history
feat: update version to 2.27.0
  • Loading branch information
abgox authored Dec 18, 2024
2 parents 0de4690 + c5abd00 commit 993e746
Show file tree
Hide file tree
Showing 11 changed files with 350 additions and 248 deletions.
82 changes: 48 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,15 +103,35 @@

- 设置鼠标样式

1. 点击 `托盘菜单` => `设置鼠标样式`
2. 选择包含 `.cur``.ani` 文件的文件夹
- 比如默认的中文鼠标样式文件夹: `InputTipCursor\default\CN`
- 直接选择 `InputTipCursor\default` 目录下的 `CN`/`EN`/`Caps` 文件夹即可快速重置为默认的中文/英文/大写锁定状态时的鼠标样式
3. 点击 `托盘菜单` => `重启`
1. 点击 `托盘菜单` => `更改配置` => `鼠标样式`
2. 选择或输入包含 `.cur``.ani` 文件的文件夹目录路径
- 比如默认的中文鼠标样式文件夹目录路径: `InputTipCursor\default\CN`
3. 点击 `确认`

- [点击下载一些可以直接使用的鼠标样式](https://inputtip.pages.dev/releases/v2/cursorStyle.zip)
- 这是一个压缩包,需要将其解压,放入 `InputTipCursor` 目录下,然后进行上述步骤即可

> [!Warning]
>
> - 你应该尽量让三种状态下都有对应的鼠标样式目录路径,且其中包含的鼠标样式文件的数量和类型是一致的
> - 比如:
> - 如果中文状态的目录路径下有 `IBeam.cur``IBeam.ani` 文件,英文状态或大写锁定的目录路径下没有。
> -`IBeam` 类型的鼠标样式将在中文状态下生效,之后由于英文状态或大写锁定的目录路径下缺少对应的样式文件,还会停留在中文状态下的样式
### 编译

> [!Tip]
> 你可以自行查看源代码并编译 `InputTip`
1. 克隆项目仓库到本地
2. 安装 [AutoHotkey v2](https://www.autohotkey.com/)
- 这一步完成后,你也可以直接运行 `src\v2\InputTip.ahk` 使用
3. 打开 `AutoHotKey Dash`
4. 点击左侧的 `Compile`,等待编译器下载完成
5. 重新点击左侧的 `Compile`
6.`src\v2\InputTip.ahk` 拖入弹出的编译窗口中
7. 点击左下角的 `Convert` 完成编译

### 卸载

- 所有相关的文件或目录
Expand Down Expand Up @@ -159,56 +179,45 @@

#### 图片符号

- `InputTip.exe` 启动后,会在同级目录下生成 `InputTipSymbol` 目录,其中包括 `CN.png``EN.png``Caps.png` 三个图片文件以及 `default` 文件夹
- `InputTip.exe` 启动后,会在同级目录下生成 `InputTipSymbol` 目录,其中包括 `default` 文件夹

- `CN.png``EN.png``Caps.png`
- 这三个图片文件分别对应中文/英文/大写锁定状态的图片符号
- 你可以随意替换它们
- 你可以替换为自己喜欢的图片符号,或者自己制作一个图片符号
- 限制: 必须是 `.png` 格式
- `default` 文件夹中包含了默认的图片符号

-`托盘菜单``更改配置` => `显示形式` => `是否显示图片符号` 设置为 `1` 时,会在输入光标附近显示对应的图片符号
- 图片符号相关的配置: `托盘菜单` => `更改配置` => `图片符号`
- 当图片文件被删除时,则不会显示对应状态的图片符号
- 比如: 你只希望在中文状态下显示图片符号,那么就删除 `EN.png``Caps.png` 这两个文件
- 如果你自己删除或替换后,想换回默认的图片符号,就将 `default` 文件夹中对应的图片文件复制到 `InputTipSymbol` 目录下
- 或者你可以直接删除 `InputTipSymbol` 目录然后重启 `InputTip.exe`,它会重新创建
-`托盘菜单``更改配置` => `显示形式` => 第 2 个显示配置,选择 `显示图片符号` 时,会在输入光标附近显示对应的图片符号
- 你也可以将自己喜欢的图片符号,或者自己制作图片符号,放入 `InputTipSymbol` 目录下(图片必须是 `.png` 格式)
- 然后,点击 `托盘菜单` => `更改配置` => `图片符号`,在对应位置选择或输入正确的图片路径
- 如果留空,则不会显示对应状态的图片符号

#### 方块符号

-`托盘菜单``更改配置` => `显示形式` => `是否显示图片符号` 设置为 `1` 时,同时 `是否显示图片符号``是否显示文本符号` 都为 `0` 时,会在输入光标附近显示不同颜色的方块符号
- 默认中文状态为红色,英文状态为蓝色,大写锁定为绿色
-`托盘菜单``更改配置` => `显示形式` => 第 2 个显示配置,选择 `显示方块符号` 时,会在输入光标附近显示不同颜色的方块符号
- 默认中文状态为**红色**,英文状态为**蓝色**,大写锁定为**绿色**
- 方块符号相关的配置: `托盘菜单` => `更改配置` => `方块符号`
- 当其中的方块符号的颜色设置修改为空时,则不会显示该状态的方块符号
- 比如: 你只希望在中文状态下显示方块符号,那么就将 `英文状态时方块符号的颜色``大写锁定时方块符号的颜色` 的值都设置为空

#### 文本符号

-`托盘菜单``更改配置` => `显示形式` => `是否显示文本符号` 设置为 `1` 时,同时 `是否显示方块符号``1``是否显示图片符号``0` 时,会在输入光标附近显示对应的文本符号
-`托盘菜单``更改配置` => `显示形式` => 第 2 个显示配置,选择 `显示文本符号` 时,会在输入光标附近显示对应的文本符号
- 默认中文状态为 ``,英文状态为 ``,大写锁定为 ``
- 文本符号相关的配置: `托盘菜单` => `更改配置` => `文本符号`
- 当其中的文本字符设置修改为空时,则不会显示该状态的文本符号
- 比如: 你只希望在中文状态下显示文本字符,那么就将 `英文状态时显示的文本字符``大写锁定时显示的文本字符` 的值都设置为空

### 自定义鼠标样式

- `InputTip.exe` 启动后,会在同级目录下生成 `InputTipCursor` 目录,其中包括 `CN``EN``Caps``default` 四个文件夹
- **这六个文件夹都不能手动修改**
- `CN``EN``Caps` 用于实时加载中文/英文/大写锁定状态的鼠标样式
- 当设置鼠标样式时,会相对应的复制到 `CN``EN``Caps` 文件夹中
- 如何设置鼠标样式: `托盘菜单` => `更改配置` => `鼠标样式` => `设置中文状态鼠标样式`/`设置英文状态鼠标样式`/`设置大写锁定鼠标样式`
- `default` 用于存放中文/英文/大写锁定状态的 **默认** 鼠标样式
> [!Tip]
>
> - `InputTip.exe` 启动后,会在同级目录下生成 `InputTipCursor` 目录,其中包括 `default` 文件夹
> - `default` 用于存放中文/英文/大写锁定状态的 **默认** 鼠标样式
- 如何设置鼠标样式: `托盘菜单` => `更改配置` => `鼠标样式` => 选择或输入对应文件夹目录路径

1. 你需要在 `InputTipCursor` 目录下创建一个文件夹

- 文件夹中只能包含鼠标样式文件(后缀名为 `.cur``.ani`)
- 必须使用以下表格中的文件名(大小写都可以)
- 每个文件都不是必须的,但建议至少添加 `Arrow``IBeam``Hand`

- 你需要保证 `InputTipCursor` 目录中的 `CN`/`EN`/`Caps`文件夹中包含的鼠标样式文件的数量和类型是一致的
- 比如:如果 `CN` 文件夹有 `IBeam.cur``IBeam.ani` 文件,`EN`/`Caps` 没有。则 `IBeam` 类型的鼠标样式将在中文状态下生效,之后由于 `EN`/`Caps` 缺少对应的样式文件,将不会再随输入法状态的切换而变化

| 文件名(类型) | 说明 |
| :----------: | :-----------------------------: |
| Arrow | 普通选择 |
Expand All @@ -231,9 +240,14 @@

- 详情参考 [关于光标(游标)](https://learn.microsoft.com/windows/win32/menurc/about-cursors)

2. 在底部任务栏右侧找到此软件托盘图标,点击 `更改配置` => `鼠标样式` => `设置中文状态鼠标样式`/`设置英文状态鼠标样式`/`设置大写锁定鼠标样式`
3. 选择创建好的文件夹
- 选择的文件夹中的鼠标样式文件会被复制到对应的 `CN`/`EN`/`Caps` 文件夹中,用于加载
2. 点击 `托盘菜单` => `更改配置` => `鼠标样式` => 选择或输入对应文件夹目录路径

> [!Warning]
>
> - 你应该尽量让三种状态下都有对应的鼠标样式目录路径,且其中包含的鼠标样式文件的数量和类型是一致的
> - 比如:
> - 如果中文状态的目录路径下有 `IBeam.cur``IBeam.ani` 文件,英文状态或大写锁定的目录路径下没有。
> -`IBeam` 类型的鼠标样式将在中文状态下生效,之后由于英文状态或大写锁定的目录路径下缺少对应的样式文件,还会停留在中文状态下的样式
### 兼容情况

Expand Down Expand Up @@ -288,7 +302,7 @@
- [AutoHotkeyScripts - Tebayaki](https://github.com/Tebayaki/AutoHotkeyScripts)
- [language-indicator - yakunins](https://github.com/yakunins/language-indicator)
- [RedDot - Autumn-one](https://github.com/Autumn-one/RedDot)
- `InputTip` 最初 [InputTip v1](./src/v1/README.md) 在鼠标附近显示带文字的方块符号,后来 [InputTip v2](./) 版本默认通过不同颜色的鼠标样式来区分
- [InputTip v1](./src/v1/README.md) 在鼠标附近显示带文字的方块符号,后来 [InputTip v2](./) 版本默认通过不同颜色的鼠标样式来区分
- 之后看到了 [RedDot - Autumn-one](https://github.com/Autumn-one/RedDot)[language-indicator - yakunins](https://github.com/yakunins/language-indicator) 的设计,通过不同颜色加上小符号来判断不同输入法状态
- InputTip 也参照了这样的设计,因为这样的实现很简单,其实就是 [InputTip v1](./src/v1/README.md) 中带文字的方块符号,去掉文字,加上不同的背景颜色

Expand Down
8 changes: 8 additions & 0 deletions src/v2/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@

- 没有特别说明的版本都是修复问题

## 2.27.0

- 鼠标样式不再通过打开文件夹去设置,而是会动态的生成下拉列表进行选择,图片符号同理。
- 这会导致鼠标样式和图片符号会重置为默认,请重新自定义
- 默认的图片符号已经修改,如果想使用新的默认图片符号,请删除 `InputTipSymbol\default` 目录并重启 `InputTip.exe`
- 修改了部分配置项的默认值
- 其他的修复和优化

## 2.26.5

- 修复了在 JetBrains 系列 IDE 中,图片符号不显示的问题
Expand Down
81 changes: 49 additions & 32 deletions src/v2/InputTip.JAB.JetBrains.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -35,30 +35,58 @@ readIni(key, default, section := "Config-v2", path := "InputTip.ini") {
}
}

; 输入法模式
mode := readIni("mode", 2, "InputMethod")
delay := readIni("delay", 50)
; JetBrains 应用列表
JetBrains_list := ":" readIni("JetBrains_list", "") ":"
; 是否改变鼠标样式
changeCursor := readIni("changeCursor", 0)
CN_cursor := readIni("CN_cursor", "InputTipCursor\default\CN")
EN_cursor := readIni("EN_cursor", "InputTipCursor\default\EN")
Caps_cursor := readIni("Caps_cursor", "InputTipCursor\default\Caps")
/*
符号类型
1: 图片符号
2: 方块符号
3: 文本符号
*/
symbolType := readIni("symbolType", 2)
; 在多少毫秒后隐藏符号,0 表示永不隐藏
HideSymbolDelay := readIni("HideSymbolDelay", 0)
CN_color := StrReplace(readIni("CN_color", "red"), '#', '')
EN_color := StrReplace(readIni("EN_color", "blue"), '#', '')
Caps_color := StrReplace(readIni("Caps_color", "green"), '#', '')
transparent := readIni('transparent', 222)
offset_x := readIni('offset_x', 10)
offset_y := readIni('offset_y', -10)
symbol_width := readIni('symbol_width', 7)
symbol_height := readIni('symbol_height', 7)
pic_offset_x := readIni('pic_offset_x', 5)
pic_offset_y := readIni('pic_offset_y', -20)
offset_y := readIni('offset_y', -15)
symbol_width := readIni('symbol_width', 6)
symbol_height := readIni('symbol_height', 6)

CN_pic := readIni("CN_pic", "InputTipSymbol\default\CN.png")
EN_pic := readIni("EN_pic", "InputTipSymbol\default\EN.png")
Caps_pic := readIni("Caps_pic", "InputTipSymbol\default\Caps.png")
pic_offset_x := readIni('pic_offset_x', -22)
pic_offset_y := readIni('pic_offset_y', -40)
pic_symbol_width := readIni('pic_symbol_width', 9)
pic_symbol_height := readIni('pic_symbol_height', 9)
; 隐藏方块符号
; 应用列表: 需要隐藏符号
app_hide_state := ":" readIni('app_hide_state', '') ":"

; 应用列表: 自动切换到中文
app_CN := ":" readIni('app_CN', '') ":"
; 应用列表: 自动切换到英文
app_EN := ":" readIni('app_EN', '') ":"
; 应用列表: 自动切换到大写锁定
app_Caps := ":" readIni('app_Caps', '') ":"

/*
边框样式
1: 样式1
2: 样式2
3: 样式3
4: 自定义
*/
border_type := readIni('border_type', 1)
border_color_CN := StrReplace(readIni('border_color_CN', 'yellow'), '#', '')
border_color_EN := StrReplace(readIni('border_color_EN', 'yellow'), '#', '')
Expand Down Expand Up @@ -126,6 +154,7 @@ switch_Caps(*) {
}
}

; 鼠标样式相关信息
info := [{
; 普通选择
type: "ARROW", value: "32512", origin: "", CN: "", EN: "", Caps: ""
Expand Down Expand Up @@ -181,13 +210,18 @@ info := [{
curMap := {
ARROW: "Arrow", IBEAM: "IBeam", WAIT: "Wait", CROSS: "Crosshair", UPARROW: "UpArrow", SIZENWSE: "SizeNWSE", SIZENESW: "SizeNESW", SIZEWE: "SizeWE", SIZENS: "SizeNS", SIZEALL: "SizeAll", NO: "No", HAND: "Hand", APPSTARTING: "AppStarting", HELP: "Help", PIN: "Pin", PERSON: "Person", PEN: "NWPen"
}
cursor_dir := {
EN: EN_cursor,
CN: CN_cursor,
Caps: Caps_cursor
}

for p in ["EN", "CN", "Caps"] {
Loop Files, "InputTipCursor\" p "\*.*" {
for key in cursor_dir.OwnProps() {
Loop Files cursor_dir.%key% "\*.*" {
n := StrUpper(SubStr(A_LoopFileName, 1, StrLen(A_LoopFileName) - 4))
for v in info {
if (v.type = n) {
v.%p% := A_LoopFileFullPath
v.%key% := A_LoopFileFullPath
}
}
}
Expand All @@ -196,28 +230,9 @@ for v in info {
try {
v.origin := replaceEnvVariables(RegRead("HKEY_CURRENT_USER\Control Panel\Cursors", curMap.%v.type%))
}
if (v.EN = "" || v.CN = "" || v.Caps = "") {
v.EN := v.CN := v.Caps := v.origin
}
}
picList := {
EN: '',
CN: '',
Caps: ''
}
loop files "InputTipSymbol\*" {
if(InStr(A_LoopFileName,"EN.png")){
picList.EN := A_LoopFilePath
}
if(InStr(A_LoopFileName,"CN.png")){
picList.CN := A_LoopFilePath
}
if(InStr(A_LoopFileName,"Caps.png")){
picList.Caps := A_LoopFilePath
}
}

state := 1, old_state := '', old_left := '', old_top := '', left := 0, top := 0
state := 0, old_state := '', old_left := '', old_top := '', left := 0, top := 0
TipGui := Gui("-Caption AlwaysOnTop ToolWindow LastFound")

if (symbolType = 1) {
Expand Down Expand Up @@ -410,7 +425,9 @@ if (changeCursor) {
}
show(type) {
for v in info {
DllCall("SetSystemCursor", "Ptr", DllCall("LoadCursorFromFile", "Str", v.%type%, "Ptr"), "Int", v.value)
if (v.%type%) {
DllCall("SetSystemCursor", "Ptr", DllCall("LoadCursorFromFile", "Str", v.%type%, "Ptr"), "Int", v.value)
}
}
}
} else {
Expand Down Expand Up @@ -515,9 +532,9 @@ TipShow(type) {
switch symbolType {
case 1:
{
if (picList.%type%) {
if (%type "_pic"%) {
try {
TipGuiPic.Value := picList.%type%
TipGuiPic.Value := %type "_pic"%
try {
TipGui.Show("NA x" left + pic_offset_x "y" top + pic_offset_y)
}
Expand Down
Loading

0 comments on commit 993e746

Please sign in to comment.