Введение

Действие в компьютерных графических пользовательских интерфейсах

В компьютерных графических пользовательских интерфейсах перетаскивание — это жест, выполняемый с помощью устройства указания, при котором пользователь выбирает виртуальный объект, "захватывая" его и перемещая в другое место или на другой виртуальный объект. В общем случае, оно может использоваться для выполнения различных действий или установления различных связей между двумя абстрактными объектами. Поддержка перетаскивания не реализована во всем программном обеспечении, хотя иногда это быстрый и простой в освоении метод. Однако пользователи не всегда понимают, что элемент можно перетащить, или какую команду выполняет перетаскивание, что может снизить удобство использования.

В Mac OS

Перетаскивание, которое в то время называлось «нажатие и перетаскивание», использовалось в оригинальном Macintosh для манипулирования файлами (например, для копирования их между дисками или папками). System 7 добавила возможность открывать документ в приложении, перетаскивая значок документа на значок приложения. В System 7.5 компания Apple добавила функцию «Macintosh Drag and Drop», расширив возможности «нажатия и перетаскивания» на стандартные операции с буфером обмена, такие как копирование или перемещение текстового содержимого внутри документа. Содержимое также можно было перетащить в файловую систему для создания «файла-вырезки», который затем можно было сохранить и использовать повторно. Файлы также можно было перетаскивать на окна приложений, например, чтобы прикрепить документ к электронному письму или добавить изображение в документ текстового редактора. На протяжении большей части своей истории Mac OS использовала мышь с одной кнопкой, которая занимала большую часть верхней поверхности мыши. Это могло снизить эргономические проблемы, связанные с удержанием кнопки нажатой во время перетаскивания.

В OS/2

В Workplace Shell OS/2 широко используется перетаскивание с помощью правой кнопки мыши, оставляя левую кнопку для выделения и щелчков. Такой способ использования, как и других продвинутых функций Common User Access, отличал нативные приложения OS/2 от кроссплатформенных версий.

На сенсорном экране

Интерфейсы сенсорного экрана также поддерживают функцию перетаскивания, или, точнее, длительное нажатие с последующим перетаскиванием, например, на главных экранах iPhone или Android. В iOS 11 реализована функция перетаскивания, позволяющая пользователю касаться элементов (и использовать другие пальцы для перетаскивания нескольких элементов) внутри одного приложения или между приложениями на iPad. На iPhone эта функция доступна только в пределах того же приложения, в котором началось перетаскивание.

В конечном пользователе программирования

Перетаскивание считается важным подходом к разработке программ во многих системах разработки для конечных пользователей. В отличие от более традиционных текстовых языков программирования, многие языки программирования для конечных пользователей основаны на визуальных компонентах, таких как блоки или значки, которыми пользователи манипулируют через интерфейсы перетаскивания. AgentSheets, среда программирования для детей, представила современное представление о блочном программировании с использованием перетаскивания, предоставляя 4 ключевые возможности: 1) блоки, которые могут компоноваться конечными пользователями, 2) блоки, которые могут редактироваться конечными пользователями, 3) блоки могут вкладываться друг в друга для представления древовидных структур, 4) блоки располагаются геометрически для определения синтаксиса. Перетаскивание также используется во многих программах редактирования шейдеров для графических инструментов, таких как Blender. Перетаскивание также присутствует в некоторых игровых движках, включая Unreal Engine, GameMaker Studio, Construct 2 и, при расширении функциональности, Unity.