43
42
#include "video-utils.h"
44
43
#include "bacon-video-widget.h"
46
static void totem_skipto_class_init (TotemSkiptoClass *class);
47
static void totem_skipto_init (TotemSkipto *ggo);
48
45
static void totem_skipto_dispose (GObject *object);
50
47
/* Callback functions for GtkBuilder */
51
void spin_button_activate_cb (GtkEntry *entry, TotemSkipto *skipto);
52
void spin_button_value_changed_cb (GtkSpinButton *spinbutton, TotemSkipto *skipto);
48
void time_entry_activate_cb (GtkEntry *entry, TotemSkipto *skipto);
54
50
struct TotemSkiptoPrivate {
57
GtkWidget *spinbutton;
52
GtkWidget *time_entry;
87
82
skipto->priv = G_TYPE_INSTANCE_GET_PRIVATE (skipto, TOTEM_TYPE_SKIPTO, TotemSkiptoPrivate);
84
gtk_dialog_set_default_response (GTK_DIALOG (skipto), GTK_RESPONSE_OK);
89
85
g_signal_connect (skipto, "response",
90
86
G_CALLBACK (totem_skipto_response_cb), NULL);
111
107
if (time == skipto->priv->time)
114
gtk_spin_button_set_range (GTK_SPIN_BUTTON (skipto->priv->spinbutton),
110
gtk_spin_button_set_range (GTK_SPIN_BUTTON (skipto->priv->time_entry),
115
111
0, (gdouble) time / 1000);
116
112
skipto->priv->time = time;
143
139
g_return_if_fail (TOTEM_IS_SKIPTO (skipto));
145
gtk_spin_button_set_value (GTK_SPIN_BUTTON (skipto->priv->spinbutton),
141
gtk_spin_button_set_value (GTK_SPIN_BUTTON (skipto->priv->time_entry),
146
142
(gdouble) (time / 1000));
150
spin_button_activate_cb (GtkEntry *entry, TotemSkipto *skipto)
146
time_entry_activate_cb (GtkEntry *entry, TotemSkipto *skipto)
152
148
gtk_dialog_response (GTK_DIALOG (skipto), GTK_RESPONSE_OK);
156
spin_button_value_changed_cb (GtkSpinButton *spinbutton, TotemSkipto *skipto)
161
sec = (int) gtk_spin_button_get_value (GTK_SPIN_BUTTON (spinbutton));
162
str = totem_time_to_string_text (sec * 1000);
163
gtk_label_set_text (GTK_LABEL (skipto->priv->label), str);
168
152
totem_skipto_new (TotemSkiptoPlugin *plugin)
170
154
TotemSkipto *skipto;
181
165
g_object_unref (skipto);
184
skipto->priv->label = GTK_WIDGET (gtk_builder_get_object
185
(skipto->priv->xml, "tstw_position_label"));
186
skipto->priv->spinbutton = GTK_WIDGET (gtk_builder_get_object
187
(skipto->priv->xml, "tstw_skip_spinbutton"));
168
skipto->priv->time_entry = GTK_WIDGET (gtk_builder_get_object
169
(skipto->priv->xml, "tstw_skip_time_entry"));
189
171
gtk_window_set_title (GTK_WINDOW (skipto), _("Skip to"));
190
172
gtk_dialog_set_has_separator (GTK_DIALOG (skipto), FALSE);
191
173
gtk_dialog_add_buttons (GTK_DIALOG (skipto),
192
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
193
GTK_STOCK_OK, GTK_RESPONSE_OK,
174
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
175
GTK_STOCK_OK, GTK_RESPONSE_OK,
196
178
/* Skipto dialog */
197
179
g_signal_connect (G_OBJECT (skipto), "delete-event",
198
G_CALLBACK (gtk_widget_destroy), skipto);
180
G_CALLBACK (gtk_widget_destroy), skipto);
200
182
container = GTK_WIDGET (gtk_builder_get_object (skipto->priv->xml,
202
184
gtk_container_set_border_width (GTK_CONTAINER (skipto), 5);
203
185
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (skipto)->vbox),
209
191
gtk_window_set_transient_for (GTK_WINDOW (skipto),
210
192
totem_get_main_window (plugin->totem));