Module: Gtk::Drag

Defined in:
ext/gtk2/rbgtkdrag.c

Class Method Summary collapse

Class Method Details

.begin(widget, target_list, actions, button, event) ⇒ Object



188
189
190
191
192
193
194
195
196
# File 'ext/gtk2/rbgtkdrag.c', line 188

static VALUE
gtkdrag_begin(VALUE self, VALUE widget, VALUE target_list, VALUE actions, VALUE button, VALUE event)
{
    return GOBJ2RVAL(gtk_drag_begin(RVAL2WIDGET(widget),
                                    RVAL2BOXED(target_list, GTK_TYPE_TARGET_LIST),
                                    RVAL2GFLAGS(actions, GDK_TYPE_DRAG_ACTION),
                                    NUM2INT(button),
                                    RVAL2GEV(event)));
}

.dest_add_image_targets(widget) ⇒ Object



123
124
125
126
127
128
# File 'ext/gtk2/rbgtkdrag.c', line 123

static VALUE
gtkdrag_dest_add_image_targets(VALUE self, VALUE widget)
{
    gtk_drag_dest_add_image_targets(RVAL2WIDGET(widget));
    return self;
}

.dest_add_text_targets(widget) ⇒ Object



117
118
119
120
121
122
# File 'ext/gtk2/rbgtkdrag.c', line 117

static VALUE
gtkdrag_dest_add_text_targets(VALUE self, VALUE widget)
{
    gtk_drag_dest_add_text_targets(RVAL2WIDGET(widget));
    return self;
}

.dest_add_uri_targets(widget) ⇒ Object



129
130
131
132
133
134
# File 'ext/gtk2/rbgtkdrag.c', line 129

static VALUE
gtkdrag_dest_add_uri_targets(VALUE self, VALUE widget)
{
    gtk_drag_dest_add_uri_targets(RVAL2WIDGET(widget));
    return self;
}

.dest_find_target(*args) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'ext/gtk2/rbgtkdrag.c', line 84

static VALUE
gtkdrag_dest_find_target(int argc, VALUE *argv, VALUE self)
{
    VALUE widget, context, target_list;
    GdkAtom ret;
    rb_scan_args(argc, argv, "21", &widget, &context, &target_list);

    ret = gtk_drag_dest_find_target(
        RVAL2WIDGET(widget), RVAL2DC(context),
        NIL_P(target_list) ? NULL : RVAL2BOXED(target_list, GTK_TYPE_TARGET_LIST));
 
    return BOXED2RVAL(ret, GDK_TYPE_ATOM);
}

.dest_get_target_list(widget) ⇒ Object



98
99
100
101
102
103
# File 'ext/gtk2/rbgtkdrag.c', line 98

static VALUE
gtkdrag_dest_get_target_list(VALUE self, VALUE widget)
{
    GtkTargetList* list = gtk_drag_dest_get_target_list(RVAL2WIDGET(widget));
    return BOXED2RVAL(list, GTK_TYPE_TARGET_LIST);
}

.dest_get_track_motion(widget) ⇒ Object



145
146
147
148
149
# File 'ext/gtk2/rbgtkdrag.c', line 145

static VALUE
gtkdrag_dest_get_track_motion(VALUE self, VALUE widget)
{
    return CBOOL2RVAL(gtk_drag_dest_get_track_motion(RVAL2WIDGET(widget)));
}

.dest_set(widget, flags, targets, actions) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'ext/gtk2/rbgtkdrag.c', line 47

static VALUE
gtkdrag_dest_set(VALUE self, VALUE widget, VALUE flags, VALUE targets, VALUE actions)
{
    int num;
    GtkTargetEntry* entries = rbgtk_get_target_entry(targets);
    if (entries){
        num = RARRAY_LEN(targets);
        
        gtk_drag_dest_set(RVAL2WIDGET(widget), RVAL2GFLAGS(flags, GTK_TYPE_DEST_DEFAULTS), 
                          entries, 
                          num, RVAL2GFLAGS(actions, GDK_TYPE_DRAG_ACTION));
    }
    else
    {
        gtk_drag_dest_set(RVAL2WIDGET(widget), RVAL2GFLAGS(flags, GTK_TYPE_DEST_DEFAULTS), 
                          NULL, 0, RVAL2GFLAGS(actions, GDK_TYPE_DRAG_ACTION));
    }
    return self;
}

