A modern :) , native Windows Todo application built with C and Win32 API. This project demonstrates advanced Windows GUI programming and system integration capabilities.
- 📝 Create, edit, and delete todo items
- ✅ Mark tasks as complete
- 💾 Persistent storage in AppData
- 🔔 System tray integration (minimize to tray)
- 🌙 Native Windows look and feel
- 🚀 Auto-start with Windows option
- 🔍 Real-time search functionality with case-insensitive matching
- Written in pure C
- Uses Win32 API for GUI
- System tray integration
- Lightweight native executable
- Modern Windows visual styles with manifest
Check out our debugging guide for instructions on how to debug this application using Visual Studio, VS Code, or other tools.
The application stores todos in a binary file:
- Location:
%APPDATA%\TodoApp\todos.dat
- Format: Binary file containing the entire todo list
- Capacity: Maximum 100 todos
- Windows OS
- MinGW-w64 (GCC compiler)
- Windows SDK (included with MinGW)
-
Install MinGW-w64:
- Download from MinGW-w64 website
- Or use MSYS2
- Add MinGW's bin directory to your system PATH
-
Clone the repository:
git clone https://github.com/Efeckc17/simple-todo-c.git cd simple-todo-c
-
Build the project:
.\build.bat
- Run
bin/todo.exe
- Use the interface to:
- Add new todos with the "Add" button
- Edit existing todos by selecting and clicking "Edit"
- Delete todos with the "Delete" button
- Mark todos as complete with the "Complete" button
- Set priority levels for each todo
.
├── src/
│ ├── app.manifest
│ ├── main.c # Application entry point
│ ├── todo.c # Todo management logic
│ ├── todo.h # Todo data structures and declarations
│ ├── gui.c # GUI implementation
│ └── utils/
│ ├── search.c # Search functionality implementation
│ └── search.h # Search function declarations
├── bin/ # Compiled executable
├── build.bat # Build script
└── README.md # This file
The project uses the following key components:
- Win32 API: For window management and GUI
- Common Controls: For modern UI elements
- UXTheme: For Windows visual styles
- File I/O: For data persistence
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Toxi360 - @Efeckc17
Project Link: https://github.com/Efeckc17/simple-todo-c