Example #1
0
        protected override void OnRender(Gdi graphics, Rectangle clipRect)
        {
            if (_leftPart != null && _rightPart != null && _centerPart != null)
            {
                Rectangle rect = new Rectangle(clipRect.Left + _leftPartSize.Width,
                                                clipRect.Top,
                                                clipRect.Width - _rightPartSize.Width - _leftPartSize.Width,
                                                clipRect.Height);

                if (!_pressed)
                {
                    graphics.DrawImageAlphaChannel(_leftPart, clipRect.Left, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_rightPart, rect.Right, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_centerPart, rect);
                }
                else
                {
                    graphics.DrawImageAlphaChannel(_leftPartPressed, clipRect.Left, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_rightPartPressed, rect.Right, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_centerPartPressed, rect);
                }

                #region отрисовка текста комментария

                graphics.Font = Font;
                graphics.TextAlign = Galssoft.VKontakteWM.Components.Common.SystemHelpers.Win32.TextAlign.TA_LEFT;

                if (string.IsNullOrEmpty(_text))
                {
                    _text = string.Empty;

                    if (string.IsNullOrEmpty(_textSubstitute))
                    {
                        _textToPrint = string.Empty;
                    }
                    else
                    {
                        _textToPrint = _textSubstitute;
                    }

                    graphics.TextColor = FontColorUnactive;
                }
                else
                {
                    _textToPrint = _text;

                    graphics.TextColor = FontColor;
                }

                if (_pressed)
                {
                    graphics.TextColor = FontColorInvert;
                }

                if (!_textOld.Equals(_textToPrint))
                {
                    _textOld = _textToPrint;

                    _lines.Clear();
                }

                int topIndent = 0;

                int totalHeight = 0;
                int averageHeight = 0;

                #region распил текста на строчки выполняется только если _lines пустой

                if (_lines.Count == 0)
                {
                    //пилим по переносам строки...
                    string[] lines = _textToPrint.Split('\n');

                    foreach (string line in lines)
                    {
                        int ipreviouscol = 0;
                        string text = line;
                        string outtext = string.Empty;
                        int icol = text.Length;
                        int maxChars;

                        do
                        {
                            text = line.Substring(ipreviouscol);

                            int[] extents;

                            Size size = graphics.GetTextExtent(text, clipRect.Width - _leftPartSize.Width - _rightPartSize.Width, out extents, out maxChars);

                            totalHeight += size.Height * 11 / 10;

                            bool isSpace = false; //признак пробела
                            bool isOver = false; //признак необходимости новой строки

                            if (text.Length > maxChars)
                            {
                                isOver = true;

                                //ищем последний с позиции в начало maxChars пробел
                                int iSpace = text.LastIndexOf(' ', maxChars, maxChars);

                                if (iSpace > -1)
                                {
                                    isSpace = true;

                                    icol = iSpace;
                                }
                                else
                                {
                                    isSpace = false;

                                    icol = maxChars;
                                }

                                outtext = text.Substring(0, icol);
                            }
                            else
                            {
                                isOver = false;

                                outtext = text;
                            }

                            //учитываем пробел в конце строки
                            if (isSpace)
                            {
                                ipreviouscol += (icol + 1);
                            }
                            else
                            {
                                ipreviouscol += icol;
                            }

                            //добавляем точечки
                            if ((_lines.Count + 1) < 2)
                            {
                                _lines.Add(outtext);
                            }
                            else
                            {
                                if (isOver)
                                {
                                    outtext = outtext.Remove(outtext.Length - 3, 3);

                                    if (outtext.EndsWith(" "))
                                    {
                                        outtext = outtext.Remove(outtext.Length - 1, 1);
                                    }

                                    outtext += "...";
                                }

                                _lines.Add(outtext);

                                break;
                            }
                        }
                        while (text.Length > maxChars);

                        break;
                    }

                    _totalHeight = totalHeight;
                }

                #endregion

                totalHeight = _totalHeight;
                averageHeight = totalHeight / _lines.Count;

                foreach (string line in _lines)
                {
                    //для отображения используется прямоугольник 4/5 от ширины контрола
                    //отступ: 4 зазора от левого края
                    //graphics.ExtTextOut(clipRect.Left + (clipRect.Width - clipRect.Width * 4 / 5) / 4, clipRect.Top + topIndent + (clipRect.Height - totalHeight) / 2, line);

                    graphics.ExtTextOut(clipRect.Left + _leftPartSize.Width, clipRect.Top + topIndent + (clipRect.Height - totalHeight) / 2, line);

                    topIndent += averageHeight;
                }

                #endregion

            }

            /*            switch (Style)
                        {
                            case ButtonStyle.AlphaChannel:
                                IImage img1 = null;
                                if (_selected && !_pressed)
                                    img1 = TransparentButtonSelected;
                                if (_pressed || (_selected && img1 == null))
                                    img1 = TransparentButtonPressed;
                                if (!_pressed && !_selected)
                                    img1 = TransparentButton;

                                if (img1 != null)
                                    gMem.DrawImageAlphaChannel(img1, clipRect);
                                break;
                            case ButtonStyle.TransparentBackground:
                                ImageData img2 = null;
                                if (_selected && !_pressed)
                                    img2 = ButtonSelected;
                                if (_pressed || (_selected && img2 == null))
                                    img2 = ButtonPressed;
                                if (!_pressed && !_selected)
                                    img2 = Button;

                                if (img2 != null)
                                {
                                    int imgWidth = img2.ImageSize.Width;
                                    int imgHeight = img2.ImageSize.Height;
                                    gMem.TransparentImage(clipRect.Left, clipRect.Top,
                                                          clipRect.Width,
                                                          clipRect.Height,
                                                          img2.ImageHandle,
                                                          img2.ImageOffset.X,
                                                          img2.ImageOffset.Y,
                                                          imgWidth,
                                                          imgHeight,
                                                          img2.TransparentColor);
                                }
                                break;
                            default:
                                if (_pressed)
                                    gMem.FillRect(clipRect, BackColor);
                                else
                                    gMem.FillRect(clipRect, ForeColor);
                                break;
                        }

                        if (!string.IsNullOrEmpty(Text))
                        {
                            gMem.Font = Font;
                            gMem.TextColor = FontColor;
                            Size textSize = gMem.GetTextExtent(Text);
                            gMem.ExtTextOut(clipRect.Left + (clipRect.Width - textSize.Width) / 2,
                                            clipRect.Top + (clipRect.Height - textSize.Height) / 2, textSize.Width, Text);
                        }*/
        }
