Spec-Zone.ru › GTK 3.24

Перетаскивание

Перетаскивание — Функции для управления обработкой перетаскивания

Функции

void gtk_drag_dest_set ()
void gtk_drag_dest_set_proxy ()
void gtk_drag_dest_unset ()
GdkAtom gtk_drag_dest_find_target ()
GtkTargetList * gtk_drag_dest_get_target_list ()
void gtk_drag_dest_set_target_list ()
void gtk_drag_dest_add_text_targets ()
void gtk_drag_dest_add_image_targets ()
void gtk_drag_dest_add_uri_targets ()
void gtk_drag_dest_set_track_motion ()
gboolean gtk_drag_dest_get_track_motion ()
void gtk_drag_finish ()
void gtk_drag_get_data ()
GtkWidget * gtk_drag_get_source_widget ()
void gtk_drag_highlight ()
void gtk_drag_unhighlight ()
GdkDragContext * gtk_drag_begin ()
GdkDragContext * gtk_drag_begin_with_coordinates ()
void gtk_drag_cancel ()
void gtk_drag_set_icon_widget ()
void gtk_drag_set_icon_pixbuf ()
void gtk_drag_set_icon_stock ()
void gtk_drag_set_icon_surface ()
void gtk_drag_set_icon_name ()
void gtk_drag_set_icon_gicon ()
void gtk_drag_set_icon_default ()
gboolean gtk_drag_check_threshold ()
void gtk_drag_source_set ()
void gtk_drag_source_set_icon_pixbuf ()
void gtk_drag_source_set_icon_stock ()
void gtk_drag_source_set_icon_name ()
void gtk_drag_source_set_icon_gicon ()
void gtk_drag_source_unset ()
void gtk_drag_source_set_target_list ()
GtkTargetList * gtk_drag_source_get_target_list ()
void gtk_drag_source_add_text_targets ()
void gtk_drag_source_add_image_targets ()
void gtk_drag_source_add_uri_targets ()

Типы и значения

перечисление GtkDestDefaults
перечисление GtkTargetFlags
перечисление GtkDragResult

Файлы заголовков

#include <gtk/gtk.h>

Описание

GTK+ предоставляет богатый набор функций для межпроцессного взаимодействия с помощью метафоры перетаскивания.

Помимо функций, перечисленных здесь, приложениям может потребоваться использовать некоторые возможности, предоставляемые для Выделений. Кроме того, API перетаскивания использует сигналы в классе GtkWidget.

Функции

gtk_drag_dest_set ()

void
gtk_drag_dest_set (GtkWidget *widget,
                   GtkDestDefaults flags,
                   const GtkTargetEntry *targets,
                   gint n_targets,
                   GdkDragAction actions);

Устанавливает виджет в качестве потенциальной цели для сброса и добавляет стандартное поведение.

Стандартное поведение, перечисленное в flags, имеет эффект, аналогичный установке обработчиков по умолчанию для сигналов перетаскивания и сброса виджета (“drag-motion”, “drag-drop”, ...). Они все существуют для удобства. Например, при передаче GTK_DEST_DEFAULT_ALL достаточно подключиться к сигналу “drag-data-received” виджета, чтобы получить простую, но согласованную поддержку перетаскивания и сброса.

Все усложняется, когда вы пытаетесь предварительно просмотреть перетаскиваемые данные, как описано в документации для “drag-motion”. Стандартное поведение, описанное в flags, делает некоторые предположения, которые могут конфликтовать с вашими собственными обработчиками сигналов. Например, GTK_DEST_DEFAULT_DROP вызывает вызовы gdk_drag_status() в контексте “drag-motion” и вызовы gtk_drag_finish() в “drag-data-received”. Особенно последнее драматично, когда ваш собственный обработчик “drag-motion” вызывает gtk_drag_get_data() для проверки перетаскиваемых данных.

Нет способа установить действие по умолчанию здесь, вы можете использовать обратный вызов “drag-motion” для этого. Вот пример, который выбирает используемое действие в зависимости от того, нажата ли клавиша управления:

