pidgin/gtkdnd-hints.c

Mon, 10 Feb 2014 01:40:39 +0530

author
Ankit Vani <a@nevitus.org>
date
Mon, 10 Feb 2014 01:40:39 +0530
branch
gtkdoc-conversion
changeset 35500
ae6432ea326f
parent 35455
216a37403c5b
child 35501
602747bb4af9
permissions
-rw-r--r--

Fixed namespace issues in Pidgin.
Renamed:
'pidgin_blist_sort_method' to '_PidginBlistSortMethod'
'DndHintPosition' to 'PidginDndHintPosition'
'dnd_hints_hide_all' to 'pidgin_dnd_hints_hide_all'
'dnd_hints_hide' to 'pidgin_dnd_hints_hide'
'dnd_hints_show_relative' to 'pidgin_dnd_hints_show_relative'
'dnd_hints_show' to 'pidgin_dnd_hints_show'
'DndHintWindowId' to 'PidginDndHintWindowId'
'NUM_NICK_SEED_COLORS' to 'PIDGIN_NUM_NICK_SEED_COLORS'
'smiley_list' to 'PidginSmileyList'
'smiley_theme' to 'PidginSmileyTheme'
'GtkWebView*' to 'PidginWebView*'
'gtk_webview_*' to 'pidgin_webview_*'
'DEFAULT_FONT_FACE' to 'PIDGIN_DEFAULT_FONT_FACE'
'BRUSH_STATE_DOWN' to 'PIDGIN_BRUSH_STATE_DOWN'
'BRUSH_STATE_MOTION' to 'PIDGIN_BRUSH_STATE_MOTION'
'BRUSH_STATE_UP' to 'PIDGIN_BRUSH_STATE_UP'
'FULL_CIRCLE_DEGREES' to 'PIDGIN_FULL_CIRCLE_DEGREES'
'PALETTE_NUM_COLORS' to 'PIDGIN_PALETTE_NUM_COLORS'
'smiley_parse_markup' to 'pidgin_smiley_parse_markup'

