void UGameUserSettings::SetToDefaults() { ResolutionSizeX = LastUserConfirmedResolutionSizeX = GetDefaultResolution().X; ResolutionSizeY = LastUserConfirmedResolutionSizeY = GetDefaultResolution().Y; WindowPosX = GetDefaultWindowPosition().X; WindowPosY = GetDefaultWindowPosition().Y; FullscreenMode = GetDefaultWindowMode(); ScalabilityQuality.SetDefaults(); }
void CreateDialogBoxTemplate ( unsigned char * Data, int DataSize, DIALOGBOX & DialogBoxTemplate ) { char buffer [ MAX_PARAMETER_LENGTH ] ; register unsigned char * p, * pdata ; DLGTEMPLATE DlgTemplate ; DLGITEMTEMPLATE * ItemTemplates, * pItem ; TDialogEntryData * DlgDatas ; FONTINFO FontInfo ; register int i ; int x, y ; BOOL HardcopyMode ; integer16 remote_data_size, unix_data_size ; // Si le paramètre HardCopyMode de la section [Settings] est à TRUE, on // enlève toute référence à des BorShade et on utilise les controles standard // de Windows. Les BorStatic deviennent alors des STATIC. HardcopyMode = Configuration -> GetBoolean ( "Settings", "HardCopyMode", FALSE ) ; // Dans la définition du dialogue (structure TDialogDefinition), on saute // l'id de la boîte ainsi que les coordonnées en mode texte. // (ne pas oublier qu'une structure UTDialogBox précède cette définition) pdata = Data + sizeof ( integer16 ) + sizeof ( TDialogDimension ) ; // pdata pointe sur les coordonnées graphiques : on les récupère GetI16 ( DlgTemplate. dtX , pdata ) ; GetI16 ( DlgTemplate. dtY , pdata ) ; GetI16 ( DlgTemplate. dtCX, pdata ) ; GetI16 ( DlgTemplate. dtCY, pdata ) ; // Récupération du nom de menu GetStr ( DlgTemplate. dtMenuName, pdata ) ; // de la classe GetStr ( DlgTemplate. dtClassName, pdata ) ; if ( HardcopyMode ) * DlgTemplate. dtClassName = 0 ; // du nom de la police et de sa taille GetStr ( FontInfo. szTypeFace, pdata ) ; GetI16 ( FontInfo. PointSize , pdata ) ; // du titre GetStr ( DlgTemplate. dtCaptionText, pdata ) ; // du style GetI32 ( DlgTemplate. dtStyle, pdata ) ; // Ce flag indique à CreateDialogIndirect qu'une structure de type FONTINFO // suit la DLGTEMPLATE... DlgTemplate. dtStyle |= DS_SETFONT ; // et du nombre de contrôles GetI16 ( DlgTemplate. dtItemCount, pdata ) ; // On vérifie l'origine de la fenêtre GetDefaultWindowPosition ( x, y, DlgTemplate. dtCX, DlgTemplate. dtCY ) ; if ( DlgTemplate. dtX == CW_USEDEFAULT ) DlgTemplate. dtX = x ; if ( DlgTemplate. dtY == CW_USEDEFAULT ) DlgTemplate. dtY = y ; // Allocation des DLGITEMTEMPLATEs if ( DlgTemplate. dtItemCount > 0 ) { ItemTemplates = new DLGITEMTEMPLATE [ DlgTemplate. dtItemCount ] ; DlgDatas = new TDialogEntryData [ DlgTemplate. dtItemCount ] ; memset ( DlgDatas, 0, sizeof ( TDialogEntryData ) * DlgTemplate. dtItemCount ) ; // Pour chaque contrôle... for ( i = 0, pItem = ItemTemplates ; i < DlgTemplate. dtItemCount ; i ++, pItem ++ ) { // Récupération de l'identificateur du contrôle GetI16 ( pItem -> dtilID, pdata ) ; // On saute les coordonnées en mode texte pdata += sizeof ( TDialogDimension ) ; // Récupération des coordonnées GetI16 ( pItem -> dtilX , pdata ) ; GetI16 ( pItem -> dtilY , pdata ) ; GetI16 ( pItem -> dtilCX, pdata ) ; GetI16 ( pItem -> dtilCY, pdata ) ; // Récupération du titre GetStr ( pItem -> dtilText, pdata ) ; // de la classe GetStr ( pItem -> dtilClass, pdata ) ; // du style GetI32 ( pItem -> dtilStyle, pdata ) ; if ( HardcopyMode ) { // Masquer les controles BorShade if ( ! stricmp( pItem -> dtilClass, "BorShade" ) && ( pItem -> dtilStyle & ( BSS_GROUP | BSS_RGROUP ) ) ) { pItem -> dtilStyle |= WS_DISABLED ; pItem -> dtilStyle &= ~WS_VISIBLE ; } // Transformer les BorStatic en Static else if ( ! stricmp ( pItem -> dtilClass, "BorStatic" ) ) { strcpy ( pItem -> dtilClass, "STATIC" ) ; if ( pItem -> dtilStyle & BSS_LEFT ) { pItem -> dtilStyle &= ~BSS_LEFT ; pItem -> dtilStyle |= SS_LEFT ; } if ( pItem -> dtilStyle & BSS_CENTER ) { pItem -> dtilStyle &= ~BSS_CENTER ; pItem -> dtilStyle |= SS_CENTER ; } if ( pItem -> dtilStyle & BSS_RIGHT ) { pItem -> dtilStyle &= ~BSS_RIGHT ; pItem -> dtilStyle |= SS_RIGHT ; } } } // On ne se préoccupe pas pour le moment des infos GetI16 ( unix_data_size , pdata ) ; GetI16 ( remote_data_size, pdata ) ; if ( unix_data_size ) memcpy ( DlgDatas + i, pdata, sizeof ( DlgDatas [i] ) ) ; pdata += unix_data_size ; pdata += remote_data_size ; // On ne gère pas les "RemoteData" pItem -> dtilInfo = 0 ; pItem -> dtilData = 0 ; // La modif suivante est annulée (pb de ressources disponibles // suite à la création de controles multiline : //************************************************************** // Aligner les numériques à droite // Cela se fait avant la création car je ne sais toujours pas // comment faire prendre en compte à un controle EDIT des // modifications de bits de style après la création du controle. /*** if ( * DlgDatas [i]. Format == 'd' ) { pItem -> dtilStyle &= ~ES_LEFT ; pItem -> dtilStyle &= ~ES_CENTER ; pItem -> dtilStyle |= ES_RIGHT | ES_MULTILINE ; } ***/ } } DialogBoxTemplate. DialogTemplate = DlgTemplate ; DialogBoxTemplate. FontInfo = FontInfo ; DialogBoxTemplate. DialogItemTemplates = ItemTemplates ; DialogBoxTemplate. DialogEntryData = DlgDatas ; }