おきしみみ (oxij) wrote,
おきしみみ
oxij

О зипперах и мышке

Последние несколько дней сходил (и до сих пор схожу) с ума на почве проекций потоковых функций, а позавчера вечером на ночь читал статью о том, какие противные тачскрин-интерфейсы на современных девайсах.
Видимо от диалектического синтеза этих двух фактов вчера утром мне в голову стрельнула шальная мысль о том, что интерфейсы с возможностью ткнуть куда попало (курсором мышки, например, я могу ткнуть куда попало, а курсором в тексте — нет), или не представимы чисто функционально, или я не знаю как.

Вот, скажем, как можно построить «текстовый редактор» для произвольных зипперов (zipper)?
Например так: определим «шагающие» и «редактирующие» операции для интересующего нас зиппера, сделаем маппинг из потока нажатых на клавиатуре клавиш в поток этих операций. Тогда редактор будет просто пожирать этот поток операций и выплёвывать поток состояний интерфейса — отрендеренных состояний зиппера.

Это всё прекрасно, поскольку от интерфейса, где ввод производится только с клавиатуры, не требуется фитбека, однако тыканье мышкой в кнопку гуя обычно подразумевает наличие самой кнопки. То есть, если теперь я хочу в свой редактор зипперов добавить, например, возможность выбирать мышкой произвольный узел редактируемого дерева, то, кажется, мой зиппер перестаёт быть зиппером. Это печалит.
Tags: lambda, random
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments