~ubuntu-branches/debian/sid/gnome-terminal/sid

« back to all changes in this revision

Viewing changes to src/terminal-mdi-container.c

  • Committer: Package Import Robot
  • Author(s): Michael Biebl, Emilio Pozuelo Monfort, Michael Biebl
  • Date: 2013-06-05 22:23:26 UTC
  • mfrom: (1.6.15) (10.1.9 experimental)
  • Revision ID: package-import@ubuntu.com-20130605222326-ymxsw4ia0vri1zwh
Tags: 3.8.2-1
[ Emilio Pozuelo Monfort ]
* Remove obsolete build dependency on scrollkeeper.

[ Michael Biebl ]
* Upload to unstable.
* New upstream release.
* Bump Standards-Version to 3.9.4. No further changes.
* Add Build-Depends on autotools-dev as lintian was complaining about
  outdated config.{guess,sub}.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright © 2008, 2010, 2011, 2012 Christian Persch
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or modify
 
5
 * it under the terms of the GNU General Public License as published by
 
6
 * the Free Software Foundation, either version 3 of the License, or
 
7
 * (at your option) any later version.
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 * GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License
 
15
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
16
 */
 
17
 
 
18
#include <config.h>
 
19
 
 
20
#include "terminal-mdi-container.h"
 
21
#include "terminal-debug.h"
 
22
#include "terminal-intl.h"
 
23
 
 
24
enum {
 
25
  SCREEN_ADDED,
 
26
  SCREEN_REMOVED,
 
27
  SCREEN_SWITCHED,
 
28
  SCREENS_REORDERED,
 
29
  SCREEN_CLOSE_REQUEST,
 
30
  LAST_SIGNAL
 
31
};
 
32
 
 
33
static guint signals[LAST_SIGNAL];
 
34
 
 
35
G_DEFINE_INTERFACE (TerminalMdiContainer, terminal_mdi_container, GTK_TYPE_WIDGET)
 
36
 
 
37
static void
 
38
terminal_mdi_container_default_init (TerminalMdiContainerInterface *iface)
 
