Перейти к содержимому
Doob

Файловый менеджер для цветных мониторов

Рекомендуемые сообщения

В связи с переездом приходится закидывать все незаконченные программки в один файл и выкидывать на флешку.
Давно хотел сделать модный файловый менеджер со свайпами и гибкой настройкой, но проигрывал в битве с ленью и временем.
Концепция проста как тапок, при должном упорстве можно склепать за один вечер, но мне, видать не судьба.
 
В общем суть такова: программа выводит список файлов в рабочей директории, раскидывая их по сетке, как сейчас модно в планшетах и мобильниках. Так как список файлов хранится в таблице, поделенной на экраны, свайп (либо клик по указателю) по горизонтали переключает экран, обновляя список файлов.
hJgBXjB.gif

Свайп по вертикали с верхней части экрана, разворачивает строку терминала в рабочей директории, свайп вверх сворачивает ее.
iNTV0P6.gif

Иконки файлов можно хранить в самом файле, либо в специальной папке (например специальная иконка для файлов .lua), отрисовка иконки происходит из простой таблицы цветов, как я предлагал здесь, этот способ удобен тем, что иконку можно набросать в текстовом редакторе.

 

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

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

GTHEf2s.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А где, собственно сам файловый менеджер?

 

Наверно в разработке...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты что, сделал жесты движения?)

 

Ну в ОС можно реализовать только один жест, у меня только три функции - дабл клик, свайп, клик ПКМ.

 

Если я ничего не напутал, то это выглядит как-то так:

local event = require('event')
local gpu = require('component').gpu

local function d_c(a, b)
  if (a[3]-b[3]) == 0 and (a[4]-b[4]) == 0 then
    return a[3], a[4]
  end
end

local function swp(a, b)
  return (b[3]-a[3]), (b[4]-a[4]), math.deg(math.atan(x/y))
end

while true do
  local e = {event.pull()}
  if e[1] == 'touch' and e[5] == 0 then
    local e0 = {event.pull()}
    if e0[1] == 'touch' and e0[5] == 0 then
      d_c(e, e0) -- double click
    elseif e0[1] == 'drag' then
      local e1 = {event.pull('drop')}
      swp(e0, e1) -- swipe
    elseif e0[1] == 'touch' and e0[5] == 1 then
      -- shortcut menu
    end
  elseif e[1] == 'touch' and e[5] == 1 then
    -- shortcut menu
  end
end
Изменено пользователем Doob

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А под клаву нельзя отдельный экран установить?

 

Как на планшет установить второй экран?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как на планшет установить второй экран?

Связь с компом, там экран для клавы))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Связь с компом, там экран для клавы))

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как можно ком-блоком получить вектор взгляда?

 

testfor

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По-подробнее? На вики нету такого.

 

На вики есть абсолютно все, поищи rx, ry. rxm, rym

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...