Создание тем оформления для Isotoxin

Questions to developers
Xfx
Posts: 37
Joined: Sun Mar 06, 2016 2:07 am

Создание тем оформления для Isotoxin

Postby Xfx » Mon Mar 07, 2016 4:36 am

Предлагаю тут обсуждать создание тем оформления для Isotoxin.

Немного вопросов по struct.decl:

Зачем нужны подвиды шрифта (Bold, Italic, etc.)?
Как поменять цвет фона окна сообщений и списка контактов?
Где задается цвет шрифтов?

admin
Site Admin
Posts: 122
Joined: Mon Jan 26, 2015 11:51 am

Re: Создание тем оформления для Isotoxin

Postby admin » Mon Mar 07, 2016 9:49 am

Xfx wrote:Зачем нужны подвиды шрифта (Bold, Italic, etc.)?

Дело в том, что в одном файле шрифта, например arial.ttf, находится только нормальная версия шрифта. Если нужен, например, bold, то нужно загружать bold версию этого шрифта. Для arial - это arialbd.ttf. Загляните в системную папку винды со шрифтами (\windows\fonts), там почти каждый ttf шрифт представлен 4-мя версиями: normal, bold, italc и bold+italic.
В текстовом редакторе вы выбираете только нормальную версию шрифта, все остальные программа выбирает за вас, поэтому складывается впечатление, что остальные версии не нужны. Однако, нужны. Так и тут. Isotoxin позволяет с помощью bb-кодов менять текст, причем поддерживается дополнительный тег [l] (правда, только, в тексте локализации. В сообщения я его вставлять не стал, т.к. нестандарт) - это обратный bold-у, т.е. light - легкий - буквы тоньше чем у нормального. Вобщем, в файле struct.decl имя шрифта состоит из одной или двух частей, разделенных точкой. Вторая часть имени и указывает, какая именно это разновидность шрифта. Isotoxin уже автоматически будет выбирать нужный.

Xfx wrote:Как поменять цвет фона окна сообщений и списка контактов?

сейчас в теме def есть три файла с расширением .decl
помимо основного struct.decl есть еще dark.decl и defcolors.decl
Алгоритм такой. Сначала загружается struct.decl, затем все остальные *.decl файлы интерпретируются как выбор пользователя. Пользователь выбирает цветовую палитру. Как нетрудно догадаться, defcolors.decl - это цвета по умолчанию, т.е. Light. dark.decl - соответственно темная тема.
Т.о сначала загружается struct.decl, затем, поверх него, один из выбранных пользователем decl. В данном случае либо dark.decl либо defcolors.decl. Как я уже сказал, загружается поверх. Т.е. эти дополнительные файлы имеют такую же структуру и просто при совпадении полей, перетирают уже загруженные. Это теория.

На практике можно сделать копию файла dark.decl или defcolors.decl с новым именем, например mycolors.decl и в разделе conf поменять поле presetname на свое имя. Всё, с этого момента Isotoxin будет предлагать на выбор 3-ю цветовую схему default / <имяпресета>
Все цвета вынесены в раздел colors, т.е. можно целиком поменять раскраску. Тут конечно во всей красе встает проблема найти, какое значение за какой элемент интерфейса отвечает. Пока я не могу предложить ничего лучше метода тыка. Описания я не делал, т.к. это займет много времени. Было не до этого. Могу только добавить, что в коде Isotoxin'а нет ссылок на эти цвета. Вообще. Тогда откуда isotoxin знает, что во что красить? Очень просто - это описано в struct.decl. Т.е. на любой цвет из раздела colors ессть ссылка из других разделов файла struct.decl. Ссылка на цвет начинается с двух символов 'решетка' (##)
например, в разделе conf в файле struct.decl есть строчка
common_bg_color=##bg
common_bg_color - это имя параметра, который код isotoxin-а понимает как цвет фона по умолчанию и использует в некоторых местах
его значение - это ##bg, т.е. ссылка на цвет из раздела colors с именем bg. Значение этого цвета уже зависит от того, какой дополнительный decl загружен. dark.decl или defcolors.decl или еще какой.

Кажется, перемудрил, но я постарался сделать гибкую систему. Думаю, это оправдано.

Xfx wrote:Где задается цвет шрифтов?

В свете предыдущего ответа очевидно, что у шрифтов нет цветов. Цвет текста зависит не от шрифта, а от того, где именно, в каком графическом элементе интерфейса это текст написан.

PS. Еще раз обращаю внимание, что дополнительный decl файл имеет ту же структуру, что и основной struct.decl и загружается поверх. Т.е. в дополнительном можно без проблем сделать свой раздел со шрифтами и заменить все или несколько.

