Ejemplo n.º 1
0
 protected internal DialogBase(DialogResource resource, uint language, bool isExtended)
 {
     Resource   = resource;
     Language   = language;
     IsExtended = isExtended;
 }
Ejemplo n.º 2
0
        internal DialogEx(DialogResource resource, uint language, DialogItemEx[] items) : base(resource, language, true)
        {
            _items = items;

            Count = items.Length;
        }
Ejemplo n.º 3
0
        internal static async Task <DialogEx> CreateAsync(DialogResource resource, uint language, Stream stream)
        {
            var version = await stream.ReadUInt16Async().ConfigureAwait(false);

            var signature = await stream.ReadUInt16Async().ConfigureAwait(false);

            var helpId = await stream.ReadUInt32Async().ConfigureAwait(false);

            var exStyles = await stream.ReadUInt32Async().ConfigureAwait(false);

            var styles = await stream.ReadUInt32Async().ConfigureAwait(false);

            var itemCount = await stream.ReadUInt16Async().ConfigureAwait(false);

            var x = await stream.ReadInt16Async().ConfigureAwait(false);

            var y = await stream.ReadInt16Async().ConfigureAwait(false);

            var position = new Point(x, y);
            var cx       = await stream.ReadInt16Async().ConfigureAwait(false);

            var cy = await stream.ReadInt16Async().ConfigureAwait(false);

            var size   = new Size(cx, cy);
            var menuId = await ResourceUtils.OrdOrSzAsync(stream).ConfigureAwait(false);

            ResourceId menu;

            if (menuId.Item1 > 0)
            {
                menu = menuId.Item1;
            }
            else
            {
                menu = menuId.Item2;
            }

            var classId = await ResourceUtils.OrdOrSzAsync(stream).ConfigureAwait(false);

            ResourceId cls;

            if (classId.Item1 > 0)
            {
                cls = classId.Item1;
            }
            else
            {
                cls = classId.Item2;
            }

            var title = await stream.ReadUnicodeStringAsync().ConfigureAwait(false);

            var  dialogStyles = (DialogStyle)styles;
            Font font         = null;
            var  charSet      = CharacterSet.ANSI;

            if ((dialogStyles & DialogStyle.DS_SETFONT) == DialogStyle.DS_SETFONT || (dialogStyles & DialogStyle.DS_SHELLFONT) == DialogStyle.DS_SHELLFONT)
            {
                var pointSize = await stream.ReadUInt16Async().ConfigureAwait(false);

                var weight = await stream.ReadUInt16Async().ConfigureAwait(false);

                var italic = await stream.ReadByteAsync().ConfigureAwait(false);

                var fontStyle = (italic > 0 ? FontStyle.Italic : FontStyle.Regular);

                charSet = (CharacterSet)await stream.ReadByteAsync().ConfigureAwait(false);

                var typeFace = await stream.ReadUnicodeStringAsync().ConfigureAwait(false);

                font = new Font(typeFace, pointSize, fontStyle);
            }
            else
            {
                font = null;
            }

            var items = new List <DialogItemEx>(itemCount);

            for (var i = 0; i < itemCount; i++)
            {
                while (stream.Position % 4 != 0)
                {
                    await stream.ReadByteAsync().ConfigureAwait(false);
                }

                var item = await DialogItemEx.CreateAsync(stream).ConfigureAwait(false);

                items.Add(item);
            }

            var dialog = new DialogEx(resource, language, items.ToArray())
            {
                HelpId         = helpId,
                ExtendedStyles = exStyles,
                Styles         = styles,
                Position       = position,
                Size           = size,
                Menu           = menu,
                Class          = cls,
                Title          = title,
                Font           = font,
                CharSet        = charSet
            };

            return(dialog);
        }
Ejemplo n.º 4
0
Archivo: Dialog.cs Proyecto: zzfeed/pe
 internal Dialog(DialogResource resource, uint language) : base(resource, language, false)
 {
 }