.dest_set_proxy(widget, proxy_window, protocol, use_coordinates) ⇒ Object



67
68
69
70
71
72
73
74
75
# File 'ext/gtk2/rbgtkdrag.c', line 67

static VALUE
gtkdrag_dest_set_proxy(VALUE self, VALUE widget, VALUE proxy_window, VALUE protocol, VALUE use_coordinates)
{
    gtk_drag_dest_set_proxy(RVAL2WIDGET(widget), 
                            GDK_WINDOW(RVAL2GOBJ(proxy_window)),
                            RVAL2GENUM(protocol, GDK_TYPE_DRAG_PROTOCOL), 
                            RVAL2CBOOL(use_coordinates)); 
    return self;
}

.dest_set_target_list(widget, target_list) ⇒ Object



105
106
107
108
109
110
111
112
113
# File 'ext/gtk2/rbgtkdrag.c', line 105

static VALUE
gtkdrag_dest_set_target_list(VALUE self, VALUE widget, VALUE target_list)
{
    gtk_drag_dest_set_target_list(
        RVAL2WIDGET(widget), 
        NIL_P(target_list) ? NULL : RVAL2BOXED(target_list, GTK_TYPE_TARGET_LIST));

    return self;
}

.dest_set_track_motion(widget, track_motion) ⇒ Object



138
139
140
141
142
143
# File 'ext/gtk2/rbgtkdrag.c', line 138

static VALUE
gtkdrag_dest_set_track_motion(VALUE self, VALUE widget, VALUE track_motion)
{
    gtk_drag_dest_set_track_motion(RVAL2WIDGET(widget), RVAL2CBOOL(track_motion));
    return self;
}

.dest_unset(widget) ⇒ Object



77
78
79
80
81
82
# File 'ext/gtk2/rbgtkdrag.c', line 77

static VALUE
gtkdrag_dest_unset(VALUE self, VALUE widget)
{
    gtk_drag_dest_unset(RVAL2WIDGET(widget));
    return self;
}

.finish(context, success, del, time) ⇒ Object



152
153
154
155
156
157
158
# File 'ext/gtk2/rbgtkdrag.c', line 152

static VALUE
gtkdrag_finish(VALUE self, VALUE context, VALUE success, VALUE del, VALUE time)
{
    gtk_drag_finish(RVAL2DC(context), RVAL2CBOOL(success),
                    RVAL2CBOOL(del), NUM2UINT(time));
    return self;
}

.get_data(widget, context, target, time) ⇒ Object



160
161
162
163
164
165
166
# File 'ext/gtk2/rbgtkdrag.c', line 160

static VALUE
gtkdrag_get_data(VALUE self, VALUE widget, VALUE context, VALUE target, VALUE time)
{
    gtk_drag_get_data(RVAL2WIDGET(widget), RVAL2DC(context), RVAL2ATOM(target),
                      NUM2UINT(time));
    return self;
}

.get_source_widget(context) ⇒ Object



168
169
170
171
172
# File 'ext/gtk2/rbgtkdrag.c', line 168

static VALUE
gtkdrag_get_source_widget(VALUE self, VALUE context)
{
    return GOBJ2RVAL(gtk_drag_get_source_widget(RVAL2DC(context)));
}

.highlight(widget) ⇒ Object



174
175
176
177
178
179
# File 'ext/gtk2/rbgtkdrag.c', line 174

static VALUE
gtkdrag_highlight(VALUE self, VALUE widget)
{
    gtk_drag_highlight(RVAL2WIDGET(widget));
    return self;
}

.set_icon(*args) ⇒ Object



198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
# File 'ext/gtk2/rbgtkdrag.c', line 198

