예제 #1
0
파일: log.cpp 프로젝트: sashavolv2/tasbot
/**
* Callback function for the log window.
**/
BOOL CALLBACK LogCon(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    RECT wrect;	//For remembering window position
    switch(uMsg)
    {
    case WM_INITDIALOG:
        if (MLogPosX==-32000) MLogPosX=0; //Just in case
        if (MLogPosY==-32000) MLogPosY=0;
        SetWindowPos(hwndDlg,0,MLogPosX,MLogPosY,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER);
        break;
    case WM_MOVE:
        if (!IsIconic(hwndDlg)) {
            GetWindowRect(hwndDlg,&wrect);	//Remember X,Y coordinates
            MLogPosX = wrect.left;
            MLogPosY = wrect.top;

#ifdef WIN32
            WindowBoundsCheckNoResize(MLogPosX,MLogPosY,wrect.right);
#endif
        }
        break;
    case WM_COMMAND:
    {
        if (HIWORD(wParam) == BN_CLICKED)
        {
            if (LOWORD(wParam) == CLEAR_LOG)
            {
                ClearLog();
            } else
            {
                DestroyWindow(hwndDlg);
                // Clear the handle
                logwin = 0;
            }
        }
        break;
    }
    }

    return 0;
}
예제 #2
0
BOOL CALLBACK MonitorCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch(uMsg) {
		case WM_MOVE: {
			if (!IsIconic(hwndDlg)) {
			RECT wrect;
			GetWindowRect(hwndDlg,&wrect);
			Monitor_wndx = wrect.left;
			Monitor_wndy = wrect.top;

			#ifdef WIN32
			WindowBoundsCheckNoResize(Monitor_wndx,Monitor_wndy,wrect.right);
			#endif
			}
			break;
		};

		case WM_INITDIALOG:
			if (Monitor_wndx==-32000) Monitor_wndx=0; //Just in case
			if (Monitor_wndy==-32000) Monitor_wndy=0;
			SetWindowPos(hwndDlg,0,Monitor_wndx,Monitor_wndy,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER);
			monitor_open = 1;
//			CenterWindow(hwndDlg);

			InitControls(hwndDlg);
			break;
		case WM_COMMAND:
			switch(HIWORD(wParam))
			{
				case BN_CLICKED:
					if ( GameInfo )
					{
						if ( !handleButtonClick(hwndDlg, LOWORD(wParam)) )
						{
							MessageBox(hwndDlg, "Invalid byte value", "Error", MB_OK | MB_ICONERROR);
						}
					}
					break;
				case CBN_SELCHANGE:
				{
					unsigned int sl = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
					
					EnableWindow(GetDlgItem(hwndDlg, ruleBox_to_ruleInput(LOWORD(wParam))), sl == RULE_EXACT || sl == RULE_EXACT_NOT);

					break;
				}
				case LBN_DBLCLK:
				{
					if (LOWORD(wParam) == RESULTS_BOX)
					{
						char str[259] = { 0 },str2[259] = { 0 };
						SendDlgItemMessage(hwndDlg,RESULTS_BOX,LB_GETTEXT,SendDlgItemMessage(hwndDlg,RESULTS_BOX,LB_GETCURSEL,0,0),(LPARAM)(LPCTSTR)str);
						strcpy(str2,str);
						str2[4] = 0;
						AddMemWatch(str2);
					}
				}
			}
			break;
		case WM_CLOSE:
		case WM_QUIT:
			DeleteObject(hNewFont);
			monitor_open = 0;
			DestroyWindow(hwndDlg);
			break;
	}
	return FALSE;
}
예제 #3
0
BOOL CALLBACK ReplayMetadataDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	RECT wrect;
	switch(uMsg)
	{
	case WM_INITDIALOG:
		{
			if (MetaPosX==-32000) MetaPosX=0; //Just in case
			if (MetaPosY==-32000) MetaPosY=0;
			SetWindowPos(hwndDlg,0,MetaPosX,MetaPosY,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER);

			//setup columns
			HWND hwndList = GetDlgItem(hwndDlg,IDC_LIST1);
			
			ListView_SetExtendedListViewStyleEx(hwndList,
                             LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES ,
                             LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );

			ListView_SetUnicodeFormat(hwndList,TRUE);

			RECT listRect;
			GetClientRect(hwndList,&listRect);
			LVCOLUMN lvc;
			int colidx=0;
			lvc.mask = LVCF_TEXT | LVCF_WIDTH;
			lvc.pszText = "Key";
			lvc.cx = 100;
			ListView_InsertColumn(hwndList, colidx++, &lvc);
			lvc.mask = LVCF_TEXT | LVCF_WIDTH;
			lvc.pszText = "Value";
			lvc.cx = listRect.right - 100;
			ListView_InsertColumn(hwndList, colidx++, &lvc);

						
			//Display the Subtitles into the Metadata as well
			for(uint32 i=0;i<currSubtitles.size();i++)
			{
				std::string& subtitle = currSubtitles[i];
				size_t splitat = subtitle.find_first_of(' ');
				std::wstring key, value;
				//if we can't split it then call it an unnamed key
				if(splitat == std::string::npos)
				{
					value = mbstowcs(subtitle);
				} else
				{
					key = mbstowcs(subtitle.substr(0,splitat));
					value = mbstowcs(subtitle.substr(splitat+1));
				}

				LVITEM lvi;
				lvi.iItem = i;
				lvi.mask = LVIF_TEXT;
				lvi.iSubItem = 0;
				lvi.pszText = (LPSTR)key.c_str();
				SendMessageW(hwndList, LVM_INSERTITEMW, 0, (LPARAM)&lvi);
				
				lvi.iSubItem = 1;
				lvi.pszText = (LPSTR)value.c_str();
				SendMessageW(hwndList, LVM_SETITEMTEXTW, i, (LPARAM)&lvi);
			}
			
			//Display Subtitle Heading
			if (currSubtitles.size() > 0)	//If no subtitles, don't bother with this heading
			{
			std::wstring rHeading = mbstowcs(string("SUBTITLES"));
						
			LVITEM lvSubtitle;
				lvSubtitle.iItem = 0;
				lvSubtitle.mask = LVIF_TEXT;
				lvSubtitle.iSubItem = 0;
				lvSubtitle.pszText = (LPSTR)rHeading.c_str();
				SendMessageW(hwndList, LVM_INSERTITEMW, 0, (LPARAM)&lvSubtitle);
			}
				
			//Display the comments in the movie data
			for(uint32 i=0;i<currComments.size();i++)
			{
				std::wstring& comment = currComments[i];
				size_t splitat = comment.find_first_of(' ');
				std::wstring key, value;
				//if we can't split it then call it an unnamed key
				if(splitat == std::string::npos)
				{
					value = comment;
				} else
				{
					key = comment.substr(0,splitat);
					value = comment.substr(splitat+1);
				}

				LVITEM lvi;
				lvi.iItem = i;
				lvi.mask = LVIF_TEXT;
				lvi.iSubItem = 0;
				lvi.pszText = (LPSTR)key.c_str();
				SendMessageW(hwndList, LVM_INSERTITEMW, 0, (LPARAM)&lvi);
				
				lvi.iSubItem = 1;
				lvi.pszText = (LPSTR)value.c_str();
				SendMessageW(hwndList, LVM_SETITEMTEXTW, i, (LPARAM)&lvi);
			}
			
			
			
		}
		break;
	case WM_MOVE:
		if (!IsIconic(hwndDlg)) {
		GetWindowRect(hwndDlg,&wrect);
		MetaPosX = wrect.left;
		MetaPosY = wrect.top;

		#ifdef WIN32
		WindowBoundsCheckNoResize(MetaPosX,MetaPosY,wrect.right);
		#endif
		}
        break;

	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
			case IDCANCEL:
				EndDialog(hwndDlg, 0);
				return TRUE;
		}
		break;
	}
	return FALSE;
}