Здравствуйте, AndrewVK, Вы писали:
VD>Да. И похоже ты залепил поддержку Гуи прямо в IFeatureGui.
AVK>Тыж его сам гуем обозвал. Как будто единственный метод, возвращающий Control не гуй. Чего кучу интерфейсов плодить?
Гуй. Но одно дело контрол требовать, а другое довольно сложные меню, которые зависят от компонентов третьих поставщиков. По моей задумке в качестве фичи можно будет засунуть обычный контрол. Причем это может быть контрол не заточенный специально под Хоум. Ну, а если контрол хочет менюшку или сообщения, то пусть реализует интерфейсы ISupportGuiBars и IFeatureView.
Еще раз:
public interface IFeatureView
{
void Activate(IFeature feature);
void Refresh();
void ConfigChanged();
}
— позволяет получать уведомления об активации фичи, обновлении данных и изменении конфига.
public interface IFeatureGui
{
/// <summary>
/// Возвращает контрол который будет использоваться для взаимодействия
/// с фичей.
/// </summary>
Control GuiControl{get;}
void ConfigChanged();
}
— позволяет (контролу) предоставить меню и тулбар.
Обрати внимание, что эти интерфейсы рассчитаны на реализацию их в контроле, а не в фиче. Причем если контрол их не поддерживает, он просто не получает соответсвующих услуг, но может работать и так. Например, тем же линкам это все на фиг не упало.
VD>Еще раз повторяю. Не нужно их туда пихать. Пусть будет можно делать фичи не знающие о меню.
AVK>А их и так можно делать. В базовом контроле просто возвращается null.
Нет. Мне прийдется цеплять к себе ссылку на эти интерфейсы и на Мэйджик. А так можно в качестве конрола использовать любой конрол. Хоть листбокс
.
VD>Я специально ввел интерфейс ISupportGuiBars.
AVK>Ты переименовал старый IChildForm. Я не хочу его трогать, порскольку полноценной замены тулбару пока нет.
Ну, и введи ISupportGuiBars2. В чем проблема?
... << RSDN@Home 1.1 alpha 1 >>