static void
drag_motion (GtkWidget *widget,
             GdkDragContext *context,
             gint x,
             gint y,
             guint time)
{
  GdkModifierType mask;

  gdk_window_get_pointer (gtk_widget_get_window (widget),
                          NULL, NULL, &mask);
  if (mask & GDK_CONTROL_MASK)
    gdk_drag_status (context, GDK_ACTION_COPY, time);
  else
    gdk_drag_status (context, GDK_ACTION_MOVE, time);
}

[метод]

Параметры

widget

a GtkWidget

flags

типы стандартного поведения перетаскивания

targets

указатель на массив GtkTargetEntrys, указывающий типы сброса, которые будет принимать этот widget, или NULL. Позже вы можете получить доступ к списку с помощью gtk_drag_dest_get_target_list() и gtk_drag_dest_find_target().

[allow-none][array length=n_targets]

n_targets

количество элементов в targets

actions

маска битов возможных действий для сброса на этот widget.

gtk_drag_dest_set_proxy ()

void
gtk_drag_dest_set_proxy (GtkWidget *widget,
                         GdkWindow *proxy_window,
                         GdkDragProtocol protocol,
                         gboolean use_coordinates);

gtk_drag_dest_set_proxy устарел начиная с версии 3.22 и не должен использоваться в новом коде.

Устанавливает этот виджет в качестве прокси для сброса в другое окно.

[метод]

Параметры

widget

a GtkWidget

proxy_window

окно, в которое нужно пересылать события перетаскивания

protocol

протокол перетаскивания, который принимает proxy_window (вы можете использовать gdk_drag_get_protocol() для определения этого)

use_coordinates

Если TRUE, отправлять те же координаты в пункт назначения, потому что это вложенное дочернее окно.

gtk_drag_dest_unset ()

void
gtk_drag_dest_unset (GtkWidget *widget);

Очищает информацию о пункте назначения сброса, установленную с помощью gtk_drag_dest_set(). Виджет больше не будет получать уведомления о перетаскивании.

[метод]

Параметры

widget

a GtkWidget

gtk_drag_dest_find_target ()

GdkAtom
gtk_drag_dest_find_target (GtkWidget *widget,
                           GdkDragContext *context,
                           GtkTargetList *target_list);

Ищет совпадение между поддерживаемыми целевыми объектами context и dest_target_list, возвращая первую соответствующую цель, в противном случае возвращая GDK_NONE. dest_target_list обычно должно быть значением, возвращаемым из gtk_drag_dest_get_target_list(), но некоторые виджеты могут иметь разные допустимые цели для разных частей виджета; в этом случае им необходимо реализовать обработчик drag_motion, передающий правильный список целей в эту функцию.

[метод]

Параметры

widget

виджет пункта назначения перетаскивания

context

контекст перетаскивания

target_list

список целей сброса или NULL для использования gtk_drag_dest_get_target_list (widget).

[allow-none]

Возвращаемое значение

первая цель, которую предлагает источник и может принять пункт назначения, или GDK_NONE.

[transfer none]

gtk_drag_dest_get_target_list ()

GtkTargetList *
gtk_drag_dest_get_target_list (GtkWidget *widget);

Возвращает список целей, которые этот виджет может принять при перетаскивании.

[метод]

Параметры

widget

a GtkWidget

Возвращаемое значение

the GtkTargetList или NULL если нет.

[nullable][transfer none]

gtk_drag_dest_set_target_list ()

void
gtk_drag_dest_set_target_list (GtkWidget *widget,
                               GtkTargetList *target_list);

Устанавливает типы целевых данных, которые этот виджет может принять при перетаскивании. Сначала виджет должен быть настроен как целевой для перетаскивания с помощью gtk_drag_dest_set().

[метод]

Параметры

widget

виджет GtkWidget, являющийся целевым для перетаскивания

target_list

список целевых данных для перетаскивания, или NULL для отсутствия.

[allow-none]

gtk_drag_dest_add_text_targets ()

void
gtk_drag_dest_add_text_targets (GtkWidget *widget);

Добавляет целевые типы данных текста, поддерживаемые GtkSelectionData, в список целевых данных для перетаскивания. Целевые типы добавляются со значением info = 0. Если необходимо другое значение, используйте gtk_target_list_add_text_targets() и gtk_drag_dest_set_target_list().

[метод]

Параметры

widget

виджет GtkWidget, являющийся целевым для перетаскивания

С: 2.6

