Может быть, не всем нужны иконки на рабочем столе.
Бороться с повторными запусками не так уж сложно. Проверка при запуске - а нет ли еще одного процесса с таким же именем? А для перезапуска использовать например параметр "--replace", как в *никсах. Сомневаюсь, что на это способен человек, не знающий, что именно он хочет получить.
Icon - менеджер иконок рабочего стола
Sorcerer
art_zh
Если готов взяться за такую работу - то никто не запрещает, но чужие идеи желающих реализовывать нет.
Не страшно - просто не будет перерисовываться фон.А если он упадет?
Это пожалуй самое простое из задуманного.Одна хотелка по теме, если вдруг будет желание ее реализовать: подписи под иконками сделать длиннее, чем они могут быть сейчас. Длинные имена система поддерживает, а длинные названия программ - пока что нет
А кто нам мешает запускать процесс-сервер занимающийся работой с параметром отключающим загрузку иконок или вообще в INI файле прописать.Может быть, не всем нужны иконки на рабочем столе.
art_zh
Фатального ничего нет, а то что ты предлагаешь требует значительной переделки ядра.Еще раз проIMHUю, что менеджеру иконок - место в нулевом круге, а не в третьем.
Вынос его в юзерспейс прорубит еще одну дыру в системной защите.
Но если уж вы так решили, то надо по крайней мере
1) повысить его в звании до десктоп-менеджера, и
2) присвоить ему статус специального процесса (незакрываемого, неперезапускаемого и недуплицируемого).
Иначе будет бардак.
Если готов взяться за такую работу - то никто не запрещает, но чужие идеи желающих реализовывать нет.
Абсолютно ничего - просто сервис отрисовки фона не будет работать и на фоне будут артефакты от других ранее нарисованных элементов.А если его сдуру закроют?
Можно сделать проверку на наличие процесса в памяти использовав уникальное название.Или повесят второй (третий, десятый) ?
art_zh
Ну ладно, оконная система в монолитном ядре. Но менеджер иконок зачем в ring0 ? Правильно будет собрать @PANEL @ICON @RB в одно приложение и будет нам десктопный менеджер. И зачем ему в ядро ?
Ну ладно, оконная система в монолитном ядре. Но менеджер иконок зачем в ring0 ? Правильно будет собрать @PANEL @ICON @RB в одно приложение и будет нам десктопный менеджер. И зачем ему в ядро ?
Зачем повторять путь Виндовс?Serge wrote:Правильно будет собрать @PANEL @ICON @RB в одно приложение и будет нам десктопный менеджер.
Пусть каждая утилита занимается своим делом. Десктопный менеджер это монструозная вещь.
Есть простое решение проблемы с несколькими запусками или случайным закрытием десктопного менеджера. В ядре заводится строковая переменная с полным путём к менеджеру. Всё работает по принципу "кто первый встал, того и тапки". Приложение через set_background_thread() объявляет себя менеджером. Следующий вызов будут неудачным. Если менеджер упадёт или будет закрыт ядро его рестартует.
Mario
Там функциональность близка, и вместе всё будет быстрее работать. Главное не превращать код в винегрет.
Там функциональность близка, и вместе всё будет быстрее работать. Главное не превращать код в винегрет.
Serge
В таком случае тебе придется реализовать вывод и для самого верхнего слоя и сразу встает вопрос с приложениями рисующими на весь экран. zSea например не сможет тогда выводить в полноэкранном режиме (вернее сможет но панель будет всегда поверх), скринсейверы также не смогут. Нужен сверхвысокий слой и тот который за ним (этот второй будет для панели), остальные рисуют в обычном оконном стеке.Там функциональность близка, и вместе всё будет быстрее работать. Главное не превращать код в винегрет.
Mario
Но сейчас ведь всё работает ? На крайний случай запускать панели в отдельных потоках.
Но сейчас ведь всё работает ? На крайний случай запускать панели в отдельных потоках.
Ядро сможет определить и обработать нажатие иконкиSerge wrote:Ну ладно, оконная система в монолитном ядре. Но менеджер иконок зачем в ring0 ?
1)быстрее, 2)проще 3) безопаснее и 4)надежнее.
Если делегировать это дело приложению, придется так или иначе реализовать разбор оконного стека, обработку нажатия и отрисовку фона.
В принципе можно всё реализовать "в круге третьем" (sysfn09+полноэкранная графика это сделать позволяют), но это уже очевидный абсурд.
Предложенные тобой два новых вызова делегируют эти действия системе.
Грамотный и вполне резонный подход.
Мне эти 2 вызова представляются двумя широченными шагами в направлении вноса всего иконного менеджера в ядро.
Все что я предлагаю - сделать третий, маленький шажок (необходимость в добавлении новых сисфункций при этом, очевидно, отпадёт сама собой).
А в третьем кольце оставить только редактор связей между иконкой, ее экранными координатами и строкой вызова соответствующей программы.
Дык я и не звал его в ядро.Serge wrote:Правильно будет собрать @PANEL @ICON @RB в одно приложение и будет нам десктопный менеджер. И зачем ему в ядро ?
Читай внимательней:
т.е. если уж зло неизбежно - тогда имеет смысл собрать @PANEL @ICON @RB в одно специальное приложениеart_zh wrote:Вынос его /иконного менеджера/ в юзерспейс прорубит еще одну дыру в системной защите.Но если уж вы так решили, то надо по крайней мере
1) повысить его в звании до десктоп-менеджера...
Будет время - займусь. Сейчас есть задачи поважнее этой ерунды.[color=#006000]Mario[/color] wrote:то что ты предлагаешь требует значительной переделки ядра.
Если готов взяться за такую работу - то никто не запрещает, но чужие идеи желающих реализовывать нет.
Евангелие от Иоанна: стих 1[/size]
Code: Select all
; В начале было Слово:
B32: mov ax, os_stack ; Selector for os
art_zh
На обсуждение "этой ерунды" потрачено тобой довольно много времени.
Зачем вообще тогда теряешь время влезая в детские песочницы?
На обсуждение "этой ерунды" потрачено тобой довольно много времени.
Зачем вообще тогда теряешь время влезая в детские песочницы?
потому что мне небезразлично, какой будет система завтра.
если замутил новую тему на пустом месте - постарайся хотя бы выслушать чужие аргументы.
если они тебе по барабану - делай как знаешь и никого не спрашивай.
(вариант: можешь не спрашивать только одного меня - принят к исполнению)
если замутил новую тему на пустом месте - постарайся хотя бы выслушать чужие аргументы.
если они тебе по барабану - делай как знаешь и никого не спрашивай.
(вариант: можешь не спрашивать только одного меня - принят к исполнению)
art_zh
2. Я был достаточно вежлив и выслушивал чужое мнение, при этом я ничье мнение "ерундой" не называл.
3. При желании помочь мне с кодом я не отказываюсь от такой помощи, при желании исключительно покритиковать - мне такая помощь не сильно нужна.
З.Ы. Как однажды сказал один не последний человек в проекте "Мнение пишущего код всегда приоритетней мнения всех остальных".
Веришь или нет - ты не одинок.потому что мне небезразлично, какой будет система завтра.
Так ли пусто это место? Проблема есть и есть разные способы ее решения. Лично мой подход - максимальное удобство со стороны пользователя. Тебе как ты уже не раз заявлял - графическая система вообще по сути не нужна и в твоем случае это оправдано. Но ты ведь не один - у системы очень много обычных пользователей, которые хотят видеть обычную рабочую систему со всеми удобствами которые есть в других десктопных системах.если замутил новую тему на пустом месте
1. Вообще-то я в своем посте первом вообще не спрашивал советов как мне делать - просил только с иконками помочь.постарайся хотя бы выслушать чужие аргументы.
если они тебе по барабану - делай как знаешь и никого не спрашивай.
2. Я был достаточно вежлив и выслушивал чужое мнение, при этом я ничье мнение "ерундой" не называл.
3. При желании помочь мне с кодом я не отказываюсь от такой помощи, при желании исключительно покритиковать - мне такая помощь не сильно нужна.
Из минусов твоей реализации я сразу вижу один существенный - отсутствует гибкость. Чтобы изменить код и его логику придется менять ядро - и все заявления об максимальной надежности не оправдывают такой жесткой реализации. Мы от этого как раз стремимся уходить, максимально упрощая ядро.(вариант: можешь не спрашивать только одного меня - принят к исполнению)
З.Ы. Как однажды сказал один не последний человек в проекте "Мнение пишущего код всегда приоритетней мнения всех остальных".
Набросал пока такой патч. Подмена слота работает, но вылезла новая проблема: все функции рисования делают отсечение по границам окна, что правильно, но мешает рисовать фон. Видимо одним напильником не обойтись и надо влезать в оконный стек.
- Attachments
-
-
bgr_patch1.txt (20.46 KiB)
- патч для svn
Downloaded 213 times
-
Несколько не понял почему мешает? Есть же тип окна "Y=1 - только определить область окна, ничего не рисовать".
А вообще похоже придется таки выделять кусок памяти размером с экранную область.
А вообще похоже придется таки выделять кусок памяти размером с экранную область.
Mario
Такое окно, если сделать его на весь экран, при первом клике вылезет не первый план. И назад его не вернёшь. Здесь надо править код работы с оконным стеком, чтобы оно всегда оставалось внизу. Но я пока совершенно не въехал в его логику. Чего только люди не придумают, лишь бы не делать двусвязные списки.
Такое окно, если сделать его на весь экран, при первом клике вылезет не первый план. И назад его не вернёшь. Здесь надо править код работы с оконным стеком, чтобы оно всегда оставалось внизу. Но я пока совершенно не въехал в его логику. Чего только люди не придумают, лишь бы не делать двусвязные списки.
Who is online
Users browsing this forum: No registered users and 4 guests