Example #2
0
        protected override void OnRender(Gdi graphics, Rectangle clipRect)
        {
            if (_leftPart != null && _rightPart != null && _centerPart != null)
            {
                var rect = new Rectangle(clipRect.Left + _leftPartSize.Width, clipRect.Top, clipRect.Width - _rightPartSize.Width - _leftPartSize.Width, clipRect.Height);

                int iconIndentWidth = 0;
                int iconIndentHeight = 0;

                switch(_iconType)
                {
                    case WideButtonWithIconType.Write:
                    case WideButtonWithIconType.Photo:
                        iconIndentWidth = 7;
                        iconIndentHeight = 6;
                        break;
                    case WideButtonWithIconType.Open:
                        iconIndentWidth = 5;
                        iconIndentHeight = 7;
                        break;
                }

                if (!_pressed)
                {
                    graphics.DrawImageAlphaChannel(_leftPart, clipRect.Left, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_rightPart, rect.Right, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_centerPart, rect);
                    graphics.DrawImageAlphaChannel(_icon, clipRect.Left + UISettings.CalcPix(iconIndentWidth), clipRect.Top + UISettings.CalcPix(iconIndentHeight));
                }
                else
                {
                    graphics.DrawImageAlphaChannel(_leftPartPressed, clipRect.Left, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_rightPartPressed, rect.Right, clipRect.Top);
                    graphics.DrawImageAlphaChannel(_centerPartPressed, rect);
                    graphics.DrawImageAlphaChannel(_icon, clipRect.Left + UISettings.CalcPix(iconIndentWidth), clipRect.Top + UISettings.CalcPix(iconIndentHeight + 1));
                }

                if (!string.IsNullOrEmpty(Text))
                {
                    FontGdi font = Font;

                    if (_pressed)
                    {
                        font = PressedFont;
                    }

                    /*else if (_selected)
                        font = SelectedFont;*/

                    Color color = FontColor;

                    if (_pressed)
                    {
                        color = PressedFontColor;
                    }

                    /*else if (_selected)
                        color = SelectedFontColor;*/

                    graphics.Font = font;
                    graphics.TextColor = color;

                    Size textSize = graphics.GetTextExtent(Text);

                    int topAdjust = 0;

                    switch (VerticalTextAlignment)
                    {
                        case VerticalAlignment.Top:
                            topAdjust = 0 + _verticalTextMargin;
                            break;

                        case VerticalAlignment.Bottom:
                            topAdjust = Height - textSize.Height - _verticalTextMargin;
                            break;

                        case VerticalAlignment.Center:
                            topAdjust = (Height - textSize.Height) / 2;
                            break;
                    }

                    int pressIndent = 0;

                    if (_pressed)
                    {
                        pressIndent = UISettings.CalcPix(1);
                    }

                    //if (_dropShadow && !_pressed)
                    if (_dropShadow)
                    {
                        graphics.TextColor = FontColorShadow;

                        //graphics.ExtTextOut(clipRect.Left + (clipRect.Width - textSize.Width) / 2 + UISettings.CalcPix(1), clipRect.Top + topAdjust + UISettings.CalcPix(1), textSize.Width, Text);
                        graphics.ExtTextOut(clipRect.Left + UISettings.CalcPix(22 + 5), clipRect.Top + topAdjust + UISettings.CalcPix(1) + pressIndent, textSize.Width, Text);
                    }

                    graphics.TextColor = color;

                    //graphics.ExtTextOut(clipRect.Left + (clipRect.Width - textSize.Width) / 2, clipRect.Top + topAdjust, textSize.Width, Text);
                    graphics.ExtTextOut(clipRect.Left + UISettings.CalcPix(22 + 5), clipRect.Top + topAdjust + pressIndent, textSize.Width, Text);
                }
            }
        }