gtk_drag_dest_add_image_targets ()

void
gtk_drag_dest_add_image_targets (GtkWidget *widget);

Добавляет целевые типы данных изображений, поддерживаемые GtkSelectionData, в список целевых данных для перетаскивания. Целевые типы добавляются со значением info = 0. Если необходимо другое значение, используйте gtk_target_list_add_image_targets() и gtk_drag_dest_set_target_list().

[метод]

Параметры

widget

виджет GtkWidget, являющийся целевым для перетаскивания

С: 2.6

gtk_drag_dest_add_uri_targets ()

void
gtk_drag_dest_add_uri_targets (GtkWidget *widget);

Добавляет целевые типы данных URI, поддерживаемые GtkSelectionData, в список целевых данных для перетаскивания. Целевые типы добавляются со значением info = 0. Если необходимо другое значение, используйте gtk_target_list_add_uri_targets() и gtk_drag_dest_set_target_list().

[метод]

Параметры

widget

виджет GtkWidget, являющийся целевым для перетаскивания

С: 2.6

gtk_drag_dest_set_track_motion ()

void
gtk_drag_dest_set_track_motion (GtkWidget *widget,
                                gboolean track_motion);

Указывает виджету генерировать события “drag-motion” и “drag-leave”, независимо от целевых данных и флага GTK_DEST_DEFAULT_MOTION.

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

[метод]

Параметры

widget

виджет GtkWidget, являющийся целевым для перетаскивания

track_motion

указать, принимать ли все типы данных

С: 2.10

gtk_drag_dest_get_track_motion ()

gboolean
gtk_drag_dest_get_track_motion (GtkWidget *widget);

Возвращает значение, определяющее, настроен ли виджет на всегда генерирование сигналов “drag-motion”.

[метод]

Параметры

widget

виджет GtkWidget, являющийся целевым для перетаскивания

Возвращает

TRUE если виджет всегда генерирует события “drag-motion”

С: 2.10

gtk_drag_finish ()

void
gtk_drag_finish (GdkDragContext *context,
                 gboolean success,
                 gboolean del,
                 guint32 time_);

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

[метод]

Параметры

context

контекст перетаскивания

success

флаг, указывающий на успех перетаскивания

del

флаг, указывающий, должен ли источник удалить исходные данные. (Должно быть TRUE для перемещения)

time_

временная метка из сигнала “drag-drop”

gtk_drag_get_data ()

void
gtk_drag_get_data (GtkWidget *widget,
                   GdkDragContext *context,
                   GdkAtom target,
                   guint32 time_);

Получает данные, связанные с перетаскиванием. Когда данные получены или их получение не удалось, GTK+ генерирует сигнал “drag-data-received”. Неудачное получение данных указывается отрицательным значением длины в параметре selection_data сигнала. Однако, когда gtk_drag_get_data() вызывается неявно из-за установки флага GTK_DEST_DEFAULT_DROP, виджет не получает уведомления об ошибках получения данных.

[метод]

Параметры

widget

виджет, который получит сигнал “drag-data-received”

context

контекст перетаскивания

target

целевой тип данных для получения

time_

временная метка для получения данных. Обычно это временная метка, полученная в сигнале “drag-motion” или “drag-drop”

gtk_drag_get_source_widget ()

GtkWidget *
gtk_drag_get_source_widget (GdkDragContext *context);

Определяет виджет-источник для перетаскивания.

[метод]

Параметры

context

контекст перетаскивания (сторона назначения)

Возвращаемое значение

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

[nullable][transfer none]

gtk_drag_highlight ()

void
gtk_drag_highlight (GtkWidget *widget);

Подсвечивает виджет как текущую целевую область для опускания. Для отмены подсвечивания вызовите gtk_drag_unhighlight(). GTK+ автоматически вызывает эту функцию, если установлен GTK_DEST_DEFAULT_HIGHLIGHT.

[метод]

Параметры

widget

виджет, который нужно подсветить

gtk_drag_unhighlight ()

void
gtk_drag_unhighlight (GtkWidget *widget);

Удаляет подсвечивание, установленное функцией gtk_drag_highlight(), с виджета.

[метод]

Параметры

widget

виджет, с которого нужно убрать подсвечивание

gtk_drag_begin ()