Xfx
Posts: 37
Joined: Sun Mar 06, 2016 2:07 am

Re: Создание тем оформления для Isotoxin

Postby Xfx » Tue Mar 08, 2016 4:16 am

Разобрался с цветами, в принципе довольно просто все меняется, но для проверки результата нужно каждый раз перезагружать программу, что при наличии большого количества параметров вызывает некоторые неудобства. Иногда не понятно за какую область отвечает то или иной параметр и приходится методом сравнения искать мелкие элементы интерфейса. Есть ли какое-либо описание того, за что отвечает каждый параметр в разделе Colors?

Я так понял что такой подход позволяет съэкономить памяти и повысить быстродействие программы?

admin
Site Admin
Posts: 122
Joined: Mon Jan 26, 2015 11:51 am

Re: Создание тем оформления для Isotoxin

Postby admin » Tue Mar 08, 2016 10:30 am

Xfx wrote:Разобрался с цветами, в принципе довольно просто все меняется, но для проверки результата нужно каждый раз перезагружать программу, что при наличии большого количества параметров вызывает некоторые неудобства. Иногда не понятно за какую область отвечает то или иной параметр и приходится методом сравнения искать мелкие элементы интерфейса.

Вобщем то я сделал небольшой редактор цветов, которым сам пользовался, когда настраивал цвета. Там все сделано достаточно по спартански, поэтому я не стал этот редактор вставлять в релиз. Редактор работает только в debug сборке isotoxin-а. В исходниках всё есть, если разбираетесь, можете собрать самостоятельно debug сборку. Если не хотите этим заморачиваться, вот, я только что собрал debug exe-шник для вас: http://isotoxin.im/files/dbg_isotoxin.exe
просто положите его туда, где у вас находится сам isotoxin и запускайте вместо isotoxin.exe
чтобы открыть редактор, надо кликнуть по шестеренке в заголовке (это кнопка вызова меню), удерживая shift
в самом редакторе выбираете тему, цвет, меняете цвет и при нажатии на Apply этот цвет применяется. Правда некоторые цвета применяются только после перезагрузки, но таких очень мало.

Xfx
Posts: 37
Joined: Sun Mar 06, 2016 2:07 am

Re: Создание тем оформления для Isotoxin

Postby Xfx » Wed Mar 09, 2016 12:10 am

Спасибо за утилиту, я думаю имеет смысл встроить ее в релизную версию. Зачем нужен png файл с графикой и можно ли его модифицировать?

Пробовал подсовывать свои смайлики программе и все воспроизводиться без проблем, только если смайлик достаточно большой, то в меню выбора смайликов он отображается в реальном размере и при большом количестве смайликов наверное не удобно будет его листать.

admin
Site Admin
Posts: 122
Joined: Mon Jan 26, 2015 11:51 am

Re: Создание тем оформления для Isotoxin

Postby admin » Wed Mar 09, 2016 10:45 am

Xfx wrote:Спасибо за утилиту, я думаю имеет смысл встроить ее в релизную версию.

Да, я хотел так сделать, но каждый раз откладывал. Вы первый, кто решил сделать свою цветовую тему, поэтому и смысл появился эту утилиту дать всем.
Xfx wrote:Зачем нужен png файл с графикой и можно ли его модифицировать?

png файл с графикой - это возможность вставлять в интерфейс растровые картинки. Раньше нужно было в него засовывать всё, буквально всё. Сейчас появились средства типа программной заливки и svg. Модифицировать существующий можно, но в этом нет необходимости. Можно создать еще один и брать графику из него. В struct.decl попадаются строчки src=back.png - это и есть ссылка на картинку. Т.е. можно ссылаться на другую.
Забыл еще сказать: в файле dark.decl (тёмная тема), есть раздел corrections. В этом разделе можно применять некоторые модификации к png-шке. Например, в png-шке нарисован фон конкретного цвета для светлой темы. Темная тема его меняет таким образом. Т.е. меняется загруженная в память png-шка, а не на диске. Раздел corrections также присутствует и в основном struct.decl - там некоторые элементы интерфейса таким образом раскрашиваются.

Xfx wrote:Пробовал подсовывать свои смайлики программе и все воспроизводиться без проблем, только если смайлик достаточно большой, то в меню выбора смайликов он отображается в реальном размере и при большом количестве смайликов наверное не удобно будет его листать.

Лучше делать смайлы близкими по размеру к тем, что мы хотим видеть.

Xfx
Posts: 37
Joined: Sun Mar 06, 2016 2:07 am

Re: Создание тем оформления для Isotoxin

Postby Xfx » Wed Mar 09, 2016 6:10 pm

