~kaozilon/totem/test

« back to all changes in this revision

Viewing changes to src/plugins/skipto/totem-skipto.c

  • Committer: Bazaar Package Importer
  • Author(s): Sjoerd Simons, Josselin Mouette, Sjoerd Simons, Emilio Pozuelo Monfort
  • Date: 2009-04-19 17:28:51 UTC
  • mfrom: (1.2.52 upstream) (5.1.1 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090419172851-epoqimnq62akn294
Tags: 2.26.1-1
[ Josselin Mouette ]
* totem-plugins depends on python-gdbm. Closes: #523582.

[ Sjoerd Simons ]
* New upstream release (2.26.1)
* debian/patches/02_flv.patch: Dropped, fixed upstream
* debian/patches/04_tracker_build.patch: Dropped, fixed upstream
* debian/patches/01_fake_keypresses.patch: Updated and simplified
* debian/patches/70_bbc_plugin.patch: Updated
* debian/patches/90_autotools.patch: Updated

[ Emilio Pozuelo Monfort ]
* Recommend gnome-codec-install rather than gnome-app-install.
  Closes: #523052.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
 
32
32
#include <gtk/gtk.h>
33
33
#include <glib/gi18n.h>
34
 
#include <gconf/gconf-client.h>
35
34
#include <string.h>
36
35
#include <sys/types.h>
37
36
#include <unistd.h>
43
42
#include "video-utils.h"
44
43
#include "bacon-video-widget.h"
45
44
 
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);
49
46
 
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);
53
49
 
54
50
struct TotemSkiptoPrivate {
55
51
        GtkBuilder *xml;
56
 
        GtkWidget *label;
57
 
        GtkWidget *spinbutton;
 
52
        GtkWidget *time_entry;
58
53
        gint64 time;
59
54
        Totem *totem;
60
55
};
78
73
        TotemSkipto *skipto;
79
74
 
80
75
        skipto = TOTEM_SKIPTO (dialog);
81
 
        gtk_spin_button_update (GTK_SPIN_BUTTON (skipto->priv->spinbutton));
 
76
        gtk_spin_button_update (GTK_SPIN_BUTTON (skipto->priv->time_entry));
82
77
}
83
78
 
84
79
static void
86
81
{
87
82
        skipto->priv = G_TYPE_INSTANCE_GET_PRIVATE (skipto, TOTEM_TYPE_SKIPTO, TotemSkiptoPrivate);
88
83
 
 
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);
91
87
}
111
107
        if (time == skipto->priv->time)
112
108
                return;
113
109
 
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;
117
113
}
123
119
 
124
120
        g_return_val_if_fail (TOTEM_IS_SKIPTO (skipto), 0);
125
121
 
126
 
        time = gtk_spin_button_get_value (GTK_SPIN_BUTTON (skipto->priv->spinbutton)) * 1000;
 
122
        time = gtk_spin_button_get_value (GTK_SPIN_BUTTON (skipto->priv->time_entry)) * 1000;
127
123
 
128
124
        return time;
129
125
}
142
138
{
143
139
        g_return_if_fail (TOTEM_IS_SKIPTO (skipto));
144
140
 
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));
147
143
}
148
144
 
149
145
void
150
 
spin_button_activate_cb (GtkEntry *entry, TotemSkipto *skipto)
 
146
time_entry_activate_cb (GtkEntry *entry, TotemSkipto *skipto)
151
147
{
152
148
        gtk_dialog_response (GTK_DIALOG (skipto), GTK_RESPONSE_OK);
153
149
}
154
150
 
155
 
void
156
 
spin_button_value_changed_cb (GtkSpinButton *spinbutton, TotemSkipto *skipto)
157
 
{
158
 
        int sec;
159
 
        char *str;
160
 
 
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);
164
 
        g_free (str);
165
 
}
166
 
 
167
 
GtkWidget*
 
151
GtkWidget *
168
152
totem_skipto_new (TotemSkiptoPlugin *plugin)
169
153
{
170
154
        TotemSkipto *skipto;
181
165
                g_object_unref (skipto);
182
166
                return NULL;
183
167
        }
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"));
188
170
 
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,
194
 
                        NULL);
 
174
                                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
 
175
                                GTK_STOCK_OK, GTK_RESPONSE_OK,
 
176
                                NULL);
195
177
 
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);
199
181
 
200
182
        container = GTK_WIDGET (gtk_builder_get_object (skipto->priv->xml,
201
 
                        "tstw_skip_vbox"));
 
183
                                "tstw_skip_vbox"));
202
184
        gtk_container_set_border_width (GTK_CONTAINER (skipto), 5);
203
185
        gtk_box_pack_start (GTK_BOX (GTK_DIALOG (skipto)->vbox),
204
 
                        container,
205
 
                        TRUE,       /* expand */
206
 
                        TRUE,       /* fill */
207
 
                        0);         /* padding */
 
186
                            container,
 
187
                            TRUE,       /* expand */
 
188
                            TRUE,       /* fill */
 
189
                            0);         /* padding */
208
190
 
209
191
        gtk_window_set_transient_for (GTK_WINDOW (skipto),
210
192
                                      totem_get_main_window (plugin->totem));