GdkDragContext *
gtk_drag_begin (GtkWidget *widget,
                GtkTargetList *targets,
                GdkDragAction actions,
                gint button,
                GdkEvent *event);

gtk_drag_begin устарела начиная с версии 3.10 и не должна использоваться в новых кодах.

Используйте gtk_drag_begin_with_coordinates() вместо этого

Эта функция эквивалентна gtk_drag_begin_with_coordinates() с координатами -1, -1.

[метод]

Параметры

widget

виджет-источник

targets

Цели (форматы данных), в которых источник может предоставить данные

actions

Маска флагов разрешенных действий перетаскивания

button

Кнопка, нажатая пользователем для начала перетаскивания

event

Событие, которое инициировало перетаскивание, или NULL если такое получить невозможно.

[nullable]

Возвращаемое значение

контекст для данного перетаскивания.

[transfer none]

gtk_drag_begin_with_coordinates ()

GdkDragContext *
gtk_drag_begin_with_coordinates (GtkWidget *widget,
                                 GtkTargetList *targets,
                                 GdkDragAction actions,
                                 gint button,
                                 GdkEvent *event,
                                 gint x,
                                 gint y);

Инициализирует перетаскивание со стороны источника. Функция нужна только при ручном запуске перетаскивания приложением, если используется gtk_drag_source_set().

Параметр event используется для получения отметки времени, используемой внутри для захвата указателя. Если event имеет значение NULL, то используется GDK_CURRENT_TIME. Однако, в любом случае рекомендуется передавать реальное событие, так как оно может содержать информацию о перетаскивании.

Обычно есть три случая, когда необходимо вручную начать перетаскивание с помощью этой функции:

  1. В обработчике события “клик-нажатия”, если вы хотите сразу же начать перетаскивание при нажатии пользователем мыши. Передайте event, полученное в обработчике “клик-нажатия”.

  2. В обработчике события “движение-мыши”, если вы хотите начать перетаскивание, когда курсор мыши сместится на определенное расстояние после нажатия кнопки. Передайте event, полученное в обработчике “движение-мыши”.

  3. В обработчике таймаута, если вы хотите начать перетаскивание после того, как кнопка мыши будет удерживаться в течение некоторого времени. Попробуйте сохранить последнее событие, полученное от мыши, используя gdk_event_copy(), и передайте его в эту функцию (не забудьте освободить событие с помощью gdk_event_free(), когда вы закончите). Если вы не можете передать реальное событие, передайте NULL.

[метод]

Параметры

widget

виджет-источник

targets

Цели (форматы данных), в которых источник может предоставить данные

actions

Маска флагов разрешенных действий перетаскивания

button

Кнопка, нажатая пользователем для начала перетаскивания

event

Событие, которое инициировало перетаскивание, или NULL если такое получить невозможно.

[nullable]

x

Начальная координата x для начала перетаскивания, в пространстве координат widget. Если передано -1, координаты берутся из event или текущего положения курсора

y

Начальная координата y для начала перетаскивания, в пространстве координат widget. Если передано -1, координаты берутся из event или текущего положения курсора

Возвращаемое значение

контекст для данного перетаскивания.

[transfer none]

С: 3.10

gtk_drag_cancel ()

void
gtk_drag_cancel (GdkDragContext *context);

Отменяет текущую операцию перетаскивания на стороне источника.

Чтобы иметь возможность отменить операцию перетаскивания таким образом, вам нужно сохранить указатель на контекст перетаскивания, либо из явного вызова gtk_drag_begin_with_coordinates(), либо подключившись к “drag-begin”.

Если context не ссылается на текущую операцию перетаскивания, эта функция ничего не делает.

Если перетаскивание отменено таким образом, аргумент result сигнала “drag-failed” устанавливается в значение GTK_DRAG_RESULT_ERROR .

[метод]

Параметры

context

a GdkDragContext, как, например, возвращается gtk_drag_begin_with_coordinates()

С: 3.16

gtk_drag_set_icon_widget ()

void
gtk_drag_set_icon_widget (GdkDragContext *context,
                          GtkWidget *widget,
                          gint hot_x,
                          gint hot_y);