Example #3
0
        protected override void OnRender(Gdi graphics, Rectangle clipRect)
        {
            graphics.Font = Font;
            graphics.TextAlign = Galssoft.VKontakteWM.Components.Common.SystemHelpers.Win32.TextAlign.TA_LEFT;

            if (string.IsNullOrEmpty(_text))
            {
                _text = string.Empty;
            }

            _textToPrint = _text.Replace("<br>", "\n");

            if (!_textOld.Equals(_textToPrint))
            {
                _textOld = _textToPrint;

                _lines.Clear();
            }

            int totalHeight = 0;
            int averageHeight = 0;

            #region распил текста на строчки выполняется только если _lines пустой

            if (_lines.Count == 0)
            {
                //пилим по переносам строки...
                string[] lines = _textToPrint.Split('\n');

                foreach (string line in lines)
                {
                    int ipreviouscol = 0;
                    string text = line;
                    string outtext = string.Empty;
                    int icol = text.Length;
                    int maxChars;

                    do
                    {
                        text = line.Substring(ipreviouscol);

                        int[] extents;

                        Size size = graphics.GetTextExtent(text, clipRect.Width, out extents, out maxChars);

                        totalHeight += size.Height;

                        if (totalHeight > clipRect.Height)
                        {
                            totalHeight -= size.Height;

                            break;
                        }

                        bool isSpace = false; //признак пробела

                        if (text.Length > maxChars)
                        {
                            //ищем последний с позиции в начало maxChars пробел
                            int iSpace = text.LastIndexOf(' ', maxChars, maxChars);

                            if (iSpace > -1)
                            {
                                isSpace = true;

                                icol = iSpace;
                            }
                            else
                            {
                                isSpace = false;

                                icol = maxChars;
                            }

                            outtext = text.Substring(0, icol);
                        }
                        else
                        {
                            outtext = text;
                        }

                        //учитываем пробел в конце строки
                        if (isSpace)
                        {
                            ipreviouscol += (icol + 1);
                        }
                        else
                        {
                            ipreviouscol += icol;
                        }

                        _lines.Add(outtext);
                    }
                    while (text.Length > maxChars);
                }

                _totalHeight = totalHeight;
            }

            #endregion

            totalHeight = _totalHeight;

            if (_lines.Count != 0)
            {
                averageHeight = totalHeight / _lines.Count;
            }

            int iter = 0;

            foreach (string line in _lines)
            {
                int leftIndent = 0;
                int topIndent = 0;

                Size size = graphics.GetTextExtent(line);

                switch (HorizontalTextAlignment)
                {
                    case HorizontalAlignment.Left:
                        leftIndent = clipRect.Left;
                        break;

                    case HorizontalAlignment.Center:
                    case HorizontalAlignment.Stretch:
                        leftIndent = clipRect.Left + (clipRect.Width - size.Width) / 2;
                        break;

                    case HorizontalAlignment.Right:
                        leftIndent = clipRect.Left + (clipRect.Width - size.Width);
                        break;
                }

                switch (VerticalTextAlignment)
                {
                    case VerticalAlignment.Top:
                        topIndent = clipRect.Top;
                        break;

                    case VerticalAlignment.Center:
                    case VerticalAlignment.Stretch:
                        topIndent = clipRect.Top + (clipRect.Height - totalHeight) / 2;
                        break;

                    case VerticalAlignment.Bottom:
                        topIndent = clipRect.Top + (clipRect.Height - totalHeight);
                        break;
                }

                //тень
                if (_dropShadow)
                {
                    graphics.TextColor = FontColorShadow;
                    graphics.ExtTextOut(leftIndent + UISettings.CalcPix(1), topIndent + averageHeight * iter + UISettings.CalcPix(1), line);
                }

                graphics.TextColor = FontColor;
                graphics.ExtTextOut(leftIndent, topIndent + averageHeight * iter, line);

                iter++;
            }
        }
        protected override void DrawItemOn(Gdi g, NativeItemData nativeItem, Rectangle rItem, int nItem)
        {
            if (rItem.Height > Settings.ListItemPixSize)
                rItem = new Rectangle(rItem.Left,
                                      rItem.Top + rItem.Height - Settings.ListItemPixSize,
                                      rItem.Width,
                                      Settings.ListItemPixSize);

            DrawItemBackgroundOn(g, nativeItem, rItem, nItem, /*nItem == SelectedIndex*/ false);

            var rSep = new Rectangle(rItem.Left, rItem.Bottom - 1, rItem.Width, 1);
            g.FillRect(rSep, Settings.ListItemSeparator);

            // write name
            if (!string.IsNullOrEmpty(nativeItem.PrimaryText))
            {
                g.Font = Settings.PrimaryTextFontGdi;
                g.TextAlign = Win32.TextAlign.TA_LEFT;
                g.TextColor = Settings.ListItemTextColor;
                g.ExtTextOut(rItem.Left + nativeItem.InfoLeftIndents[0],
                    rItem.Top + nativeItem.InfoTopIndents[0],
                    nativeItem.PrimaryText);
            }

            base.DrawItemOn(g, nativeItem, rItem, nItem);
        }
