Re: [gnome-cyr] Почему у меня постоянно бъются темы?
- From: "Sergey V. Udaltsov" <sergey oudaltsov clients ie>
- To: gnome-cyr gnome org
- Subject: Re: [gnome-cyr] =?koi8-r?b?8M/exc3VINUgzcXO0SDQz9PUz9HOzs8gwt/A?==?koi8-r?b?1NPRINTFzdk/?=
- Date: Sat, 12 Jul 2003 02:12:48 +0100
> И покодирую.
> Вот дойдем до красивой и стройной модели да и начнем...
Ой, баюс, баюс...
> не совсем так.
> требуется только возможность отключать уже сконфигуренные группы.
> 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 - вторичны.
Сергей
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]