Изменяет значок операции перетаскивания на заданный виджет. GTK+ не уничтожит виджет, поэтому если вы не хотите, чтобы он сохранялся, подключитесь к сигналу «drag-end» и уничтожьте его самостоятельно.

[метод]

Параметры

context

контекст перетаскивания. (Этот метод должен вызываться с контекстом для источника перетаскивания)

widget

виджет, используемый в качестве значка

hot_x

смещение по оси X в пределах widget от точки фокуса

hot_y

смещение по оси Y в пределах widget от точки фокуса

gtk_drag_set_icon_pixbuf ()

void
gtk_drag_set_icon_pixbuf (GdkDragContext *context,
                          GdkPixbuf *pixbuf,
                          gint hot_x,
                          gint hot_y);

Устанавливает pixbuf в качестве значка для данного перетаскивания.

Параметры

context

контекст перетаскивания (Этот метод должен вызываться с контекстом для источника перетаскивания)

pixbuf

the GdkPixbuf для использования в качестве значка перетаскивания

hot_x

смещение по оси X в пределах widget от точки фокуса

hot_y

смещение по оси Y в пределах widget от точки фокуса

gtk_drag_set_icon_stock ()

void
gtk_drag_set_icon_stock (GdkDragContext *context,
                         const gchar *stock_id,
                         gint hot_x,
                         gint hot_y);

gtk_drag_set_icon_stock устарел с версии 3.10 и не должен использоваться в новом коде.

Используйте gtk_drag_set_icon_name() вместо этого.

Устанавливает значок для данного перетаскивания по идентификатору из набора значков.

Параметры

context

контекст перетаскивания (Этот метод должен вызываться с контекстом для источника перетаскивания)

stock_id

идентификатор значка из набора значков

hot_x

смещение по оси X от точки фокуса значка

hot_y

смещение по оси Y от точки фокуса значка

gtk_drag_set_icon_surface ()

void
gtk_drag_set_icon_surface (GdkDragContext *context,
                           cairo_surface_t *surface);

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

Чтобы расположить поверхность относительно курсора мыши, используйте cairo_surface_set_device_offset() на surface . Курсор мыши будет расположен в координатах (0,0) поверхности.

Параметры

context

контекст перетаскивания (Этот метод должен вызываться с контекстом для источника перетаскивания)

surface

поверхность, используемая в качестве значка

gtk_drag_set_icon_name ()

void
gtk_drag_set_icon_name (GdkDragContext *context,
                        const gchar *icon_name,
                        gint hot_x,
                        gint hot_y);

Устанавливает значок для данного перетаскивания по имени значка из темы. Подробнее см. в документации к GtkIconTheme. Обратите внимание, что размер значка зависит от темы значков (значок загружается с символическим размером GTK_ICON_SIZE_DND), поэтому hot_x и hot_y следует использовать с осторожностью.

Параметры

context

контекст перетаскивания (Этот метод должен вызываться с контекстом для источника перетаскивания)

icon_name

имя значка

hot_x

смещение по оси X от точки фокуса значка

hot_y

смещение по оси Y от точки фокуса значка

С: 2.8

gtk_drag_set_icon_gicon ()

void
gtk_drag_set_icon_gicon (GdkDragContext *context,
                         GIcon *icon,
                         gint hot_x,
                         gint hot_y);

Устанавливает значок для данного перетаскивания по заданному icon. Подробнее о работе со значками при перетаскивании см. документацию к gtk_drag_set_icon_name().

Параметры

context

контекст перетаскивания (Этот метод должен вызываться с контекстом для источника перетаскивания)

icon

a GIcon

hot_x

смещение по оси X от точки фокуса значка

hot_y

смещение по оси Y от точки фокуса значка

С: 3.2

gtk_drag_set_icon_default ()

void
gtk_drag_set_icon_default (GdkDragContext *context);

Устанавливает значок для данного перетаскивания по умолчанию.

[метод]

Параметры

context

контекст перетаскивания (Этот метод должен вызываться с контекстом для источника перетаскивания)

gtk_drag_check_threshold ()

gboolean
gtk_drag_check_threshold (GtkWidget *widget,
                          gint start_x,
                          gint start_y,
                          gint current_x,
                          gint current_y);

Проверяет, пройден ли порог перетаскивания мышью, начавшейся в точке (start_x, start_y) и закончившейся в точке (current_x, current_y), и, следовательно, должно ли быть инициировано действие перетаскивания.

