Открыть сервисСервис

Курсор — указатель позиции в интерфейсе

Курсор — это графический объект на экране компьютера или другого устройства с интерфейсом, указывающий текущую позицию указателя и служащий основным средством взаимодействия пользователя с программным интерфейсом. В зависимости от контекста термин обозначает либо видимый указатель (стрелку, стрелку с «рукой», крестик), либо мигающую вертикальную черту в текстовом поле, определяющую место ввода символа.

История

Курсор как элемент графического интерфейса появился в конце 1960-х годов в исследовательских лабораториях Xerox PARC. В 1973 году в системе Xerox Alto впервые был реализован оконный интерфейс с мышью, а курсор стал визуальным продолжением указателя. Ранее, в 1968 году, Дуглас Энгельбарт продемонстрировал «Mother of All Demos», где показал работу с мышью и курсором.

В СССР графические интерфейсы с курсором получили распространение позднее — в 1980-е годы, в частности в системах «Электроника-60» (там курсором служила мигающая звёздочка в текстовом режиме) и в среде MSX/DOS с графическими оболочками. Текстовый курсор в виде подчёркивания или прямоугольника был известен ещё в телетайпах и терминалах 1970-х.

Виды курсоров

Указатель мыши

Наиболее распространённый курсор — стрелка, направленная влево-вверх. В разных операционных системах её форма слегка отличается: в Windows стрелка чёрная с белой окантовкой, в macOS — чёрная, в Linux-окружениях (GNOME, KDE) — вариации стрелки. Стрелка меняет вид в зависимости от контекста:

Вид курсораЗначение
СтрелкаОбычное наведение
Крестик («+»)Выделение области
Курсор-«рука»Нажимаемая ссылка или кнопка
Курсор ожидания (песочные часы, вращающийся круг)Фоновая операция
Двунаправленная стрелкаИзменение размера окна
Текстовый курсор (I-образка)Позиция ввода текста

Текстовый курсор

В текстовых полях и редакторах курсор обозначает позицию ввода символа и обычно выглядит как вертикальная мигающая линия (в Windows — тонкая вертикальная черта, в терминалах — прямоугольник или подчёркивание). Его положение определяется кликом мыши, клавишами-стрелками, Home/End и другими навигационными командами. В кодировках с фиксированной шириной символа (например, CP866 в DOS) текстовый курсор занимает ровно одну позицию сетки.

Техническая реализация

Курсор управляется драйвером мыши (или тачпада, сенсорного экрана) и операционной системой. Движение мыши порождает события, которые ОС преобразует в изменение координат указателя. В графических подсистемах (X Window System, Wayland, Windows Display Driver Model) курсор рисуется поверх оконного содержимого на отдельном слое, что позволяет перемещать его без перерисовки всего экрана.

В текстовых средах курсор управляется программой: она решает, где он находится, как часто мигает (обычно 2 раза в секунду) и как выглядит. В терминалах позиция курсора задаётся escape-последовательностями (например, ESC [ row ; col H).

Курсор в программировании

В языках программирования термин «курсор» имеет и другое значение — ссылка на текущую позицию в наборе данных. В SQL курсор — объект, позволяющий последовательно обрабатывать строки результата запроса. В языках с динамической памятью (Python, JavaScript) курсор — указатель на текущий элемент итератора. В редакторах текста курсор (caret) — объект, хранящий позицию вставки и управляющий отображением текстового указателя.

Курсор в играх и специализированных программах

В компьютерных играх курсор часто заменяется собственным указателём, адаптированным под сетку или трёхмерную сцену. В стратегиях в реальном времени курсор меняет вид при наведении на вражеский/дружественный объект. В графических редакторах (Photoshop, GIMP, Krita) курсор принимает форму кисти, ластика, кропа и других инструментов, отражая текущий активный инструмент и его параметры (размер, непрозрачность).

Интересные факты

  • В первых версиях Windows курсор был чёрно-белым и не имел сглаживания; цветное сглаживание появилось в Windows XP.
  • В macOS курсор автоматически увеличивается при быстром движении мыши (функция доступности).
  • Существуют альтернативные наборы курсоров (анимированные, тематические), распространяемые как пользовательские темы.

Источники

  • Энгельбарт Д. «Augmenting Human Intellect: A Conceptual Framework», 1962.
  • Johnson J. «Designing with the Mind in Mind», Morgan Kaufmann, 2010.
  • «The Xerox Alto and the birth of GUI», Computer History Museum.
  • Microsoft Docs: «Mouse Input», «Text Services Framework».
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru