Changeset 15170
- Timestamp:
- Nov 16, 2000, 5:35:43 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified tags/trunk/src/user32/user32.cpp ¶
r15152 r15170 1 /* $Id: user32.cpp,v 1.8 8 2000-11-11 18:39:29sandervl Exp $ */1 /* $Id: user32.cpp,v 1.89 2000-11-16 16:35:43 sandervl Exp $ */ 2 2 3 3 /* … … 9 9 * Copyright 1999 Christoph Bratschi 10 10 * Copyright 1999 Daniela Engert (dani@ngrt.de) 11 * 12 * Partly based on Wine code (windows\sysparams.c: SystemParametersInfoA) 13 * 14 * Copyright 1994 Alexandre Julliard 11 15 * 12 16 * … … 788 792 { 789 793 BOOL rc = TRUE; 790 NONCLIENTMETRICSA *cmetric = (NONCLIENTMETRICSA *)pvParam;791 794 792 795 switch(uiAction) { … … 799 802 case SPI_GETNONCLIENTMETRICS: 800 803 { 801 memset(cmetric, 0, sizeof(NONCLIENTMETRICSA)); 802 cmetric->cbSize = sizeof(NONCLIENTMETRICSA); 803 804 #if 0 805 //CB: fonts not handled by Open32, set to WarpSans 806 lstrcpyA(cmetric->lfSmCaptionFont.lfFaceName,"WarpSans"); 807 cmetric->lfSmCaptionFont.lfHeight = 9; 808 809 lstrcpyA(cmetric->lfCaptionFont.lfFaceName,"WarpSans"); 810 cmetric->lfCaptionFont.lfHeight = 9; 811 812 lstrcpyA(cmetric->lfMenuFont.lfFaceName,"WarpSans"); 813 cmetric->lfMenuFont.lfHeight = 9; 814 815 lstrcpyA(cmetric->lfStatusFont.lfFaceName,"WarpSans"); 816 cmetric->lfStatusFont.lfHeight = 9; 817 818 lstrcpyA(cmetric->lfMessageFont.lfFaceName,"WarpSans"); 819 cmetric->lfMessageFont.lfHeight = 9; 820 821 cmetric->iBorderWidth = GetSystemMetrics(SM_CXBORDER); 822 cmetric->iScrollWidth = GetSystemMetrics(SM_CXHSCROLL); 823 cmetric->iScrollHeight = GetSystemMetrics(SM_CYHSCROLL); 824 cmetric->iCaptionWidth = 32; //TODO 825 cmetric->iCaptionHeight = 16; //TODO 826 cmetric->iSmCaptionWidth = GetSystemMetrics(SM_CXSMSIZE); 827 cmetric->iSmCaptionHeight = GetSystemMetrics(SM_CYSMSIZE); 828 cmetric->iMenuWidth = 32; //TODO 829 cmetric->iMenuHeight = GetSystemMetrics(SM_CYMENU); 830 #else 831 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(cmetric->lfSmCaptionFont),0); 832 833 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(cmetric->lfCaptionFont),0); 834 cmetric->lfCaptionFont.lfWeight = FW_BOLD; 835 836 LPLOGFONTA lpLogFont = &(cmetric->lfMenuFont); 837 GetProfileStringA("Desktop", "MenuFont", "MS Sans Serif", 838 lpLogFont->lfFaceName, LF_FACESIZE); 839 840 lpLogFont->lfHeight = -GetProfileIntA("Desktop","MenuFontSize", 12); 841 lpLogFont->lfWidth = 0; 842 lpLogFont->lfEscapement = lpLogFont->lfOrientation = 0; 843 lpLogFont->lfWeight = FW_NORMAL; 844 lpLogFont->lfItalic = FALSE; 845 lpLogFont->lfStrikeOut = FALSE; 846 lpLogFont->lfUnderline = FALSE; 847 lpLogFont->lfCharSet = ANSI_CHARSET; 848 lpLogFont->lfOutPrecision = OUT_DEFAULT_PRECIS; 849 lpLogFont->lfClipPrecision = CLIP_DEFAULT_PRECIS; 850 lpLogFont->lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS; 851 852 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, 853 (LPVOID)&(cmetric->lfStatusFont),0); 854 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, 855 (LPVOID)&(cmetric->lfMessageFont),0); 856 857 cmetric->iBorderWidth = GetSystemMetrics(SM_CXBORDER); 858 cmetric->iScrollWidth = GetSystemMetrics(SM_CXHSCROLL); 859 cmetric->iScrollHeight = GetSystemMetrics(SM_CYHSCROLL); 860 cmetric->iCaptionWidth = 32; //TODO 861 cmetric->iCaptionHeight = 32; //TODO 862 cmetric->iSmCaptionWidth = GetSystemMetrics(SM_CXSMSIZE); 863 cmetric->iSmCaptionHeight = GetSystemMetrics(SM_CYSMSIZE); 864 cmetric->iMenuHeight = GetSystemMetrics(SM_CYMENU); 865 cmetric->iMenuWidth = cmetric->iMenuHeight; //TODO 866 #endif 867 break; 804 LPNONCLIENTMETRICSA lpnm = (LPNONCLIENTMETRICSA)pvParam; 805 806 if (lpnm->cbSize == sizeof(NONCLIENTMETRICSA)) 807 { 808 memset(lpnm, 0, sizeof(NONCLIENTMETRICSA)); 809 lpnm->cbSize = sizeof(NONCLIENTMETRICSA); 810 811 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(lpnm->lfCaptionFont),0); 812 lpnm->lfCaptionFont.lfWeight = FW_BOLD; 813 lpnm->iCaptionWidth = 32; //TODO 814 lpnm->iCaptionHeight = 32; //TODO 815 816 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, (LPVOID)&(lpnm->lfSmCaptionFont),0); 817 lpnm->iSmCaptionWidth = GetSystemMetrics(SM_CXSMSIZE); 818 lpnm->iSmCaptionHeight = GetSystemMetrics(SM_CYSMSIZE); 819 820 LPLOGFONTA lpLogFont = &(lpnm->lfMenuFont); 821 GetProfileStringA("Desktop", "MenuFont", "MS Sans Serif", 822 lpLogFont->lfFaceName, LF_FACESIZE); 823 824 lpLogFont->lfHeight = -GetProfileIntA("Desktop","MenuFontSize", 13); 825 lpLogFont->lfWidth = 0; 826 lpLogFont->lfEscapement = lpLogFont->lfOrientation = 0; 827 lpLogFont->lfWeight = FW_NORMAL; 828 lpLogFont->lfItalic = FALSE; 829 lpLogFont->lfStrikeOut = FALSE; 830 lpLogFont->lfUnderline = FALSE; 831 lpLogFont->lfCharSet = ANSI_CHARSET; 832 lpLogFont->lfOutPrecision = OUT_DEFAULT_PRECIS; 833 lpLogFont->lfClipPrecision = CLIP_DEFAULT_PRECIS; 834 lpLogFont->lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS; 835 836 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, 837 (LPVOID)&(lpnm->lfStatusFont),0); 838 SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, 839 (LPVOID)&(lpnm->lfMessageFont),0); 840 841 lpnm->iBorderWidth = GetSystemMetrics(SM_CXBORDER); 842 lpnm->iScrollWidth = GetSystemMetrics(SM_CXHSCROLL); 843 lpnm->iScrollHeight = GetSystemMetrics(SM_CYHSCROLL); 844 lpnm->iMenuHeight = GetSystemMetrics(SM_CYMENU); 845 lpnm->iMenuWidth = lpnm->iMenuHeight; //TODO 846 } 847 else 848 { 849 dprintf(("SPI_GETNONCLIENTMETRICS: size mismatch !! (is %d; should be %d)\n", lpnm->cbSize, sizeof(NONCLIENTMETRICSA))); 850 /* FIXME: SetLastError? */ 851 rc = FALSE; 852 } 853 break; 854 } 855 856 case SPI_GETICONMETRICS: /* 45 WINVER >= 0x400 */ 857 { 858 LPICONMETRICSA lpIcon = (LPICONMETRICSA)pvParam; 859 if(lpIcon && lpIcon->cbSize == sizeof(*lpIcon)) 860 { 861 SystemParametersInfoA( SPI_ICONHORIZONTALSPACING, 0, 862 &lpIcon->iHorzSpacing, FALSE ); 863 SystemParametersInfoA( SPI_ICONVERTICALSPACING, 0, 864 &lpIcon->iVertSpacing, FALSE ); 865 SystemParametersInfoA( SPI_GETICONTITLEWRAP, 0, 866 &lpIcon->iTitleWrap, FALSE ); 867 SystemParametersInfoA( SPI_GETICONTITLELOGFONT, 0, 868 &lpIcon->lfFont, FALSE ); 869 } 870 else 871 { 872 dprintf(("SPI_GETICONMETRICS: size mismatch !! (is %d; should be %d)\n", lpIcon->cbSize, sizeof(ICONMETRICSA))); 873 /* FIXME: SetLastError? */ 874 rc = FALSE; 875 } 876 break; 868 877 } 869 878 … … 898 907 break; 899 908 900 case 104: //TODO: Undocumented909 case SPI_GETWHEELSCROLLLINES: //TODO: Undocumented 901 910 rc = 16; 902 911 break; 912 903 913 default: 904 914 rc = O32_SystemParametersInfo(uiAction, uiParam, pvParam, fWinIni); … … 913 923 BOOL WIN32API SystemParametersInfoW(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni) 914 924 { 915 BOOL rc ;925 BOOL rc = TRUE; 916 926 NONCLIENTMETRICSW *clientMetricsW = (NONCLIENTMETRICSW *)pvParam; 917 927 NONCLIENTMETRICSA clientMetricsA = {0}; … … 941 951 pvParamA = &clientMetricsA; 942 952 break; 953 954 case SPI_GETICONMETRICS: /* 45 WINVER >= 0x400 */ 955 { 956 LPICONMETRICSW lpIcon = (LPICONMETRICSW)pvParam; 957 if(lpIcon && lpIcon->cbSize == sizeof(*lpIcon)) 958 { 959 SystemParametersInfoW( SPI_ICONHORIZONTALSPACING, 0, 960 &lpIcon->iHorzSpacing, FALSE ); 961 SystemParametersInfoW( SPI_ICONVERTICALSPACING, 0, 962 &lpIcon->iVertSpacing, FALSE ); 963 SystemParametersInfoW( SPI_GETICONTITLEWRAP, 0, 964 &lpIcon->iTitleWrap, FALSE ); 965 SystemParametersInfoW( SPI_GETICONTITLELOGFONT, 0, 966 &lpIcon->lfFont, FALSE ); 967 return TRUE; 968 } 969 else 970 { 971 dprintf(("SPI_GETICONMETRICS: size mismatch !! (is %d; should be %d)\n", lpIcon->cbSize, sizeof(ICONMETRICSA))); 972 /* FIXME: SetLastError? */ 973 return FALSE; 974 } 975 } 976 943 977 case SPI_GETICONTITLELOGFONT: 944 978 { … … 947 981 /* from now on we always have an alias for MS Sans Serif */ 948 982 lstrcpyW(lpLogFont->lfFaceName, (LPCWSTR)L"MS Sans Serif"); 949 lpLogFont->lfHeight = -GetProfileIntA("Desktop","IconTitleSize", 8);983 lpLogFont->lfHeight = -GetProfileIntA("Desktop","IconTitleSize", /*8*/12); //CB: 8 is too small 950 984 lpLogFont->lfWidth = 0; 951 985 lpLogFont->lfEscapement = lpLogFont->lfOrientation = 0;
Note:
See TracChangeset
for help on using the changeset viewer.