Icon - менеджер иконок рабочего стола

...
  • 0CodErr wrote:всё элементарно же
    Однако автору почему то такое не пришло в голову с самого начала.
    Вместо этого "хотеть пустые идентификаторы, говно этот ваш libini, буду мстит, УПИФАТ всех мерзких людев".
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:
    0CodErr wrote:всё элементарно же
    Однако автору почему то такое не пришло в голову с самого начала.
    Вместо этого "хотеть пустые идентификаторы, говно этот ваш libini, буду мстит, УПИФАТ всех мерзких людев".
    Хотите смейтесь, хотите нет, но использовать ИД как имя секции, а имя иконки - лишь ключ, я хотел первоначально, но потом прикинул, что мне придётся думать над тем, как создавать уникальное имя секции для создания иконки и решил, что имя - как заголовок секции и больше не парится над этим вопросом. Сейчас же я заметил ещё один баг - если создать одинаковые имена у двух иконок, то после перезапуска останется только одна иконка. И первоначальная идея приобрела новый смысл. Так что так и сделаю. Останется придумать как придумывать уникальные имена иконкам, но это уже моя проблема и не такая уж проблема :)
    PS: и пустые имена будут и две иконки с одинаковым именем будут, незачем обижать юзеров виндовыми ограничениями. Вин7 видите ли, хех :)
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • GerdtR wrote:Останется придумать как придумывать уникальные имена иконкам, но это уже моя проблема и не такая уж проблема :)
    Spoiler:

    Code: Select all

    ;-----------------------------------------------------------------------------+
    ; Функция генерации случайного числа в диапозоне 0..99999                     |
    ;-----------------------------------------------------------------------------+
    ; На выходе  : eax - случайное число                                          |
    ;-----------------------------------------------------------------------------+
    _random:
        push    edx ecx ebx
        mov     eax,ebx
        or      eax,eax
        jnz     @f
        rdtsc
        xor     eax,edx
        mov     ebx,eax
    @@:
        xor     edx,edx
        mov     ecx,127773
        div     ecx
        mov     ecx,eax
        mov     eax,16807
        mul     edx
        mov     edx,ecx
        mov     ecx,eax
        mov     eax,2836
        mul     edx
        sub     ecx,eax
        xor     edx,edx
        mov     eax,ecx
        mov     ebx,ecx
        mov     ecx,100000
        div     ecx
        mov     eax,edx
        pop     ebx ecx edx
        ret
    ;->
    
    ;-----------------------------------------------------------------------------+
    ; Функция генерации случайного числа в диапозоне [min...max]                  |
    ;-----------------------------------------------------------------------------+
    ; На входе   : edi - указатель на [max] значение                              |
    ; На входе   : edi - указатель на [min] значение                              |
    ; На выходе  : eax - случайное число                                          |
    ;-----------------------------------------------------------------------------+
    _randomrange:
        push    esi edi edx ecx
        mov     ecx,edi
        sub     ecx,esi
        inc     ecx
        call    _random
        xor     edx,edx
        div     ecx
        mov     eax,edx
        add     eax,esi
        pop     ecx edx edi esi
        ret
    ;->
    
  • GerdtR wrote:Останется придумать как придумывать уникальные имена
    Если мы сохраняем все элементы от первого до последнего, то уникальное имя может быть просто номером этого элемента, и этот номер может измениться после сохранения(например, был id1, а стал id15), но в этом ничего страшного нет — главное, что он уникальный для каждого элемента.
  • Тогда нужно при сохранении в ini либо переписывать весь файл(ну точнее удалить все секции с иконками и создать заново), либо научить libini переименовывать секции. Хотя думаю просто добавить функцию, которая будет сообщать, есть такое имя секции, либо нет. И тогда: генератор + есть ли такое имя секции -> если есть, то всё ок, иначе в начало цикла.
    PS: Akyltist, спасибо за ГСЧ.
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • После одной из перезагрузок с сохранением образа некоторые иконки сместились, хотя до этого были на дефолтных местах.
    Spoiler:
    6.jpg
    6.jpg (207.81 KiB)
    Viewed 10751 times
  • Вызываем меню правой кнопкой мыши.
    Теперь, не закрывая меню, нажимаем левой кнопкой на иконку:
    Spoiler:
    kfm_snake.PNG
    kfm_snake.PNG (3.1 KiB)
    Viewed 10708 times
    Такое происходит с разными иконками.
  • Не подтверждаю, повторить не удалось
  • Выкладываю пробную версию(ещё не рискую в svn кидать - толком не тестил). Теперь имя секции - уникальное шестнадцетиричное число от 00 до FF (именно большие буквы и именно 2 символа). Буферы в icon расчитаны максимум под 100 иконок, потому запаса в 256 вариаций хватает. В архиве новый @icon и icon.ini . Вот. Проверяйте старые баги, ищите новые...
    Attachments
    icon.zip (5.93 KiB)
    Downloaded 333 times
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Ещё поправил немного код, вроде багов не добавил, но баг, который нашёл 0CodErr с ... опять с маранием иконок, только по другому, остался. DmitrySokolowsky, этот баг в виртуальной машине видно, если точнее, то там, где скорость отрисовки очень медленная.
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Новые баги:
    1) Начиная с ревизии 4336 иконки не отрисовываются совсем. По крайней мере в Qemu.
    2) Ревизия 4335, если прописать параметр к иконке (например, для BOARD прописать параметром путь /hd0/1/boardlog12345.txt), а потом сохранить образ при помощи RDSAVE (например, на /fd0/1), то после перезагрузки иконка с параметром не отрисуется.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • 1) А icon хоть запускается? Надо в VirtuelBox попробовать, в реальной работает.
    2) Это с каждой иконкой или только с некоторыми? И скиньте icon.ini, когда иконка уже пропала.
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Mario_r4, эмм... icon.ini изменился с последней правкой. Вы не забыли его заменить на новый?
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • GerdtR wrote:1) А icon хоть запускается? Надо в VirtuelBox попробовать, в реальной работает.
    В VirtuelBox иконки тоже не рисуются. Оба процесса в CPU присутствуют, менюшка ПКМ работает.
    GerdtR wrote:2) Это с каждой иконкой или только с некоторыми? И скиньте icon.ini, когда иконка уже пропала.
    С любой.
    ICON.INI (1.94 KiB)
    Downloaded 351 times
    GerdtR wrote:Mario_r4, эмм... icon.ini изменился с последней правкой. Вы не забыли его заменить на новый?
    Я просто взял сборку ревизии 4336. Ничего в ней не менял.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Who is online

    Users browsing this forum: No registered users and 4 guests