20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
1 /* pidgin
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
3 * Pidgin is the legal property of its developers, whose names are too numerous
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 * source distribution.
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 *
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2, or(at your option)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 * any later version.
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 *
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 *
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 17176
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20 */
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
22 #include "gtkdnd-hints.h"
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 #include <gdk/gdk.h>
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 #include <gdk-pixbuf/gdk-pixbuf.h>
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27 #ifdef _WIN32
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 #include "win32dep.h"
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29 #endif
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30
33170
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
31 #include "gtk3compat.h"
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
32
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 typedef struct
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 GtkWidget *widget;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36 gchar *filename;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 gint ox;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 gint oy;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 } HintWindowInfo;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41
35455
216a37403c5b Fix a bunch of gtk-doc warnings in pidgin
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
42 /*
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
43 * Info about each hint widget. See PidginDndHintWindowId enum.
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44 */
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20147
diff changeset
45 static HintWindowInfo hint_windows[] = {
16274
7d61ad2c489a Some icon improvements from hbons
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
46 { NULL, "arrow-up.xpm", -13/2, 0 },
7d61ad2c489a Some icon improvements from hbons
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
47 { NULL, "arrow-down.xpm", -13/2, -16 },
7d61ad2c489a Some icon improvements from hbons
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
48 { NULL, "arrow-left.xpm", 0, -13/2 },
7d61ad2c489a Some icon improvements from hbons
Sean Egan <seanegan@pidgin.im>
parents: 16254
diff changeset
49 { NULL, "arrow-right.xpm", -16, -13/2 },
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 { NULL, NULL, 0, 0 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 };
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52
33170
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
53 #if GTK_CHECK_VERSION(3,0,0)
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
54
33135
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
55 static void
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
56 dnd_hints_realized_cb(GtkWidget *window, GtkWidget *pix)
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
57 {
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
58 GdkPixbuf *pixbuf;
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
59 cairo_surface_t *surface;
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
60 cairo_region_t *region;
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
61 cairo_t *cr;
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
62
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
63 pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(pix));
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
64
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
65 surface = cairo_image_surface_create(CAIRO_FORMAT_A1,
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
66 gdk_pixbuf_get_width(pixbuf),
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
67 gdk_pixbuf_get_height(pixbuf));
33158
ad941796372e Remove some added trailing spaces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33135
diff changeset
68
33135
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
69 cr = cairo_create(surface);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
70 gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
71 cairo_paint(cr);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
72 cairo_destroy(cr);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
73
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
74 region = gdk_cairo_region_create_from_surface(surface);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
75 gtk_widget_shape_combine_region(window, region);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
76 cairo_region_destroy(region);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
77
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
78 cairo_surface_destroy(surface);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
79 }
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
80
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 static GtkWidget *
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82 dnd_hints_init_window(const gchar *fname)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 GdkPixbuf *pixbuf;
33135
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
85 GtkWidget *pix;
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 GtkWidget *win;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88 pixbuf = gdk_pixbuf_new_from_file(fname, NULL);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 g_return_val_if_fail(pixbuf, NULL);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90
32919
d6b32e557879 Render the DND hint windows using the new window's colourmap instead
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25888
diff changeset
91 win = gtk_window_new(GTK_WINDOW_POPUP);
33135
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
92 pix = gtk_image_new_from_pixbuf(pixbuf);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
93 gtk_container_add(GTK_CONTAINER(win), pix);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
94 gtk_widget_show_all(pix);
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
95
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
96 g_object_unref(G_OBJECT(pixbuf));
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97
33135
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
98 g_signal_connect(G_OBJECT(win), "realize",
b6978ea2cce0 Fix DND hints on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33133
diff changeset
99 G_CALLBACK(dnd_hints_realized_cb), pix);
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
101 return win;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
102 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
103
33170
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
104 #else
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
105
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
106 static GtkWidget *
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
107 dnd_hints_init_window(const gchar *fname)
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
108 {
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
109 GdkPixbuf *pixbuf;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
110 GdkPixmap *pixmap;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
111 GdkBitmap *bitmap;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
112 GtkWidget *pix;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
113 GtkWidget *win;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
114 GdkColormap *colormap;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
115
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
116 pixbuf = gdk_pixbuf_new_from_file(fname, NULL);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
117 g_return_val_if_fail(pixbuf, NULL);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
118
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
119 win = gtk_window_new(GTK_WINDOW_POPUP);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
120 colormap = gtk_widget_get_colormap(win);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
121 gdk_pixbuf_render_pixmap_and_mask_for_colormap(pixbuf, colormap,
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
122 &pixmap, &bitmap, 128);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
123 g_object_unref(G_OBJECT(pixbuf));
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
124
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
125 pix = gtk_image_new_from_pixmap(pixmap, bitmap);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
126 gtk_container_add(GTK_CONTAINER(win), pix);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
127 gtk_widget_shape_combine_mask(win, bitmap, 0, 0);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
128
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
129 g_object_unref(G_OBJECT(pixmap));
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
130 g_object_unref(G_OBJECT(bitmap));
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
131
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
132 gtk_widget_show_all(pix);
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
133
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
134 return win;
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
135 }
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
136
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
137 #endif
ce4447562d64 Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33158
diff changeset
138
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139 static void
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 get_widget_coords(GtkWidget *w, gint *x1, gint *y1, gint *x2, gint *y2)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142 gint ox, oy, width, height;
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
143 GtkWidget *parent = gtk_widget_get_parent(w);
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
145 if (parent && gtk_widget_get_window(parent) == gtk_widget_get_window(w))
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 {
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
147 GtkAllocation allocation;
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
148
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
149 gtk_widget_get_allocation(w, &allocation);
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
150 get_widget_coords(parent, &ox, &oy, NULL, NULL);
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
151 height = allocation.height;
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
152 width = allocation.width;
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 else
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 {
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
156 GdkWindow *win = gtk_widget_get_window(w);
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
157 gdk_window_get_origin(win, &ox, &oy);
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
158 width = gdk_window_get_width(win);
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
159 height = gdk_window_get_height(win);
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
161
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
162 if (x1) *x1 = ox;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163 if (y1) *y1 = oy;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164 if (x2) *x2 = ox + width;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 if (y2) *y2 = oy + height;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
167
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168 static void
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 dnd_hints_init(void)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171 static gboolean done = FALSE;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172 gint i;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174 if (done)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 return;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177 done = TRUE;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179 for (i = 0; hint_windows[i].filename != NULL; i++) {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 gchar *fname;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181
15946
d40e8847e825 More s/gaim/pidgin/ and s/gaim/purple/ and make the RPM spec file work a bit
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
182 fname = g_build_filename(DATADIR, "pixmaps", "pidgin",
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
183 hint_windows[i].filename, NULL);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
184
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
185 hint_windows[i].widget = dnd_hints_init_window(fname);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
186
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
187 g_free(fname);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
188 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
189 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
190
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
191 void
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
192 pidgin_pidgin_dnd_hints_hide_all(void)
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
193 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
194 gint i;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
195
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
196 for (i = 0; hint_windows[i].filename != NULL; i++)
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
197 pidgin_dnd_hints_hide(i);
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
198 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
199
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20147
diff changeset
200 void
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
201 pidgin_dnd_hints_hide(PidginDndHintWindowId i)
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
202 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
203 GtkWidget *w = hint_windows[i].widget;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
204
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
205 if (w && GTK_IS_WIDGET(w))
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
206 gtk_widget_hide(w);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
207 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
208
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20147
diff changeset
209 void
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
210 pidgin_dnd_hints_show(PidginDndHintWindowId id, gint x, gint y)
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
211 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
212 GtkWidget *w;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
213
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
214 dnd_hints_init();
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
215
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
216 w = hint_windows[id].widget;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
217
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
218 if (w && GTK_IS_WIDGET(w))
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
219 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
220 gtk_window_move(GTK_WINDOW(w), hint_windows[id].ox + x,
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
221 hint_windows[id].oy + y);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
222 gtk_widget_show(w);
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
223 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
224 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
225
25888
d0fdd378a635 Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 20147
diff changeset
226 void
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
227 pidgin_pidgin_dnd_hints_show_relative(PidginDndHintWindowId id, GtkWidget *widget,
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
228 PidginDndHintPosition horiz, PidginDndHintPosition vert)
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
229 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
230 gint x1, x2, y1, y2;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
231 gint x = 0, y = 0;
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
232 GtkAllocation allocation;
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
233
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
234 gtk_widget_get_allocation(widget, &allocation);
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
235
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
236 get_widget_coords(widget, &x1, &y1, &x2, &y2);
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
237 x1 += allocation.x; x2 += allocation.x;
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
238 y1 += allocation.y; y2 += allocation.y;
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
239
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
240 switch (horiz)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
241 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
242 case HINT_POSITION_RIGHT: x = x2; break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
243 case HINT_POSITION_LEFT: x = x1; break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
244 case HINT_POSITION_CENTER: x = (x1 + x2) / 2; break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
245 default:
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
246 /* should not happen */
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
247 g_warning("Invalid parameter to pidgin_pidgin_dnd_hints_show_relative");
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
248 break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
249 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
250
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
251 switch (vert)
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
252 {
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
253 case HINT_POSITION_TOP: y = y1; break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
254 case HINT_POSITION_BOTTOM: y = y2; break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
255 case HINT_POSITION_CENTER: y = (y1 + y2) / 2; break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
256 default:
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
257 /* should not happen */
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
258 g_warning("Invalid parameter to pidgin_pidgin_dnd_hints_show_relative");
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
259 break;
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
260 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
261
35500
ae6432ea326f Fixed namespace issues in Pidgin.
Ankit Vani <a@nevitus.org>
parents: 35455
diff changeset
262 pidgin_dnd_hints_show(id, x, y);
10298
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
263 }
25a4bc9cbd34 [gaim-migrate @ 11481]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
264

mercurial