OberonCore
https://forum.oberoncore.ru/

StdLinks: возврат к ссылке "как в браузере"
https://forum.oberoncore.ru/viewtopic.php?f=47&t=4219
Страница 1 из 1

Автор:  Евгений Темиргалеев [ Четверг, 17 Январь, 2013 09:31 ]
Заголовок сообщения:  StdLinks: возврат к ссылке "как в браузере"

Info21 в viewtopic.php?p=77199#p77199 писал(а):
для прыжка по гиперссылке неплохо бы иметь команду возврата, как в браузере.

У кого-нить есть представление, как это сбацать?
1) Сохранять в момент клика-выполнения loc = (w: Window.Window, StdLinks.par) в Xxx.list. Xxx даёт и команду "возврата" --- показа loc... Если документ был закрыт (в Windows.dir.First() отсутствует) и не временный, его можно переоткрыть по (w.loc, w.name, w.conv)... Отдельно думать о якорях на закрытые документы в Xxx.list...

2) Сохранять loc глобально для всех кликов --- нужно ковырять обработку клика в StdLinks. Сохранять "локально" без ковыряния StdLinks --- ковырять команды "перехода" (открытия документов) или делать для них специальную обёртку Xxx.Open...
---
Код:
   PROCEDURE GetStoreWindow* (s: Stores.Store; OUT res: Windows.Window);
      VAR    domain: Stores.Domain; w: Windows.Window;
   BEGIN
      domain := s.Domain(); ASSERT(domain # NIL, 20);
      IF Windows.dir # NIL THEN w := Windows.dir.First() ELSE w := NIL END;
      WHILE (w # NIL) & ~(w.doc.Domain() = domain) DO
         w := Windows.dir.Next(w)
      END;
      res := w
   END GetStoreWindow;
---
StdLinks.Link --- не гиперссылка, а аналог коммандера, позволяющий выполнить произвольную последовательность операторов.

Автор:  Пётр Кушнир [ Четверг, 17 Январь, 2013 09:40 ]
Заголовок сообщения:  Re: StdLinks: возврат к ссылке "как в браузере"

Евгений Темиргалеев писал(а):
StdLinks.Link --- не гиперссылка, а аналог коммандера, позволяющий выполнить произвольную последовательность операторов.

Ну, значит ли это, что для гиперссылки ББ можно ввести понятия, аналогичные do и undo? При этом, частным случаем такого undo для ссылки в документе будет команда возврата фокуса в окрестности гиперссылки, а для ссылки не изменяющей фокус - ну не знаю - работа в виде переключателя, раскрытие/схлопывание прилежащего фолда или прочие плюшки.

Автор:  Евгений Темиргалеев [ Четверг, 17 Январь, 2013 09:59 ]
Заголовок сообщения:  Re: StdLinks: возврат к ссылке "как в браузере"

Пётр Кушнир писал(а):
Ну, значит ли это, что для гиперссылки ББ можно ввести понятия, аналогичные do и undo?
Вопрос не понял.
Пётр Кушнир писал(а):
работа в виде переключателя, раскрытие/схлопывание прилежащего фолда или прочие плюшки.
У Вашей процедуры, вызванной при тычке по вьюшке v: StdLinks.Link, есть StdLinks.par = (text, v context pos). Что мешает выполнять любые манимуляции с text --- хоть около pos, хоть где ещё? Делайте что надо.

Автор:  Пётр Кушнир [ Четверг, 17 Январь, 2013 12:09 ]
Заголовок сообщения:  Re: StdLinks: возврат к ссылке "как в браузере"

Ну, если мы нажали на ссылку, то перешли куда-то, сделали Do, соответственно, чтобы перейти обратно (не говорим пока, что для этого надо запомнить окна), надо совершить обратное действие, сделать unDo, но так как переход по документам это частный случай обобщённых команд интерпретатора, то и команд у ссылки должно быть две, одна чтобы "перейти", а вторая чтобы "вернуться".
Ну а в случае с открытием документа по ссылке реализация процедуры undo может быть встроенной в модуль реализации ссылок (ну и процедуру открытия документа по ссылке тоже туда можно воткнуть, для контроля).

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/