0% found this document useful (0 votes)
34 views2 pages

Task Manager - CPP

The document is a C++ implementation of a task manager GUI using the Windows API. It includes functions to create a task list window, add tasks, and display a to-do list, with the ability to load tasks from a database. The main event loop processes user interactions and updates the task list accordingly.

Uploaded by

sabashafqat771
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views2 pages

Task Manager - CPP

The document is a C++ implementation of a task manager GUI using the Windows API. It includes functions to create a task list window, add tasks, and display a to-do list, with the ability to load tasks from a database. The main event loop processes user interactions and updates the task list accordingly.

Uploaded by

sabashafqat771
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

#include "task_manager.

h"
#include <windows.h>
#include <string>
#include <vector>
#include <tuple>
#include <iostream>
#include "database.h"

// Global window handles


HWND hTaskList, hAddBtn, hTodoBtn;

// Function declarations
void ShowAddTaskWindow(HINSTANCE hInstance);
void ShowTodoListWindow(HINSTANCE hInstance);

LRESULT CALLBACK TaskListProc(HWND hwnd, UINT msg, WPARAM wParam,


LPARAM lParam) {
switch (msg) {
case WM_CREATE:
// Create the ListBox, buttons for adding tasks and viewing to-do list
hTaskList = CreateWindowW(L"LISTBOX", nullptr, WS_CHILD | WS_VISIBLE |
WS_VSCROLL | LBS_NOTIFY,
20, 20, 400, 200, hwnd, nullptr, nullptr, nullptr);

hAddBtn = CreateWindowW(L"BUTTON", L"Add Task", WS_CHILD | WS_VISIBLE |


BS_PUSHBUTTON,
440, 20, 100, 30, hwnd, (HMENU)1, nullptr, nullptr);

hTodoBtn = CreateWindowW(L"BUTTON", L"To-Do List", WS_CHILD |


WS_VISIBLE | BS_PUSHBUTTON,
440, 60, 100, 30, hwnd, (HMENU)2, nullptr, nullptr);

ReloadTaskList(hTaskList);
break;

case WM_COMMAND:
if (LOWORD(wParam) == 1) {
ShowAddTaskWindow(GetModuleHandleW(nullptr)); // Open add_task.cpp
window
}
else if (LOWORD(wParam) == 2) {
ShowTodoListWindow(GetModuleHandleW(nullptr)); // Open to-do list
window
}
break;

case WM_DESTROY:
PostQuitMessage(0);
break;

default:
return DefWindowProcW(hwnd, msg, wParam, lParam);
}
return 0;
}

void ReloadTaskList(HWND hListBox) {


// Clear the ListBox
SendMessageW(hListBox, LB_RESETCONTENT, 0, 0);
// Load all tasks from the database
auto tasks = db_LoadAllTasks();

// Display each task


for (const auto& task : tasks) {
std::wstring displayText;

// Unpack the tuple


int id;
std::string name, deadline, timeRequired;

std::tie(id, name, deadline, timeRequired) = task;

// Format: TaskName [Deadline] - TimeRequired ( if completed)


displayText = std::wstring([Link](), [Link]()) +
L" [" + std::wstring([Link](), [Link]()) +
L"] - " + std::wstring([Link](), [Link]());

// Add to ListBox
SendMessageW(hListBox, LB_ADDSTRING, 0, (LPARAM)displayText.c_str());
}
}

int ShowTaskListWindow(HINSTANCE hInstance, int nCmdShow) {


WNDCLASSW wc = { 0 };
[Link] = TaskListProc;
[Link] = hInstance;
[Link] = L"TaskListWindow";

RegisterClassW(&wc);

HWND hwnd = CreateWindowW(


L"TaskListWindow",
L"Task Scheduler - Task List",
WS_OVERLAPPEDWINDOW,
100, 100, 600, 300,
nullptr, nullptr, hInstance, nullptr
);

ShowWindow(hwnd, nCmdShow);

MSG msg;
while (GetMessageW(&msg, nullptr, 0, 0)) {
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
return (int)[Link];
}

You might also like