pidgin/gtkscrollbook.c

Thu, 29 Jun 2017 15:33:29 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Thu, 29 Jun 2017 15:33:29 -0500
changeset 38578
c81f0a8301fe
parent 38004
2a9e87b2a89c
child 39673
d02350b7261b
permissions
-rw-r--r--

gtkidle: Port XScreensaver to DBus ScreenSaver interfaces

Modern Linux desktops use one of 3 DBus interfaces for querying if
the screensaver is currently active. There's a FreeDesktop one, a
GNOME one, and a KDE one. Rather than querying XScreensaver, which
may not be available, such as with Wayland, this patch ports Pidgin's
idle checking function to use these modern DBus interfaces.

Because Gio includes built-in DBus API, this patch also drops the
guards around pidgin_get_time_idle(), which also re-enables the
Win32 code which wasn't enabled with the previous guards.

20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
1 /* pidgin
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@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
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
5 * source distribution.
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
6 *
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 *
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 *
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@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: 16254
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 */
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22 #include "gtkscrollbook.h"
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23
35531
03bb64bf8a72 Fix gtk2 build again
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35528
diff changeset
24 #include "gtk3compat.h"
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
25
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
26 static void pidgin_scroll_book_init (PidginScrollBook *scroll_book);
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
27 static void pidgin_scroll_book_class_init (PidginScrollBookClass *klass);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
28 static void pidgin_scroll_book_forall (GtkContainer *c,
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
29 gboolean include_internals,
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
30 GtkCallback callback,
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
31 gpointer user_data);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
32
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
33 GType
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
34 pidgin_scroll_book_get_type (void)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
35 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
36 static GType scroll_book_type = 0;
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
37
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
38 if (!scroll_book_type)
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
39 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
40 static const GTypeInfo scroll_book_info =
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
41 {
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
42 sizeof (PidginScrollBookClass),
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
43 NULL, /* base_init */
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
44 NULL, /* base_finalize */
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
45 (GClassInitFunc) pidgin_scroll_book_class_init,
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
46 NULL, /* class_finalize */
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
47 NULL, /* class_data */
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
48 sizeof (PidginScrollBook),
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
49 0,
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
50 (GInstanceInitFunc) pidgin_scroll_book_init,
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
51 NULL /* value_table */
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
52 };
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
53
37994
11829debec7a Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35531
diff changeset
54 scroll_book_type = g_type_register_static(GTK_TYPE_BOX,
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
55 "PidginScrollBook",
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
56 &scroll_book_info,
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
57 0);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
58 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
59
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
60 return scroll_book_type;
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
61 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
62
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21763
diff changeset
63 static gboolean
31179
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
64 scroll_left_cb(PidginScrollBook *scroll_book, GdkEventButton *event)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
65 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
66 int index;
31179
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
67
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
68 if (event->type != GDK_BUTTON_PRESS)
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
69 return FALSE;
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
70
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
71 index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook));
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
72
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
73 if (index > 0)
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
74 gtk_notebook_set_current_page(GTK_NOTEBOOK(scroll_book->notebook), index - 1);
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21763
diff changeset
75 return TRUE;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
76 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
77
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21763
diff changeset
78 static gboolean
31179
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
79 scroll_right_cb(PidginScrollBook *scroll_book, GdkEventButton *event)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
80 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
81 int index, count;
31179
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
82
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
83 if (event->type != GDK_BUTTON_PRESS)
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
84 return FALSE;
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
85
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
86 index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook));
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
87 count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook));
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
88
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
89 if (index + 1 < count)
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
90 gtk_notebook_set_current_page(GTK_NOTEBOOK(scroll_book->notebook), index + 1);
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21763
diff changeset
91 return TRUE;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
92 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
93
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
94 static void
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
95 refresh_scroll_box(PidginScrollBook *scroll_book, int index, int count)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
96 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
97 char *label;
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
98
15114
4224e5db3ee4 [gaim-migrate @ 17836]
Mark Doliner <markdoliner@pidgin.im>
parents: 15094
diff changeset
99 gtk_widget_show_all(GTK_WIDGET(scroll_book));
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
100 if (count < 1)
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
101 gtk_widget_hide(scroll_book->hbox);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
102 else {
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
103 gtk_widget_show_all(scroll_book->hbox);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
104 if (count == 1) {
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
105 gtk_widget_hide(scroll_book->label);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
106 gtk_widget_hide(scroll_book->left_arrow);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
107 gtk_widget_hide(scroll_book->right_arrow);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
108 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
109 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
110
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
111 label = g_strdup_printf("<span size='smaller' weight='bold'>(%d/%d)</span>", index+1, count);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
112 gtk_label_set_markup(GTK_LABEL(scroll_book->label), label);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
113 g_free(label);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
114
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
115 if (index == 0)
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
116 gtk_widget_set_sensitive(scroll_book->left_arrow, FALSE);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
117 else
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
118 gtk_widget_set_sensitive(scroll_book->left_arrow, TRUE);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
119
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
120
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
121 if (index + 1 == count)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
122 gtk_widget_set_sensitive(scroll_book->right_arrow, FALSE);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
123 else
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
124 gtk_widget_set_sensitive(scroll_book->right_arrow, TRUE);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
125 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
126
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
127
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
128 static void
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
129 page_count_change_cb(PidginScrollBook *scroll_book)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
130 {
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15240
diff changeset
131 int count;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
132 int index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook));
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15240
diff changeset
133 count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook));
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
134 refresh_scroll_box(scroll_book, index, count);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
135 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
136
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21763
diff changeset
137 static gboolean
31179
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
138 scroll_close_cb(PidginScrollBook *scroll_book, GdkEventButton *event)
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
139 {
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 31179
diff changeset
140 if (event->type == GDK_BUTTON_PRESS)
31179
245a26364487 The left/right scroll, and close buttons in a PidginScrollBook should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29499
diff changeset
141 gtk_widget_destroy(gtk_notebook_get_nth_page(GTK_NOTEBOOK(scroll_book->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook))));
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21763
diff changeset
142 return FALSE;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
143 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
144
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
145 static void
32915
27891bd13ca3 It appears that GtkNotebookPage is deprecated, though the 'switch-page'
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
146 switch_page_cb(GtkNotebook *notebook, GtkWidget *page, guint page_num, PidginScrollBook *scroll_book)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
147 {
15320
c4eea0409712 [gaim-migrate @ 18048]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15246
diff changeset
148 int count;
c4eea0409712 [gaim-migrate @ 18048]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15246
diff changeset
149 count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook));
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
150 refresh_scroll_box(scroll_book, page_num, count);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
151 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
152
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
153 static void
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
154 pidgin_scroll_book_add(GtkContainer *container, GtkWidget *widget)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
155 {
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
156 PidginScrollBook *scroll_book;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
157
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
158 g_return_if_fail(GTK_IS_WIDGET (widget));
33133
9a31f084f259 Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33132
diff changeset
159 g_return_if_fail(gtk_widget_get_parent(widget) == NULL);
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
160
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
161 scroll_book = PIDGIN_SCROLL_BOOK(container);
21719
b4d7c3fe216c I'm pretty sure this is what was intended.
Daniel Atallah <datallah@pidgin.im>
parents: 21670
diff changeset
162 scroll_book->children = g_list_append(scroll_book->children, widget);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
163 gtk_widget_show(widget);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
164 gtk_notebook_append_page(GTK_NOTEBOOK(scroll_book->notebook), widget, NULL);
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
165 page_count_change_cb(PIDGIN_SCROLL_BOOK(container));
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
166 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
167
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
168 static void
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
169 pidgin_scroll_book_remove(GtkContainer *container, GtkWidget *widget)
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
170 {
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
171 int page;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
172 PidginScrollBook *scroll_book;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
173 g_return_if_fail(GTK_IS_WIDGET(widget));
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
174
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
175 scroll_book = PIDGIN_SCROLL_BOOK(container);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
176 scroll_book->children = g_list_remove(scroll_book->children, widget);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
177 /* gtk_widget_unparent(widget); */
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
178
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
179 page = gtk_notebook_page_num(GTK_NOTEBOOK(PIDGIN_SCROLL_BOOK(container)->notebook), widget);
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
180 if (page >= 0) {
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
181 gtk_notebook_remove_page(GTK_NOTEBOOK(PIDGIN_SCROLL_BOOK(container)->notebook), page);
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
182 }
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
183 }
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
184
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
185 static void
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
186 pidgin_scroll_book_forall(GtkContainer *container,
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
187 gboolean include_internals,
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
188 GtkCallback callback,
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
189 gpointer callback_data)
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
190 {
21760
0f73c3c192ac My previous commit caused the scrollbook's children to be tracked correctly - it turns out that this causes problems because they really aren't the children of the scrollbook, they're the notebook'children. This stuff needs to be revisited.
Daniel Atallah <datallah@pidgin.im>
parents: 21719
diff changeset
191 #if 0
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
192 GList *children;
21760
0f73c3c192ac My previous commit caused the scrollbook's children to be tracked correctly - it turns out that this causes problems because they really aren't the children of the scrollbook, they're the notebook'children. This stuff needs to be revisited.
Daniel Atallah <datallah@pidgin.im>
parents: 21719
diff changeset
193 #endif
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
194 PidginScrollBook *scroll_book;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
195
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
196 g_return_if_fail(GTK_IS_CONTAINER(container));
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
197
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
198 scroll_book = PIDGIN_SCROLL_BOOK(container);
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
199
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
200 if (include_internals) {
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
201 (*callback)(scroll_book->hbox, callback_data);
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
202 (*callback)(scroll_book->notebook, callback_data);
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
203 }
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
204
21760
0f73c3c192ac My previous commit caused the scrollbook's children to be tracked correctly - it turns out that this causes problems because they really aren't the children of the scrollbook, they're the notebook'children. This stuff needs to be revisited.
Daniel Atallah <datallah@pidgin.im>
parents: 21719
diff changeset
205 #if 0
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
206 children = scroll_book->children;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
207
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
208 while (children) {
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
209 GtkWidget *child;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
210 child = children->data;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
211 children = children->next;
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
212 (*callback)(child, callback_data);
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
213 }
21760
0f73c3c192ac My previous commit caused the scrollbook's children to be tracked correctly - it turns out that this causes problems because they really aren't the children of the scrollbook, they're the notebook'children. This stuff needs to be revisited.
Daniel Atallah <datallah@pidgin.im>
parents: 21719
diff changeset
214 #endif
15240
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
215 }
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
216
3aa0e80143e8 [gaim-migrate @ 17965]
Sean Egan <seanegan@pidgin.im>
parents: 15190
diff changeset
217 static void
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
218 pidgin_scroll_book_class_init (PidginScrollBookClass *klass)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
219 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
220 GtkContainerClass *container_class = (GtkContainerClass*)klass;
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
221
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
222 container_class->add = pidgin_scroll_book_add;
21670
9ce6e7374523 This fixes the problem where all accounts are disabled due to connection
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20147
diff changeset
223 container_class->remove = pidgin_scroll_book_remove;
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
224 container_class->forall = pidgin_scroll_book_forall;
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
225 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
226
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
227 static gboolean
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
228 close_button_left_cb(GtkWidget *widget, GdkEventCrossing *event, GtkLabel *label)
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
229 {
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
230 static GdkCursor *ptr = NULL;
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
231 if (ptr == NULL) {
37997
7b62a2153898 Use gdk_cursor_new_for_display over gdk_cursor_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
232 GdkDisplay *display = gtk_widget_get_display(widget);
7b62a2153898 Use gdk_cursor_new_for_display over gdk_cursor_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
233 ptr = gdk_cursor_new_for_display(display, GDK_LEFT_PTR);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
234 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
235
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
236 gtk_label_set_markup(label, "×");
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
237 gdk_window_set_cursor(event->window, ptr);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
238 return FALSE;
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
239 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
240
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
241 static gboolean
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
242 close_button_entered_cb(GtkWidget *widget, GdkEventCrossing *event, GtkLabel *label)
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
243 {
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
244 static GdkCursor *hand = NULL;
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
245 if (hand == NULL) {
37997
7b62a2153898 Use gdk_cursor_new_for_display over gdk_cursor_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
246 GdkDisplay *display = gtk_widget_get_display(widget);
7b62a2153898 Use gdk_cursor_new_for_display over gdk_cursor_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37994
diff changeset
247 hand = gdk_cursor_new_for_display(display, GDK_HAND2);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
248 }
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
249
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
250 gtk_label_set_markup(label, "<u>×</u>");
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
251 gdk_window_set_cursor(event->window, hand);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
252 return FALSE;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
253 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
254
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
255 static void
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
256 pidgin_scroll_book_init (PidginScrollBook *scroll_book)
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
257 {
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
258 GtkWidget *eb;
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
259 GtkWidget *close_button;
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
260
37994
11829debec7a Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35531
diff changeset
261 gtk_orientable_set_orientation(GTK_ORIENTABLE(scroll_book), GTK_ORIENTATION_VERTICAL);
11829debec7a Replace Gtk[HV]Box with GtkBox.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35531
diff changeset
262
35528
e04ba70092e9 Fix the rest of [hv] gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35454
diff changeset
263 scroll_book->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
264
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
265 /* Close */
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
266 eb = gtk_event_box_new();
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
267 gtk_box_pack_end(GTK_BOX(scroll_book->hbox), eb, FALSE, FALSE, 0);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
268 gtk_event_box_set_visible_window(GTK_EVENT_BOX(eb), FALSE);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
269 gtk_widget_set_events(eb, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
270 close_button = gtk_label_new("×");
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
271 g_signal_connect(G_OBJECT(eb), "enter-notify-event", G_CALLBACK(close_button_entered_cb), close_button);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
272 g_signal_connect(G_OBJECT(eb), "leave-notify-event", G_CALLBACK(close_button_left_cb), close_button);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
273 gtk_container_add(GTK_CONTAINER(eb), close_button);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
274 g_signal_connect_swapped(G_OBJECT(eb), "button-press-event", G_CALLBACK(scroll_close_cb), scroll_book);
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
275
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
276 /* Right arrow */
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
277 eb = gtk_event_box_new();
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
278 gtk_box_pack_end(GTK_BOX(scroll_book->hbox), eb, FALSE, FALSE, 0);
38004
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
279 #if GTK_CHECK_VERSION(3,14,0)
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
280 scroll_book->right_arrow = gtk_image_new_from_icon_name("pan-right-symbolic", GTK_ICON_SIZE_BUTTON);
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
281 #else
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
282 scroll_book->right_arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
38004
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
283 #endif
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
284 gtk_container_add(GTK_CONTAINER(eb), scroll_book->right_arrow);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
285 g_signal_connect_swapped(G_OBJECT(eb), "button-press-event", G_CALLBACK(scroll_right_cb), scroll_book);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
286
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
287 /* Count */
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
288 scroll_book->label = gtk_label_new(NULL);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
289 gtk_box_pack_end(GTK_BOX(scroll_book->hbox), scroll_book->label, FALSE, FALSE, 0);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
290
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
291 /* Left arrow */
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
292 eb = gtk_event_box_new();
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
293 gtk_box_pack_end(GTK_BOX(scroll_book->hbox), eb, FALSE, FALSE, 0);
38004
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
294 #if GTK_CHECK_VERSION(3,14,0)
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
295 scroll_book->left_arrow = gtk_image_new_from_icon_name("pan-left-symbolic", GTK_ICON_SIZE_BUTTON);
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
296 #else
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
297 scroll_book->left_arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
38004
2a9e87b2a89c Remove deprecated gtk_arrow_new calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 37997
diff changeset
298 #endif
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
299 gtk_container_add(GTK_CONTAINER(eb), scroll_book->left_arrow);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
300 g_signal_connect_swapped(G_OBJECT(eb), "button-press-event", G_CALLBACK(scroll_left_cb), scroll_book);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
301
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
302 gtk_box_pack_start(GTK_BOX(scroll_book), scroll_book->hbox, FALSE, FALSE, 0);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
303
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
304 scroll_book->notebook = gtk_notebook_new();
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
305 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(scroll_book->notebook), FALSE);
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
306 gtk_notebook_set_show_border(GTK_NOTEBOOK(scroll_book->notebook), FALSE);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
307
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
308 gtk_box_pack_start(GTK_BOX(scroll_book), scroll_book->notebook, TRUE, TRUE, 0);
21763
95ce28fc860a Patch from DB42 to add a little '×' in a scrollbook. I edited the patch in
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21760
diff changeset
309
15190
4ce2829864f0 [gaim-migrate @ 17914]
Mark Doliner <markdoliner@pidgin.im>
parents: 15120
diff changeset
310 g_signal_connect_swapped(G_OBJECT(scroll_book->notebook), "remove", G_CALLBACK(page_count_change_cb), scroll_book);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
311 g_signal_connect(G_OBJECT(scroll_book->notebook), "switch-page", G_CALLBACK(switch_page_cb), scroll_book);
15243
87dafc34b920 [gaim-migrate @ 17968]
Sean Egan <seanegan@pidgin.im>
parents: 15240
diff changeset
312 gtk_widget_show_all(scroll_book->notebook);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
313 }
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
314
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
315 GtkWidget *
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
316 pidgin_scroll_book_new()
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
317 {
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
318 return g_object_new(PIDGIN_TYPE_SCROLL_BOOK, NULL);
15094
7ebf5dd7d969 [gaim-migrate @ 17815]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
319 }

mercurial