
Плагин "OSD"
Moderators: Korney San, marcipan
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Здесь лежит скрин работающей альфы (570 кб PNG), в которой уже реализовано:PAShYCh wrote:2Korney San, ждёмс первую бетку
Вывод закачек (состояние, имя файла, процент)
Вывод режима автоматизации
Настройка положения OSD на экране (два типа)
Настройка шрифта
Настройка цвета шрифта
Настройка размера шрифта
На скрине шрифт Tahoma 10.
Пишу дальше...
P.S. Запостил было сам скрин, но увидел как он стал открываться

XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Все желающие могут потрогать руками альфа-версию плагина (394,2 Кб zip), которая умеет следующее:
[+] Положение OSD: отнсительно рабочего стола или точное.
[+] Размеры OSD: автоматически или точные.
[+] Фон OSD: прозрачный/выбор цвета.
[+] Шрифт OSD: выбор, размер, цвет.
[+] Непрозрачность ОSD: обычная и при наведении мыши.
[+] Отключение изменения непрозрачности при наведении мыши.
[+] Информация о закачках: состояние (доступны Закачка, Пауза, Ошибка), название файла, процент закачанного.
[+] Информация об автоматике: тип, кратность.
[+] Значок в трее: включение/выключение OSD по щелчку левой кнопкой, вывод окна настроек по щелчку правой кнопкой.
Писанина продолжается...
P.S. Думайте, КАК и КУДА выводить всю затребованную Вами информацию...
[+] Положение OSD: отнсительно рабочего стола или точное.
[+] Размеры OSD: автоматически или точные.
[+] Фон OSD: прозрачный/выбор цвета.
[+] Шрифт OSD: выбор, размер, цвет.
[+] Непрозрачность ОSD: обычная и при наведении мыши.
[+] Отключение изменения непрозрачности при наведении мыши.
[+] Информация о закачках: состояние (доступны Закачка, Пауза, Ошибка), название файла, процент закачанного.
[+] Информация об автоматике: тип, кратность.
[+] Значок в трее: включение/выключение OSD по щелчку левой кнопкой, вывод окна настроек по щелчку правой кнопкой.
Писанина продолжается...
P.S. Думайте, КАК и КУДА выводить всю затребованную Вами информацию...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Я имел в виду общий вид.x2088 wrote:Думаем... давно думаем, но конкретные предложения смогу выдать только после того, как будет оглашён полный список возможностей, ведь не всё из запрошенного будет в плагине, а предложения "до того как" не очень корректны - их по любому придётся перекраивать...
Пока оно представляется мне так:
Информация формируется в строки. В каждой строке если поля определённой ширины, в которые вбиваются полученные данные.
Все строки выводятся в информационное окно.
Найти подходящий модуль в Интернете. Посмотреть, попробовать. Вспомнить, чего хочется, и понять, что надо кое-чего добавить. Добавлять понемножку, пока на сломалось. Починить.marcipan wrote:Это какую надо иметь фантазию, чтобы воплотить такое в жизнь.
Пытаться добавить нужную фишку, глядя в справочник. После того, как не получилось пятью разными способами, спросить знающего человека. Получить от человека ответ, входящий в испробованные. Понять, что руки кривоваты, и зарыться в справочник (и Интернет) поглубже. Откопать ответ, лежащий на поверхности, а заодно ещё один, более крутой и с примерами, справочник. Опробовать найденные знания, убедиться, что всё в порядке, порадоваться.
Долго кодировать настройки в пяти местах (форма настроек, передача из плагина в форму и обратно, загрузка, сохранение, использование). Убедиться, что всё работает (фигня, что не совсем так, как хотелось), залить на сайт и пойти отдыхать.

...одним словом, сесть и сделать.

XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Я ж это и миел ввиду. Невозможно компактно и в то же время оптимально разместить то, что полностью неизвестно...Korney San wrote:Я имел в виду общий вид.
Пока оно представляется мне так:
Информация формируется в строки. В каждой строке если поля определённой ширины, в которые вбиваются полученные данные.
Все строки выводятся в информационное окно.
Пока что могу предложить выводить это отдельными обзацами текста, соблюдая порядок, которые были бы разделены между собой чертой на всю ширину окна, а отдельные "ячейки" отделять так: <пробел><текст_от_0_до_3_символов_длинной><пробел>. Естественно иметь возможность ограничения длинны строки каждой "ячейки" по отдельности до "стольки-то" символов и, возможно, возможность включения бегущей строки для отдельной ячейки или всего набора данных закачки. Если будет вывод абзацами, как обычный текст, то возможность ограничения количества строк в абзаце, при не помещении всех данных в это число строк - вкл. бегущей строки для всего абзаца в целом.
А хотя, если будет возможность изменять порядок вывода этих "ячеек", то каждый сам себе всё настроит.
Ничего, вместе придумаем, если Ктулху нас не захавает.marcipan wrote:Это какую надо иметь фантазию, чтобы воплотить такое в жизнь.
Есть ещё идея:
* наборы профилей для вывода данных о закачке;
. . . #если они будут и удасться отловить кнопочки Win+1..0, Win+~, то ещё Win+(-) и Win+(=) [оно же Win+(+)] для циклического переключения профиля отображения набора данных о закачке. Например так: Win+1 - выбор первой закачки в списке плагина, Win+(+) - выбор следующего профиля для этой закачки. Итого нажимаем: Win+(1,=) . Или так Win+CTRL+<цифра OR функциональная_кнопка>. А может всё сразу и без хлеба.
Учитывая статус плагина не нравится только слишком яркая иконка в трэе...
Значений на ползунках нигде не видел - хорошо придумано.
Ктулха НЕ звать.
* наборы профилей для вывода данных о закачке;
. . . #если они будут и удасться отловить кнопочки Win+1..0, Win+~, то ещё Win+(-) и Win+(=) [оно же Win+(+)] для циклического переключения профиля отображения набора данных о закачке. Например так: Win+1 - выбор первой закачки в списке плагина, Win+(+) - выбор следующего профиля для этой закачки. Итого нажимаем: Win+(1,=) . Или так Win+CTRL+<цифра OR функциональная_кнопка>. А может всё сразу и без хлеба.
Учитывая статус плагина не нравится только слишком яркая иконка в трэе...
Значений на ползунках нигде не видел - хорошо придумано.
Ктулха НЕ звать.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Я сейчас вспомнил, что вроде как можно регистрировать глобальные хоткеи, в которых катит любая комбинация. Если у меня получится - будет тебе счастье...x2088 wrote:* наборы профилей для вывода данных о закачке;
. . . #если они будут и удасться отловить кнопочки Win+1..0, Win+~, то ещё Win+(-) и Win+(=) [оно же Win+(+)] для циклического переключения профиля отображения набора данных о закачке. Например так: Win+1 - выбор первой закачки в списке плагина, Win+(+) - выбор следующего профиля для этой закачки. Итого нажимаем: Win+(1,=) . Или так Win+CTRL+<цифра OR функциональная_кнопка>. А может всё сразу и без хлеба.

А это чтобы сразу видел, где выключать.x2088 wrote: Учитывая статус плагина не нравится только слишком яркая иконка в трэе...

...вот так и начинают привередничать... Объявляю конкурс: все желающие рисуют две иконки 16х16 XP (OSD вкл, OSD выкл) и присылают мне на ящик. Потом путём голосования выберем лучшие.
Библиотека JEDI - выбор профессионалов.x2088 wrote: Значений на ползунках нигде не видел - хорошо придумано.

XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
...Библиотека JEDI - выбор джедаев!..
...а исчо можно брать из "%AppData%\Download Master\temp" статусные иконки для плагина... правда надо вырезать для этого нужный кусок картинки, как делает это DM...
Есть просьба: можно ли сделать в плагине на вкладке "Информация" с правой стороны, где много свободного места, список того, что нужно выводить, а что - нет в виде одиночного списка, каждый пункт которого отмечался бы галочкой (это значит - надо выводить этот пункт), а т.ж возможность изменять порядок вывода данных о закачке в OSD просто перетаскивая пункты в этом списке вверх и вниз. А так же хотелось бы снизу этого поля кнопку "Тест", для просмотра внешнего вида информационного окна OSD, чтобы посмотреть как это будет выглядеть когда закачек - нет.
И исчо такая: окно настроек, по щелчку на иконке в трэе открывается на заднем фоне - как не активное. Хотелось бы пункт в настройках: "Открывать на переднем плане".
Всвязи с затронутой темой связи в плагинах:
* управляющая (настройки плагина);
* сборо-передающая (собирает данные из DMAPI и передаёт их в приёмо-выводящую часть);
* приёмо-выводящая (принимает данные из сборо-передающей части и выводит её в информационное окно своего собственного GUI).
Др. плагинам управляющая и приёмо-выводящая части нафиг не нужны, а если вдруг будет плагин которому могут понадобиться эти данные, то он может запрашивать эти данные у сборо-передающей части ч.з т.н Plugin API. Думаю 1-ю и 3-ю чамти можно объединить в один файл.
Разделение на части, также даёт в этом случае - увеличение быстродействия, т.к при обращении к функции одного плагина из др. плагина будет происходить "на прямую", но отдельно взятый плагин из-за "порезанности" может работать медленнее, но, я думаю - этим можно принебречть всвязи с такими огромными приимуществами написания софта подобным образом.
...а исчо можно брать из "%AppData%\Download Master\temp" статусные иконки для плагина... правда надо вырезать для этого нужный кусок картинки, как делает это DM...
Есть просьба: можно ли сделать в плагине на вкладке "Информация" с правой стороны, где много свободного места, список того, что нужно выводить, а что - нет в виде одиночного списка, каждый пункт которого отмечался бы галочкой (это значит - надо выводить этот пункт), а т.ж возможность изменять порядок вывода данных о закачке в OSD просто перетаскивая пункты в этом списке вверх и вниз. А так же хотелось бы снизу этого поля кнопку "Тест", для просмотра внешнего вида информационного окна OSD, чтобы посмотреть как это будет выглядеть когда закачек - нет.
И исчо такая: окно настроек, по щелчку на иконке в трэе открывается на заднем фоне - как не активное. Хотелось бы пункт в настройках: "Открывать на переднем плане".
Всвязи с затронутой темой связи в плагинах:
Плагин "OSD" можно разделить на 3 части, а именно:Korney San wrote:P.S. А то мне уже надо разрабатывать связи между плагинами - чтобы не дублировать функции...x2088 wrote:Я об этом тоже подумал - каждую отдельную функцию в отдельную DLL и собрать всё в кучу ч.з собственное Korney San Plugin API for DM - KSPAPIDM.DLL. В конечном счете это будет выглядеть как куча отдельных DLL-ек связанных между собой только ч.з это API, но зато гибкость какая и ничего не дублируется.Korney San wrote:OSD выпадает из общей линейки, т.к. имеет графическую часть.
x2088 wrote:При таком подходе от сюда ничего не выпадает, ппри таком подходе возрастает скорость написания подобной бойды, а особенно, если выясняется, что надо было сделать что-то с точностью наоборот.x2088 wrote:А достоинство этого на лицо - обновляя любую часть кода, вы обновляете его во всех плагинах сразу.
Огромная гибкость.
И места меньше занимать это дело будет, т.к не придётся что-то дублировать.Korney San wrote:Что верно, то верно.
* управляющая (настройки плагина);
* сборо-передающая (собирает данные из DMAPI и передаёт их в приёмо-выводящую часть);
* приёмо-выводящая (принимает данные из сборо-передающей части и выводит её в информационное окно своего собственного GUI).
Др. плагинам управляющая и приёмо-выводящая части нафиг не нужны, а если вдруг будет плагин которому могут понадобиться эти данные, то он может запрашивать эти данные у сборо-передающей части ч.з т.н Plugin API. Думаю 1-ю и 3-ю чамти можно объединить в один файл.
Разделение на части, также даёт в этом случае - увеличение быстродействия, т.к при обращении к функции одного плагина из др. плагина будет происходить "на прямую", но отдельно взятый плагин из-за "порезанности" может работать медленнее, но, я думаю - этим можно принебречть всвязи с такими огромными приимуществами написания софта подобным образом.
Есть общая просьба к GUI: проверять есть ли возможность доступа к каждому элементу интерфейса ТОЛЬКО с помощью клавиатуры, т.е без использования мыши, т.к я неоднократно попадал в ситуацию когда мыши нет или не работает, а получить доступ к нужному интерфейсу программы нельзя (никакие общепринятые клавиатурные комбинации не "подсвечивают" [выделение пунктиром] нужный элемент). В этом случае нужно вкл. эмуляцию мыши и долго возюкать указателем мыши по экрану - очень не удобно. Пожалуйста следите за этим. Пока такого в плагинах не встречал.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Любое окно Windows работает и с клавиатуры - через Tab, стрелки, пробел и Enter.x2088 wrote:Есть общая просьба к GUI: проверять есть ли возможность доступа к каждому элементу интерфейса ТОЛЬКО с помощью клавиатуры, т.е без использования мыши
...
Пожалуйста следите за этим. Пока такого в плагинах не встречал.
Что именно и где ты не мог делать?
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Управляющими кнопками и комбинациями являются: ESC, F4, F11, Backspace, Tab, Enter, <пробел>, Alt+<пробел>, Alt+<Печатный_символ>, Ins, Home, End, PgUp, PgDw, <стрелки>, Alt+Tab, Alt+Esc, CTRL+Tab и т.д, в некоторых случаях F6 и F7 и др. клавиатурные комбинации. Так вот, бывает так, что получить доступ к некоему отдельному элементу интерфейса - нельзя, он попросту пропускается при циклическом переключении от одного элемента к др.
Написал о этой просьбе только потому, что это действительно доставляет большие неудобства, хотя и встречается крайне редко, ну и возможность попросить об этом есть, ведь это не сложно соблюдать - надо всего-лишь чуть-чуть попользоваться своим творением без мыши вообще, мне такая заподлянка встречалась в софте с перенавороченным разными этементами окнами.
Написал о этой просьбе только потому, что это действительно доставляет большие неудобства, хотя и встречается крайне редко, ну и возможность попросить об этом есть, ведь это не сложно соблюдать - надо всего-лишь чуть-чуть попользоваться своим творением без мыши вообще, мне такая заподлянка встречалась в софте с перенавороченным разными этементами окнами.
- Korney San
- Гуру
- Posts: 1116
- Joined: 02 Oct 2006, 17:01 Mon
- Location: Беларусь, Гомель
- Contact:
Я думал об этом раньше, потому как-то сделал себе возможность распаковывать эти картинки из зазипованного скина...x2088 wrote: ...а исчо можно брать из "%AppData%\Download Master\temp" статусные иконки для плагина... правда надо вырезать для этого нужный кусок картинки, как делает это DM...
Спасибо за подсказку с папкой!
Вкладка "Информация" находится в разработке вместе с плагиномx2088 wrote: Есть просьба: можно ли сделать в плагине на вкладке "Информация" с правой стороны, где много свободного места, список того, что нужно выводить, а что - нет в виде одиночного списка, каждый пункт которого отмечался бы галочкой (это значит - надо выводить этот пункт), а т.ж возможность изменять порядок вывода данных о закачке в OSD просто перетаскивая пункты в этом списке вверх и вниз. А так же хотелось бы снизу этого поля кнопку "Тест", для просмотра внешнего вида информационного окна OSD, чтобы посмотреть как это будет выглядеть когда закачек - нет.


