/** * Catch the right click press */ void KBinaryClock::mousePressEvent(QMouseEvent *event) { switch (event->button()) { case QMouseEvent::RightButton: QToolTip::remove(this); openContextMenu(); break; case QMouseEvent::LeftButton: toggleCalendar(); QToolTip::remove(this); break; case QMouseEvent::MidButton: QToolTip::remove(this); break; default: break; } }
static INT_PTR CALLBACK infoDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: #ifdef PLAYING_INFO CheckDlgButton(hDlg, IDC_PLAYING, playing_info ? BST_CHECKED : BST_UNCHECKED); #endif SendDlgItemMessage(hDlg, IDC_AUTHOR, EM_LIMITTEXT, ASAPInfo_MAX_TEXT_LENGTH, 0); SendDlgItemMessage(hDlg, IDC_NAME, EM_LIMITTEXT, ASAPInfo_MAX_TEXT_LENGTH, 0); SendDlgItemMessage(hDlg, IDC_DATE, EM_LIMITTEXT, ASAPInfo_MAX_TEXT_LENGTH, 0); SendDlgItemMessage(hDlg, IDC_TIME, EM_LIMITTEXT, ASAPWriter_MAX_DURATION_LENGTH, 0); return TRUE; case WM_COMMAND: switch (wParam) { #ifdef PLAYING_INFO case MAKEWPARAM(IDC_PLAYING, BN_CLICKED): playing_info = (IsDlgButtonChecked(hDlg, IDC_PLAYING) == BST_CHECKED); if (playing_info && playing_filename[0] != '\0') updateInfoDialog(playing_filename, playing_song); onUpdatePlayingInfo(); return TRUE; #endif case MAKEWPARAM(IDC_AUTHOR, EN_CHANGE): updateInfoString(hDlg, IDC_AUTHOR, INVALID_FIELD_AUTHOR, ASAPInfo_SetAuthor); return TRUE; case MAKEWPARAM(IDC_NAME, EN_CHANGE): updateInfoString(hDlg, IDC_NAME, INVALID_FIELD_NAME, ASAPInfo_SetTitle); return TRUE; case MAKEWPARAM(IDC_DATE, EN_CHANGE): updateInfoString(hDlg, IDC_DATE, INVALID_FIELD_DATE, ASAPInfo_SetDate); return TRUE; case MAKEWPARAM(IDC_PICKDATE, BN_CLICKED): toggleCalendar(hDlg); return TRUE; case MAKEWPARAM(IDC_TIME, EN_CHANGE): { char str[ASAPWriter_MAX_DURATION_LENGTH + 1]; int duration; SendDlgItemMessage(hDlg, IDC_TIME, WM_GETTEXT, ASAPWriter_MAX_DURATION_LENGTH + 1, (LPARAM) str); duration = ASAPInfo_ParseDuration(str); ASAPInfo_SetDuration(edited_info, edited_song, duration); EnableWindow(GetDlgItem(infoDialog, IDC_LOOP), str[0] != '\0'); updateSaveButtons(INVALID_FIELD_TIME | INVALID_FIELD_TIME_SHOW, duration >=0 || str[0] == '\0'); } return TRUE; case MAKEWPARAM(IDC_TIME, EN_KILLFOCUS): if ((invalid_fields & INVALID_FIELD_TIME_SHOW) != 0) { invalid_fields &= ~INVALID_FIELD_TIME_SHOW; showEditTip(IDC_TIME, _T("Invalid format"), _T("Please type MM:SS.mmm")); } return TRUE; case MAKEWPARAM(IDC_LOOP, BN_CLICKED): ASAPInfo_SetLoop(edited_info, edited_song, IsDlgButtonChecked(hDlg, IDC_LOOP) == BST_CHECKED); updateSaveButtons(0, TRUE); return TRUE; case MAKEWPARAM(IDC_SONGNO, CBN_SELCHANGE): setEditedSong(SendDlgItemMessage(hDlg, IDC_SONGNO, CB_GETCURSEL, 0, 0)); updateSaveButtons(INVALID_FIELD_TIME | INVALID_FIELD_TIME_SHOW, TRUE); return TRUE; case MAKEWPARAM(IDC_SAVE, BN_CLICKED): saveInfo(); return TRUE; case MAKEWPARAM(IDC_SAVEAS, BN_CLICKED): saveInfoAs(); return TRUE; case MAKEWPARAM(IDCANCEL, BN_CLICKED): if (invalid_fields == 0 && infoChanged()) { switch (MessageBox(hDlg, _T("Save changes?"), _T("ASAP"), MB_YESNOCANCEL | MB_ICONQUESTION)) { case IDYES: if (!saveInfoAs()) return TRUE; break; case IDCANCEL: return TRUE; default: break; } } closeInfoDialog(); return TRUE; } break; case WM_NOTIFY: { LPNMSELCHANGE psc = (LPNMSELCHANGE) lParam; if (psc->nmhdr.hwndFrom == monthcal && psc->nmhdr.code == MCN_SELECT) { _TCHAR str[32]; ShowWindow(monthcal, SW_HIDE); _stprintf(str, _T("%02d/%02d/%d"), psc->stSelStart.wDay, psc->stSelStart.wMonth, psc->stSelStart.wYear); SetDlgItemText(hDlg, IDC_DATE, str); ASAPInfo_SetDate(edited_info, str); updateSaveButtons(INVALID_FIELD_DATE, TRUE); } } break; case WM_DESTROY: if (monthcal != NULL) { DestroyWindow(monthcal); monthcal = NULL; } return 0; default: break; } return FALSE; }