third-party libs

This commit is contained in:
Benjamin Palko 2026-10-14 15:54:34 -04:00
parent f836927d3a
commit b154ee9266
3667 changed files with 854591 additions and 0 deletions

View file

@ -0,0 +1,187 @@
/*
* This is a part of the BugTrap package.
* Copyright (c) 2005-2009 IntelleSoft.
* All rights reserved.
*
* Description: Wait dialog.
* Author: Maksim Pyatkovskiy.
*
* This source code is only intended as a supplement to the
* BugTrap package reference and related electronic documentation
* provided with the product. See these sources for detailed
* information regarding the BugTrap package.
*/
#include "StdAfx.h"
#include "resource.h"
#include "WaitDlg.h"
#include "BugTrapUtils.h"
#include "ResManager.h"
#include "Globals.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
/**
* @addtogroup BugTrapUI BugTrap Graphical User Interface
* @{
*/
/// Flag indicating window de-initialization.
BOOL CWaitDialog::m_bDone;
/// Progress control.
CAnimProgressBar CWaitDialog::m_pbAnim;
void CWaitDialog::InitVars(void)
{
m_hThread = NULL;
m_hwndParent = NULL;
m_hwndWait = NULL;
m_bDone = FALSE;
}
/**
* @param hwnd - window handle.
* @param hwndFocus - system-defined focus window.
* @param lParam - user-defined parameter.
* @return true to setup focus to system-defined control.
*/
BOOL CWaitDialog::WaitDlg_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
lParam; hwndFocus;
HWND hwndCtl = GetDlgItem(hwnd, IDC_PROGRESS_BAR);
m_pbAnim.Attach(hwndCtl);
m_pbAnim.SetNumChunks(3);
m_pbAnim.Play();
return FALSE;
}
/**
* @param hwnd - window handle.
* @param id - control ID.
* @param hwndCtl - control handle.
* @param codeNotify - notification code.
*/
void CWaitDialog::WaitDlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
codeNotify; hwndCtl;
switch (id)
{
case IDOK:
case IDCANCEL:
if (m_bDone)
{
// User may press Alt-F4 and close
// this window before we are ready.
DestroyWindow(hwnd);
}
break;
}
}
/**
* @param hwnd - window handle.
*/
void CWaitDialog::WaitDlg_OnDestroy(HWND hwnd)
{
hwnd;
m_pbAnim.Detach();
PostQuitMessage(0);
}
/**
* @param hwnd - window handle.
* @param x - X coordinate.
* @param y - Y coordinate.
*/
UINT CWaitDialog::WaitDlg_OnNCHitTest(HWND hwnd, int x, int y)
{
hwnd; x; y;
SetWindowLongPtr(hwnd, DWLP_MSGRESULT, HTCAPTION);
return TRUE;
}
/**
* @param hwndDlg - window handle.
* @param uMsg - message identifier.
* @param wParam - 1st message parameter.
* @param lParam - 2nd message parameter.
* @return message result.
*/
INT_PTR CALLBACK CWaitDialog::WaitDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
HANDLE_MSG(hwndDlg, WM_INITDIALOG, WaitDlg_OnInitDialog);
HANDLE_MSG(hwndDlg, WM_COMMAND, WaitDlg_OnCommand);
HANDLE_MSG(hwndDlg, WM_DESTROY, WaitDlg_OnDestroy);
HANDLE_MSG(hwndDlg, WM_NCHITTEST, WaitDlg_OnNCHitTest);
default: return FALSE;
}
}
/**
* @param hwndParent - parent window handle.
*/
CWaitDialog::CWaitDialog(HWND hwndParent)
{
InitVars();
BeginWait(hwndParent);
}
/**
* @param pParam - thread parameter (pointer to CWaitDialog).
* @return error code.
*/
UINT CALLBACK CWaitDialog::WaitThreadProc(PVOID pParam)
{
CWaitDialog* _this = (CWaitDialog*)pParam;
_ASSERT(_this != NULL);
HCURSOR hOldCursor = SetCursor(g_pResManager->m_hWaitCursor);
_this->m_hwndWait = CreateDialog(g_hInstance, MAKEINTRESOURCE(IDD_WAIT_DLG), _this->m_hwndParent, WaitDlgProc);
if (_this->m_hwndWait != NULL)
{
CenterWindow(_this->m_hwndWait, _this->m_hwndParent);
ShowWindow(_this->m_hwndWait, SW_SHOW);
UpdateWindow(_this->m_hwndWait);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
DispatchMessage(&msg);
}
SetCursor(hOldCursor);
return 0;
}
/**
* @param hwndParent - parent window handle.
* @return true if UI thread was successfully launched.
*/
BOOL CWaitDialog::BeginWait(HWND hwndParent)
{
_ASSERT(m_hThread == NULL);
m_hwndParent = hwndParent;
m_hThread = (HANDLE)_beginthreadex(NULL, 0, WaitThreadProc, this, 0, NULL);
return (m_hThread != NULL);
}
void CWaitDialog::EndWait(void)
{
if (m_hThread != NULL)
{
m_bDone = TRUE;
PostMessage(m_hwndWait, WM_CLOSE, 0, 0);
WaitForSingleObject(m_hThread, INFINITE);
CloseHandle(m_hThread);
}
InitVars();
}
/** @} */