Skip to content

Commit 58b65a2

Browse files
Update documentation for Circle tool feature
Co-authored-by: RuntimeRascal <2422222+RuntimeRascal@users.noreply.github.com>
1 parent ed0959f commit 58b65a2

File tree

3 files changed

+34
-15
lines changed

3 files changed

+34
-15
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88

9+
## v1.0.9 (Unreleased)
10+
11+
### Added
12+
- **Circle/Ellipse Tool** - Draw circles and ellipses by defining a bounding box
13+
- Press `C` to activate Circle tool
14+
- Uses bounding box approach: first click sets one corner, second click defines the opposite corner
15+
- **Hold Shift** while drawing to create perfect circles (equal width and height)
16+
- Live preview updates as you move the mouse
17+
- Respects current color and thickness settings
18+
- Custom circle cursor with corner markers
19+
- Supports right-click color cycling and mouse wheel thickness adjustment
20+
- Works seamlessly with Eraser tool
21+
- Consistent with Rectangle tool behavior for intuitive shape creation
22+
923
## v1.0.8
1024

1125
### Added

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
## ✨ Features
2424

2525
### 🎨 **Drawing Tools**
26-
- **Multiple Drawing Tools** - Switch between Pen (freehand), Line (straight lines), Rectangle (boxes), and Eraser tools with keyboard shortcuts
26+
- **Multiple Drawing Tools** - Switch between Pen (freehand), Line (straight lines), Rectangle (boxes), Circle/Ellipse, and Eraser tools with keyboard shortcuts
27+
- **Perfect Shapes** - Hold Shift while using Circle tool to draw perfect circles
2728
- **Customizable Color Palette** - Create your own color collection and cycle through them while drawing
2829
- **Variable Brush Thickness** - Adjust brush size from 1-100px with configurable min/max ranges
2930
- **Smooth Drawing** - High-performance rendering for fluid strokes

docs/KEY_LEGEND.md

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ This document serves as the **single source of truth** for all keyboard and mous
2727
| `L` | `0x4C` (76) | Select Line Tool (straight lines) | **IN USE** | `VK_L` in `GlobalKeyboardHook.cs` |
2828
| `E` | `0x45` (69) | Select Eraser Tool | **IN USE** | `VK_E` in `GlobalKeyboardHook.cs` |
2929
| `U` | `0x55` (85) | Select Rectangle Tool | **IN USE** | `VK_U` in `GlobalKeyboardHook.cs` |
30+
| `C` | `0x43` (67) | Select Circle Tool | **IN USE** | `VK_C` in `GlobalKeyboardHook.cs` |
3031

3132
### Drawing Mode - Actions
3233

@@ -84,16 +85,16 @@ These keys are **reserved** for future functionality or should be avoided to pre
8485

8586
This table shows which inputs are active in different application states:
8687

87-
| Input | System Tray | Settings Window | Drawing Mode Inactive | Drawing Mode Active |
88-
| ---------------------- | -------------- | ---------------- | --------------------- | ------------------- |
89-
| Activation Hotkey | ✓ Triggers | ✗ Disabled | ✓ Triggers | ✓ Toggles Off |
90-
| `P`, `L`, `E`, `U` keys |||| ✓ Tool Selection |
91-
| `R` key |||| ✓ Clear Canvas |
92-
| `ESC` key || ✓ Closes Window || ✓ Exit Drawing |
93-
| `F1` key |||| ✓ Show Help |
94-
| Left Click || ✓ UI Interaction || ✓ Draw |
95-
| Right Click | ✓ Context Menu | ✓ UI Interaction || ✓ Cycle Color |
96-
| Mouse Wheel || ✓ Scroll || ✓ Adjust Thickness |
88+
| Input | System Tray | Settings Window | Drawing Mode Inactive | Drawing Mode Active |
89+
| --------------------------- | -------------- | ---------------- | --------------------- | ------------------- |
90+
| Activation Hotkey | ✓ Triggers | ✗ Disabled | ✓ Triggers | ✓ Toggles Off |
91+
| `P`, `L`, `E`, `U`, `C` keys |||| ✓ Tool Selection |
92+
| `R` key |||| ✓ Clear Canvas |
93+
| `ESC` key || ✓ Closes Window || ✓ Exit Drawing |
94+
| `F1` key |||| ✓ Show Help |
95+
| Left Click || ✓ UI Interaction || ✓ Draw |
96+
| Right Click | ✓ Context Menu | ✓ UI Interaction || ✓ Cycle Color |
97+
| Mouse Wheel || ✓ Scroll || ✓ Adjust Thickness |
9798

9899
---
99100

@@ -113,6 +114,7 @@ private const int VK_L = 0x4C; // 76 - 'L' key for line tool
113114
private const int VK_P = 0x50; // 80 - 'P' key for pen tool
114115
private const int VK_E = 0x45; // 69 - 'E' key for eraser tool
115116
private const int VK_U = 0x55; // 85 - 'U' key for rectangle tool
117+
private const int VK_C = 0x43; // 67 - 'C' key for circle tool
116118
private const int VK_F1 = 0x70; // 112 - 'F1' key for help
117119
```
118120

@@ -127,6 +129,7 @@ private const int VK_F1 = 0x70; // 112 - 'F1' key for help
127129
- `GlobalKeyboardHook.LineToolPressed` - L key
128130
- `GlobalKeyboardHook.EraserToolPressed` - E key
129131
- `GlobalKeyboardHook.RectangleToolPressed` - U key
132+
- `GlobalKeyboardHook.CircleToolPressed` - C key
130133
- `GlobalKeyboardHook.HelpPressed` - F1 key
131134

132135
**Mouse Events:**
@@ -157,13 +160,13 @@ Before adding a new keyboard shortcut:
157160

158161
### Potential Features Requiring New Keys
159162

160-
| Feature | Suggested Key | Priority | Status |
161-
| ------------------- | ----------------------- | -------- | --------------- |
163+
| Feature | Suggested Key | Priority | Status |
164+
| ------------------- | ----------------------- | -------- | ------------- |
162165
| Undo Last Stroke | `Ctrl+Z` or `Backspace` | High | Not Implemented |
163166
| Redo Stroke | `Ctrl+Y` | High | Not Implemented |
164167
| Save Drawing | `Ctrl+S` | Medium | Not Implemented |
165168
| Load Drawing | `Ctrl+O` | Medium | Not Implemented |
166-
| Circle/Ellipse Tool | `C` | Low | Not Implemented |
169+
| Circle/Ellipse Tool | `C` | Low | **Implemented** |
167170
| Text Tool | `T` | Low | Not Implemented |
168171
| Color Picker | Middle Click or `I` | Low | Not Implemented |
169172
| Toggle Grid/Snap | `G` | Low | Not Implemented |
@@ -184,6 +187,7 @@ Reserve these keys for high-priority future features:
184187

185188
| Version | Date | Changes |
186189
| ------- | ---- | ------------------------------------------------------------- |
190+
| v1.0.9 | 2024 | Added Circle tool (`C` key) with Shift for perfect circles |
187191
| v1.0.7 | 2024 | Added Rectangle tool (`U` key) |
188192
| v1.0.6 | 2024 | Initial key legend. Added Eraser tool (`E` key) |
189193
| v1.0.5 | 2024 | Added Line tool (`L` key), Pen tool (`P` key), F1 help |
@@ -210,5 +214,5 @@ Reserve these keys for high-priority future features:
210214

211215
---
212216

213-
*Last Updated: v1.0.7*
217+
*Last Updated: v1.0.9*
214218
*Maintained by: GhostDraw Development Team*

0 commit comments

Comments
 (0)