Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Aug 22, 2019 6:57 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 122 posts ]  Go to page 1 2 3 4 59 Next
Author Message
PostPosted: Mon Nov 26, 2012 12:02 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Image
Пока ещё много недоработок, например, во время навигации,
во время перемещения по списку при переключении с мыши на клавиатуру, при возврате из пустой папки,
со скроллбаром какой-то глюк, имена с русскими буквами не всегда правильно сортируются, ...

Управление клавиатурой:
  • Home в начало списка
  • End в конец списка
  • PageUp на страницу вверх
  • PageDown на страницу вниз
  • ArrowUp на один элемент вверх
  • ArrowDown на один элемент вниз
  • L перейти в адресную строку
  • BackSpace на уровень вверх
  • ArrowLeft в предыдущую директорию
  • ArrowRight в следующую директорию
  • Enter перейти в выделенную(или введённую в адресную строку) директорию или открыть(запустить) выделенный файл

Действия Cut\Copy\Paste\Delete пока работают только для файлов. Delete подтверждения не спрашивает.


Используемые библиотеки:
  • box_lib (edit_box, scrollbar)
  • libimg (загрузка иконок и шрифта)
  • buf2d (отрисовка списка)

Следующие файлы должны находится в "/rd/1/file managers/":
  • fnav.set (список ассоциированных приложений и расширений файлов)
  • fnav_icn.png (иконки)
  • fnav_fnt.png (шрифт)


Attachments:
fNav(0.1a).7z [9.86 KiB]
Downloaded 174 times
Top
   
PostPosted: Mon Nov 26, 2012 12:15 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Молодец. А ты видел, что есть такая штука, как opendial, и в box_lib есть компонент для отображения директории файлов?


Top
   
PostPosted: Mon Nov 26, 2012 12:56 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
SoUrcerer
Я так понимаю, 0CodErr написал "Файловый навигатор" с целью обучения асму и использования библиотек. И это похвально.

С другой стороны два файловых менеджера уже есть в Колибри. В то время, как нехватает ещё множества других программ! Например: поиск, программа календарь требует переработки, нет менеджера обоев (функция ресайза уже есть в img_lib) и много другого. Не лучше ли начать писать что-то полезное сразу? Еолайт, к примеру, был моей первой программой вместо "Hello World", или ты хочешь составить ему конкуренцию?))

_________________
Через тернии к звездам


Top
   
PostPosted: Tue Nov 27, 2012 1:43 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Leency wrote:
С другой стороны два файловых менеджера уже есть в Колибри

Почему только два - Eolite, Kfar, Kfm. Хотя Kfm уже развиватся не будет, но он пока еще есть в дистрибутиве.
SoUrcerer wrote:
Молодец. А ты видел, что есть такая штука, как opendial, и в box_lib есть компонент для отображения директории файлов?

Я когда-то пробовал разбираться с подключением элемента opendial. Там очень много програмного кода нужного для подключения идет в самом приложении. Потому его так просто не подключишь. Например приложение само анализирует все нажатия кнопок, а перед вызовом функции нажатия на клавиатуру уже должно быть определено действие, которое должен делать элемент opendial.
Если интересно см. файл http://websvn.kolibrios.org/filedetails ... endial.asm
со строки 130 (функция key) и далее со строки 269:
Code:
.key_action:

        mov     [file_browser_data_1.key_action],ebx

 

        push    dword file_browser_data_1

        call    [FileBrowser_key]

Думаю что это хорошая программа, не смотря на то что уже есть другие файловые менеджеры.


Top
   
PostPosted: Tue Nov 27, 2012 10:09 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Leency
Каждый начинающий программист должен написать своей клон коммандера, эксплорера или чего-то-там-файловое-ещё. Без этого никак нельзя.

0CodErr
Исходники будут ?


Top
   
PostPosted: Wed Nov 28, 2012 5:35 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Зависает при запуске.

_________________
Через тернии к звездам


Top
   
PostPosted: Mon Dec 03, 2012 4:48 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Leency wrote:
Зависает при запуске.
Может buf2d слишком старая?
Serge wrote:
Исходники будут?
Только когда доделаю. Сейчас там, выражаясь словами Leency, "своя атмосфера".
Самих исходников, возможно, будет не достаточно. Я многое сначала схематично изображаю на картинках, поэтому комментариев в коде не очень много. Картинки, например, такие:
Image

В новой версии некоторые доработки в навигации и во время перемещения по списку.
Добавил управление мышью:
  • средняя кнопка + движение вверх на уровень вверх
  • средняя кнопка + движение влево в предыдущую директорию
  • средняя кнопка + движение вправо в следующую директорию
Файл из архива fnav_cur.png надо тоже положить в "/rd/1/file managers/".

Со скроллбаром проблема осталась. Здесь viewtopic.php?f=24&t=1220&start=195#p44130 я приводил пример. Это только у меня так?

Насчёт смены курсора:
Он у меня меняется не сразу, а только если подвигать мышью, поэтому приходится делать это программно.

На реальной системе у меня курсоры отображаются не совсем правильно, а VirtualBox — нормально. Думаю, дело тут не в самой программе.


Attachments:
fNav(0.2a).7z [7.13 KiB]
Downloaded 148 times
Top
   
PostPosted: Mon Dec 03, 2012 6:46 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Со сколл-баром у мя тоже была проблема в HTMLv, посмотри видео по ссылке http://bugs.kolibrios.org/view.php?id=41

