Thu, 17 May 2018 22:26:19 -0500
win32: Simplify complicated DLL preparation
WinPidgin uses complicated DLL preparation in order to find where
GTK+ and other DLLs are located. This is broken due to names and
paths of DLLs having changed with the new build system and versions.
GTK+3 doesn't provide an installable package either. Since we need
to bundle the dependencies ourselves anyway, we can control where
they are stored and can simplify this complicated searching.
For the purpose of loading DLLs, the difference between "classic"
and "fhs" win32-dirs is that "classic" has its dependencies in a
bin/ subdirectory. Therefore, all that's really needed is to add
the bin/ subdirectory into the search path. This patch does this
using SetDllDirectory().
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* pidgin |
| 10643 | 2 | * |
| 15572 | 3 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 10643 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
| 6 | * | |
| 7 | * This program is free software; you can redistribute it and/or modify | |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 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:
16538
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 10643 | 20 | */ |
|
35487
494f09f7f331
Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents:
35455
diff
changeset
|
21 | |
|
494f09f7f331
Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents:
35455
diff
changeset
|
22 | #ifndef __PIDGIN_STATUS_BOX_H__ |
|
494f09f7f331
Move section blocks inside inclusion guards -- otherwise g-ir-scanner yells
Ankit Vani <a@nevitus.org>
parents:
35455
diff
changeset
|
23 | #define __PIDGIN_STATUS_BOX_H__ |
|
35451
206524351826
Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents:
35417
diff
changeset
|
24 | /** |
|
206524351826
Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents:
35417
diff
changeset
|
25 | * SECTION:gtkstatusbox |
|
206524351826
Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents:
35417
diff
changeset
|
26 | * @section_id: pidgin-gtkstatusbox |
|
206524351826
Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents:
35417
diff
changeset
|
27 | * @short_description: <filename>gtkstatusbox.h</filename> |
|
206524351826
Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents:
35417
diff
changeset
|
28 | * @title: Status Selection Widget |
|
206524351826
Add sections for finch and re-arrange its doc index
Ankit Vani <a@nevitus.org>
parents:
35417
diff
changeset
|
29 | */ |
| 10643 | 30 | |
| 31 | #include <gtk/gtk.h> | |
|
33257
eb15b7f78e32
Convert GtkStatusBox to use a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33026
diff
changeset
|
32 | #include "gtkwebview.h" |
| 11499 | 33 | #include "account.h" |
|
11677
89c2ab8d2ebf
[gaim-migrate @ 13963]
Mark Doliner <markdoliner@pidgin.im>
parents:
11638
diff
changeset
|
34 | #include "savedstatuses.h" |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
35 | #include "status.h" |
| 10643 | 36 | |
| 37 | G_BEGIN_DECLS | |
| 38 | ||
| 15577 | 39 | #define PIDGIN_TYPE_STATUS_BOX (pidgin_status_box_get_type ()) |
| 40 | #define PIDGIN_STATUS_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIDGIN_TYPE_STATUS_BOX, PidginStatusBox)) | |
| 41 | #define PIDGIN_STATUS_BOX_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), PIDGIN_TYPE_STATUS_BOX, PidginStatusBoxClass)) | |
| 42 | #define PIDGIN_IS_STATUS_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIDGIN_TYPE_STATUS_BOX)) | |
| 43 | #define PIDGIN_IS_STATUS_BOX_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), PIDGIN_TYPE_STATUS_BOX)) | |
| 44 | #define PIDGIN_STATUS_BOX_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), PIDGIN_TYPE_STATUS_BOX, PidginStatusBoxClass)) | |
| 10643 | 45 | |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
46 | /** |
|
35417
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
47 | * PidginStatusBoxItemType: |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
48 | * |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
49 | * This is a hidden field in the GtkStatusBox that identifies the |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
50 | * item in the list store. The item could be a normal |
| 15884 | 51 | * PurpleStatusPrimitive, or it could be something special like the |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
52 | * "Custom..." item, or "Saved..." or a GtkSeparator. |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
53 | */ |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
54 | typedef enum |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
55 | { |
| 15577 | 56 | PIDGIN_STATUS_BOX_TYPE_SEPARATOR, |
| 57 | PIDGIN_STATUS_BOX_TYPE_PRIMITIVE, | |
| 58 | PIDGIN_STATUS_BOX_TYPE_POPULAR, | |
|
16376
04b7b529b7b0
Saved icon for saved statuses in statusbox
Sean Egan <seanegan@pidgin.im>
parents:
16254
diff
changeset
|
59 | PIDGIN_STATUS_BOX_TYPE_SAVED_POPULAR, |
| 15577 | 60 | PIDGIN_STATUS_BOX_TYPE_CUSTOM, |
| 61 | PIDGIN_STATUS_BOX_TYPE_SAVED, | |
| 62 | PIDGIN_STATUS_BOX_NUM_TYPES | |
| 63 | } PidginStatusBoxItemType; | |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11738
diff
changeset
|
64 | |
| 15577 | 65 | typedef struct _PidginStatusBox PidginStatusBox; |
| 66 | typedef struct _PidginStatusBoxClass PidginStatusBoxClass; | |
| 10643 | 67 | |
|
35417
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
68 | /** |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
69 | * PidginStatusBox: |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
70 | * @store: This GtkListStore contains only one row--the currently |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
71 | * selected status. |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
72 | * @dropdown_store: This is the dropdown GtkListStore that contains the |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
73 | * available statuses, plus some recently used statuses, plus |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
74 | * the "Custom..." and "Saved..." options. |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
75 | * @token_status_account: This will be non-NULL and contain a sample account |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
76 | * when all enabled accounts use the same statuses |
|
4e34bb5d3681
Convert docs from doxygen to gtk-doc format for gtksound to pidgintooltip
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
77 | */ |
| 15577 | 78 | struct _PidginStatusBox |
| 10643 | 79 | { |
| 15141 | 80 | GtkContainer parent_instance; |
| 10643 | 81 | |
|
35455
216a37403c5b
Fix a bunch of gtk-doc warnings in pidgin
Ankit Vani <a@nevitus.org>
parents:
35451
diff
changeset
|
82 | /*< public >*/ |
| 10643 | 83 | GtkListStore *store; |
| 84 | GtkListStore *dropdown_store; | |
| 85 | ||
| 15884 | 86 | PurpleAccount *account; |
| 11499 | 87 | |
| 15884 | 88 | PurpleAccount *token_status_account; |
|
14725
39980ddc0b9a
[gaim-migrate @ 17409]
Daniel Atallah <datallah@pidgin.im>
parents:
14253
diff
changeset
|
89 | |
| 10643 | 90 | GtkWidget *vbox, *sw; |
|
33257
eb15b7f78e32
Convert GtkStatusBox to use a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33026
diff
changeset
|
91 | GtkWidget *webview; |
| 14195 | 92 | |
|
35815
d6fe2c2ebbbe
imgstore: remove from headers
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35487
diff
changeset
|
93 | PurpleImage *buddy_icon_img; |
|
14203
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
94 | GdkPixbuf *buddy_icon; |
|
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
95 | GdkPixbuf *buddy_icon_hover; |
| 14195 | 96 | GtkWidget *buddy_icon_sel; |
|
14203
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
97 | GtkWidget *icon; |
| 14195 | 98 | GtkWidget *icon_box; |
|
15079
835ed45157ce
[gaim-migrate @ 17799]
Daniel Atallah <datallah@pidgin.im>
parents:
14865
diff
changeset
|
99 | GtkWidget *icon_box_menu; |
| 14195 | 100 | GdkCursor *hand_cursor; |
| 101 | GdkCursor *arrow_cursor; | |
|
33026
3c249b1132db
Fix indenting.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26727
diff
changeset
|
102 | int icon_size; |
|
3c249b1132db
Fix indenting.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26727
diff
changeset
|
103 | gboolean icon_opaque; |
| 14195 | 104 | |
|
33257
eb15b7f78e32
Convert GtkStatusBox to use a GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33026
diff
changeset
|
105 | gboolean webview_visible; |
| 10643 | 106 | |
| 107 | GtkWidget *cell_view; | |
| 108 | GtkCellRenderer *icon_rend; | |
| 109 | GtkCellRenderer *text_rend; | |
| 110 | ||
| 111 | GdkPixbuf *error_pixbuf; | |
| 112 | int connecting_index; | |
| 24434 | 113 | GdkPixbuf *connecting_pixbufs[9]; |
| 10643 | 114 | int typing_index; |
| 15730 | 115 | GdkPixbuf *typing_pixbufs[6]; |
| 10643 | 116 | |
| 14767 | 117 | gboolean network_available; |
| 10643 | 118 | gboolean connecting; |
|
13124
1750c1be8e81
[gaim-migrate @ 15485]
Mark Doliner <markdoliner@pidgin.im>
parents:
13123
diff
changeset
|
119 | guint typing; |
| 10643 | 120 | |
| 121 | GtkTreeIter iter; | |
| 122 | char *error; | |
| 11960 | 123 | |
|
13122
85136c011157
[gaim-migrate @ 15483]
Mark Doliner <markdoliner@pidgin.im>
parents:
12779
diff
changeset
|
124 | /* |
|
85136c011157
[gaim-migrate @ 15483]
Mark Doliner <markdoliner@pidgin.im>
parents:
12779
diff
changeset
|
125 | * These widgets are made for renderin' |
|
85136c011157
[gaim-migrate @ 15483]
Mark Doliner <markdoliner@pidgin.im>
parents:
12779
diff
changeset
|
126 | * That's just what they'll do |
|
85136c011157
[gaim-migrate @ 15483]
Mark Doliner <markdoliner@pidgin.im>
parents:
12779
diff
changeset
|
127 | * One of these days these widgets |
|
85136c011157
[gaim-migrate @ 15483]
Mark Doliner <markdoliner@pidgin.im>
parents:
12779
diff
changeset
|
128 | * Are gonna render all over you |
|
85136c011157
[gaim-migrate @ 15483]
Mark Doliner <markdoliner@pidgin.im>
parents:
12779
diff
changeset
|
129 | */ |
| 12262 | 130 | GtkWidget *hbox; |
| 131 | GtkWidget *toggle_button; | |
| 132 | GtkWidget *vsep; | |
| 133 | GtkWidget *arrow; | |
| 15141 | 134 | |
| 135 | GtkWidget *popup_window; | |
| 136 | GtkWidget *popup_frame; | |
| 137 | GtkWidget *scrolled_window; | |
| 138 | GtkWidget *cell_view_frame; | |
| 139 | GtkTreeViewColumn *column; | |
| 140 | GtkWidget *tree_view; | |
| 141 | gboolean popup_in_progress; | |
| 142 | GtkTreeRowReference *active_row; | |
| 10643 | 143 | }; |
| 144 | ||
| 15577 | 145 | struct _PidginStatusBoxClass |
| 10643 | 146 | { |
| 15141 | 147 | GtkContainerClass parent_class; |
| 10643 | 148 | |
|
14203
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
149 | /* signals */ |
|
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
150 | void (* changed) (GtkComboBox *combo_box); |
| 10643 | 151 | |
|
35024
eb3afb7643ce
Added /*< private >*/ for padding members, clean them up and add missing ones
Ankit Vani <a@nevitus.org>
parents:
33257
diff
changeset
|
152 | /*< private >*/ |
|
14203
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
153 | void (*_gtk_reserved0) (void); |
|
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
154 | void (*_gtk_reserved1) (void); |
|
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
155 | void (*_gtk_reserved2) (void); |
|
f3a50c328ddc
[gaim-migrate @ 16783]
Mark Doliner <markdoliner@pidgin.im>
parents:
14195
diff
changeset
|
156 | void (*_gtk_reserved3) (void); |
| 10643 | 157 | }; |
| 158 | ||
| 159 | ||
| 15577 | 160 | GType pidgin_status_box_get_type (void) G_GNUC_CONST; |
| 161 | GtkWidget *pidgin_status_box_new (void); | |
|
38744
48a376346964
Lots of updates for Pidgin-3.0.gir
Gary Kramlich <grim@reaperworld.com>
parents:
35815
diff
changeset
|
162 | GtkWidget *pidgin_status_box_new_with_account (PurpleAccount *account); |
| 10643 | 163 | |
| 164 | void | |
| 15577 | 165 | pidgin_status_box_add(PidginStatusBox *status_box, PidginStatusBoxItemType type, GdkPixbuf *pixbuf, const char *text, const char *sec_text, gpointer data); |
| 10643 | 166 | |
| 167 | void | |
| 15577 | 168 | pidgin_status_box_add_separator(PidginStatusBox *status_box); |
|
11738
207d5519a4d0
[gaim-migrate @ 14029]
Mark Doliner <markdoliner@pidgin.im>
parents:
11732
diff
changeset
|
169 | |
|
207d5519a4d0
[gaim-migrate @ 14029]
Mark Doliner <markdoliner@pidgin.im>
parents:
11732
diff
changeset
|
170 | void |
| 15577 | 171 | pidgin_status_box_set_network_available(PidginStatusBox *status_box, gboolean available); |
| 14767 | 172 | |
| 173 | void | |
| 15577 | 174 | pidgin_status_box_set_connecting(PidginStatusBox *status_box, gboolean connecting); |
| 10643 | 175 | |
| 176 | void | |
| 15577 | 177 | pidgin_status_box_pulse_connecting(PidginStatusBox *status_box); |
| 10643 | 178 | |
| 14195 | 179 | void |
|
35815
d6fe2c2ebbbe
imgstore: remove from headers
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35487
diff
changeset
|
180 | pidgin_status_box_set_buddy_icon(PidginStatusBox *status_box, PurpleImage *img); |
| 14195 | 181 | |
| 15577 | 182 | char *pidgin_status_box_get_message(PidginStatusBox *status_box); |
| 10649 | 183 | |
| 10643 | 184 | G_END_DECLS |
| 185 | ||
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15474
diff
changeset
|
186 | #endif /* __GTK_PIDGIN_STATUS_COMBO_BOX_H__ */ |