[метод]

Параметры

widget

a GtkWidget

start_x

Координата X начала перетаскивания

start_y

Координата Y начала перетаскивания

current_x

Текущая координата X

current_y

Текущая координата Y

Возвращает

TRUE если порог перетаскивания пройден.

gtk_drag_source_set ()

void
gtk_drag_source_set (GtkWidget *widget,
                     GdkModifierType start_button_mask,
                     const GtkTargetEntry *targets,
                     gint n_targets,
                     GdkDragAction actions);

Настраивает виджет так, чтобы GTK+ инициировал операцию перетаскивания, когда пользователь нажимает и перетаскивает этот виджет. Виджет должен иметь окно.

[метод]

Параметры

widget

a GtkWidget

start_button_mask

маска битов кнопок, которые могут инициировать перетаскивание

targets

таблица целевых типов, которые будут поддерживаться перетаскиванием, может быть NULL.

[allow-none][array length=n_targets]

n_targets

количество элементов в targets

actions

маска битов возможных действий для перетаскивания с этого виджета

gtk_drag_source_set_icon_pixbuf ()

void
gtk_drag_source_set_icon_pixbuf (GtkWidget *widget,
                                 GdkPixbuf *pixbuf);

Устанавливает значок, который будет использоваться для перетаскивания с конкретного виджета из GdkPixbuf. GTK+ сохраняет ссылку на pixbuf и освободит её, когда она больше не потребуется.

[метод]

Параметры

widget

a GtkWidget

pixbuf

the GdkPixbuf для значка перетаскивания

gtk_drag_source_set_icon_stock ()

void
gtk_drag_source_set_icon_stock (GtkWidget *widget,
                                const gchar *stock_id);

gtk_drag_source_set_icon_stock устарел с версии 3.10 и не должен использоваться в новом коде.

Используйте gtk_drag_source_set_icon_name() вместо этого.

Устанавливает значок, который будет использоваться для перетаскивания с определённого источника, как стандартный значок.

[метод]

Параметры

widget

a GtkWidget

stock_id

Идентификатор стандартного значка

gtk_drag_source_set_icon_name ()

void
gtk_drag_source_set_icon_name (GtkWidget *widget,
                               const gchar *icon_name);

Устанавливает значок, который будет использоваться для перетаскивания с определённого источника, как тематический значок. Подробнее см. документацию для GtkIconTheme.

[метод]

Параметры

widget

a GtkWidget

icon_name

имя значка

С: 2.8

gtk_drag_source_set_icon_gicon ()

void
gtk_drag_source_set_icon_gicon (GtkWidget *widget,
                                GIcon *icon);

Устанавливает значок, который будет использоваться для перетаскивания с определённого источника, как icon. Подробнее см. документацию для GtkIconTheme.

[метод]

Параметры

widget

a GtkWidget

icon

A GIcon

С: 3.2

gtk_drag_source_unset ()

void
gtk_drag_source_unset (GtkWidget *widget);

Отменяет действия, заданные с помощью gtk_drag_source_set().

[метод]

Параметры

widget

a GtkWidget

gtk_drag_source_set_target_list ()

void
gtk_drag_source_set_target_list (GtkWidget *widget,
                                 GtkTargetList *target_list);

Изменяет типы целевых объектов, предлагаемых этим виджетом для перетаскивания. Виджет должен быть сначала настроен как источник перетаскивания с помощью gtk_drag_source_set().

[метод]

Параметры

widget

a GtkWidget который является источником перетаскивания

target_list

список целевых объектов перетаскивания, или NULL если нет.

[allow-none]

С: 2.4

gtk_drag_source_get_target_list ()

GtkTargetList *
gtk_drag_source_get_target_list (GtkWidget *widget);

Получает список целевых объектов, которые этот виджет может предоставить для перетаскивания.

[метод]

Параметры

widget

a GtkWidget

Возвращает

the GtkTargetList, или NULL если нет.

[nullable][transfer none]

С: 2.4

gtk_drag_source_add_text_targets ()

void
gtk_drag_source_add_text_targets (GtkWidget *widget);

