HRESULT CALLBACK TaskDialogBootstrapCallback( _In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam, _In_ LONG_PTR dwRefData ) { PPH_UPDATER_CONTEXT context = (PPH_UPDATER_CONTEXT)dwRefData; switch (uMsg) { case TDN_CREATED: { UpdateDialogHandle = context->DialogHandle = hwndDlg; // Center the update window on PH if it's visible else we center on the desktop. PhCenterWindow(hwndDlg, (IsWindowVisible(PhMainWndHandle) && !IsMinimized(PhMainWndHandle)) ? PhMainWndHandle : NULL); // Create the Taskdialog icons TaskDialogCreateIcons(context); // Subclass the Taskdialog SetWindowSubclass(hwndDlg, TaskDialogSubclassProc, 0, (ULONG_PTR)context); if (context->StartupCheck) ShowAvailableDialog(context); else ShowCheckForUpdatesDialog(context); } break; } return S_OK; }
void IngameWindow::MouseLeftUp(const MouseCoords& mc) { // Bewegung stoppen isMoving = false; // beiden Buttons oben links und rechts prfen const Rect rec[2] = { GetLeftButtonRect(), GetRightButtonRect() }; for(unsigned i = 0; i < 2; ++i) { button_state[i] = BUTTON_UP; if(Coll(mc.x, mc.y, rec[i])) { if(i == 0 && (!IsModal() || closeOnRightClick_)) Close(); else if(i==1 && !IsModal()) { SetMinimized(!IsMinimized()); LOADER.GetSoundN("sound", 113)->Play(255, false); } } } }
void CCameraDockWin::OnUpdateViewCameraToolbar( CCmdUI* pCmdUI ) { // menu is checked if toolbar is visible pCmdUI->SetCheck( IsVisible() || IsMinimized() ); // always enabled pCmdUI->Enable(); }
status_t SeqPrefWin::GetConfiguration(BMessage* config) { ArpASSERT( config ); config->what = PREFERENCE_WINDOW_SETTING_MSG; BScreen screen(this); BRect f = Frame(), sf = screen.Frame(); bool minimized = 0; if( IsMinimized() ) minimized = 1; status_t err; if( (err = config->AddBool( "f_minimized", IsMinimized() )) != B_OK ) return err; if( (err = config->AddFloat( "f_left", f.left / sf.Width() )) != B_OK ) return err; if( (err = config->AddFloat( "f_top", f.top / sf.Height() )) != B_OK ) return err; if( (err = config->AddFloat( "f_right", f.right / sf.Width() )) != B_OK ) return err; if( (err = config->AddFloat( "f_bottom", f.bottom / sf.Height() )) != B_OK ) return err; return B_OK; }
bool ApplicationWindow::QuitRequested() { if (fMinimizeOnClose) { if (!IsMinimized()) Minimize(true); } else { if (!IsHidden()) Hide(); } return false; }
status_t BSCWindow::_CaptureFinished() { printf("finished\n"); fCapturing = false; if (IsMinimized()) Minimize(false); fStartStopButton->SetEnabled(false); fStartStopButton->SetLabel("Start Recording"); return B_OK; }
void CCameraDockWin::OnViewCameraToolbar() { if ( IsVisible() || IsMinimized() ) { // hides our window Close(); } else { // GuiControlBar::Show redocks the controlbar if it // was docked or minimized before hiding. Show(); } }
void clGUIWindow::Event_Timer( iGUIResponder* Source, float DeltaTime ) { if ( FRequestingClose ) { if ( IsMinimized() ) { SetRegionState( REGION_SHRINKING ); } if ( IsMaximized() ) { Minimize(); } } clGUIDialogWindow::Event_Timer( Source, DeltaTime ); }
status_t BSCWindow::_CaptureFinished() { fCapturing = false; fStartStopButton->SetEnabled(false); fStartStopButton->SetLabel("Start Recording"); SendNotices(kMsgGUIStopCapture); if (IsHidden()) Show(); if (IsMinimized()) Minimize(false); return B_OK; }
void Direct3D9Video::UpdateSize () { // Don't attempt to adjust for a minimised state if (IsMinimized(g_hwnd)) return; // Determine screen location of canvas top-left POINT ptOffset = { 0,0 }; ClientToScreen(hwndCanvas, &ptOffset); // Convert canvas rect to screen coordinates RECT rNew; GetClientRect(hwndCanvas, &rNew); OffsetRect(&rNew, ptOffset.x, ptOffset.y); // If it's changed since last time, reinitialise the video if (!EqualRect(&rNew, &m_rTarget)) { m_rTarget = rNew; Reset(); } }
//------------------------------------------------------------------- int CALLBACK EnumWindowsProc(HWND hWnd, LPARAM /*lParam*/) { COPYDATASTRUCT cds; char *lpCmdLine; if(GetProp(hWnd, PROP_NAME)){ // コマンドラインを既存のウィンドウに送信 // Send command-line to lpCmdLine = GetCommandLine(); cds.dwData = 0; cds.lpData = (void *)lpCmdLine; cds.cbData = lstrlen(lpCmdLine) + 1; SendMessage(hWnd, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cds); // ウィンドウをアクティブにしてフォーカスを移す // Activate window and set focus to window. if(IsMinimized(hWnd)) OpenIcon(hWnd); SetForegroundWindow(hWnd); return FALSE; } return TRUE; }
LRESULT CALLBACK TaskDialogSubclassProc( _In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam, _In_ UINT_PTR uIdSubclass, _In_ ULONG_PTR dwRefData ) { PPH_SETUP_CONTEXT context = (PPH_SETUP_CONTEXT)dwRefData; switch (uMsg) { case WM_TASKDIALOGINIT: { if (IsMinimized(hwndDlg)) ShowWindow(hwndDlg, SW_RESTORE); else ShowWindow(hwndDlg, SW_SHOW); SetForegroundWindow(hwndDlg); } break; case WM_NCDESTROY: { RemoveWindowSubclass(hwndDlg, TaskDialogSubclassProc, uIdSubclass); } break; case WM_APP + IDD_ERROR: { SetupShowUpdatingErrorDialog(context); } break; } return DefSubclassProc(hwndDlg, uMsg, wParam, lParam); }
/** * Handles window events that come from Windows. */ LRESULT MainWindow::HandleMessage(UINT message, WPARAM wParam, LPARAM lParam) { HWND hWnd = WindowHandle(); int wmId = 0, wmEvent = 0; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: ShowAboutBox(); break; case IDM_EXIT: this->Exit(); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_ACTIVATE: SetPaused(LOWORD(wParam) == WA_INACTIVE); break; case WM_SIZE: if (wParam == SIZE_MINIMIZED) { SetPaused(true); SetMinimized(true); } else if (wParam == SIZE_MAXIMIZED) { // Unpause if we are coming out of a minimize if (IsMinimized()) { SetPaused(false); SetMinimized(false); } SetWindowResized(Size{ LOWORD(lParam), HIWORD(lParam) }); } else { // Unpause if we are coming out of a minimize if (IsMinimized()) { SetPaused(false); SetMinimized(false); } SetWindowResized(Size{ LOWORD(lParam), HIWORD(lParam) }); } break; case WM_POWERBROADCAST: if (wParam == PBT_APMQUERYSUSPEND) { // The application is about to be suspended. We should prepare for // this event by saving any data and then pausing the game loop // until we come out of suspension } else if (wParam == PBT_APMRESUMESUSPEND) { // The application is being resumed from suspension. We should // reload any saved data and unpause the game loop } case WM_ENTERMENULOOP: // Pause while user is in menu SetPaused(true); break; case WM_EXITMENULOOP: // Unpause after user has exited menu SetPaused(false); break; case WM_ENTERSIZEMOVE: SetIsWindowResizing(true); SetPaused(true); break; case WM_EXITSIZEMOVE: SetIsWindowResizing(false); SetPaused(false); break; case WM_CLOSE: PostQuitMessage(0); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
void EBePrivateWin::DispatchMessage(BMessage *bMsg, BHandler *handler) { bool handled = true; if(bMsg->what == 'etk_') { int32 what = 0; bMsg->FindInt32("etk:what", &what); switch(what) { case ETK_BEOS_QUIT: doQuit = true; PostMessage(B_QUIT_REQUESTED); break; case ETK_BEOS_CONTACT_TO: { fContactor = EMessenger(); const char *buffer = NULL; ssize_t size = -1; if(bMsg->FindData("etk:messenger", B_ANY_TYPE, (const void**)&buffer, &size) != B_OK) break; if(buffer == NULL || size <= 0) break; fContactor.Unflatten(buffer, (size_t)size); } break; case ETK_BEOS_SET_BACKGROUND: { rgb_color bkColor; if(bMsg->FindInt32("background", (int32*)&bkColor) != B_OK) break; fTopView->SetViewColor(bkColor); fTopView->Invalidate(); } break; case ETK_BEOS_SET_LOOK: { int8 look; if(bMsg->FindInt8("look", &look) != B_OK) break; switch((e_window_look)look) { case E_BORDERED_WINDOW_LOOK: SetLook(B_BORDERED_WINDOW_LOOK); break; case E_NO_BORDER_WINDOW_LOOK: SetLook(B_NO_BORDER_WINDOW_LOOK); break; case E_TITLED_WINDOW_LOOK: SetLook(B_TITLED_WINDOW_LOOK); break; case E_DOCUMENT_WINDOW_LOOK: SetLook(B_DOCUMENT_WINDOW_LOOK); break; case E_MODAL_WINDOW_LOOK: SetLook(B_MODAL_WINDOW_LOOK); break; case E_FLOATING_WINDOW_LOOK: SetLook(B_FLOATING_WINDOW_LOOK); break; default: break; } } break; case ETK_BEOS_SET_TITLE: { const char *title = NULL; if(bMsg->FindString("title", &title) != B_OK) break; SetTitle(title); } break; case ETK_BEOS_SET_WORKSPACES: { uint32 workspaces = 0; if(bMsg->FindInt32("workspaces", (int32*)&workspaces) != B_OK) break; if(workspaces == 0) workspaces = current_workspace() + 1; SetWorkspaces(workspaces); } break; case ETK_BEOS_GET_WORKSPACES: { uint32 workspaces = Workspaces(); bMsg->AddInt32("workspaces", *((int32*)&workspaces)); } break; case ETK_BEOS_ICONIFY: if(!IsMinimized()) Minimize(true); break; case ETK_BEOS_SHOW: if(IsHidden()) { uint32 oldFlags = Flags(); SetFlags(oldFlags | B_AVOID_FOCUS); Show(); if(Look() != B_NO_BORDER_WINDOW_LOOK) SetFlags(oldFlags); } break; case ETK_BEOS_HIDE: if(!IsHidden()) Hide(); break; case ETK_BEOS_RAISE: if(!IsFront()) { uint32 oldFlags = Flags(); SetFlags(oldFlags | B_AVOID_FOCUS); Activate(true); if(Look() != B_NO_BORDER_WINDOW_LOOK) SetFlags(oldFlags); } break; case ETK_BEOS_LOWER: { BHandler *_frontWin = NULL; if(bMsg->FindPointer("front", (void**)&_frontWin) != B_OK) break; BWindow *frontWin = e_cast_as(_frontWin, BWindow); if(frontWin == NULL) break; SendBehind(frontWin); bMsg->AddBool("done", true); } break; case ETK_BEOS_ACTIVATE: { bool state; if(bMsg->FindBool("state", &state) != B_OK || state == IsActive()) break; Activate(state); } break; case ETK_BEOS_GET_ACTIVATED_STATE: bMsg->AddBool("state", IsActive()); break; case ETK_BEOS_MOVE_RESIZE: { if(bMsg->HasPoint("where")) { BPoint pt; if(bMsg->FindPoint("where", &pt) == B_OK) MoveTo(pt); } if(bMsg->HasFloat("width") && bMsg->HasFloat("height")) { float w = -1, h = -1; bMsg->FindFloat("width", &w); bMsg->FindFloat("height", &h); if(w < 0 || h < 0) break; ResizeTo(w, h); } } break; case ETK_BEOS_DRAW_BITMAP: { BBitmap *bitmap = NULL; BRect srcRect, destRect; const ERegion *clipping = NULL; if(bMsg->FindPointer("bitmap", (void**)&bitmap) != B_OK || bitmap == NULL) break; bMsg->FindRect("src", &srcRect); bMsg->FindRect("dest", &destRect); if(srcRect.IsValid() == false || destRect.IsValid() == false) break; bMsg->FindPointer("clipping", (void**)&clipping); BRegion beRegion; __etk_convert_region(clipping, &beRegion, fTopView->Bounds()); fTopView->ConstrainClippingRegion(&beRegion); fTopView->DrawBitmap(bitmap, srcRect, destRect); } break; case ETK_BEOS_GRAB_MOUSE: case ETK_BEOS_UNGRAB_MOUSE: { uint32 options = (what == ETK_BEOS_GRAB_MOUSE ? B_LOCK_WINDOW_FOCUS : 0); if(fTopView->SetEventMask(B_POINTER_EVENTS, options) != B_OK) break; bMsg->AddBool("state", what == ETK_BEOS_GRAB_MOUSE); } break; case ETK_BEOS_GRAB_KEYBOARD: case ETK_BEOS_UNGRAB_KEYBOARD: { uint32 options = (what == ETK_BEOS_GRAB_KEYBOARD ? B_LOCK_WINDOW_FOCUS : 0); if(fTopView->SetEventMask(B_KEYBOARD_EVENTS, options) != B_OK) break; bMsg->AddBool("state", what == ETK_BEOS_GRAB_KEYBOARD); } break; case ETK_BEOS_QUERY_MOUSE: { BPoint pt; uint32 btns = 0; fTopView->GetMouse(&pt, &btns, false); bMsg->AddInt32("x", (int32)pt.x); bMsg->AddInt32("y", (int32)pt.y); bMsg->AddInt32("buttons", (int32)btns); } break; case ETK_BEOS_SET_SIZE_LIMITS: { BRect r; if(bMsg->FindRect("limits", &r) != B_OK) break; SetSizeLimits(r.left, r.right, r.top, r.bottom); bMsg->AddBool("done", true); } break; case ETK_BEOS_GET_SIZE_LIMITS: { BRect r(-1, -1, -1, -1); GetSizeLimits(&(r.left), &(r.right), &(r.top), &(r.bottom)); bMsg->AddRect("limits", r); } break; default: handled = false; break; } if(handled) { BMessage aMsg(*bMsg); bMsg->SendReply(&aMsg); return; } } switch(bMsg->what) { case B_WINDOW_ACTIVATED: { handled = false; if(fContactor.IsValid() == false) break; EMessage message(E_WINDOW_ACTIVATED); message.AddBool("etk:msg_from_gui", true); message.AddInt64("when", e_real_time_clock_usecs()); fContactor.SendMessage(&message); } break; case B_MOUSE_DOWN: case B_MOUSE_UP: case B_MOUSE_MOVED: { if(fContactor.IsValid() == false) break; BPoint where; int32 buttons = 0; bMsg->FindPoint("where", &where); if(bMsg->what != B_MOUSE_UP) bMsg->FindInt32("buttons", &buttons); int32 clicks = 1; if(bMsg->what == B_MOUSE_DOWN) { #if 0 bMsg->FindInt32("clicks", &clicks); #else bigtime_t eventTime; if(bMsg->FindInt64("when", &eventTime) == B_OK) { if(eventTime - fPrevMouseDownTime <= CLICK_TIMEOUT) clicks = (fPrevMouseDownCount += 1); else clicks = fPrevMouseDownCount = 1; fPrevMouseDownTime = eventTime; } #endif } EMessage message; if(bMsg->what == B_MOUSE_DOWN) message.what = E_MOUSE_DOWN; else if(bMsg->what == B_MOUSE_UP) message.what = E_MOUSE_UP; else message.what = E_MOUSE_MOVED; message.AddBool("etk:msg_from_gui", true); message.AddInt64("when", e_real_time_clock_usecs()); if(bMsg->what != B_MOUSE_UP) message.AddInt32("buttons", buttons); if(bMsg->what == B_MOUSE_DOWN) message.AddInt32("clicks", clicks); message.AddPoint("where", EPoint(where.x, where.y)); ConvertToScreen(&where); message.AddPoint("screen_where", EPoint(where.x, where.y)); // TODO: modifiers message.AddMessenger("etk:msg_for_target", fContactor); etk_app->PostMessage(&message); } break; case B_KEY_DOWN: case B_KEY_UP: case B_UNMAPPED_KEY_DOWN: case B_UNMAPPED_KEY_UP: { if(fContactor.IsValid() == false) break; int8 byte[4]; const char *bytes = NULL; int32 numBytes = 0; int32 key = 0; int32 key_repeat = 0; int32 beModifiers = 0; eint32 modifiers = 0; bMsg->FindInt32("key", &key); bMsg->FindInt32("modifiers", &beModifiers); bzero(byte, sizeof(int8) * 4); if(bMsg->what == B_KEY_DOWN || bMsg->what == B_KEY_UP) { for(int32 i = 0; i < 3; i++) bMsg->FindInt8("byte", i, &byte[i]); if(bMsg->FindString("bytes", &bytes) == B_OK) numBytes = strlen(bytes); // if(bMsg->what == B_KEY_DOWN) bMsg->FindInt32("be:key_repeat", &key_repeat); } else { etk_beos_get_byte(beModifiers, key, (char*)byte); } if(beModifiers & B_SHIFT_KEY) modifiers |= E_SHIFT_KEY; if(beModifiers & B_CONTROL_KEY) modifiers |= E_CONTROL_KEY; if(beModifiers & B_COMMAND_KEY) modifiers |= E_COMMAND_KEY; EMessage message; if(bMsg->what == B_KEY_DOWN) message.what = E_KEY_DOWN; else if(bMsg->what == B_KEY_UP) message.what = E_KEY_UP; else if(bMsg->what == B_UNMAPPED_KEY_DOWN) message.what = E_UNMAPPED_KEY_DOWN; else message.what = E_UNMAPPED_KEY_UP; message.AddBool("etk:msg_from_gui", true); message.AddInt64("when", e_real_time_clock_usecs()); message.AddInt32("key", key); message.AddInt32("modifiers", modifiers); if(bMsg->what == B_KEY_DOWN || bMsg->what == B_KEY_UP) { if(bMsg->what == B_KEY_DOWN) message.AddInt32("etk:key_repeat", key_repeat); for(int32 i = 0; i < 3; i++) message.AddInt8("byte", byte[i]); if(!(numBytes != 1 || *bytes != byte[0])) { etk_beos_get_byte(beModifiers, key, (char*)byte); message.AddString("bytes", (char*)byte); } else if(numBytes > 0) { message.AddString("bytes", bytes); } } else if(byte[0] != 0) { message.AddInt8("byte", byte[0]); message.AddString("bytes", (char*)byte); } message.AddMessenger("etk:msg_for_target", fContactor); etk_app->PostMessage(&message); } break; case B_MODIFIERS_CHANGED: { if(fContactor.IsValid() == false) break; eint32 modifiers = 0; eint32 old_modifiers = 0; int32 beModifiers = 0; int32 old_beModifiers = 0; bMsg->FindInt32("modifiers", &beModifiers); bMsg->FindInt32("be:old_modifiers", &old_beModifiers); if(beModifiers & B_SHIFT_KEY) modifiers |= E_SHIFT_KEY; if(beModifiers & B_CONTROL_KEY) modifiers |= E_CONTROL_KEY; if(beModifiers & B_COMMAND_KEY) modifiers |= E_COMMAND_KEY; if(old_beModifiers & B_SHIFT_KEY) old_modifiers |= E_SHIFT_KEY; if(old_beModifiers & B_CONTROL_KEY) old_modifiers |= E_CONTROL_KEY; if(old_beModifiers & B_COMMAND_KEY) old_modifiers |= E_COMMAND_KEY; EMessage message(E_MODIFIERS_CHANGED); message.AddBool("etk:msg_from_gui", true); message.AddInt64("when", e_real_time_clock_usecs()); message.AddInt32("modifiers", modifiers); message.AddInt32("etk:old_modifiers", old_modifiers); message.AddMessenger("etk:msg_for_target", fContactor); etk_app->PostMessage(&message); } break; default: handled = false; break; } if(!handled) BWindow::DispatchMessage(bMsg, handler); }
LRESULT CALLBACK TaskDialogSubclassProc( _In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam, _In_ UINT_PTR uIdSubclass, _In_ ULONG_PTR dwRefData ) { PPH_UPDATER_CONTEXT context = (PPH_UPDATER_CONTEXT)dwRefData; switch (uMsg) { case PH_SHOWDIALOG: { if (IsMinimized(hwndDlg)) ShowWindow(hwndDlg, SW_RESTORE); else ShowWindow(hwndDlg, SW_SHOW); SetForegroundWindow(hwndDlg); } break; case WM_NCDESTROY: { RemoveWindowSubclass(hwndDlg, TaskDialogSubclassProc, uIdSubclass); } break; //case WM_PARENTNOTIFY: // { // if (wParam == WM_CREATE) // { // // uMsg == 49251 for expand/collapse button click // HWND hwndEdit = CreateWindowEx( // WS_EX_CLIENTEDGE, // L"EDIT", // NULL, // WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL, // 5, // 5, // 390, // 85, // (HWND)lParam, // parent window // 0, // NULL, // NULL // ); // // PhCreateCommonFont(-11, hwndEdit); // // // Add text to the window. // SendMessage(hwndEdit, WM_SETTEXT, 0, (LPARAM)L"TEST"); // } // } // break; //case WM_NCACTIVATE: // { // if (IsWindowVisible(PhMainWndHandle) && !IsMinimized(PhMainWndHandle)) // { // if (!context->FixedWindowStyles) // { // SetWindowLongPtr(hwndDlg, GWLP_HWNDPARENT, (LONG_PTR)PhMainWndHandle); // PhSetWindowExStyle(hwndDlg, WS_EX_APPWINDOW, WS_EX_APPWINDOW); // context->FixedWindowStyles = TRUE; // } // } // } // break; } return DefSubclassProc(hwndDlg, uMsg, wParam, lParam); }
void MainWindow::MessageReceived(BMessage* message) { switch (message->what) { case kSearchContact: { void* control = NULL; if (message->FindPointer("source", &control) != B_OK) return; SearchBarTextControl* searchBox = static_cast<SearchBarTextControl*>(control); if (searchBox == NULL) return; RosterMap map = fServer->RosterItems(); for (uint32 i = 0; i < map.CountItems(); i++) { ContactLinker* linker = map.ValueAt(i); RosterItem* item = linker->GetRosterItem(); // If the search filter has been deleted show all the items, // otherwise remove the item in order to show only items // that matches the search criteria if (strcmp(searchBox->Text(), "") == 0) AddItem(item); else if (linker->GetName().IFindFirst(searchBox->Text()) == B_ERROR) RemoveItem(item); else AddItem(item); UpdateListItem(item); } break; } case CAYA_SHOW_SETTINGS: { PreferencesDialog* dialog = new PreferencesDialog(); dialog->Show(); break; } case CAYA_OPEN_CHAT_WINDOW: { int index = message->FindInt32("index"); RosterItem* ritem = ItemAt(index); if (ritem != NULL) ritem->GetContactLinker()->ShowWindow(false, true); break; } case CAYA_REPLICANT_STATUS_SET: { int32 status; message->FindInt32("status", &status); AccountManager* accountManager = AccountManager::Get(); accountManager->SetStatus((CayaStatus)status); break; } case CAYA_REPLICANT_SHOW_WINDOW: { if (LockLooper()) { SetWorkspaces(B_CURRENT_WORKSPACE); if ((IsMinimized() || IsHidden()) || fWorkspaceChanged) { Minimize(false); Show(); fWorkspaceChanged = false; } else if ((!IsMinimized() || !IsHidden()) || (!fWorkspaceChanged)) { Minimize(true); } UnlockLooper(); } break; } case IM_MESSAGE: ImMessage(message); break; case IM_ERROR: ImError(message); break; case B_ABOUT_REQUESTED: be_app->PostMessage(message); break; default: BWindow::MessageReceived(message); } }
void PreferencesWindow::WindowActivated(bool active) { if (!active && IsMinimized()) PostMessage(B_QUIT_REQUESTED); }
void BSCWindow::MessageReceived(BMessage *message) { switch (message->what) { case kPauseResumeCapture: fController->TogglePause(); break; case kSelectArea: { Minimize(true); SelectionWindow *window = new SelectionWindow(); window->SetTarget(this); window->SetCommand(kAreaSelected); window->Show(); break; } case kAreaSelected: { SendNotices(kAreaSelected, message); break; } case kMsgControllerAreaSelectionChanged: if (IsMinimized()) Minimize(false); break; case kMsgGUIToggleCapture: if (fCapturing) _CaptureFinished(); else _CaptureStarted(); SendNotices(kMsgGUIToggleCapture); break; case B_OBSERVER_NOTICE_CHANGE: { int32 code; message->FindInt32("be:observe_change_what", &code); switch (code) { case B_UPDATE_STATUS_BAR: case B_RESET_STATUS_BAR: { BMessage newMessage(*message); message->what = code; PostMessage(message, fStatusBar); break; } case kMsgControllerEncodeStarted: fStringView->Show(); fStatusBar->Show(); break; case kMsgControllerEncodeProgress: { int32 numFiles = 0; message->FindInt32("num_files", &numFiles); fStatusBar->SetMaxValue(float(numFiles)); break; } case kMsgControllerEncodeFinished: { fStartStopButton->SetEnabled(true); fStringView->Hide(); fStatusBar->Hide(); status_t status = B_OK; if (message->FindInt32("status", (int32*)&status) == B_OK && status != B_OK) { char errorString[128]; snprintf(errorString, 128, "A problem has occurred:\n" "%s", strerror(status)); (new BAlert("yo", errorString, "Ok"))->Go(); } break; } default: break; } } default: BWindow::MessageReceived(message); break; } }
LRESULT CALLBACK PhpPropSheetWndProc( _In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ) { PPH_PROCESS_PROPSHEETCONTEXT propSheetContext; WNDPROC oldWndProc; propSheetContext = PhGetWindowContext(hwnd, 0xF); if (!propSheetContext) return 0; oldWndProc = propSheetContext->PropSheetWindowHookProc; switch (uMsg) { case WM_DESTROY: { HWND tabControl; TCITEM tabItem; WCHAR text[128]; // Save the window position and size. PhSaveWindowPlacementToSetting(L"ProcPropPosition", L"ProcPropSize", hwnd); // Save the selected tab. tabControl = PropSheet_GetTabControl(hwnd); tabItem.mask = TCIF_TEXT; tabItem.pszText = text; tabItem.cchTextMax = RTL_NUMBER_OF(text) - 1; if (TabCtrl_GetItem(tabControl, TabCtrl_GetCurSel(tabControl), &tabItem)) { PhSetStringSetting(L"ProcPropPage", text); } } break; case WM_NCDESTROY: { PhUnregisterWindowCallback(hwnd); SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)oldWndProc); PhRemoveWindowContext(hwnd, 0xF); PhDeleteLayoutManager(&propSheetContext->LayoutManager); PhFree(propSheetContext); } break; case WM_SYSCOMMAND: { // Note: Clicking the X on the taskbar window thumbnail preview doens't close modeless property sheets // when there are more than 1 window and the window doesn't have focus... The MFC, ATL and WTL libraries // check if the propsheet is modeless and SendMessage WM_CLOSE and so we'll implement the same solution. (dmex) switch (wParam & 0xFFF0) { case SC_CLOSE: { PostMessage(hwnd, WM_CLOSE, 0, 0); //SetWindowLongPtr(hwnd, DWLP_MSGRESULT, TRUE); //return TRUE; } break; } } break; case WM_COMMAND: { switch (GET_WM_COMMAND_ID(wParam, lParam)) { case IDOK: // Prevent the OK button from working (even though // it's already hidden). This prevents the Enter // key from closing the dialog box. return 0; } } break; case WM_SIZE: { if (!IsMinimized(hwnd)) { PhLayoutManagerLayout(&propSheetContext->LayoutManager); } } break; case WM_SIZING: { PhResizingMinimumSize((PRECT)lParam, wParam, MinimumSize.right, MinimumSize.bottom); } break; } return CallWindowProc(oldWndProc, hwnd, uMsg, wParam, lParam); }
void BSCWindow::MessageReceived(BMessage *message) { switch (message->what) { case kSelectArea: { Minimize(true); BMessenger messenger(this); SelectionWindow *window = new SelectionWindow(messenger, kSelectionWindowClosed); window->Show(); break; } case kSelectionWindowClosed: { if (IsMinimized()) Minimize(false); SendNotices(kSelectionWindowClosed, message); break; } case kCmdToggleRecording: fStartStopButton->Invoke(); break; case B_OBSERVER_NOTICE_CHANGE: { int32 code; message->FindInt32("be:observe_change_what", &code); switch (code) { case B_UPDATE_STATUS_BAR: case B_RESET_STATUS_BAR: { BMessage newMessage(*message); message->what = code; PostMessage(message, fStatusBar); break; } case kMsgControllerCaptureStarted: _CaptureStarted(); break; case kMsgControllerCaptureStopped: _CaptureFinished(); break; case kMsgControllerEncodeStarted: fStringView->SetText(kEncodingString); fCardLayout->SetVisibleItem(1); break; case kMsgControllerEncodeProgress: { int32 numFiles = 0; message->FindInt32("num_files", &numFiles); fStatusBar->SetMaxValue(float(numFiles)); break; } case kMsgControllerEncodeFinished: { fStartStopButton->SetEnabled(true); //fStringView->SetText(kDoneString); fCardLayout->SetVisibleItem((int32)0); status_t status = B_OK; if (message->FindInt32("status", (int32*)&status) == B_OK && status != B_OK) { char errorString[128]; snprintf(errorString, 128, "A problem has occurred:\n" "%s", strerror(status)); (new BAlert("yo", errorString, "Ok"))->Go(); } break; } default: break; } break; } default: BWindow::MessageReceived(message); break; } }