summaryrefslogtreecommitdiff
path: root/libs/gtkmm2/gdk/gdkmm/dragcontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gtkmm2/gdk/gdkmm/dragcontext.h')
-rw-r--r--libs/gtkmm2/gdk/gdkmm/dragcontext.h369
1 files changed, 369 insertions, 0 deletions
diff --git a/libs/gtkmm2/gdk/gdkmm/dragcontext.h b/libs/gtkmm2/gdk/gdkmm/dragcontext.h
new file mode 100644
index 0000000000..57507df105
--- /dev/null
+++ b/libs/gtkmm2/gdk/gdkmm/dragcontext.h
@@ -0,0 +1,369 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GDKMM_DRAGCONTEXT_H
+#define _GDKMM_DRAGCONTEXT_H
+
+#include <glibmm.h>
+
+/* $Id$ */
+
+/* dragcontext.h
+ *
+ * Copyright (C) 1998-2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gdkmm/color.h>
+#include <gdkmm/pixbuf.h>
+#include <gdkmm/bitmap.h>
+#include <glibmm/object.h>
+#include <gdk/gdkdnd.h>
+#include <glibmm/listhandle.h>
+#include <gtkmm/stockid.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GdkDragContext GdkDragContext;
+typedef struct _GdkDragContextClass GdkDragContextClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gdk
+{ class DragContext_Class; } // namespace Gdk
+namespace Gtk
+{
+ class Widget;
+} /* namespace Gtk */
+
+//typedef struct _GdkAtom *GdkAtom;
+
+namespace Gdk
+{
+
+
+/** @addtogroup gdkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gdkmmEnums
+ * @par Bitwise operators:
+ * <tt>%DragAction operator|(DragAction, DragAction)</tt><br>
+ * <tt>%DragAction operator&(DragAction, DragAction)</tt><br>
+ * <tt>%DragAction operator^(DragAction, DragAction)</tt><br>
+ * <tt>%DragAction operator~(DragAction)</tt><br>
+ * <tt>%DragAction& operator|=(DragAction&, DragAction)</tt><br>
+ * <tt>%DragAction& operator&=(DragAction&, DragAction)</tt><br>
+ * <tt>%DragAction& operator^=(DragAction&, DragAction)</tt><br>
+ */
+enum DragAction
+{
+ ACTION_DEFAULT = 1 << 0,
+ ACTION_COPY = 1 << 1,
+ ACTION_MOVE = 1 << 2,
+ ACTION_LINK = 1 << 3,
+ ACTION_PRIVATE = 1 << 4,
+ ACTION_ASK = 1 << 5
+};
+
+/** @ingroup gdkmmEnums */
+inline DragAction operator|(DragAction lhs, DragAction rhs)
+ { return static_cast<DragAction>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
+
+/** @ingroup gdkmmEnums */
+inline DragAction operator&(DragAction lhs, DragAction rhs)
+ { return static_cast<DragAction>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
+
+/** @ingroup gdkmmEnums */
+inline DragAction operator^(DragAction lhs, DragAction rhs)
+ { return static_cast<DragAction>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
+
+/** @ingroup gdkmmEnums */
+inline DragAction operator~(DragAction flags)
+ { return static_cast<DragAction>(~static_cast<unsigned>(flags)); }
+
+/** @ingroup gdkmmEnums */
+inline DragAction& operator|=(DragAction& lhs, DragAction rhs)
+ { return (lhs = static_cast<DragAction>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
+
+/** @ingroup gdkmmEnums */
+inline DragAction& operator&=(DragAction& lhs, DragAction rhs)
+ { return (lhs = static_cast<DragAction>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
+
+/** @ingroup gdkmmEnums */
+inline DragAction& operator^=(DragAction& lhs, DragAction rhs)
+ { return (lhs = static_cast<DragAction>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
+
+} // namespace Gdk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gdk::DragAction> : public Glib::Value_Flags<Gdk::DragAction>
+{
+public:
+ static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gdk
+{
+
+/**
+ * @ingroup gdkmmEnums
+ */
+enum DragProtocol
+{
+ DRAG_PROTO_MOTIF,
+ DRAG_PROTO_XDND,
+ DRAG_PROTO_NONE,
+ DRAG_PROTO_WIN32_DROPFILES,
+ DRAG_PROTO_OLE2,
+ DRAG_PROTO_LOCAL
+};
+
+} // namespace Gdk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gdk::DragProtocol> : public Glib::Value_Enum<Gdk::DragProtocol>
+{
+public:
+ static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gdk
+{
+
+
+/** A Gdk::DragContext holds information about a drag in progress. It is used on both source and destination sides.
+ */
+
+class DragContext : public Glib::Object
+{
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+public:
+ typedef DragContext CppObjectType;
+ typedef DragContext_Class CppClassType;
+ typedef GdkDragContext BaseObjectType;
+ typedef GdkDragContextClass BaseClassType;
+
+private: friend class DragContext_Class;
+ static CppClassType dragcontext_class_;
+
+private:
+ // noncopyable
+ DragContext(const DragContext&);
+ DragContext& operator=(const DragContext&);
+
+protected:
+ explicit DragContext(const Glib::ConstructParams& construct_params);
+ explicit DragContext(GdkDragContext* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+ virtual ~DragContext();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ static GType get_type() G_GNUC_CONST;
+ static GType get_base_type() G_GNUC_CONST;
+#endif
+
+ ///Provides access to the underlying C GObject.
+ GdkDragContext* gobj() { return reinterpret_cast<GdkDragContext*>(gobject_); }
+
+ ///Provides access to the underlying C GObject.
+ const GdkDragContext* gobj() const { return reinterpret_cast<GdkDragContext*>(gobject_); }
+
+ ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
+ GdkDragContext* gobj_copy();
+
+private:
+
+
+protected:
+ DragContext();
+
+public:
+
+ static Glib::RefPtr<DragContext> create();
+
+
+ /** Selects one of the actions offered by the drag source.
+ *
+ * This function is called by the drag destination in response to
+ * gdk_drag_motion() called by the drag source.
+ * @param action The selected action which will be taken when a drop happens,
+ * or 0 to indicate that a drop will not be accepted.
+ * @param time The timestamp for this operation.
+ */
+ void drag_status(DragAction action, guint32 time);
+ void drag_refuse(guint32 time);
+
+ //gdk_drag_motion is only used in GDK internally.
+
+
+ /** Accepts or rejects a drop.
+ *
+ * This function is called by the drag destination in response
+ * to a drop initiated by the drag source.
+ * @param ok <tt>true</tt> if the drop is accepted.
+ * @param time The timestamp for this operation.
+ */
+ void drop_reply(bool ok, guint32 time);
+
+ /** Ends the drag operation after a drop.
+ *
+ * This function is called by the drag destination.
+ * @param success <tt>true</tt> if the data was successfully received.
+ * @param time The timestamp for this operation.
+ */
+ void drop_finish(bool success, guint32 time);
+
+ /** Returns the selection atom for the current source window.
+ * @return The selection atom.
+ */
+ Glib::ustring get_selection() const;
+
+
+ void drag_finish(bool success, bool del, guint32 time);
+ //Gtk::Widget* get_source_widget() - see Gtk::Widget::drag_get_source_widget()
+
+ // void set_icon(Gtk::Widget* widget, int hot_x, int hot_y) - see Gtk::Widget::set_as_icon().
+
+ void set_icon(const Glib::RefPtr<Gdk::Colormap>& colormap, const Glib::RefPtr<Gdk::Pixmap>& pixmap, const Glib::RefPtr<Gdk::Bitmap>& mask, int hot_x, int hot_y);
+
+ void set_icon(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf, int hot_x, int hot_y);
+
+ // The first argument was changed from StockID to ustring to avoid
+ // cross-dependence between gdkmm and gtkmm.
+ // See http://bugzilla.gnome.org/show_bug.cgi?id=79124 for details
+
+ void set_icon(const Glib::ustring& stock_id, int hot_x, int hot_y);
+
+ void set_icon();
+
+ /** Get the the source window of this drag.
+ * @result the source window of this drag.
+ */
+ Glib::RefPtr<Window> get_source_window();
+ Glib::RefPtr<const Window> get_source_window() const;
+
+ /** Get the the source window of this drag.
+ * @result the source window of this drag.
+ */
+ Glib::RefPtr<Window> get_destination_window();
+ Glib::RefPtr<const Window> get_destination_window() const;
+
+ /** Get a list of targets offered by the source.
+ * @result a list of targets offered by the source.
+ */
+ Glib::StringArrayHandle get_targets() const;
+
+ /** Get the DND protocol which governs this drag.
+ * @result the DND protocol which governs this drag.
+ */
+ DragProtocol get_protocol() const;
+
+ /** Discover whether the context is used on the source side.
+ * @result true if the context is used on the source side.
+ */
+ bool get_is_source() const;
+
+ /** Get a bitmask of actions proposed by the source when the suggested_action is Gdk::ACTION_ASK
+ * @result a bitmask of actions proposed by the source when the suggested_action is Gdk::ACTION_ASK
+ */
+ DragAction get_actions() const;
+
+ /** Get the action suggested by the source.
+ * @result The action suggested by the source.
+ */
+ DragAction get_suggested_action() const;
+
+ /** Get the action chosen by the destination.
+ * @result the action chosen byt the destination.
+ */
+ DragAction get_action() const;
+
+ /** Get a timestamp recording the start time of this drag.
+ * @result a timestamp recording the start time of this drag.
+ */
+ guint32 get_start_time() const;
+
+
+ /** Finds the destination window and DND protocol to use at the
+ * given pointer position.
+ *
+ * This function is called by the drag source to obtain the
+ * @a dest_window and @a protocol parameters for gdk_drag_motion().
+ *
+ * Since: 2.2
+ * @param drag_window A window which may be at the pointer position, but
+ * should be ignored, since it is put up by the drag source as an icon.
+ * @param screen The screen where the destination window is sought.
+ * @param x_root The x position of the pointer in root coordinates.
+ * @param y_root The y position of the pointer in root coordinates.
+ * @param dest_window Location to store the destination window in.
+ * @param protocol Location to store the DND protocol in.
+ */
+
+ void find_window_for_screen(const Glib::RefPtr<Window>& drag_window, const Glib::RefPtr<Screen>& screen, int x_root, int y_root, Glib::RefPtr<Window>& dest_window, DragProtocol* protocol) const;
+
+
+public:
+
+public:
+ //C++ methods used to invoke GTK+ virtual functions:
+
+protected:
+ //GTK+ Virtual Functions (override these to change behaviour):
+
+ //Default Signal Handlers::
+
+
+};
+
+} /* namespace Gdk */
+
+
+namespace Glib
+{
+ /** @relates Gdk::DragContext
+ * @param object The C instance
+ * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+ * @result A C++ instance that wraps this C instance.
+ */
+ Glib::RefPtr<Gdk::DragContext> wrap(GdkDragContext* object, bool take_copy = false);
+}
+
+
+#endif /* _GDKMM_DRAGCONTEXT_H */
+