Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
2.6 KiB

/****************************** Module Header ******************************\
* Module Name: metrics.c
*
* Copyright (c) 1985 - 1999, Microsoft Corporation
*
* History:
\***************************************************************************/
#include "precomp.h"
#pragma hdrstop
/***************************************************************************\
* MenuRecalc
*
* Loops through all menus and resets size and item info stuff. That's
* because it is invalid when the menu font changes.
*
* History:
\***************************************************************************/
void MenuRecalc(void)
{
PMENU lpMenu;
UINT iItem;
PHE pheT;
DWORD i;
/*
* for (ppi = gppiFirst; ppi; ppi = ppi->ppiNext)
* {
* for (pMenu = ppi->lpMenus; TESTFAR(lpMenu); lpMenu = lpMenu->lpMenuNext)
* {
*
* That was the Chicao way of walking the objects. In NT, we
* walk the handle table.
*/
for (pheT = gSharedInfo.aheList, i = 0; i <= giheLast; i++, pheT++) {
if (pheT->bType == TYPE_MENU) {
/*
* Get a pointer to the menu.
*/
lpMenu = (PMENU)pheT->phead;
/*
* Set menu size to 0 so it recalculates later when we go to
* draw it again.
*/
lpMenu->cxMenu = 0;
lpMenu->cyMenu = 0;
/*
* Reset mnemonic underline info
*/
for (iItem = 0; iItem < lpMenu->cItems; iItem++) {
lpMenu->rgItems[iItem].ulX = UNDERLINE_RECALC;
lpMenu->rgItems[iItem].ulWidth = 0;
lpMenu->rgItems[iItem].cxBmp = MNIS_MEASUREBMP;
}
}
}
}
/***************************************************************************\
* xxxRecreateSmallIcons()
*
* Recreates the class and/or window small icon when the caption height
* changes. This needs to be done in context so that LR_COPYFROMRESOURCE
* can work right.
*
* History:
* 22-Jun-95 BradG Ported from Win95
\***************************************************************************/
VOID xxxRecreateSmallIcons(PWND pwnd)
{
BOOL fSmQueryDrag;
CheckLock(pwnd);
if (DestroyClassSmIcon(pwnd->pcls))
xxxCreateClassSmIcon(pwnd->pcls);
fSmQueryDrag = (TestWF(pwnd, WFSMQUERYDRAGICON) != 0);
if (DestroyWindowSmIcon(pwnd) && !fSmQueryDrag)
xxxCreateWindowSmIcon(pwnd, (HICON)_GetProp(pwnd, MAKEINTATOM(gpsi->atomIconProp), PROPF_INTERNAL), TRUE);
}