Добавьте поддерживаемые текстовые целевые объекты GtkSelectionData в список целевых объектов источника перетаскивания. Целевые объекты добавляются со значением info = 0. Если вам нужно другое значение, используйте gtk_target_list_add_text_targets() и gtk_drag_source_set_target_list().

[метод]

Параметры

widget

a GtkWidget, являющийся источником перетаскивания

С: 2.6

gtk_drag_source_add_image_targets ()

void
gtk_drag_source_add_image_targets (GtkWidget *widget);

Добавьте поддерживаемые целевые объекты для изображений для записи GtkSelectionData в список целевых объектов источника перетаскивания. Целевые объекты добавляются со значением info = 0. Если вам нужно другое значение, используйте gtk_target_list_add_image_targets() и gtk_drag_source_set_target_list().

[метод]

Параметры

widget

a GtkWidget, являющийся источником перетаскивания

С: 2.6

gtk_drag_source_add_uri_targets ()

void
gtk_drag_source_add_uri_targets (GtkWidget *widget);

Добавьте поддерживаемые целевые объекты URI GtkSelectionData в список целевых объектов источника перетаскивания. Целевые объекты добавляются со значением info = 0. Если вам нужно другое значение, используйте gtk_target_list_add_uri_targets() и gtk_drag_source_set_target_list().

[метод]

Параметры

widget

a GtkWidget, являющийся источником перетаскивания

С: 2.6

Типы и значения

Перечисление GtkDestDefaults

Перечисление GtkDestDefaults определяет различные типы действий, которые будут выполняться от имени пользователя для целевого объекта перетаскивания.

Элементы

GTK_DEST_DEFAULT_MOTION

Если установлено для виджета, GTK+ во время перетаскивания над этим виджетом проверит, соответствует ли перетаскивание списку возможных целевых объектов и действий. GTK+ затем вызовет gdk_drag_status(), как соответствующим образом.

GTK_DEST_DEFAULT_HIGHLIGHT

Если установлено для виджета, GTK+ отобразит подсветку на этом виджете, пока перетаскивание находится над этим виджетом, и формат и действие перетаскивания виджета приемлемы.

GTK_DEST_DEFAULT_DROP

Если установлено для виджета, при выполнении перетаскивания GTK+ проверит, соответствует ли перетаскивание списку возможных целевых объектов и действий. Если да, GTK+ вызовет gtk_drag_get_data() от имени виджета. Независимо от успеха перетаскивания, GTK+ вызовет gtk_drag_finish(). Если действие было перемещением, а перетаскивание прошло успешно, тогда TRUE будет передано в качестве параметра delete функции gtk_drag_finish().

GTK_DEST_DEFAULT_ALL

Если установлено, указывает, что должны выполняться все действия по умолчанию.

Перечисление GtkTargetFlags

Перечисление GtkTargetFlags используется для указания ограничений на GtkTargetEntry.

Элементы

GTK_TARGET_SAME_APP

Если установлено, целевой объект будет выбран только для перетаскивания в пределах одного приложения.

GTK_TARGET_SAME_WIDGET

Если установлено, целевой объект будет выбран только для перетаскивания в пределах одного виджета.

GTK_TARGET_OTHER_APP

Если установлено, целевой объект не будет выбран для перетаскивания в пределах одного приложения.

GTK_TARGET_OTHER_WIDGET

Если установлено, целевой объект не будет выбран для перетаскивания в пределах одного виджета.

Перечисление GtkDragResult

Указывает причину неудачи операции перетаскивания. Значение можно получить, подключившись к сигналу “drag-failed”.

Элементы

GTK_DRAG_RESULT_SUCCESS

Операция перетаскивания выполнена успешно.

GTK_DRAG_RESULT_NO_TARGET

Нет подходящей цели перетаскивания.

GTK_DRAG_RESULT_USER_CANCELLED

Пользователь отменил операцию перетаскивания.

GTK_DRAG_RESULT_TIMEOUT_EXPIRED

Операция перетаскивания истекла.

GTK_DRAG_RESULT_GRAB_BROKEN

Захват указателя мыши или клавиатуры, используемый для операции перетаскивания, был прерван.

GTK_DRAG_RESULT_ERROR

Операция перетаскивания завершилась ошибкой по неуказанной причине.

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/gtk3-Drag-and-Drop.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API