По поводу структуры файла emoji.decl. Каждый смайл имеет порядковый номер, я пробовал в ручную задавать номера смайлам, но они не выстраиваются в нужном мне порядке. Не подскажите принцип сортировки смайлов?

Вот как выглядит мой порядок в emoji.decl:

1=:cat:
2=:dog:
3=:polarbear:
4=:hug:
5=:penguin:

И еще вопрос, когда я печатаю код смайла, например :cat:, то он не отображается, если я его просто выберу из списка и отправлю, то он отображается.

Пробовал изменять emoji.decl так:

cat=:cat:
dog=:dog:
polarbear=:polarbear:
hug=:hug:
penguin=:penguin:

Смайлики то отображаются то нет и порядок рандомный.

Только что попробовал убрать все смайлы и оставить только свои и теперь они не отображаются вообще, просто печатаются слова вместо картинки, совсем запутался.

Off: почему я не могу отправлять сообщения на форуме даже раз в пол часа, какое тут ограничение?

admin
Site Admin
Posts: 122
Joined: Mon Jan 26, 2015 11:51 am

Re: Создание тем оформления для Isotoxin

Postby admin » Thu Mar 10, 2016 10:34 am

Xfx wrote:По поводу структуры файла emoji.decl. Каждый смайл имеет порядковый номер, я пробовал в ручную задавать номера смайлам, но они не выстраиваются в нужном мне порядке. Не подскажите принцип сортировки смайлов?

Смайлы отображаются в том порядке, в каком они находятся в файле emoji.decl
Смайл описывается в виде:
число=варианты-смайлов-через-запятую

например:

128512=:grinning:,:),:-)

128512 - это не просто число. Это uncode - emoji код смайла. Тут нельзя писать что попало, т.к. именно этим кодом смайл отправляется другому клиенту. Если вы укажете тут, например, число 48, то этот смайл будет отправляться кодом цифры 0 - у нее как раз 48 ascii код.
Тут же требуются именно emoji уникоды.
В принципе, вы можете указывать тут какие нибудь редкие уникоды, но должны понимать, что если на приемной стороне не будет вашего смайл пака, то там будут вместо смайлов вылезать эти самые редкие символы, и то, если они есть в шрифте.

например вот тут (http://unicode-table.com/en/sets/emoji/) можно в поиске вбить 128512, и увидеть картинку смайла grinning face
вставить такой смайл в html страницу можно так: &#128512;

Вобщем, isotoxin сейчас работает только с emoji смайлами
Свой набор смайлов должен хотя бы приблизительно соответствовать этому набору

Теперь, как грузятся смайлы.
Сначала грузится текущий пак и смайлы выстраиваются в том порядке, в котором они перечислены в файле emoji.decl
Далее, из остальных паков грузятся только те смайлы, которых нет в первом. Но в списке их не будет, поэтому не важно, в каком они порядке.

Xfx wrote:И еще вопрос, когда я печатаю код смайла, например :cat:, то он не отображается, если я его просто выберу из списка и отправлю, то он отображается.

В окне ввода текста отображаются только смайлы, которые выбраны из списка. Текст, который вы печатаете руками, никак не меняется в процессе печати, но после отправки смайлы преобразуются в картинки


Xfx wrote:Off: почему я не могу отправлять сообщения на форуме даже раз в пол часа, какое тут ограничение?

Из за обилия спам ботов, пришлось поставить флуд защиту - 1 час и 10 постов, чтобы защита перестала работать. У вас как раз 9 постов, но я уже снял вам ограничение, т.к. понятно, что вы никакой не бот :)

Xfx
Posts: 37
Joined: Sun Mar 06, 2016 2:07 am

Re: Создание тем оформления для Isotoxin

Postby Xfx » Wed Mar 16, 2016 5:35 am

Закончил возиться со смайликами из Skype и подобрал максимально соответствующие Unicode. Специально сортировал список смайликов в определенном порядке в файле emoji.decl, но в программе сортировка смайликов только частично соответствует списку, в основном все выстраивается в непонятном порядке. Залил сюда http://sendfile.su/1214669 собранный zip архив. Посмотрите пожалуйста и подскажите, что я делаю не так. :?

Я тут подумал по поводу смайликов, не плохо было бы добавить разделители, чтобы можно было группировать их, если такое возможно.

admin
Site Admin
Posts: 122
Joined: Mon Jan 26, 2015 11:51 am

Re: Создание тем оформления для Isotoxin

Postby admin » Thu Mar 17, 2016 8:14 pm

Нашел проблему в коде сортировки смайлов. Исправлю.


Return to “Developer online”

Who is online

Users browsing this forum: No registered users and 2 guests

cron