Example #5
0
        protected override void OnRender(Gdi gMem, Rectangle clipRect)
        {
            switch (Style)
            {
                case ButtonStyle.AlphaChannel:
                    IImage img1 = null;
                    if (_selected && !_pressed)
                        img1 = TransparentButtonSelected;
                    if (_pressed || (_selected && img1 == null))
                        img1 = TransparentButtonPressed;
                    if (!_pressed && !_selected)
                        img1 = TransparentButton;

                    if (img1 != null)
                        gMem.DrawImageAlphaChannel(img1, clipRect);
                    break;
                case ButtonStyle.TransparentBackground:
                    ImageData img2 = null;
                    if (_selected && !_pressed)
                        img2 = ButtonSelected;
                    if (_pressed || (_selected && img2 == null))
                        img2 = ButtonPressed;
                    if (!_pressed && !_selected)
                        img2 = Button;

                    if (img2 != null)
                    {
                        int imgWidth = img2.ImageSize.Width;
                        int imgHeight = img2.ImageSize.Height;
                        gMem.TransparentImage(clipRect.Left, clipRect.Top,
                                              clipRect.Width,
                                              clipRect.Height,
                                              img2.ImageHandle,
                                              img2.ImageOffset.X,
                                              img2.ImageOffset.Y,
                                              imgWidth,
                                              imgHeight,
                                              img2.TransparentColor);
                    }
                    break;
                default:
                    if (_pressed || _selected)
                        gMem.FillRect(clipRect, BackColor);
                    else
                        gMem.FillRect(clipRect, ForeColor);
                    break;
            }

            if (!string.IsNullOrEmpty(Text))
            {
                FontGdi font = Font;
                if (_pressed)
                    font = PressedFont;
                else if (_selected)
                    font = SelectedFont;

                Color color = FontColor;
                if (_pressed)
                    color = PressedFontColor;
                else if (_selected)
                    color = SelectedFontColor;

                gMem.Font = font;
                gMem.TextColor = color;
                Size textSize = gMem.GetTextExtent(Text);

                int topAdjust = 0;
                switch (VerticalTextAlignment)
                {
                    case VerticalAlignment.Top:
                        topAdjust = 0 + _verticalTextMargin;
                        break;
                    case VerticalAlignment.Bottom:
                        topAdjust = Height - textSize.Height - _verticalTextMargin;
                        break;
                    case VerticalAlignment.Center:
                        topAdjust = (Height - textSize.Height) / 2;
                        break;
                }

                gMem.ExtTextOut(clipRect.Left + (clipRect.Width - textSize.Width) / 2,
                                clipRect.Top + topAdjust, textSize.Width, Text);
            }
        }
