bool C4Menu::Enter(bool fRight) { // Not active if (!IsActive()) return false; if (Style==C4MN_Style_Info) return false; // Get selected item C4MenuItem *pItem = GetSelectedItem(); if (!pItem) { // okay for dialogs: Just close them if (Style == C4MN_Style_Dialog) TryClose(false, true); return true; } // Copy command to buffer (menu might be cleared) char szCommand[_MAX_FNAME+30+1]; SCopy(pItem->Command,szCommand); if (fRight && pItem->Command2[0]) SCopy(pItem->Command2,szCommand); // Close if not permanent if (!Permanent) { Close(true); fActive = false; } // exec command (note that menu callback may delete this!) MenuCommand(szCommand, false); return true; }
bool TopCtrl::OnCommand (int cmdId, bool isAccel) { if (isAccel) { // Revisit: maybe we should have Test method that takes cmdId? // Keyboard accelerators to invisible or disabled menu items are not executed char const * name = _cmdVector->GetName (cmdId); if (_cmdVector->Test (name) != Cmd::Enabled) return true; } MenuCommand (cmdId); return true; }
void MainCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { /* Handle stuff other than menus & accelerators */ if (hwndCtl != 0) switch (state) { case STATE_GAME: GameCommand(hwnd, id, hwndCtl, codeNotify); break; } MenuCommand(hwnd, id, hwndCtl, codeNotify); }
void C4MainMenu::OnSelectionChanged(int32_t iNewSelection) { // immediate player highlight in observer menu if (Identification == C4MN_Observer) { C4MenuItem *pItem = GetSelectedItem(); if (pItem) { if (SEqual2(pItem->GetCommand(), "Observe:")) MenuCommand(pItem->GetCommand(), false); } } }
void COnlineUsersDlg::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { CMenu menu; menu.LoadMenu(IDR_MENU_ONLINEUSERS); TRANSLATE(menu); CMenu* pop = menu.GetSubMenu(0); if(!pop) return; UINT uCmd = pop->TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this, NULL ); MenuCommand(uCmd); }
bool C4Menu::TryClose(bool fOK, bool fControl) { // abort if menu is permanented by script if (!fOK) if (IsCloseDenied()) return false; // close the menu Close(fOK); Clear(); ::pGUI->RemoveElement(this); // invoke close command if (fControl && CloseCommand.getData()) { MenuCommand(CloseCommand.getData(), true); } // done return true; }
void CUserDesktopDlg::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { User user; if(!TT_GetUser(ttInst, m_nUserID, &user) || (user.uPeerSubscriptions & SUBSCRIBE_DESKTOPINPUT)) return; CMenu menu; menu.LoadMenu(IDR_MENU_DESKTOPINPUT); TRANSLATE(menu); CMenu* pop = menu.GetSubMenu(0); if(!pop) return; UINT uCmd = pop->TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this, NULL ); MenuCommand(uCmd); }
static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_CREATE: OleInitialize(NULL); PaneRegisterClassW(); TypeLibRegisterClassW(); if(!CreatePanedWindow(hWnd, &globals.hPaneWnd, globals.hMainInst)) PostQuitMessage(0); SetLeft(globals.hPaneWnd, CreateTreeWindow(globals.hMainInst)); SetRight(globals.hPaneWnd, CreateDetailsWindow(globals.hMainInst)); SetFocus(globals.hTree); break; case WM_COMMAND: MenuCommand(LOWORD(wParam), hWnd); break; case WM_DESTROY: OleUninitialize(); EmptyTree(); PostQuitMessage(0); break; case WM_MENUSELECT: UpdateStatusBar(LOWORD(wParam)); break; case WM_SETFOCUS: SetFocus(globals.hTree); break; case WM_SIZE: if(wParam == SIZE_MINIMIZED) break; ResizeChild(); break; default: return DefWindowProcW(hWnd, uMsg, wParam, lParam); } return 0; }
/* * MainWindowProc - procedure for main (root) window */ WINEXPORT LRESULT CALLBACK MainWindowProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { RECT rect; vi_rc rc; HANDLE hfileinfo; int cnt, i; char *buff; switch( msg ) { case WM_CREATE: Root = hwnd; GetClientRect( hwnd, &rect ); EditContainer = CreateContainerWindow( &rect ); InitWindows(); DragAcceptFiles( hwnd, TRUE ); timerID = SetTimer( hwnd, TIMER_ID, 60L * 1000L, NULL ); break; case WM_DROPFILES: hfileinfo = (HANDLE) wparam; cnt = DragQueryFile( hfileinfo, (UINT)-1, NULL, 0 ); buff = alloca( FILENAME_MAX + 2 ); /* we add a " at the beginning and at the end so we can handle path- and filenames with spaces */ if( buff != NULL ) { buff[0] = '"'; /* one " at the beginning of the filename */ for( i = 0; i < cnt; i++ ) { if( DragQueryFile( hfileinfo, i, buff + 1, FILENAME_MAX ) == (UINT)-1 ) { break; } strcat( buff, "\"" ); rc = EditFile( buff, FALSE ); if( rc > ERR_NO_ERR ) { Error( GetErrorMsg( rc ) ); } } } DragFinish( hfileinfo ); break; case WM_TIMER: UpdateStatusWindow(); break; case WM_KEYDOWN: if( WindowsKeyPush( wparam, HIWORD( lparam ) ) ) { return( 0 ); } break; case WM_SIZE: DefFrameProc( hwnd, EditContainer, msg, wparam, lparam ); RootState = wparam; if( wparam != SIZE_MINIMIZED ) { ResizeRoot(); GetWindowRect( hwnd, &RootRect ); if( wparam != SIZE_MAXIMIZED ) { RootState = 0; } } return( 0 ); case WM_MOVE: DefFrameProc( hwnd, EditContainer, msg, wparam, lparam ); if( RootState != SIZE_MINIMIZED ) { GetWindowRect( hwnd, &RootRect ); } return( 0 ); case WM_ACTIVATEAPP: if( BAD_ID( CurrentWindow ) ) { break; } SetFocus( Root ); #if 0 if( !wparam ) { InactiveWindow( CurrentWindow ); } else { SendMessage( EditContainer, WM_MDIACTIVATE, (WPARAM)CurrentWindow, 0L ); } #endif if( wparam ) { ResetEditWindowCursor( CurrentWindow ); } else { GoodbyeCursor( CurrentWindow ); } break; case WM_MOUSEACTIVATE: SetFocus( hwnd ); return( MA_ACTIVATE ); case WM_SETFOCUS: if( BAD_ID( CurrentWindow ) ) { break; } if( !IsIconic( CurrentWindow ) ) { SendMessage( EditContainer, WM_MDIACTIVATE, (WPARAM)CurrentWindow, 0L ); DCUpdate(); SetWindowCursor(); SetWindowCursorForReal(); return( 0 ); } break; case WM_NCLBUTTONDBLCLK: break; case WM_COMMAND: if( LOWORD( wparam ) > 0xF000 ) { break; } else { rc = MenuCommand( LOWORD( wparam ) ); if( rc != MENU_COMMAND_NOT_HANDLED ) { DCUpdateAll(); if( rc > ERR_NO_ERR ) { char *msg; msg = GetErrorMsg( rc ); Error( msg ); } } SetWindowCursor(); } return( 0 ); case WM_INITMENU: if( (HMENU)wparam == GetMenu( hwnd ) ) { HandleInitMenu( (HMENU)wparam ); } else { ResetMenuBits(); } break; case WM_MENUSELECT: HandleMenuSelect( wparam, lparam ); break; case WM_ENDSESSION: if( wparam ) { ExitEditor( 0 ); // will not return } return( 0 ); case WM_QUERYENDSESSION: return( ExitWithPrompt( FALSE, TRUE ) ); case WM_CLOSE: ExitWithPrompt( TRUE, TRUE ); return( 0 ); #ifdef __NT__ case WM_MOUSEWHEEL: { int i, increment; ULONG linesPerNotch; HWND activeWnd; activeWnd = (HWND)SendMessage( EditContainer, WM_MDIGETACTIVE, 0, 0 ); SystemParametersInfo( SPI_GETWHEELSCROLLLINES, 0, &linesPerNotch, 0 ); increment = GET_WHEEL_DELTA_WPARAM( wparam ) / 120; // see WM_MOUSEWHEEL-documentation for information about the "120" if( increment > 0 ) { for( i = 0; i < increment * (int)linesPerNotch; i++ ) { SendMessage( activeWnd, WM_VSCROLL, SB_LINEUP, 0 ); } } else { for( i = 0; i < (-increment) * (int)linesPerNotch; i++ ) { SendMessage( activeWnd, WM_VSCROLL, SB_LINEDOWN, 0 ); } } } return( 0 ); #endif case WM_DESTROY: DestroyToolBar(); DragAcceptFiles( hwnd, FALSE ); EditContainer = 0; if( timerID ) { KillTimer( hwnd, TIMER_ID ); } return( 0 ); } return( DefFrameProc( hwnd, EditContainer, msg, wparam, lparam ) ); } /* MainWindowProc */
bool C4MainMenu::ActivateCommand(int32_t iPlayer, const char *szCommand) { // init menu for player and activate with command Player = iPlayer; return MenuCommand(szCommand, false); }
void COnlineUsersDlg::OnPopupCopyuserinformation() { MenuCommand(ID_POPUP_COPYUSERINFORMATION); }
void COnlineUsersDlg::OnPopupOp() { MenuCommand(ID_POPUP_OP); }
void COnlineUsersDlg::OnPopupKickandban() { MenuCommand(ID_POPUP_KICKANDBAN); }
void COnlineUsersDlg::OnPopupKick() { MenuCommand(ID_POPUP_KICK); }