~ubuntu-branches/ubuntu/jaunty/gnome-applets/jaunty

« back to all changes in this revision

Viewing changes to gswitchit/gswitchit-applet.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2008-06-03 18:13:41 UTC
  • mfrom: (1.1.30 upstream)
  • Revision ID: james.westby@ubuntu.com-20080603181341-j2ldywy9g983scl2
Tags: 2.23.2-0ubuntu1
* New upstream version
* Sync on Debian
* debian/control.in:
  - build using liboobs and not type-handling and libcpufreq-dev
  - Pre-Depends: dpkg (>= 1.10.24)
  - updated maintainer information
* debian/patches/04_applets_categories.patch:
  - set applets categories
* debian/patches/13_battstat_measuring_more_appropriate.patch:
  - workaround acpi bug
* debian/patches/14_battstat_enable_pmi.patch:
  - use the pmi interface to know if suspend is available
* debian/patches/81_mixer_mute_callback.patch:
  - stop the mixer applet from randomly muting when the volume is adjusted.
* debian/patches/98_autoreconf.patch:
  - run autotools update
* debian/rules:
  - DEB_DH_BUILDDEB_ARGS := -- -Zbzip2

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
 
31
31
#include <gdk/gdkscreen.h>
32
32
#include <gdk/gdkx.h>
33
 
#include <glade/glade.h>
34
33
#include <libgnomeui/gnome-help.h>
35
34
 
36
35
#define GROUPS_SUBMENU_PATH "/popups/popup/groups"
146
145
}
147
146
 
148
147
static void
149
 
GSwitchItAppletSetBackground (PanelAppletBackgroundType type,
150
 
                              GtkRcStyle * rc_style,
151
 
                              GtkWidget * w,
152
 
                              GdkColor * color, GdkPixmap * pixmap)
 
148
GSwitchItAppletSetBackground (PanelApplet * applet, GtkWidget * w)
153
149
{
154
 
        GtkStyle *style;
155
 
 
156
 
        gtk_widget_set_style (GTK_WIDGET (w), NULL);
157
 
        gtk_widget_modify_style (GTK_WIDGET (w), rc_style);
158
 
 
159
 
        switch (type) {
160
 
        case PANEL_NO_BACKGROUND:
161
 
                break;
162
 
        case PANEL_COLOR_BACKGROUND:
163
 
                gtk_widget_modify_bg (GTK_WIDGET (w),
164
 
                                      GTK_STATE_NORMAL, color);
165
 
                break;
166
 
        case PANEL_PIXMAP_BACKGROUND:
167
 
                style = gtk_style_copy (w->style);
168
 
                if (style->bg_pixmap[GTK_STATE_NORMAL])
169
 
                        g_object_unref (style->
170
 
                                        bg_pixmap[GTK_STATE_NORMAL]);
171
 
                style->bg_pixmap[GTK_STATE_NORMAL] = g_object_ref (pixmap);
172
 
                gtk_widget_set_style (w, style);
173
 
                g_object_unref (style);
174
 
                break;
175
 
        }
 
150
        panel_applet_set_background_widget (applet, w);
 
151
 
176
152
        /* go down */
177
153
        if (GTK_IS_CONTAINER (w)) {
178
154
                GList *child =
179
155
                    gtk_container_get_children (GTK_CONTAINER (w));
180
156
                while (child != NULL) {
181
 
                        GSwitchItAppletSetBackground (type, rc_style,
 
157
                        GSwitchItAppletSetBackground (applet,
182
158
                                                      GTK_WIDGET (child->
183
 
                                                                  data),
184
 
                                                      color, pixmap);
 
159
                                                                  data));
185
160
                        child = child->next;
186
161
                }
187
162
        }
193
168
                                 GdkColor * color, GdkPixmap * pixmap,
194
169
                                 GSwitchItApplet * sia)
195
170
{
196
 
        GtkRcStyle *rc_style = gtk_rc_style_new ();
197
 
        GSwitchItAppletSetBackground (type, rc_style, widget, color,
198
 
                                      pixmap);
199
 
        gtk_rc_style_unref (rc_style);
 
171
                
 
172
        GSwitchItAppletSetBackground (PANEL_APPLET (sia->applet), widget);
200
173
}
201
174
 
202
175
void
268
241
static void
269
242
GSwitchItPreviewDestroy (GtkWidget * dialog, gint group)
270
243
{
271
 
        GladeXML *gladeData =
272
 
            GLADE_XML (gtk_object_get_data
273
 
                       (GTK_OBJECT (dialog), "gladeData"));
274
 
        g_object_unref (G_OBJECT (gladeData));
 
244
        GtkBuilder *builder =
 
245
            GTK_BUILDER (gtk_object_get_data
 
246
                         (GTK_OBJECT (dialog), "builderData"));
 
247
        g_object_unref (G_OBJECT (builder));
275
248
        g_hash_table_remove (globals.previewDialogs,
276
249
                             GINT_TO_POINTER (group));
277
250
}
293
266
                groupsLevels + 3