Кнопочка "Тест" - идея хорошая. Подумаю.
Пункта не будет, будет однократный вывод окна на передний план при открытии.x2088 wrote: И исчо такая: окно настроек, по щелчку на иконке в трэе открывается на заднем фоне - как не активное. Хотелось бы пункт в настройках: "Открывать на переднем плане".
Я за выходные разработал универсальную систему определения/сохранения/использования настроек, которая должна облегчить мне жизнь с сохранением настроек конкретного плагина и обмена ими с формой настройки.x2088 wrote: Всвязи с затронутой темой связи в плагинах:
...
Плагин "OSD" можно разделить на 3 части, а именно:
* управляющая (настройки плагина);
* сборо-передающая (собирает данные из DMAPI и передаёт их в приёмо-выводящую часть);
* приёмо-выводящая (принимает данные из сборо-передающей части и выводит её в информационное окно своего собственного GUI).
Др. плагинам управляющая и приёмо-выводящая части нафиг не нужны, а если вдруг будет плагин которому могут понадобиться эти данные, то он может запрашивать эти данные у сборо-передающей части ч.з т.н Plugin API. Думаю 1-ю и 3-ю чамти можно объединить в один файл.
Разделение на части, также даёт в этом случае - увеличение быстродействия, т.к при обращении к функции одного плагина из др. плагина будет происходить "на прямую", но отдельно взятый плагин из-за "порезанности" может работать медленнее, но, я думаю - этим можно принебречть всвязи с такими огромными приимуществами написания софта подобным образом.



Так что говорить о разделении плагинов на сервер и терминалы пока рано...
XPProSP3, DM 5.15.2.1341, Pale Moon 20.0.1, Opera Next 12.15 (1748) RTFM & STFF
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
Если Вы не можете быть хорошим примером, то Вам просто придётся служить ужасным предостережением. © Кэтрин Эйрд
...это не совсем то, что я предлагал, но почти, такое объединение увеличит объём Server`а, но поскольку он 1 на всех, то общий объём будет меньше, хотя я с трудом представляю общий интерфейс... там и вылез ближе и партизаны толще.Korney San wrote:Я за выходные разработал универсальную систему определения/сохранения/использования настроек, которая должна облегчить мне жизнь с сохранением настроек конкретного плагина и обмена ими с формой настройки. Разработка же системы обмена информацией между плагинами ещё в таком начале , что вряд ли появится раньше апреля...
Так что говорить о разделении плагинов на сервер и терминалы пока рано...
Ну это само сабой. Как в анекдоте:Korney San wrote:Вкладка "Информация" находится в разработке вместе с плагином , её окончательный вид пока неизвестен даже мне.
Кнопочка "Тест" - идея хорошая. Подумаю.
Один програмист другому: Привет! Что пишешь?
Второй отвечает: Откомпилим - увидим!
Я всё же настоятельно рекомендую сделать выбор и настройку списка отображаемых данных именно таким - это самый компактный и удобный вариант.
На данном этапе я "вижу" эту вкладку так: слева список статусов, как он есть сейчас, но полный, а справа этот список. В будущем, скорей всего, будет ещё что-то.