Example #6
0
        protected override void OnRender(Gdi graphics, Rectangle clipRect)
        {
            //graphics.DrawText(_message,
            //  new Win32.RECT(_textRectangle.X,
            //                 _textRectangle.Y,
            //                 _textRectangle.Width,
            //                 _textRectangle.Height),
            //  Win32.DT.LEFT | Win32.DT.TOP | Win32.DT.WORDBREAK);

            clipRect.Intersect(this.Rectangle);
            if (clipRect.IsEmpty)
                return;

            //base.OnRender(graphics, clipRect);

            //SetupDefaultClip(g);
            float topAdjust = 0;
            switch (VerticalTextAlignment)
            {
                case VerticalAlignment.Top:
                    topAdjust = 0;
                    break;
                case VerticalAlignment.Bottom:
                    //topAdjust = ClientHeight - _totalHeight;
                    topAdjust = Height - _totalHeight;
                    break;
                case VerticalAlignment.Center:
                    //topAdjust = (ClientHeight - _totalHeight) / 2;
                    topAdjust = (Height - _totalHeight) / 2;
                    break;
            }

            if (BackColor != Color.Transparent)
            {
                graphics.FillRect(
                    //new Rectangle(e.Origin.X, e.Origin.Y, ClientWidth, ClientHeigh),
                    clipRect,
                    BackColor);
            }

            foreach (LineBreak lineBreak in _lineBreaks)
            {
                float leftAdjust = 0;
                switch (HorizontalTextAlignment)
                {
                    case HorizontalAlignment.Left:
                        leftAdjust = 0;
                        break;
                    case HorizontalAlignment.Right:
                        //leftAdjust = ClientWidth - lineBreak.Width;
                        leftAdjust = Width - lineBreak.Width;
                        break;
                    case HorizontalAlignment.Center:
                        //leftAdjust = (ClientWidth - lineBreak.Width) / 2.0f;
                        leftAdjust = (Width - lineBreak.Width) / 2.0f;
                        break;
                }

                Rectangle drawRect = new Rectangle(this.Left + Margin.Left + (int)leftAdjust,
                this.Top + Margin.Top + (int)topAdjust, (int)lineBreak.Width, (int)lineBreak.Height);
                if (clipRect.IntersectsWith(drawRect))
                {
                    graphics.Font = Font;
                    graphics.TextColor = ForeColor;
                    //graphics.
                    //TODO: chhange all this code to only one single DrawText
                    graphics.ExtTextOut(drawRect.Left, drawRect.Top, drawRect.Width,
                        lineBreak.Text);
                    //	new Galssoft.WM.Components.SystemHelpers.Win32.RECT(drawRect), Galssoft.WM.Components.SystemHelpers.Win32.DT.LEFT);
                    //Font, myForeBrush, e.Origin.X + leftAdjust, e.Origin.Y + topAdjust);
                }
                topAdjust += lineBreak.Height;
                if (topAdjust > Height)
                    break;
            }
        }
            public override void DrawItemOn(Gdi g, Rectangle rItem)
            {
                int x = rItem.Width / 2;
                int y = (rItem.Height - _imageSize.Height) / 2;

                Color color1;
                Color color2;

                g.Font = Font;

                if ((string)DataSource.OptionValue == DataSource.OptionValues[0])
                {
                    if (_itemLeftSelected != null)
                        g.DrawImageAlphaChannel(_itemLeftSelected, rItem.Left + x - _imageSize.Width, rItem.Top + y);
                    if (_itemRight != null)
                        g.DrawImageAlphaChannel(_itemRight, rItem.Left + x, rItem.Top + y);
                    color1 = Color.White;
                    color2 = Color.Gray;
                }
                else
                {
                    if (_itemLeft != null)
                        g.DrawImageAlphaChannel(_itemLeft, rItem.Left + x - _imageSize.Width, rItem.Top + y);
                    if (_itemRightSelected != null)
                        g.DrawImageAlphaChannel(_itemRightSelected, rItem.Left + x, rItem.Top + y);
                    color1 = Color.Gray;
                    color2 = Color.White;
                }

                g.TextAlign = Win32.TextAlign.TA_LEFT;
                g.TextColor = color1;
                Size textSize = g.GetTextExtent(DataSource.OptionValues[0]);
                y = (rItem.Height - textSize.Height) / 2;
                int left = x - _imageSize.Width;
                g.ExtTextOut(rItem.Left + left, rItem.Top + y, _imageSize.Width, DataSource.OptionValues[0]);
                g.TextColor = color2;
                left = x;
                g.ExtTextOut(rItem.Left + left, rItem.Top + y, _imageSize.Width, DataSource.OptionValues[1]);
            }