294
267
        };
295
268
#ifdef HAVE_XKB
296
 
        GladeXML *gladeData;
 
269
        GtkBuilder *builder;
297
270
        GtkWidget *dialog, *kbdraw;
298
271
        XkbComponentNamesRec componentNames;
299
272
        XklConfigRec *xklData;
300
273
        GdkRectangle *rect;
 
274
        GError *error = NULL;
301
275
#endif
302
276
        XklEngine *engine = gkbd_indicator_get_xkl_engine ();
303
277
        XklState *xklState = xkl_engine_get_current_state (engine);
311
285
                return;
312
286
        }
313
287
#ifdef HAVE_XKB
314
 
        gladeData =
315
 
            glade_xml_new (GNOME_GLADEDIR "/gswitchit.glade",
316
 
                           "gswitchit_layout_view", NULL);
317
 
        dialog = glade_xml_get_widget (gladeData, "gswitchit_layout_view");
 
288
        builder = gtk_builder_new ();
 
289
        gtk_builder_add_from_file (builder, GTK_BUILDERDIR "/gswitchit.ui",
 
290
                                   &error);
 
291
 
 
292
        if (error) {
 
293
                g_error ("building ui from %s failed: %s",
 
294
                         GTK_BUILDERDIR "/gswitchit.ui", error->message);
 
295
                g_clear_error (&error);
 
296
        }
 
297
 
 
298
 
 
299
        dialog =
 
300
            GTK_WIDGET (gtk_builder_get_object
 
301
                        (builder, "gswitchit_layout_view"));
318
302
        kbdraw = gkbd_keyboard_drawing_new ();
319
303
 
320
304
        if (xklState->group >= 0 &&
377
361
        }
378
362
        g_object_unref (G_OBJECT (xklData));
379
363
 
380
 
        gtk_object_set_data (GTK_OBJECT (dialog), "gladeData", gladeData);
 
364
        gtk_object_set_data (GTK_OBJECT (dialog), "builderData", builder);
381
365
        g_signal_connect (GTK_OBJECT (dialog),
382
366
                          "destroy", G_CALLBACK (GSwitchItPreviewDestroy),
383
367
                          GINT_TO_POINTER (xklState->group));
396
380
        gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
397
381
 
398
382
        gtk_container_add (GTK_CONTAINER
399
 
                           (glade_xml_get_widget
400
 
                            (gladeData, "preview_vbox")), kbdraw);
 
383
                           (gtk_builder_get_object
 
384
                            (builder, "preview_vbox")), kbdraw);
401
385
 
402
386
        gtk_object_set_data (GTK_OBJECT (dialog), "kbdraw", kbdraw);
403
387
 
468
452
                         uic, GSwitchItApplet * sia, const gchar * verb)
469
453
{
470
454
        const gchar *authors[] = {
471
 
                "Sergey V. Udaltsov<svu@gnome.org>", NULL
 
455
                "Sergey V. Udaltsov <svu@gnome.org>", NULL
472
456
        };
473
457
        const gchar *documenters[] = {
474
 
                "Sergey V. Udaltsov<svu@gnome.org>", NULL
 
458
                "Sergey V. Udaltsov <svu@gnome.org>", NULL
475
459
        };
476
460
 
477
461
        const gchar *translator_credits = _("translator-credits");
489
473
                               strcmp (translator_credits,
490
474
                                       "translator-credits") !=
491
475
                               0 ? translator_credits : NULL,
492
 
                               "logo-icon-name", "gswitchit-applet", NULL);
 
476
                               "logo-icon-name", "input-keyboard", NULL);
493
477
}
494
478
 
495
479
static void
572
556
        /* Layout preview is for XKB only */
573
557
        bonobo_ui_component_set_prop (popup, "/commands/Preview",
574
558
                                      "sensitive",
575
 
                                      g_strcasecmp ("XKB",
576
 
                                                    engine_backend_name) ?
577
 
                                      "0" : "1", NULL);
 
559
                                      g_ascii_strcasecmp ("XKB",
 
560
                                                          engine_backend_name)
 
561
                                      ? "0" : "1", NULL);
578
562
 
579
563
        /* Delete the plugins item if the binary does not exist */
580
564
        if (pluginsCappletFullPath == NULL)
600
584
 
601
585
        g_set_application_name (_("Keyboard Indicator"));
602
586
 
603
 
        gtk_window_set_default_icon_name ("gswitchit-applet");
 
587
        gtk_window_set_default_icon_name ("input-keyboard");
604
588
 
605
589
        sia->applet = GTK_WIDGET (applet);
606
590
 
607
591
        panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
608
592
 
 
593
        /* enable transparency hack */
 
594
        panel_applet_set_background_widget (PANEL_APPLET (applet),
 
595
                                            GTK_WIDGET (applet));
 
596
 
609
597
        sia->gki = gkbd_indicator_new ();
610
598
 
611
599
        orient = panel_applet_get_orient (applet);