From b7f9692e30d644ff980b599c2fe02557b586b632 Mon Sep 17 00:00:00 2001 From: acidburn Date: Wed, 3 Dec 2025 13:24:05 -0500 Subject: [PATCH] p2 added icon and renamed --- notepad_clone.c => ClasicNotepad.c | 27 ++++++++++++++++++++------- Makefile | 15 ++++++++++----- app.ico | Bin 0 -> 7386 bytes 3 files changed, 30 insertions(+), 12 deletions(-) rename notepad_clone.c => ClasicNotepad.c (95%) create mode 100644 app.ico diff --git a/notepad_clone.c b/ClasicNotepad.c similarity index 95% rename from notepad_clone.c rename to ClasicNotepad.c index 8544479..2196cdf 100644 --- a/notepad_clone.c +++ b/ClasicNotepad.c @@ -11,6 +11,8 @@ int swprintf_s(wchar_t *buffer, size_t sizeOfBuffer, const wchar_t *format, ...); #endif +#define IDI_APP 101 + #define IDM_FILE_NEW 1001 #define IDM_FILE_OPEN 1002 #define IDM_FILE_SAVE 1003 @@ -74,7 +76,7 @@ static void UpdateTitle(HWND hwnd) } WCHAR title[512]; - swprintf_s(title, ARRAYSIZE(title), L"%s - Notepad Clone", name); + swprintf_s(title, ARRAYSIZE(title), L"%s - ClasicNotepad", name); SetWindowTextW(hwnd, title); } @@ -156,7 +158,7 @@ static HMENU BuildMenu(void) AppendMenuW(hFormat, MF_STRING, IDM_FORMAT_FONT, L"&Font..."); HMENU hHelp = CreatePopupMenu(); - AppendMenuW(hHelp, MF_STRING, IDM_HELP_ABOUT, L"&About Notepad Clone"); + AppendMenuW(hHelp, MF_STRING, IDM_HELP_ABOUT, L"&About ClasicNotepad"); AppendMenuW(hMenu, MF_POPUP, (UINT_PTR)hFile, L"&File"); AppendMenuW(hMenu, MF_POPUP, (UINT_PTR)hEdit, L"&Edit"); @@ -426,7 +428,7 @@ static void ChooseFontAndApply(HWND hwnd) static void ShowAbout(HWND hwnd) { - MessageBoxW(hwnd, L"Notepad Clone\nBuilt with Win32 API in C.", L"About", MB_OK | MB_ICONINFORMATION); + MessageBoxW(hwnd, L"ClasicNotepad\nBuilt with Win32 API in C.", L"About", MB_OK | MB_ICONINFORMATION); } static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) @@ -536,11 +538,22 @@ int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmd wc.cbSize = sizeof(wc); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; - wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); + HICON hIconLarge = LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCEW(IDI_APP)); + HICON hIconSmall = LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCEW(IDI_APP)); + if (!hIconLarge) + { + hIconLarge = LoadIcon(NULL, IDI_APPLICATION); + } + if (!hIconSmall) + { + hIconSmall = LoadIcon(NULL, IDI_APPLICATION); + } + + wc.hIcon = hIconLarge; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wc.lpszClassName = L"NotepadCloneClass"; - wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); + wc.lpszClassName = L"ClasicNotepadClass"; + wc.hIconSm = hIconSmall; if (!RegisterClassExW(&wc)) { @@ -548,7 +561,7 @@ int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmd return -1; } - HWND hwnd = CreateWindowExW(0, wc.lpszClassName, L"Notepad Clone", WS_OVERLAPPEDWINDOW, + HWND hwnd = CreateWindowExW(0, wc.lpszClassName, L"ClasicNotepad", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL); if (!hwnd) diff --git a/Makefile b/Makefile index 564b110..95cf6b3 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,18 @@ CC = gcc -TARGET = notepad_clone.exe -SRC = notepad_clone.c +WINDRES = windres +TARGET = ClasicNotepad.exe +SRC = ClasicNotepad.c +RES = ClasicNotepad.res CFLAGS = -Wall -Wextra -std=c11 -mwindows LDLIBS = -luser32 -lgdi32 -lcomdlg32 -$(TARGET): $(SRC) - $(CC) $(CFLAGS) -o $@ $< $(LDLIBS) +$(TARGET): $(SRC) $(RES) + $(CC) $(CFLAGS) -o $@ $(SRC) $(RES) $(LDLIBS) + +$(RES): ClasicNotepad.rc app.ico + $(WINDRES) -O coff ClasicNotepad.rc $(RES) .PHONY: clean clean: - del /f /q $(TARGET) 2>NUL || true + del /f /q $(TARGET) $(RES) 2>NUL || true diff --git a/app.ico b/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..79ba57b5cbd4c216207fabe8b851b386e8d26bd9 GIT binary patch literal 7386 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