Появилось немного свободного времени...
От: WFrag США  
Дата: 10.06.03 15:03
Оценка:
Если чем могу помочь — я к вашим услугам .
... << RSDN@Home 1.1 alpha 1 >>
Re: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.06.03 15:11
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Если чем могу помочь — я к вашим услугам .


А чего хочешь?
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[2]: Появилось немного свободного времени...
От: WFrag США  
Дата: 10.06.03 15:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, WFrag, Вы писали:


WF>>Если чем могу помочь — я к вашим услугам .


AVK>А чего хочешь?


Ну... Хочу пописать что-нибудь.
... << RSDN@Home 1.1 alpha 1 >>
Re[3]: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.06.03 15:41
Оценка:
Здравствуйте, WFrag, Вы писали:

AVK>>А чего хочешь?


WF>Ну... Хочу пописать что-нибудь.


Что именно? Если все равно, то смотри что тебя (других юзеров) в текущем хоуме не устраивает и предлагай варианты как это исправить. Будем обсуждать. Вот например нужно прикрутить стили (цветовые схемы, скины).
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[4]: Появилось немного свободного времени...
От: WFrag США  
Дата: 10.06.03 16:31
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, WFrag, Вы писали:


AVK>>>А чего хочешь?


WF>>Ну... Хочу пописать что-нибудь.


AVK>Что именно? Если все равно, то смотри что тебя (других юзеров) в текущем хоуме не устраивает и предлагай варианты как это исправить. Будем обсуждать. Вот например нужно прикрутить стили (цветовые схемы, скины).


Неплохо было бы цветовые схемы. Где-нибудь в настройках, например, еще одна закладка. Чтоб можно было загрузить/настроить/сохранить. По типу горячих клавиш, там в принципе, один в один будет.

Можно, например, как и с шоркатами — помечать Color-свойства специальным аттрибутом — что-то вроде ConfigurableColorAttribute, настраиваемый цвет.

Правда непонятно, как, например, при загрузке устанавливать все цвета? Можно просто обходить дерево контролов, искать у них Color-свойства с нужным аттрибутом, искать в карте настроек цвет и его устанавливать.
... << RSDN@Home 1.1 alpha 1 >>
Re[5]: Появилось немного свободного времени...
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.06.03 18:44
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Неплохо было бы цветовые схемы. Где-нибудь в настройках, например, еще одна закладка. Чтоб можно было загрузить/настроить/сохранить. По типу горячих клавиш, там в принципе, один в один будет.


Сначала нужно сериализацию для цветов сделать. У нашего сериализатора конфигов позгов не хватает чтобы сохранить цвета.

В общем, вся задача сводится к превращению цвета в строку и обратно.

WF>Можно, например, как и с шоркатами — помечать Color-свойства специальным аттрибутом — что-то вроде ConfigurableColorAttribute, настраиваемый цвет.


Да их и помечать не нужно. Они и так ЦВЕТ. Вот только таких свойств пока нет. Color не сохраняется.

WF>Правда непонятно, как, например, при загрузке устанавливать все цвета? Можно просто обходить дерево контролов, искать у них Color-свойства с нужным аттрибутом, искать в карте настроек цвет и его устанавливать.


Ничего не надо обходить. Есть такой класс Config. Это синглтон. Доступ к экземпляру Config.Instancr. Любое его публичное свойство или переменная сохраняется в хмл. Но сохранялка кривая и именно Color сохранять не умеет. Так что для начала для каждого цвета нужно завести по свойству в конфиге и создать врапер-класс для сериализации цвета в строку и обратно.

Далее везеде где есть цвета нужно встроить доступ к этим свойствам. Ну, а сохраннение и загрузка тем — это приметивный код который отбирает свойства типа ТвойВрапер и сбрасывает/загружает их значение в отдельный хмл-файл.
... << RSDN@Home 1.1 alpha 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Появилось немного свободного времени...
От: WFrag США  
Дата: 11.06.03 03:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, WFrag, Вы писали:


WF>>Неплохо было бы цветовые схемы. Где-нибудь в настройках, например, еще одна закладка. Чтоб можно было загрузить/настроить/сохранить. По типу горячих клавиш, там в принципе, один в один будет.


VD>Сначала нужно сериализацию для цветов сделать. У нашего сериализатора конфигов позгов не хватает чтобы сохранить цвета.


Это не проблема. Поиск по РСДН-у, как и говорил АВК, дал вполне определенный результат.

VD>В общем, вся задача сводится к превращению цвета в строку и обратно.


WF>>Можно, например, как и с шоркатами — помечать Color-свойства специальным аттрибутом — что-то вроде ConfigurableColorAttribute, настраиваемый цвет.


VD>Да их и помечать не нужно. Они и так ЦВЕТ. Вот только таких свойств пока нет. Color не сохраняется.