static VALUE
gtkdrag_set_icon(int argc, VALUE *argv, VALUE self)
{
    VALUE context, obj, pixmap = Qnil, mask = Qnil, hot_x, hot_y;

    if (argc == 6) {
        rb_scan_args(argc, argv, "60", &context, &obj, &pixmap, &mask, &hot_x, &hot_y);
        gtk_drag_set_icon_pixmap(RVAL2DC(context),
                                 GDK_COLORMAP(RVAL2GOBJ(obj)), 
                                 GDK_PIXMAP(RVAL2GOBJ(pixmap)),
                                 GDK_BITMAP(RVAL2GOBJ(mask)), 
                                 NUM2INT(hot_x), NUM2INT(hot_y));
    } else {
        rb_scan_args(argc, argv, "40", &context, &obj, &hot_x, &hot_y);

        if (TYPE(obj) == T_SYMBOL){
            gtk_drag_set_icon_stock(RVAL2DC(context), rb_id2name(SYM2ID(obj)),
                                    NUM2INT(hot_x), NUM2INT(hot_y));
        } else if (rb_obj_is_kind_of(obj, GTYPE2CLASS(GTK_TYPE_WIDGET))){
            gtk_drag_set_icon_widget(RVAL2DC(context), RVAL2WIDGET(obj),
                                     NUM2INT(hot_x), NUM2INT(hot_y));
        } else if (rb_obj_is_kind_of(obj, GTYPE2CLASS(GDK_TYPE_PIXBUF))){
            gtk_drag_set_icon_pixbuf(RVAL2DC(context),
                                     GDK_PIXBUF(RVAL2GOBJ(obj)),
                                     NUM2INT(hot_x), NUM2INT(hot_y));
        } else {
            rb_raise(rb_eArgError, "invalid argument %s", rb_class2name(CLASS_OF(obj)));
        }
    }
    return self;
}

.set_icon_default(context) ⇒ Object



239
240
241
242
243
244
# File 'ext/gtk2/rbgtkdrag.c', line 239

static VALUE
gtkdrag_set_icon_default(VALUE self, VALUE context)
{
    gtk_drag_set_icon_default(RVAL2DC(context));
    return self;
}

.set_icon_name(context, name, hot_x, hot_y) ⇒ Object



231
232
233
234
235
236
# File 'ext/gtk2/rbgtkdrag.c', line 231

static VALUE
gtkdrag_set_icon_name(VALUE self, VALUE context, VALUE name, VALUE hot_x, VALUE hot_y)
{
    gtk_drag_set_icon_name(RVAL2DC(context), RVAL2CSTR(name), NUM2INT(hot_x), NUM2INT(hot_y));
    return self;
}

.source_add_image_targets(widget) ⇒ Object



329
330
331
332
333
334
# File 'ext/gtk2/rbgtkdrag.c', line 329

static VALUE
gtkdrag_source_add_image_targets(VALUE self, VALUE widget)
{
    gtk_drag_source_add_image_targets(RVAL2WIDGET(widget));
    return self;
}

.source_add_text_targets(widget) ⇒ Object



323
324
325
326
327
328
# File 'ext/gtk2/rbgtkdrag.c', line 323

static VALUE
gtkdrag_source_add_text_targets(VALUE self, VALUE widget)
{
    gtk_drag_source_add_text_targets(RVAL2WIDGET(widget));
    return self;
}

.source_add_uri_targets(widget) ⇒ Object



335
336
337
338
339
340
# File 'ext/gtk2/rbgtkdrag.c', line 335

static VALUE
gtkdrag_source_add_uri_targets(VALUE self, VALUE widget)
{
    gtk_drag_source_add_uri_targets(RVAL2WIDGET(widget));
    return self;
}

.source_get_target_list(widget) ⇒ Object



314
315
316
317
318
319
# File 'ext/gtk2/rbgtkdrag.c', line 314

static VALUE
gtkdrag_source_get_target_list(VALUE self, VALUE widget)
{
    GtkTargetList* ret = gtk_drag_source_get_target_list(RVAL2WIDGET(widget));
    return NIL_P(ret) ? Qnil : BOXED2RVAL(ret, GTK_TYPE_TARGET_LIST);
}

.source_set(widget, flags, targets, actions) ⇒ Object