Пришлось перетаскивание ползунка мышью делать вручную, а не юзать готовый метод.
Spoiler: Show
Code:
            /*scrollbar_v_mouse (#scroll1);      //скролл притормажимает, идём "своим путём"
            if (lines.first <> scroll1.position)
            {
               lines.first = scroll1.position;
               WB1.ParseHTML(buf, filesize);
               //break;
            };*/

            if (!m.lkm) scroll_used=0;
            if (m.x>=WB1.width-14) && (m.x<=WB1.width+6) && (m.y>WB1.top+16)
            && (m.y<WB1.top+WB1.height-16) && (lines.all>lines.visible) && (m.lkm)
               scroll_used=1;
            
            if (scroll_used)
            {
               half_scroll_size = WB1.height - 16 * lines.visible / lines.all - 3 /2;
               IF (half_scroll_size+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=half_scroll_size+WB1.top; //если курсор над окном
               btn=lines.first; //сохраняем старое количество
               lines.first = m.y -half_scroll_size -WB1.top * lines.all / WB1.height;
               if (lines.visible+lines.first>lines.all) lines.first=lines.all-lines.visible;
               if (btn<>lines.first) WB1.ParseHTML(buf); //чтоб лишний раз не перерисовывать
            }

_________________
Через тернии к звездам


Top
   
PostPosted: Mon Dec 03, 2012 7:06 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Я тоже пытаюсь сам корректировать .position скроллбара.
Но я ещё перед этим вызываю scrollbar_v_mouse, наверное, из-за этого меняется реальное положение ползунка(.position2, если не ошибаюсь).

Забыл сказать. Можно же разные шрифты использовать. Например, это может выглядеть так:
ImageImageImage


Top
   
PostPosted: Tue Dec 04, 2012 11:12 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
>>Может buf2d слишком старая?
Я вообще не знал, что она нужна, и программа не пишет, что библиотека такая-то не найдена.

Ок, собрал последнюю версию с SVN, всё равено падает.

Code:
K : Process - forced terminate PID: 0000002A
K : Page fault
K : EAX : 00000000 EBX : 700DD660 ECX : FFFFFFFA
K : EDX : 00020000 ESI : 700E29ED EDI : 00006000
K : EBP : 00004D1B EIP : 700D8E03 ESP : 00004D13
K : Flags : 00011246 CS : 0000001B (application)
K : destroy app object
K : destroy app object
K : Process - forced terminate PID: 0000002F
K : Page fault
K : EAX : 00000000 EBX : 70104660 ECX : FFFFFFFA
K : EDX : 00020000 ESI : 701099ED EDI : 00006000
K : EBP : 00004D1B EIP : 700FFE03 ESP : 00004D13
K : Flags : 00011246 CS : 0000001B (application)
K : Process - forced terminate PID: 00000031
K : Page fault
K : EAX : 00000000 EBX : 7011C660 ECX : FFFFFFFA
K : EDX : 00020000 ESI : 701219ED EDI : 00006000
K : EBP : 00004D1B EIP : 70117E03 ESP : 00004D13
K : Flags : 00011246 CS : 0000001B (application)
K : destroy app object


А ещё - путь к png файлу жёстко прописан на /sys/file managers или может юзать текущую папку программы?

_________________
Через тернии к звездам


Top
   
PostPosted: Tue Dec 04, 2012 11:49 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Quote:
>>Может buf2d слишком старая?
Я вообще не знал, что она нужна,
В первом сообщении указаны используемые библиотеки.
Quote:
А ещё - путь к png файлу жёстко прописан на /sys/file managers или может юзать текущую папку программы?
Сейчас все пути жёстко заданы.
Quote:
Ок, собрал последнюю версию с SVN, всё равено падает.
А другие программы с buf2d работают?

Используемые png-изображения открываются в KIV?


Top
   
PostPosted: Tue Dec 04, 2012 6:15 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
0CodErr wrote:
buf2d (отрисовка списка)

Следующие файлы должны находится в "/rd/1/file managers/":
  • fnav.set (список ассоциированных приложений и расширений файлов)
  • fnav_icn.png (иконки)
  • fnav_fnt.png (шрифт)

Quote:
Сейчас все пути жёстко заданы.

Часть файлов только в первом архиве, часть обновлено во втором. buf2d по-умолчанию в дистре нет (надо добавить). Получился пазл.
Надо какие-то сообщения об ошибках и всё же юзать текущую папку с программой. FFFUUUUU~

_________________
Через тернии к звездам


Top
   
PostPosted: Tue Dec 04, 2012 6:34 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Всё равно падает. Скинь свой образ kolibri.img

_________________
Через тернии к звездам


Top
   
PostPosted: Wed Dec 05, 2012 1:51 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
На досуге, в помощь, сделал специально для чайников описание установки fNav, в образ. Всё файлы и описание в архиве, который прикрепил. Читать ReadMe.txt.
Leency wrote:
Всё равно падает. Скинь свой образ kolibri.img
:arrow: Образ забирай отсюда. Всё работает. fNav расположен в папке File Managers.
--------------
0CodErr советую выкладывать свои проги, вместе с dll бинарниками (если они необходимы), с кратким описание их расположения, чтобы небыло глупых вопросов, в будущем.
--------------


Attachments:
fNav_v0.2a.7z [62.7 KiB]
Downloaded 142 times

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image
Top
   
PostPosted: Wed Dec 05, 2012 2:20 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Спасибо, попробую!
Кстати на ftp сервер не пускает, просит пароль.

_________________
Через тернии к звездам


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 122 posts ]  Go to page 1 2 3 4 59 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited