Re: [gnome-cyr] Почему у меня постоянно бъются темы?



> И покодирую.
> Вот дойдем до красивой и стройной модели да и начнем...
Ой, баюс, баюс...

> не совсем так.
> требуется только возможность отключать уже сконфигуренные группы.
> enable_group(index)
> disable_group(index)
Легко. Это то же самое, что secondaryGroupMask |= ( 1 << index ) или
secondaryGroupMask &= ~( 1 << index ). Группа становится дополнительной,
ее можно активизировать только через меню. Приделать к этому вызов - нет
проблем.

> надо придумать такую концепцию, чтоб была красива и не мешала
воплощать 
> необходимый функционал.
> я не  стою горой за данные функции, но давайте смотреть, что мы можем 
> сделать.
Приведенные выше функции реализуемы легко. Я боялся худшего -
переинициализации всей конфигурации, типа
setConfig( model, layouts, options ... )
В принципе, даже это есть. Но давать это плагинам в виде публичного API
не хоца. А то начнут пользовать, а люди будут ругаться на "тормоза".

> >Прямо так жестко? Введем "Бритву Любимова" (сорри за фамильярность,
но в истории так принято) и будем отсекать:)
> а как же иначе? это концептуальный вопрос. иначе кодить нечего...
Концептуально - да, конечно. Я боялся, что Вы захотите составить два
_окончательных_ списка функций. Если дело только в концепции (в правилах
при отборе фич для core и плагинов) - тогда да, обязательно.

> Опять умный тезис хотел процитировать, да подумал, что хватит. Не на 
> кафедре. :)
Да ладно, все свои:)
> стороны плагины будут писаться и нами, но в порядке очереди. Вот эту 
> очередь и стоит выстроить. Хотя бы по зависимостям, а еще лучше и по
весу.
Ну вот это уже конкретнее. Т.е. берем конечный маленький список первых
плагинов и смотрим, что им нужно.

> Для себя, подробней и на русском.
Не. Только на аглицком, с вашего соизволения. И лежать оно все, понятно,
будет в CVS. Сколь угодно подробно.

> Нельзя рассчитывать на помощь других, не имея четкого плана.
"Есть ли у вас план, мистер Фикс?":)

> >>*список раскладок*  (я понимаю, что ограничение на 4 раскладки, но 
> >>закладывать это в дизайн странички как то недальновидно)
> >Можно заложить. Изменение протокола xkb практически вряд ли
осуществимо.
> Ну хотя бы подумать на эту тему. Ну плохо же разворачивать
классический 
> список в шеренгу...
Это обсуждаемо. Вопрос  лишь в том, как пользователь, добавивший 4
раскладки, будет воспринимать внезапное посерение кнопки "Добавить".
Жаловаться ведь побежит, гаденыш.

> Не забывайте, что конфигуратор внедряется в гном. Дефолтная раскладка,
> это очень важный параметр. Он обязательно должен быть доступен для
гнома 
> и без апплета.
Зачем??? Кто ее, кроме апплета будет использовать? И главное - человек
что-то там себе сконфигурил - и будет ждать, что это повлияет на его
жисть (на поведение системы). А оно не влияет. Никак. Или нужно человека
молотком по башке - "ЗАГРУЗИ АППЛЕТ, ДЯДЯ!"

> Он 100% нужен для  rule-based engine. Одно из action - установить
группу 
> по дефолту.
Глобальную? Для класса окна? Не понял, сорри. В любом случае - это будет
использовать только апплет и его плагины.

> минимально, это флаги 1,2,3,4
> и движок 0 ->4  при 4 в лог идут все записи, при 0 - ничего. при 2 -> 
> записи с флагами 1 и 2.
Уже есть. Правда, в libxklavier - но испоользуется везде (и плагины
могут). Посмотрите на XkbDebug. Достаточно?

> >>    * набор action (установить раскладку по умолчанию, установить
> >>      конкретную раскладку и т.д.)
> >Давайте уж в терминах xkb, коль скоро говорим о разработке. Вы про
раскладку - или про группу? Раскладку, вообще говоря, установить
нельзя:)
> группу.
Хорошо, группу по умолчанию - глобально или per window устанавливаем?
 
> Зато я понял из дальнейшего контекста, что предполагается включать и 
> выключать сконфигуреные раскладки  в control-center.
> Тоже годится.
А я опять не понял:)

> >>Воля ваша, а я бы флажки _временно_ (до stable релиза) прибил.
> >До какого предела? Вообще - или выбор картинки руками?
> вообще.
Не, пусть будут. С ними веселее:)

> Флажки в гноме есть? табличка соответствий между флажками и группами в
> гноме есть?
> Флажки ко всем группам есть?
> Получается весьма неполная  функция.
Флажки есть у меня. Таблички нет и не надо. Флаги - не по группе, а по
раскладке (вариант игнорируем). То, что в gswitchit есть раскладки без
флагов - беда. Пользователи будут жаловаться - будем добавлять (или
кто-то пришлет однажды все недостающие - благо это несложно).

> Например, чтобы показать, что функция автокоррекции вводимого текста 
> включена. Фон надписи поменять можно?
Короче, надо сделать так. Еще две функции (точки входа) у плагина -
во-первых, плагин может заменить GtkWidget внутри апплета на свой.
Во-вторых, он может "скорректировать" существующий GtkWidget. В ядре
будут две реализации - label и картинка. Остальное - как хотите.

> >Правило - простое. WM_CLASS->group number. В gconf кладется в виде
> >/apps/gswitchit/Windows/WM_CLASS.0
> >/apps/gswitchit/Windows/groupNumber.0
> это вырожденное правило. Без уточнения виджета его нельзя будет 
Сорри, это был defaultGroupNumber - на создание окна.

> >Может, когда-то добавится
> >/apps/gswitchit/Windows/secondaryGroupMask.0
> >  
> >
> Это все action list.
> Должен быть
> 
> /apps/gswitchit/rule/WM_CLASS.0
> /apps/gswitchit/rule/action_id.0
> /apps/gswitchit/Windows/action_data.0
Сорри, не очень понял, почему в разных ветках GConf?

> и далее switch на action_id 
> и если сказано отдать в плагины - прогон по плагинам.
Не надо. Усложнение чрезмерное. Плагины будут работать всегда.

> Конфигуратор должен отражать задачу пользователя. А правила
абстрактны. 
> Иожно написать несколько плагинов с разными видами гуя, которые будут 
> формировать правила по своим шаблонам.
> Получается выход один - правила, а входов много - конфигураторы.
А зачем вообще плагину задавать правила? Он же и так знает, какие окна и
зачем ему нужны. И загружен он будет в любом слчае. Вот пусть и
обрабатывает события. Всяко быстрее будет, чем rule engine.

> ага. стало быть я предложил плохую реализацию.
> а что такое маски вторичных раскладок? 
Вторичные раскладки (точнее группы) - группы, которые система разрешает
только через меню апплета (иначе она просто проматывает на следующую). С
помошью клавиатуры их выбрать низзя. Маска указывает, какие группы
вторичны. Например, маска  0x0C говорит нам, что группы 3 и 4 -
вторичны.

Сергей

Attachment: signature.asc
Description: =?koi8-r?Q?=FC=D4=C1?= =?koi8-r?Q?_=DE=C1=D3=D4=D8?= =?koi8-r?Q?_=D3=CF=CF=C2=DD=C5=CE=C9=D1?= =?koi8-r?Q?_=D0=CF=C4=D0=C9=D3=C1=CE=C1?= =?koi8-r?Q?_=C3=C9=C6=D2=CF=D7=CF=CA?= =?koi8-r?Q?_=D0=CF=C4=D0=C9=D3=D8=C0?=



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]