WF>>Правда непонятно, как, например, при загрузке устанавливать все цвета? Можно просто обходить дерево контролов, искать у них Color-свойства с нужным аттрибутом, искать в карте настроек цвет и его устанавливать.


VD>Ничего не надо обходить. Есть такой класс Config. Это синглтон. Доступ к экземпляру Config.Instancr. Любое его публичное свойство или переменная сохраняется в хмл. Но сохранялка кривая и именно Color сохранять не умеет. Так что для начала для каждого цвета нужно завести по свойству в конфиге и создать врапер-класс для сериализации цвета в строку и обратно.


Я хотел другой способ. Не формы/контролы опрашивают конфиг о цветах, а специальный менеджер обходит формы/контролы и устанавливает в них экспортированные (посредством аттрибута) цвета в значение из конфига. Аттрибут также нужен для описания цвета. Например вот так (в ForumDummyForm.cs):

[ConfigurableColor( "Фон дерева сообщений" )]
public Color TreeGridBack
{
    get
    {
        return this.treeGrid.BackColor;
    }
    set
    {
        this.treeGrid.BackColor = value;
    }
}



Далее отдаем на съедение нужные формы/контролы менеджеру, он их пробегает, строит список настраиваемых цветов, и вставляет их каким-нибудь образом в PropertyGrid, например. Или куда-нибудь еще, короче, дает возможность их изменить. После изменения, менеджер пробегает по всем данным ему контртолам и вставляет цвета. Этот способ хорош тем, что:
1. Все что нужно — "экспортировать" цвет, пометив свойство аттрибутом. В контроле декларируются визуальные свойства, которые можно настраивать (можно не только цвета, а в принципе, любое визуальное свойство контрола) — и менеджер тем дает пользователю их настроить.
2. Если цвет изменился — менеджер его может просто изменить у контрола, не нужно контролу самому откуда-то доставать цвета, устанавливать их при их изменении.

VD>Далее везеде где есть цвета нужно встроить доступ к этим свойствам. Ну, а сохраннение и загрузка тем — это приметивный код который отбирает свойства типа ТвойВрапер и сбрасывает/загружает их значение в отдельный хмл-файл.
... << RSDN@Home 1.1 alpha 1 >>
Re[5]: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.06.03 06:01
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Неплохо было бы цветовые схемы. Где-нибудь в настройках, например, еще одна закладка. Чтоб можно было загрузить/настроить/сохранить. По типу горячих клавиш, там в принципе, один в один будет.


WF>Можно, например, как и с шоркатами — помечать Color-свойства специальным аттрибутом — что-то вроде ConfigurableColorAttribute, настраиваемый цвет.


WF>Правда непонятно, как, например, при загрузке устанавливать все цвета? Можно просто обходить дерево контролов, искать у них Color-свойства с нужным аттрибутом, искать в карте настроек цвет и его устанавливать.


Вот только нужно не только цвета, но еще и шрифты хотя бы настраивать.
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[6]: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.06.03 06:01
Оценка:
Здравствуйте, VladD2, Вы писали:

WF>>Неплохо было бы цветовые схемы. Где-нибудь в настройках, например, еще одна закладка. Чтоб можно было загрузить/настроить/сохранить. По типу горячих клавиш, там в принципе, один в один будет.


VD>Сначала нужно сериализацию для цветов сделать.


Да, проблема.

VD>У нашего сериализатора конфигов позгов не хватает чтобы сохранить цвета.


Сериализатор тут не при чем. При чем Color.

VD>В общем, вся задача сводится к превращению цвета в строку и обратно.


Эта задача уже решена, называется ColorTypeConvertor.

WF>>Правда непонятно, как, например, при загрузке устанавливать все цвета? Можно просто обходить дерево контролов, искать у них Color-свойства с нужным аттрибутом, искать в карте настроек цвет и его устанавливать.


VD>Ничего не надо обходить. Есть такой класс Config. Это синглтон. Доступ к экземпляру Config.Instancr.


Я думаю не стоит в конфиге хранить всю схему. Лучше только имя файла, а саму схему в отдельном файле, чтобы человек мог просто готовый файл скачать.
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[7]: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.06.03 06:01
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Я хотел другой способ. Не формы/контролы опрашивают конфиг о цветах, а специальный менеджер обходит формы/контролы и устанавливает в них экспортированные (посредством аттрибута) цвета в значение из конфига.


Мысль конечно правильная, но не факт что реализуемая. Сейчас нет никакой формализуемой структуры связей экземпляров элементов гуя. Кто то один раз создается и по сути синглтон, кто то поднимается по запросу, кто то дергается при каждом обращении. В общем продумывать надо, так сразу трудно что то определенное сказать.

WF>Далее отдаем на съедение нужные формы/контролы менеджеру,