39
{
 
40
  signals[SCREEN_ADDED] =
 
41
    g_signal_new (I_("screen-added"),
 
42
                  G_TYPE_FROM_INTERFACE (iface),
 
43
                  G_SIGNAL_RUN_LAST,
 
44
                  G_STRUCT_OFFSET (TerminalMdiContainerInterface, screen_added),
 
45
                  NULL, NULL,
 
46
                  g_cclosure_marshal_VOID__OBJECT,
 
47
                  G_TYPE_NONE,
 
48
                  1, TERMINAL_TYPE_SCREEN);
 
49
 
 
50
  signals[SCREEN_ADDED] =
 
51
    g_signal_new (I_("screen-removed"),
 
52
                  G_TYPE_FROM_INTERFACE (iface),
 
53
                  G_SIGNAL_RUN_LAST,
 
54
                  G_STRUCT_OFFSET (TerminalMdiContainerInterface, screen_added),
 
55
                  NULL, NULL,
 
56
                  g_cclosure_marshal_VOID__OBJECT,
 
57
                  G_TYPE_NONE,
 
58
                  1, TERMINAL_TYPE_SCREEN);
 
59
 
 
60
  signals[SCREEN_ADDED] =
 
61
    g_signal_new (I_("screen-switched"),
 
62
                  G_TYPE_FROM_INTERFACE (iface),
 
63
                  G_SIGNAL_RUN_LAST,
 
64
                  G_STRUCT_OFFSET (TerminalMdiContainerInterface, screen_switched),
 
65
                  NULL, NULL,
 
66
                  NULL,
 
67
                  G_TYPE_NONE,
 
68
                  2, TERMINAL_TYPE_SCREEN, TERMINAL_TYPE_SCREEN);
 
69
 
 
70
  signals[SCREENS_REORDERED] =
 
71
    g_signal_new (I_("screens-reordered"),
 
72
                  G_TYPE_FROM_INTERFACE (iface),
 
73
                  G_SIGNAL_RUN_LAST,
 
74
                  G_STRUCT_OFFSET (TerminalMdiContainerInterface, screens_reordered),
 
75
                  NULL, NULL,
 
76
                  g_cclosure_marshal_VOID__VOID,
 
77
                  G_TYPE_NONE,
 
78
                  0);
 
79
 
 
80
  signals[SCREEN_CLOSE_REQUEST] =
 
81
    g_signal_new (I_("screen-close-request"),
 
82
                  G_TYPE_FROM_INTERFACE (iface),
 
83
                  G_SIGNAL_RUN_LAST,
 
84
                  G_STRUCT_OFFSET (TerminalMdiContainerInterface, screen_close_request),
 
85
                  NULL, NULL,
 
86
                  g_cclosure_marshal_VOID__OBJECT,
 
87
                  G_TYPE_NONE,
 
88
                  1, TERMINAL_TYPE_SCREEN);
 
89
 
 
90
  g_object_interface_install_property (iface,
 
91
    g_param_spec_object ("active-screen", NULL, NULL,
 
92
                         TERMINAL_TYPE_SCREEN,
 
93
                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
94
}
 
95
 
 
96
/* public API */
 
97
 
 
98
void 
 
99
terminal_mdi_container_add_screen (TerminalMdiContainer *container,
 
100
                                   TerminalScreen *screen)
 
101
{
 
102
  g_return_if_fail (TERMINAL_IS_MDI_CONTAINER (container));
 
103
  g_return_if_fail (TERMINAL_IS_SCREEN (screen));
 
104
 
 
105
  TERMINAL_MDI_CONTAINER_GET_IFACE (container)->add_screen (container, screen);
 
106
}
 
107
 
 
108
void 
 
109
terminal_mdi_container_remove_screen (TerminalMdiContainer *container,
 
110
                                      TerminalScreen *screen)
 
111
{
 
112
  g_return_if_fail (TERMINAL_IS_MDI_CONTAINER (container));
 
113
  g_return_if_fail (TERMINAL_IS_SCREEN (screen));
 
114
 
 
115
  TERMINAL_MDI_CONTAINER_GET_IFACE (container)->remove_screen (container, screen);
 
116
}
 
117
 
 
118
TerminalScreen *
 
119
terminal_mdi_container_get_active_screen (TerminalMdiContainer *container)
 
120
{
 
121
  g_return_val_if_fail (TERMINAL_IS_MDI_CONTAINER (container), NULL);
 
122
 
 
123
  return TERMINAL_MDI_CONTAINER_GET_IFACE (container)->get_active_screen (container);
 
124
}
 
125
 
 
126
void 
 
127
terminal_mdi_container_set_active_screen (TerminalMdiContainer *container,
 
128
                                          TerminalScreen *screen)
 
129
{
 
130
  g_return_if_fail (TERMINAL_IS_MDI_CONTAINER (container));
 
131
  g_return_if_fail (TERMINAL_IS_SCREEN (screen));
 
132
 
 
133
  TERMINAL_MDI_CONTAINER_GET_IFACE (container)->set_active_screen (container, screen);
 
134
}
 
135
 
 
136
 
 
137
GList *
 
138
terminal_mdi_container_list_screens (TerminalMdiContainer *container)
 
139
{
 
140
  g_return_val_if_fail (TERMINAL_IS_MDI_CONTAINER (container), NULL);
 
141
 
 
142
  return TERMINAL_MDI_CONTAINER_GET_IFACE (container)->list_screens (container);
 
143
}
 
144
 
 
145
GList *
 
146
terminal_mdi_container_list_screen_containers (TerminalMdiContainer *container)
 
147
{
 
148
  g_return_val_if_fail (TERMINAL_IS_MDI_CONTAINER (container), NULL);
 
149
 
 
150
  return TERMINAL_MDI_CONTAINER_GET_IFACE (container)->list_screen_containers (container);
 
151
}
 
152
 
 
153
int
 
154
terminal_mdi_container_get_n_screens (TerminalMdiContainer *container)
 
155
{
 
156
  g_return_val_if_fail (TERMINAL_IS_MDI_CONTAINER (container), 0);
 
157
 
 
158
  return TERMINAL_MDI_CONTAINER_GET_IFACE (container)->get_n_screens (container);
 
159
}
 
160
 
 
161
int
 
162
terminal_mdi_container_get_active_screen_num (TerminalMdiContainer *container)
 
163
{
 
164
  g_return_val_if_fail (TERMINAL_IS_MDI_CONTAINER (container), -1);
 
165
 
 
166
  return TERMINAL_MDI_CONTAINER_GET_IFACE (container)->get_active_screen_num (container);
 
167
}
 
168
 
 
169
void 
 
170
terminal_mdi_container_reorder_screen (TerminalMdiContainer *container,
 
171
                                       TerminalScreen *screen,
 
172
                                       int new_position)
 
173
{
 
174
  g_return_if_fail (TERMINAL_IS_MDI_CONTAINER (container));
 
175
 
 
176
  return TERMINAL_MDI_CONTAINER_GET_IFACE (container)->reorder_screen (container, screen, new_position);
 
177
}