294
panel_applet_gconf_set_string (
295
PANEL_APPLET (fish), "command", text, NULL);
299
n_frames_value_changed (GtkSpinButton *button,
302
panel_applet_gconf_set_int (
303
PANEL_APPLET (fish), "frames",
304
gtk_spin_button_get_value_as_int (button), NULL);
308
speed_value_changed (GtkSpinButton *button,
311
panel_applet_gconf_set_float (
312
PANEL_APPLET (fish), "speed",
313
gtk_spin_button_get_value (button), NULL);
317
rotate_value_changed (GtkToggleButton *toggle,
320
panel_applet_gconf_set_bool (
321
PANEL_APPLET (fish), "rotate",
322
gtk_toggle_button_get_active (toggle), NULL);
237
g_settings_set_string (fish->settings, FISH_COMMAND_KEY, text);
344
259
gtk_widget_hide (fish->preferences_dialog);
348
setup_sensitivity (FishApplet *fish,
352
const char *label_post,
355
PanelApplet *applet = (PanelApplet *) fish;
359
fullkey = panel_applet_gconf_get_full_key (applet, key);
361
if (gconf_client_key_is_writable (fish->client, fullkey, NULL)) {
367
w = GTK_WIDGET (gtk_builder_get_object (builder, wid));
368
g_assert (w != NULL);
369
gtk_widget_set_sensitive (w, FALSE);
372
w = GTK_WIDGET (gtk_builder_get_object (builder, label));
373
g_assert (w != NULL);
374
gtk_widget_set_sensitive (w, FALSE);
376
if (label_post != NULL) {
377
w = GTK_WIDGET (gtk_builder_get_object (builder, label_post));
378
g_assert (w != NULL);
379
gtk_widget_set_sensitive (w, FALSE);
385
chooser_preview_update (GtkFileChooser *file_chooser,
391
gboolean have_preview;
393
preview = GTK_WIDGET (data);
394
filename = gtk_file_chooser_get_preview_filename (file_chooser);
396
if (filename == NULL)
399
pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL);
400
have_preview = (pixbuf != NULL);
403
gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
405
g_object_unref (pixbuf);
407
gtk_file_chooser_set_preview_widget_active (file_chooser,
412
263
display_preferences_dialog (GtkAction *action,
413
264
FishApplet *fish)
418
GtkFileFilter *filter;
419
GtkWidget *chooser_preview;
269
GtkWidget *name_entry;
270
GtkWidget *command_entry;
271
GtkWidget *speed_spin;
272
GtkWidget *rotate_toggle;
422
275
if (fish->preferences_dialog) {
423
276
gtk_window_set_screen (GTK_WINDOW (fish->preferences_dialog),
449
302
gtk_dialog_set_default_response (
450
303
GTK_DIALOG (fish->preferences_dialog), GTK_RESPONSE_OK);
452
fish->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
453
gtk_entry_set_text (GTK_ENTRY (fish->name_entry), fish->name);
455
g_signal_connect (fish->name_entry, "changed",
456
G_CALLBACK (name_value_changed), fish);
458
setup_sensitivity (fish, builder,
459
"name_entry" /* wid */,
460
"name_label" /* label */,
461
NULL /* label_post */,
464
fish->preview_image = GTK_WIDGET (gtk_builder_get_object (builder, "preview_image"));
466
gtk_image_set_from_pixbuf (GTK_IMAGE (fish->preview_image),
469
fish->image_chooser = GTK_WIDGET (gtk_builder_get_object (builder, "image_chooser"));
470
filter = gtk_file_filter_new ();
471
gtk_file_filter_set_name (filter, _("Images"));
472
gtk_file_filter_add_pixbuf_formats (filter);
473
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fish->image_chooser),
475
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (fish->image_chooser),
477
chooser_preview = gtk_image_new ();
478
gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (fish->image_chooser),
480
g_signal_connect (fish->image_chooser, "update-preview",
481
G_CALLBACK (chooser_preview_update), chooser_preview);
482
path = get_image_path (fish);
483
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (fish->image_chooser),
487
g_signal_connect (fish->image_chooser, "selection-changed",
488
G_CALLBACK (image_value_changed), fish);
490
setup_sensitivity (fish, builder,
491
"image_chooser" /* wid */,
492
"image_label" /* label */,
493
NULL /* label_post */,
496
fish->command_label = GTK_WIDGET (gtk_builder_get_object (builder, "command_label"));
497
fish->command_entry = GTK_WIDGET (gtk_builder_get_object (builder, "command_entry"));
498
gtk_entry_set_text (GTK_ENTRY (fish->command_entry), fish->command);
500
g_signal_connect (fish->command_entry, "changed",
305
name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
306
box = GTK_WIDGET (gtk_builder_get_object (builder, "name_box"));
307
g_settings_bind (fish->settings, FISH_NAME_KEY,
309
G_SETTINGS_BIND_DEFAULT);
310
g_settings_bind_writable (fish->settings, FISH_NAME_KEY,
314
command_entry = GTK_WIDGET (gtk_builder_get_object (builder, "command_entry"));
315
box = GTK_WIDGET (gtk_builder_get_object (builder, "command_box"));
316
g_settings_bind (fish->settings, FISH_COMMAND_KEY,
317
command_entry, "text",
318
G_SETTINGS_BIND_GET);
319
g_signal_connect (command_entry, "changed",
501
320
G_CALLBACK (command_value_changed), fish);
503
setup_sensitivity (fish, builder,
504
"command_entry" /* wid */,
505
"command_label" /* label */,
506
NULL /* label_post */,
507
"command" /* key */);
509
if (gconf_client_get_bool (fish->client,
510
LOCKDOWN_COMMANDLINE_KEY,
512
gtk_widget_set_sensitive (fish->command_label, FALSE);
513
gtk_widget_set_sensitive (fish->command_entry, FALSE);
516
fish->frames_spin = GTK_WIDGET (gtk_builder_get_object (builder, "frames_spin"));
517
gtk_spin_button_set_value (GTK_SPIN_BUTTON (fish->frames_spin),
520
g_signal_connect (fish->frames_spin, "value_changed",
521
G_CALLBACK (n_frames_value_changed), fish);
523
setup_sensitivity (fish, builder,
524
"frames_spin" /* wid */,
525
"frames_label" /* label */,
526
"frames_post_label" /* label_post */,
529
fish->speed_spin = GTK_WIDGET (gtk_builder_get_object (builder, "speed_spin"));
530
gtk_spin_button_set_value (GTK_SPIN_BUTTON (fish->speed_spin), fish->speed);
532
g_signal_connect (fish->speed_spin, "value_changed",
533
G_CALLBACK (speed_value_changed), fish);
535
setup_sensitivity (fish, builder,
536
"speed_spin" /* wid */,
537
"speed_label" /* label */,
538
"speed_post_label" /* label_post */,
541
fish->rotate_toggle = GTK_WIDGET (gtk_builder_get_object (builder, "rotate_toggle"));
542
gtk_toggle_button_set_active (
543
GTK_TOGGLE_BUTTON (fish->rotate_toggle), fish->rotate);
545
g_signal_connect (fish->rotate_toggle, "toggled",
546
G_CALLBACK (rotate_value_changed), fish);
548
setup_sensitivity (fish, builder,
549
"rotate_toggle" /* wid */,
551
NULL /* label_post */,
321
g_settings_bind_writable (fish->settings, FISH_COMMAND_KEY,
325
g_settings_bind (fish->lockdown_settings, LOCKDOWN_COMMANDLINE_KEY,
327
G_SETTINGS_BIND_DEFAULT|G_SETTINGS_BIND_INVERT_BOOLEAN);
329
speed_spin = GTK_WIDGET (gtk_builder_get_object (builder, "speed_spin"));
330
box = GTK_WIDGET (gtk_builder_get_object (builder, "speed_box"));
331
g_settings_bind (fish->settings, FISH_SPEED_KEY,
333
G_SETTINGS_BIND_DEFAULT);
334
g_settings_bind_writable (fish->settings, FISH_SPEED_KEY,
338
rotate_toggle = GTK_WIDGET (gtk_builder_get_object (builder, "rotate_toggle"));
339
g_settings_bind (fish->settings, FISH_ROTATE_KEY,
340
rotate_toggle, "active",
341
G_SETTINGS_BIND_DEFAULT);
554
343
g_signal_connect (fish->preferences_dialog, "delete_event",
555
344
G_CALLBACK (delete_event), fish);
573
display_help_dialog (GtkAction *action,
576
show_help (fish, NULL);
580
display_about_dialog (GtkAction *action,
583
const char *author_format = _("%s the Fish");
584
const char *about_format = _("%s has no use what-so-ever. "
585
"It only takes up disk space and "
586
"compilation time, and if loaded it also "
587
"takes up precious panel space and "
588
"memory. Anybody found using it should be "
589
"promptly sent for a psychiatric "
591
const char *documenters [] = {
592
"Telsa Gwynne <hobbit@aloss.ukuu.org.uk>",
593
"Sun GNOME Documentation Team <gdocteam@sun.com>",
600
if (fish->about_dialog) {
601
gtk_window_set_screen (GTK_WINDOW (fish->about_dialog),
602
gtk_widget_get_screen (GTK_WIDGET (fish)));
603
gtk_window_present (GTK_WINDOW (fish->about_dialog));
607
authors [0] = g_strdup_printf (author_format, fish->name);
608
authors [1] = _("(with minor help from George)");
611
descr = g_strdup_printf (about_format, fish->name);
613
fish->about_dialog = gtk_about_dialog_new ();
614
g_object_set (fish->about_dialog,
615
"program-name", _("Fish"),
616
"version", "3.4.7.4ac19",
617
"copyright", "Copyright \xc2\xa9 1998-2002 Free Software Foundation, Inc.",
619
"authors", (const char **) authors,
620
"documenters", documenters,
621
"translator-credits", _("translator-credits"),
622
"logo-icon-name", FISH_ICON,
626
g_free (authors [0]);
628
gtk_window_set_icon_name (GTK_WINDOW (fish->about_dialog), FISH_ICON);
629
gtk_window_set_wmclass (
630
GTK_WINDOW (fish->about_dialog), "fish", "Fish");
631
gtk_window_set_screen (GTK_WINDOW (fish->about_dialog),
632
gtk_widget_get_screen (GTK_WIDGET (fish)));
634
g_signal_connect (fish->about_dialog, "destroy",
635
G_CALLBACK (gtk_widget_destroyed),
636
&fish->about_dialog);
638
g_signal_connect (fish->about_dialog, "response",
639
G_CALLBACK (gtk_widget_destroy),
642
gtk_widget_show (fish->about_dialog);
646
362
set_ally_name_desc (GtkWidget *widget,
647
363
FishApplet *fish)
1045
781
gtk_window_present (GTK_WINDOW (fish->fortune_dialog));
1049
name_changed_notify (GConfClient *client,
1056
if (!entry->value || entry->value->type != GCONF_VALUE_STRING)
1059
value = gconf_value_get_string (entry->value);
1061
if (!value [0] || (fish->name && !strcmp (fish->name, value)))
1065
g_free (fish->name);
1066
fish->name = g_strdup (value);
1068
update_fortune_dialog (fish);
1070
set_ally_name_desc (GTK_WIDGET (fish), fish);
1072
if (fish->name_entry &&
1073
strcmp (gtk_entry_get_text (GTK_ENTRY (fish->name_entry)), fish->name))
1074
gtk_entry_set_text (GTK_ENTRY (fish->name_entry), fish->name);
1078
image_changed_notify (GConfClient *client,
1085
if (!entry->value || entry->value->type != GCONF_VALUE_STRING)
1088
value = gconf_value_get_string (entry->value);
1090
if (!value [0] || (fish->image && !strcmp (fish->image, value)))
1094
g_free (fish->image);
1095
fish->image = g_strdup (value);
1097
load_fish_image (fish);
1098
update_pixmap (fish);
1100
if (fish->image_chooser) {
1104
path_gconf = get_image_path (fish);
1105
path_chooser = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fish->image_chooser));
1106
if (strcmp (path_gconf, path_chooser))
1107
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (fish->image_chooser),
1110
g_free (path_gconf);
1111
g_free (path_chooser);
1116
command_changed_notify (GConfClient *client,
1123
if (!entry->value || entry->value->type != GCONF_VALUE_STRING)
1126
value = gconf_value_get_string (entry->value);
1128
if (fish->command && !strcmp (fish->command, value))
1132
g_free (fish->command);
1133
fish->command = g_strdup (value);
1135
if (fish->command_entry &&
1136
strcmp (gtk_entry_get_text (GTK_ENTRY (fish->command_entry)), fish->command))
1137
gtk_entry_set_text (GTK_ENTRY (fish->command_entry), fish->command);
1141
n_frames_changed_notify (GConfClient *client,
1148
if (!entry->value || entry->value->type != GCONF_VALUE_INT)
1151
value = gconf_value_get_int (entry->value);
1153
if (fish->n_frames == value)
1156
fish->n_frames = value;
1158
if (fish->n_frames <= 0)
1161
update_pixmap (fish);
1163
if (fish->frames_spin &&
1164
gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (fish->frames_spin)) != fish->n_frames)
1165
gtk_spin_button_set_value (GTK_SPIN_BUTTON (fish->frames_spin), fish->n_frames);
1169
785
get_location (void)
1298
speed_changed_notify (GConfClient *client,
1305
if (!entry->value || entry->value->type != GCONF_VALUE_FLOAT)
1308
value = gconf_value_get_float (entry->value);
1310
if (fish->speed == value)
1312
fish->speed = value;
1314
setup_timeout (fish);
1316
if (fish->speed_spin &&
1317
gtk_spin_button_get_value (GTK_SPIN_BUTTON (fish->frames_spin)) != fish->speed)
1318
gtk_spin_button_set_value (GTK_SPIN_BUTTON (fish->speed_spin), fish->speed);
1322
rotate_changed_notify (GConfClient *client,
1329
if (!entry->value || entry->value->type != GCONF_VALUE_BOOL)
1332
value = gconf_value_get_bool (entry->value);
1334
if (fish->rotate == value)
1336
fish->rotate = value;
1338
if (fish->orientation == PANEL_APPLET_ORIENT_LEFT ||
1339
fish->orientation == PANEL_APPLET_ORIENT_RIGHT)
1340
update_pixmap (fish);
1342
if (fish->rotate_toggle &&
1343
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fish->rotate_toggle)) != fish->rotate)
1344
gtk_toggle_button_set_active (
1345
GTK_TOGGLE_BUTTON (fish->rotate_toggle), fish->rotate);
1349
fish_disable_commande_line_notify (GConfClient *client,
1354
gboolean locked_down;
1356
if (!entry->value || entry->value->type != GCONF_VALUE_BOOL)
1359
locked_down = !gconf_value_get_bool (entry->value);
1361
if (fish->command_label != NULL)
1362
gtk_widget_set_sensitive (fish->command_label, locked_down);
1363
if (fish->command_entry != NULL)
1364
gtk_widget_set_sensitive (fish->command_entry, locked_down);
1368
setup_gconf (FishApplet *fish)
1370
PanelApplet *applet = (PanelApplet *) fish;
1374
key = panel_applet_gconf_get_full_key (applet, "name");
1375
fish->listeners [i++] = gconf_client_notify_add (
1377
(GConfClientNotifyFunc) name_changed_notify,
1381
key = panel_applet_gconf_get_full_key (applet, "image");
1382
fish->listeners [i++] = gconf_client_notify_add (
1384
(GConfClientNotifyFunc) image_changed_notify,
1388
key = panel_applet_gconf_get_full_key (applet, "command");
1389
fish->listeners [i++] = gconf_client_notify_add (
1391
(GConfClientNotifyFunc) command_changed_notify,
1395
key = panel_applet_gconf_get_full_key (applet, "frames");
1396
fish->listeners [i++] = gconf_client_notify_add (
1398
(GConfClientNotifyFunc) n_frames_changed_notify,
1402
key = panel_applet_gconf_get_full_key (applet, "speed");
1403
fish->listeners [i++] = gconf_client_notify_add (
1405
(GConfClientNotifyFunc) speed_changed_notify,
1409
key = panel_applet_gconf_get_full_key (applet, "rotate");
1410
fish->listeners [i++] = gconf_client_notify_add (
1412
(GConfClientNotifyFunc) rotate_changed_notify,
1416
fish->listeners [i++] = gconf_client_notify_add (
1418
LOCKDOWN_COMMANDLINE_KEY,
1419
(GConfClientNotifyFunc) fish_disable_commande_line_notify,
1422
g_assert (i == N_FISH_LISTENERS);
1426
914
load_fish_image (FishApplet *fish)
1571
1075
static gboolean
1572
fish_applet_expose_event (GtkWidget *widget,
1573
GdkEventExpose *event,
1076
fish_applet_draw (GtkWidget *widget,
1579
1081
int width, height;
1580
1082
int src_x, src_y;
1582
g_return_val_if_fail (fish->pixmap != NULL, FALSE);
1084
g_return_val_if_fail (fish->surface != NULL, FALSE);
1584
1086
g_assert (fish->n_frames > 0);
1586
1088
window = gtk_widget_get_window (widget);
1587
style = gtk_widget_get_style (widget);
1588
state = gtk_widget_get_state (widget);
1590
gdk_drawable_get_size (fish->pixmap, &width, &height);
1592
src_x = event->area.x;
1593
src_y = event->area.y;
1090
width = cairo_xlib_surface_get_width (fish->surface);
1091
height = cairo_xlib_surface_get_height (fish->surface);
1595
1096
if (fish->rotate) {
1596
1097
if (fish->orientation == PANEL_APPLET_ORIENT_RIGHT)
1597
src_y += ((height * (fish->n_frames - 1 - fish->current_frame)) / fish->n_frames);
1098
src_y = ((height * (fish->n_frames - 1 - fish->current_frame)) / fish->n_frames);
1598
1099
else if (fish->orientation == PANEL_APPLET_ORIENT_LEFT)
1599
src_y += ((height * fish->current_frame) / fish->n_frames);
1100
src_y = ((height * fish->current_frame) / fish->n_frames);
1601
src_x += ((width * fish->current_frame) / fish->n_frames);
1102
src_x = ((width * fish->current_frame) / fish->n_frames);
1603
src_x += ((width * fish->current_frame) / fish->n_frames);
1104
src_x = ((width * fish->current_frame) / fish->n_frames);
1605
gdk_draw_drawable (window,
1606
style->fg_gc [state],
1609
event->area.x, event->area.y,
1610
event->area.width, event->area.height);
1107
cairo_set_source_surface (cr, fish->surface, -src_x, -src_y);
1616
fish_applet_size_request (GtkWidget *widget,
1617
GtkRequisition *requisition,
1620
*requisition = fish->requisition;
1624
1115
fish_applet_size_allocate (GtkWidget *widget,
1625
1116
GtkAllocation *allocation,
1626
1117
FishApplet *fish)
1628
GtkAllocation widget_allocation;
1630
gtk_widget_get_allocation (widget, &widget_allocation);
1632
if (widget_allocation.width != fish->prev_allocation.width ||
1633
widget_allocation.height != fish->prev_allocation.height)
1634
update_pixmap (fish);
1119
if (allocation->width == fish->prev_allocation.width &&
1120
allocation->height == fish->prev_allocation.height)
1636
1123
fish->prev_allocation = *allocation;
1124
g_idle_add (update_surface_in_idle, fish);
1640
1128
fish_applet_realize (GtkWidget *widget,
1641
1129
FishApplet *fish)
1644
update_pixmap (fish);
1132
update_surface (fish);
1648
1136
fish_applet_unrealize (GtkWidget *widget,
1649
1137
FishApplet *fish)
1652
g_object_unref (fish->pixmap);
1653
fish->pixmap = NULL;
1140
cairo_surface_destroy (fish->surface);
1141
fish->surface = NULL;
1835
1316
static const GtkActionEntry fish_menu_verbs [] = {
1836
1317
{ "FishPreferences", GTK_STOCK_PROPERTIES, N_("_Preferences"),
1838
G_CALLBACK (display_preferences_dialog) },
1839
{ "FishHelp", GTK_STOCK_HELP, N_("_Help"),
1841
G_CALLBACK (display_help_dialog) },
1842
{ "FishAbout", GTK_STOCK_ABOUT, N_("_About"),
1844
G_CALLBACK (display_about_dialog) }
1319
G_CALLBACK (display_preferences_dialog) }
1848
fish_migrate_to_210 (FishApplet *fish)
1852
g_assert (fish->image);
1854
if (!strncmp (fish->image, "fish/", 5)) {
1855
new_image = g_strdup (fish->image + 5);
1856
g_free (fish->image);
1857
fish->image = new_image;
1858
panel_applet_gconf_set_string (PANEL_APPLET (fish), "image",
1323
fish_applet_update_name (FishApplet *fish,
1326
if (name[0] == '\0')
1327
name = FISH_NAME_DEFAULT;
1328
fish->name = g_strdup (name);
1330
update_fortune_dialog (fish);
1332
set_ally_name_desc (GTK_WIDGET (fish), fish);
1336
fish_applet_update_image (FishApplet *fish,
1342
if (image[0] == '\0')
1343
image = FISH_IMAGE_DEFAULT;
1344
keyfile_path = g_build_filename (FISH_ICONDIR, image, NULL);
1346
keyfile = g_key_file_new ();
1347
if (!g_key_file_load_from_file (keyfile, keyfile_path,
1348
G_KEY_FILE_NONE, NULL)) {
1349
if (g_strcmp0 (image, FISH_IMAGE_DEFAULT) == 0) {
1350
g_critical ("Cannot load default image ('%s')", image);
1351
g_assert_not_reached ();
1354
g_key_file_free (keyfile);
1355
g_free (keyfile_path);
1357
fish_applet_update_image (fish, FISH_IMAGE_DEFAULT);
1361
fish->image = g_key_file_get_string (keyfile, "Fish Animation",
1363
fish->n_frames = g_key_file_get_integer (keyfile, "Fish Animation",
1365
if (fish->n_frames <= 0)
1368
load_fish_image (fish);
1369
update_surface (fish);
1371
g_key_file_free (keyfile);
1372
g_free (keyfile_path);
1376
fish_applet_update_command (FishApplet *fish,
1377
const char *command)
1379
g_free (fish->command);
1380
fish->command = g_strdup (command);
1384
fish_applet_update_speed (FishApplet *fish,
1388
speed = FISH_SPEED_DEFAULT;
1389
fish->speed = speed;
1390
setup_timeout (fish);
1394
fish_applet_update_rotate (FishApplet *fish,
1397
fish->rotate = rotate;
1399
if (fish->orientation == PANEL_APPLET_ORIENT_LEFT ||
1400
fish->orientation == PANEL_APPLET_ORIENT_RIGHT)
1401
update_surface (fish);
1405
fish_applet_settings_changed (GSettings *settings,
1409
char *value_str = NULL;
1410
gdouble value_double;
1411
gboolean value_boolean;
1413
/* key == NULL is a locak hack to mean all keys */
1415
if (!key || g_strcmp0 (key, FISH_NAME_KEY) == 0) {
1416
value_str = g_settings_get_string (settings, FISH_NAME_KEY);
1417
fish_applet_update_name (fish, value_str);
1419
if (!key || g_strcmp0 (key, FISH_IMAGE_KEY) == 0) {
1420
value_str = g_settings_get_string (settings, FISH_IMAGE_KEY);
1421
fish_applet_update_image (fish, value_str);
1423
if (!key || g_strcmp0 (key, FISH_COMMAND_KEY) == 0) {
1424
value_str = g_settings_get_string (settings, FISH_COMMAND_KEY);
1425
fish_applet_update_command (fish, value_str);
1427
if (!key || g_strcmp0 (key, FISH_SPEED_KEY) == 0) {
1428
value_double = g_settings_get_double (settings, FISH_SPEED_KEY);
1429
fish_applet_update_speed (fish, value_double);
1431
if (!key || g_strcmp0 (key, FISH_ROTATE_KEY) == 0) {
1432
value_boolean = g_settings_get_boolean (settings, FISH_ROTATE_KEY);
1433
fish_applet_update_rotate (fish, value_boolean);
1863
1439
static gboolean
1866
1442
PanelApplet *applet = (PanelApplet *) fish;
1867
1443
GtkActionGroup *action_group;
1868
1445
gchar *ui_path;
1869
GError *error = NULL;
1871
1447
fish->orientation = panel_applet_get_orient (applet);
1873
panel_applet_add_preferences (
1874
applet, "/schemas/apps/fish_applet/prefs", NULL);
1878
fish->name = panel_applet_gconf_get_string (applet, "name", &error);
1880
g_warning ("Error getting 'name' preference: %s", error->message);
1881
g_error_free (error);
1885
fish->name = g_strdup ("Wanda"); /* Fallback */
1887
fish->image = panel_applet_gconf_get_string (applet, "image", &error);
1889
g_warning ("Error getting 'image' preference: %s", error->message);
1890
g_error_free (error);
1894
fish->image = g_strdup ("fishanim.png"); /* Fallback */
1895
fish_migrate_to_210 (fish);
1897
fish->command = panel_applet_gconf_get_string (applet, "command", &error);
1899
g_warning ("Error getting 'command' preference: %s", error->message);
1900
g_error_free (error);
1904
fish->n_frames = panel_applet_gconf_get_int (applet, "frames", &error);
1906
g_warning ("Error getting 'frames' preference: %s", error->message);
1907
g_error_free (error);
1910
fish->n_frames = 3; /* Fallback */
1912
if (fish->n_frames <= 0)
1915
fish->speed = panel_applet_gconf_get_float (applet, "speed", &error);
1917
g_warning ("Error getting 'speed' preference: %s", error->message);
1918
g_error_free (error);
1921
fish->speed = 1.0; /* Fallback */
1924
fish->rotate = panel_applet_gconf_get_bool (applet, "rotate", &error);
1926
g_warning ("Error getting 'rotate' preference: %s", error->message);
1927
g_error_free (error);
1930
fish->rotate = FALSE; /* Fallback */
1449
fish->settings = panel_applet_settings_new (applet, FISH_SCHEMA);
1450
fish->lockdown_settings = g_settings_new (LOCKDOWN_SCHEMA);
1452
g_signal_connect (fish->settings, "changed",
1453
G_CALLBACK (fish_applet_settings_changed), fish);
1454
/* NULL means we will update for all settings */
1455
fish_applet_settings_changed (fish->settings, NULL, fish);
1933
1457
action_group = gtk_action_group_new ("Fish Applet Actions");
1934
1458
gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);