А кто это будет делать?

WF> он их пробегает, строит список настраиваемых цветов, и вставляет их каким-нибудь образом в PropertyGrid, например. Или куда-нибудь еще, короче, дает возможность их изменить. После изменения, менеджер пробегает по всем данным ему контртолам и вставляет цвета. Этот способ хорош тем, что:

WF>1. Все что нужно — "экспортировать" цвет, пометив свойство аттрибутом. В контроле декларируются визуальные свойства, которые можно настраивать (можно не только цвета, а в принципе, любое визуальное свойство контрола) — и менеджер тем дает пользователю их настроить.
WF>2. Если цвет изменился — менеджер его может просто изменить у контрола, не нужно контролу самому откуда-то доставать цвета, устанавливать их при их изменении.

Есть у него и недостатки — структура схемы в общем случае не определена. Стоит подумать о жестком описании в xml-файле набора свойств, управляемых стилизатором.
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[8]: Появилось немного свободного времени...
От: WFrag США  
Дата: 11.06.03 06:50
Оценка:
Здравствуйте, AndrewVK, Вы писали:

WF>>Я хотел другой способ. Не формы/контролы опрашивают конфиг о цветах, а специальный менеджер обходит формы/контролы и устанавливает в них экспортированные (посредством аттрибута) цвета в значение из конфига.


AVK>Мысль конечно правильная, но не факт что реализуемая. Сейчас нет никакой формализуемой структуры связей экземпляров элементов гуя. Кто то один раз создается и по сути синглтон, кто то поднимается по запросу, кто то дергается при каждом обращении. В общем продумывать надо, так сразу трудно что то определенное сказать.


WF>>Далее отдаем на съедение нужные формы/контролы менеджеру,


AVK>А кто это будет делать?


Да, с этим проблема.

Хотя, можно, например, в конструкторе контрола регистрироваться в менеджере (менеджер — синглтон). При этом, менеджер может держать слабые ссылки на зарегистрированные контролы (чтобы не продлевать их жизнь зря).

WF>> он их пробегает, строит список настраиваемых цветов, и вставляет их каким-нибудь образом в PropertyGrid, например. Или куда-нибудь еще, короче, дает возможность их изменить. После изменения, менеджер пробегает по всем данным ему контртолам и вставляет цвета. Этот способ хорош тем, что:

WF>>1. Все что нужно — "экспортировать" цвет, пометив свойство аттрибутом. В контроле декларируются визуальные свойства, которые можно настраивать (можно не только цвета, а в принципе, любое визуальное свойство контрола) — и менеджер тем дает пользователю их настроить.
WF>>2. Если цвет изменился — менеджер его может просто изменить у контрола, не нужно контролу самому откуда-то доставать цвета, устанавливать их при их изменении.

AVK>Есть у него и недостатки — структура схемы в общем случае не определена. Стоит подумать о жестком описании в xml-файле набора свойств, управляемых стилизатором.


Ну да, можно просто в неком xml задавать, какие вообще бывают настройки стиля, т.е описание, название(ключ), тип. А контрол просто просит у менеджера по заданным ключам элемент стиля.

Получаем два варианта (которые могут быть реализованны одновременно):
1. Контрол сам опрашивает менеджера стилей (при этом контролу следует подписаться на изменения стилей).
2. Менеджер стилей сам устанавливает требуемые свойства (при этом контрол должен быть зарегистрирован в менеджере и размечен аттрибутами).

Ну и нужно держать синхронизованными xml-описание схемы стиля и код, использующий ключи для доступа к параметру схемы.
... << RSDN@Home 1.1 alpha 1 >>
Re[9]: Появилось немного свободного времени...
От: WFrag США  
Дата: 11.06.03 12:07
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Ну да, можно просто в неком xml задавать, какие вообще бывают настройки стиля, т.е описание, название(ключ), тип. А контрол просто просит у менеджера по заданным ключам элемент стиля.


Подумал еще немного . Смысла делать xml с набором свойств, управляемых стилизатором, по-моему, нет. Все равно он будет сильно завязан на код, поэтому, все же, самый простой вариант будет сделать конфиг, такой же, как и Config.cs.


Короче, может стоит начать все это делать?
... << RSDN@Home 1.1 alpha 1 >>
Re[10]: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.06.03 12:27
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Короче, может стоит начать все это делать?


Ну сделай пока тестовый проектик, без януса.
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[11]: Появилось немного свободного времени...
От: WFrag США  
Дата: 11.06.03 12:31
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, WFrag, Вы писали:


WF>>Короче, может стоит начать все это делать?


AVK>Ну сделай пока тестовый проектик, без януса.


Что именно?
... << RSDN@Home 1.1 alpha 1 >>
Re[12]: Появилось немного свободного времени...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.06.03 12:34
Оценка:
Здравствуйте, WFrag, Вы писали:

AVK>>Ну сделай пока тестовый проектик, без януса.


WF>Что именно?


Ну то что ты тут расписывал.
... << RSDN@Home 1.1 alpha 1 >>
AVK Blog
Re[6]: Появилось немного свободного времени...
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.06.03 15:00
Оценка:
Здравствуйте, AndrewVK, Вы писали:

WF>Правда непонятно, как, например, при загрузке устанавливать все цвета? Можно просто обходить дерево контролов, искать у них Color-свойства с нужным аттрибутом, искать в карте настроек цвет и его устанавливать.


AVK>Вот только нужно не только цвета, но еще и шрифты хотя бы настраивать.


Да какая разница. Если задать фрифт для формы/контрола, то все цвета и шрифты которые небыли заданы вручную будут считаны с парента.
... << RSDN@Home 1.1 alpha 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Появилось немного свободного времени...
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.06.03 15:00
Оценка:
Здравствуйте, AndrewVK, Вы писали:

VD>Сначала нужно сериализацию для цветов сделать.


AVK>Да, проблема.


Да. Я вот дернулся... думал все просто. А оказалоь, что не очень.

Мне нужно в программе иметь доступ к ывету, а не к стороке (иначе будут тромоза). Да и самому броузеру свойство тоже нужен колор (он, то вотличии от кривого сериалайзера цвет понимает). А сериализовать нужно именно строку. Конвертер конечно есть, но вызывать его должен именно сериалайзер. Надо бы что-то там поправит, если публичных свойств нет, чтобы производилась попытка конвертировать в строку.

VD>У нашего сериализатора конфигов позгов не хватает чтобы сохранить цвета.


AVK>Сериализатор тут не при чем. При чем Color.


Не надо песен. Форматеры цвет сохраняют влет. Он атрибутом Serializable помечен.

VD>В общем, вся задача сводится к превращению цвета в строку и обратно.


AVK>Эта задача уже решена, называется ColorTypeConvertor.


Языком. А ты сделай чтобы твой конфиг цвета сериализовал.

AVK>Я думаю не стоит в конфиге хранить всю схему. Лучше только имя файла, а саму схему в отдельном файле, чтобы человек мог просто готовый файл скачать.


Зачем эти сложности? Ваши схемы — это не боле чем набор цветов, который просто нужно в тупую копировать поверх текущих.

Не надо делать извращений. Иначе нельзя будет поменять один цвет.
... << RSDN@Home 1.1 alpha 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Появилось немного свободного времени...
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.06.03 15:00
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Это не проблема. Поиск по РСДН-у, как и говорил АВК, дал вполне определенный результат.


Не проблема? Ну, так во и реши ее для начала. Причем так чтобы в будущем не приходилось трахаться с каждым таким свойством.

WF>Я хотел другой способ. Не формы/контролы опрашивают конфиг о цветах, а специальный менеджер обходит формы/контролы и устанавливает в них экспортированные (посредством аттрибута) цвета в значение из конфига. Аттрибут также нужен для описания цвета. Например вот так (в ForumDummyForm.cs)


Да не нужен никакой менеджер. Есть только цвет фона и текста. Которые прекрасно можно установить на основную форму. Остальные съедят его автоматом. А цвета вроде цвета подсветки ответов один фиг из конфига читать.

И вообще схема на собятиях будет надежнее обхода. Ведь если свойство не стандартное, то твой обход обламается.

WF>Далее отдаем на съедение нужные формы/контролы менеджеру, он их пробегает, строит список настраиваемых цветов, и вставляет их каким-нибудь образом в PropertyGrid,


Озверел что ли? Это будет список из 1000 посзиций.

Нужно ввести пару цветов общих и еще штуки 3-6 специальных. Не выдумывай сложностей. К тому, же теперь контролы и формы не грузатся при загрузке, а подгружаются по требованию. Так что ты просто их не увидишь.
... << RSDN@Home 1.1 alpha 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Появилось немного свободного времени...
От: WFrag США  
Дата: 11.06.03 15:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, WFrag, Вы писали:


AVK>>>Ну сделай пока тестовый проектик, без януса.


WF>>Что именно?


AVK>Ну то что ты тут расписывал.


Вот набросок идеи: http://ccfit.nsu.ru/~dubrov/Style.zip
... << RSDN@Home 1.1 alpha 1 >>
Re[9]: Появилось немного свободного времени...
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.06.03 15:09
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Хотя, можно, например, в конструкторе контрола регистрироваться в менеджере (менеджер — синглтон). При этом, менеджер может держать слабые ссылки на зарегистрированные контролы (чтобы не продлевать их жизнь зря).


Тогда проще уж в этом конструкторе считать цвета и устанвить.
... << RSDN@Home 1.1 alpha 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.