Re[3]: 2AVK: Ты видимо забыл запостить...
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.06.03 19:10
Оценка:
Здравствуйте, 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 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.