254
255
256
257
258
259
260
261
262
# File 'ext/gtk2/rbgtkdrag.c', line 254

static VALUE
gtkdrag_source_set(VALUE self, VALUE widget, VALUE flags, VALUE targets, VALUE actions)
{
    gtk_drag_source_set(RVAL2WIDGET(widget), RVAL2GFLAGS(flags, GDK_TYPE_MODIFIER_TYPE),
                        rbgtk_get_target_entry(targets), 
                        RARRAY_LEN(targets), 
                        RVAL2GFLAGS(actions, GDK_TYPE_DRAG_ACTION));
    return self;
}

.source_set_icon(*args) ⇒ Object



264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# File 'ext/gtk2/rbgtkdrag.c', line 264

static VALUE
gtkdrag_source_set_icon(int argc, VALUE *argv, VALUE self)
{
    VALUE widget, obj, pixmap = Qnil, mask = Qnil;

    rb_scan_args(argc, argv, "22", &widget, &obj, &pixmap, &mask);
    if (argc == 4){
        gtk_drag_source_set_icon(RVAL2WIDGET(widget), GDK_COLORMAP(RVAL2GOBJ(obj)),
                                 GDK_PIXMAP(RVAL2GOBJ(pixmap)), 
                                 GDK_BITMAP(RVAL2GOBJ(mask)));
    } else if (argc == 2){
        if (TYPE(obj) == T_SYMBOL){
            gtk_drag_source_set_icon_stock(RVAL2WIDGET(widget), rb_id2name(SYM2ID(obj)));
        } else {
            gtk_drag_source_set_icon_pixbuf(RVAL2WIDGET(widget), GDK_PIXBUF(RVAL2GOBJ(obj)));
        }
    } else {
        rb_raise(rb_eArgError, "need 2 or 4 arguments");
    }
    return self;
}

.source_set_icon_name(widget, icon_name) ⇒ Object



287
288
289
290
291
292
# File 'ext/gtk2/rbgtkdrag.c', line 287

static VALUE
gtkdrag_source_set_icon_name(VALUE self, VALUE widget, VALUE icon_name)
{
    gtk_drag_source_set_icon_name(RVAL2WIDGET(widget), RVAL2CSTR(icon_name));
    return self;
}

.source_set_target_list(widget, targetlist) ⇒ Object



303
304
305
306
307
308
309
310
311
312
# File 'ext/gtk2/rbgtkdrag.c', line 303

static VALUE
gtkdrag_source_set_target_list(VALUE self, VALUE widget, VALUE targetlist)
{
    GtkTargetList* tlist = NULL;
    if (! NIL_P(targetlist))
        tlist = (GtkTargetList*)RVAL2BOXED(targetlist, GTK_TYPE_TARGET_LIST);

    gtk_drag_source_set_target_list(RVAL2WIDGET(widget),tlist);
    return self;
}

.source_unset(widget) ⇒ Object



295
296
297
298
299
300
# File 'ext/gtk2/rbgtkdrag.c', line 295

static VALUE
gtkdrag_source_unset(VALUE self, VALUE widget)
{
    gtk_drag_source_unset(RVAL2WIDGET(widget));
    return self;
}

.threshold?(widget, start_x, start_y, current_x, current_y) ⇒ Boolean

Returns:

  • (Boolean)


246
247
248
249
250
251
252
# File 'ext/gtk2/rbgtkdrag.c', line 246

static VALUE
gtkdrag_check_threshold(VALUE self, VALUE widget, VALUE start_x, VALUE start_y, VALUE current_x, VALUE current_y)
{
    return CBOOL2RVAL(gtk_drag_check_threshold(RVAL2WIDGET(widget), 
                                               NUM2INT(start_x), NUM2INT(start_y),
                                               NUM2INT(current_x), NUM2INT(current_y)));
}

.unhighlight(widget) ⇒ Object



181
182
183
184
185
186
# File 'ext/gtk2/rbgtkdrag.c', line 181

static VALUE
gtkdrag_unhighlight(VALUE self, VALUE widget)
{
    gtk_drag_unhighlight(RVAL2WIDGET(widget));
    return self;
}