Example #8
0
        protected override void DrawItemOn(Gdi g, NativeItemData nativeItem, Rectangle rItem, int nItem)
        {
            //Дефолтный цвет для Enabled элементов
            g.TextColor = Settings.ListItemTextColor;

            #region Отображение disabled элементов
            bool isNotifficationOff = false;
            foreach (var item in Items)
            {
                if (item.OptionName == nativeItem.PrimaryText)
                {
                    //Выясняем стоит ли BackgroundNotification в Off
                    foreach (var item2 in Items)
                    {
                        if (item2.OptionName == Resources.BackgroundNotification &&
                        (string)item2.OptionValue == Resources.Settings_Off)
                            isNotifficationOff = true;
                    }

                    if (item.OptionName == Resources.Settings_Messages)
                    {
                        //((CheckBoxNativeItemData) nativeItem).CheckBoxSelected = MasterForm.SkinManager.GetImage("SettingsUnavailable");
                        g.TextColor = Color.FromArgb(213, 213, 213);
                    }
                    if (item.OptionName == Resources.Settings_Comments && isNotifficationOff)
                    {
                        //((CheckBoxNativeItemData) nativeItem).CheckBoxSelected = MasterForm.SkinManager.GetImage("SettingsUnavailable");
                        g.TextColor = Color.FromArgb(213, 213, 213);
                    }
                    if (item.OptionName == Resources.Settings_Friends && isNotifficationOff)
                    {
                        //((CheckBoxNativeItemData) nativeItem).CheckBoxSelected = MasterForm.SkinManager.GetImage("SettingsUnavailable");
                        g.TextColor = Color.FromArgb(213, 213, 213);
                    }
                    if (item.OptionName == Resources.Settings_FriendsNews && isNotifficationOff)
                    {
                        //((CheckBoxNativeItemData) nativeItem).CheckBoxSelected = MasterForm.SkinManager.GetImage("SettingsUnavailable");
                        g.TextColor = Color.FromArgb(213, 213, 213);
                    }
                    if (item.OptionName == Resources.Settings_FriendsPhotos && isNotifficationOff)
                    {
                        //((CheckBoxNativeItemData) nativeItem).CheckBoxSelected = MasterForm.SkinManager.GetImage("SettingsUnavailable");
                        g.TextColor = Color.FromArgb(213, 213, 213);
                    }
                    if (item.OptionName == Resources.Settings_WallMessages && isNotifficationOff)
                    {
                        //((CheckBoxNativeItemData) nativeItem).CheckBoxSelected = MasterForm.SkinManager.GetImage("SettingsUnavailable");
                        g.TextColor = Color.FromArgb(213, 213, 213);
                    }
                }
            }
            #endregion

            if (rItem.Height > Settings.ListItemPixSize)
                rItem = new Rectangle(rItem.Left,
                                      rItem.Top + rItem.Height - Settings.ListItemPixSize,
                                      rItem.Width,
                                      Settings.ListItemPixSize);
            //Не надо делать выделение
            DrawItemBackgroundOn(g, nativeItem, rItem, nItem, /*nItem == SelectedIndex*/ false);

            var rSep = new Rectangle(rItem.Left, rItem.Bottom - 1, rItem.Width, 1);
            g.FillRect(rSep, Settings.ListItemSeparator);

            // write name
            if (!string.IsNullOrEmpty(nativeItem.PrimaryText))
            {
                g.Font = Settings.PrimaryTextFontGdi;
                g.TextAlign = Win32.TextAlign.TA_LEFT;
                g.ExtTextOut(rItem.Left + nativeItem.InfoLeftIndents[0],
                             rItem.Top + nativeItem.InfoTopIndents[0],
                             nativeItem.PrimaryText);
            }

            base.DrawItemOn(g, nativeItem, rItem, nItem);
        }
Example #9
0
        protected override void DrawGroupHeaderOn(Gdi gMem, int item, Rectangle rHeaderArea)
        {
            //// Draw Group Header Text
            //gMem.Font = Settings.GroupFont;
            //gMem.TextAlign = Win32.TextAlign.TA_RIGHT;
            //gMem.TextColor = Settings.ListGroupTextColor;

            //Size newSize = gMem.GetTextExtent(GetItemAtIndex(item).Group);

            //gMem.ExtTextOut(rHeaderArea.Right - UISettings.CalcPix(10), rHeaderArea.Top + (rHeaderArea.Height - newSize.Height) / 2, GetItemAtIndex(item).Group, true);

            //gMem.ExtTextOut(rHeaderArea.Left + Settings.GroupPixTopMargin * 3,
            //                rHeaderArea.Top,
            //                GetItemAtIndex(item).Group, true);

            //gMem.ExtTextOut(rHeaderArea.Right - UISettings.CalcPix(10),
            //    rHeaderArea.Top + Settings.GroupPixTopMargin * 2,
            //    GetItemAtIndex(item).Group, true);

            gMem.Font = Settings.GroupFont;
            gMem.TextAlign = Win32.TextAlign.TA_RIGHT;

            Size newSize = gMem.GetTextExtent(GetItemAtIndex(item).Group);

            gMem.TextColor = Color.FromArgb(150, 150, 150);
            gMem.ExtTextOut(rHeaderArea.Right - UISettings.CalcPix(10) + UISettings.CalcPix(1), rHeaderArea.Top + (rHeaderArea.Height - newSize.Height) / 2 + UISettings.CalcPix(1), GetItemAtIndex(item).Group);

            gMem.TextColor = Settings.ListGroupTextColor;
            gMem.ExtTextOut(rHeaderArea.Right - UISettings.CalcPix(10), rHeaderArea.Top + (rHeaderArea.Height - newSize.Height) / 2, GetItemAtIndex(item).Group);
        }