~ubuntu-branches/ubuntu/raring/gedit/raring

« back to all changes in this revision

Viewing changes to gedit/gedit-panel.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Terry
  • Date: 2011-06-27 05:29:37 UTC
  • mfrom: (1.1.86 upstream)
  • Revision ID: james.westby@ubuntu.com-20110627052937-9zihn7ha7of3b251
Tags: 3.1.1-0ubuntu1
* New upstream release.
* debian/control.in:
  - Require GTK+ 3.1.6
* debian/watch:
  - Look at unstable releases too

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
{
52
52
        GtkOrientation orientation;
53
53
 
 
54
        GtkWidget *main_box;
 
55
 
54
56
        /* Title bar (vertical panel only) */
55
57
        GtkWidget *title_image;
56
58
        GtkWidget *title_label;
87
89
 
88
90
static void     gedit_panel_constructed (GObject *object);
89
91
 
90
 
G_DEFINE_TYPE(GeditPanel, gedit_panel, GTK_TYPE_VBOX)
 
92
G_DEFINE_TYPE(GeditPanel, gedit_panel, GTK_TYPE_BIN)
91
93
 
92
94
static void
93
95
gedit_panel_finalize (GObject *object)
106
108
        switch (prop_id)
107
109
        {
108
110
                case PROP_ORIENTATION:
109
 
                        g_value_set_enum(value, panel->priv->orientation);
 
111
                        g_value_set_enum (value, panel->priv->orientation);
110
112
                        break;
111
113
                default:
112
114
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
159
161
}
160
162
 
161
163
static void
 
164
gedit_panel_get_size (GtkWidget     *widget,
 
165
                      GtkOrientation orientation,
 
166
                      gint          *minimum,
 
167
                      gint          *natural)
 
168
{
 
169
        GtkBin *bin = GTK_BIN (widget);
 
170
        GtkWidget *child;
 
171
 
 
172
        if (minimum)
 
173
                *minimum = 0;
 
174
 
 
175
        if (natural)
 
176
                *natural = 0;
 
177
 
 
178
        child = gtk_bin_get_child (bin);
 
179
        if (child && gtk_widget_get_visible (child))
 
180
        {
 
181
                if (orientation == GTK_ORIENTATION_HORIZONTAL)
 
182
                {
 
183
                        gtk_widget_get_preferred_width (child, minimum, natural);
 
184
                }
 
185
                else
 
186
                {
 
187
                        gtk_widget_get_preferred_height (child, minimum, natural);
 
188
                }
 
189
        }
 
190
}
 
191
 
 
192
static void
 
193
gedit_panel_get_preferred_width (GtkWidget *widget,
 
194
                                 gint      *minimum,
 
195
                                 gint      *natural)
 
196
{
 
197
        gedit_panel_get_size (widget, GTK_ORIENTATION_HORIZONTAL, minimum, natural);
 
198
}
 
199
 
 
200
static void
 
201
gedit_panel_get_preferred_height (GtkWidget *widget,
 
202
                                  gint      *minimum,
 
203
                                  gint      *natural)
 
204
{
 
205
        gedit_panel_get_size (widget, GTK_ORIENTATION_VERTICAL, minimum, natural);
 
206
}
 
207
 
 
208
static void
 
209
gedit_panel_size_allocate (GtkWidget     *widget,
 
210
                           GtkAllocation *allocation)
 
211
{
 
212
        GtkBin *bin = GTK_BIN (widget);
 
213
        GtkWidget *child;
 
214
 
 
215
        GTK_WIDGET_CLASS (gedit_panel_parent_class)->size_allocate (widget, allocation);
 
216
 
 
217
        child = gtk_bin_get_child (bin);
 
218
        if (child && gtk_widget_get_visible (child))
 
219
        {
 
220
                gtk_widget_size_allocate (child, allocation);
 
221
        }
 
222
}
 
223
 
 
224
static void
162
225
gedit_panel_grab_focus (GtkWidget *w)
163
226
{
164
227
        GeditPanel *panel = GEDIT_PANEL (w);
190
253
        object_class->get_property = gedit_panel_get_property;
191
254
        object_class->set_property = gedit_panel_set_property;
192
255
 
193
 
        g_object_class_install_property (object_class,
194
 
                                         PROP_ORIENTATION,
195
 
                                         g_param_spec_enum ("orientation",
196
 
                                                            "Orientation",
197
 
                                                            "The panel's orientation",
198
 
                                                            GTK_TYPE_ORIENTATION,
199
 
                                                            GTK_ORIENTATION_VERTICAL,
200
 
                                                            G_PARAM_READWRITE |
201
 
                                                            G_PARAM_CONSTRUCT_ONLY |
202
 
                                                            G_PARAM_STATIC_STRINGS));
203
 
 
 
256
        widget_class->get_preferred_width = gedit_panel_get_preferred_width;
 
257
        widget_class->get_preferred_height = gedit_panel_get_preferred_height;
 
258
        widget_class->size_allocate = gedit_panel_size_allocate;
204
259
        widget_class->grab_focus = gedit_panel_grab_focus;
205
260
 
206
261
        klass->close = gedit_panel_close;
207
262
        klass->focus_document = gedit_panel_focus_document;
208
263
 
 
264
        g_object_class_install_property (object_class,
 
265
                                         PROP_ORIENTATION,
 
266
                                         g_param_spec_enum ("orientation",
 
267
                                                            "Panel Orientation",
 
268
                                                            "The panel's orientation",
 
269
                                                            GTK_TYPE_ORIENTATION,
 
270
                                                            GTK_ORIENTATION_VERTICAL,
 
271
                                                            G_PARAM_READWRITE |
 
272
                                                            G_PARAM_CONSTRUCT_ONLY |
 
273
                                                            G_PARAM_STATIC_STRINGS));
 
274
 
209
275
        signals[ITEM_ADDED] =
210
276
                g_signal_new ("item_added",
211
277
                              G_OBJECT_CLASS_TYPE (klass),
386
452
gedit_panel_init (GeditPanel *panel)
387
453
{
388
454
        panel->priv = GEDIT_PANEL_GET_PRIVATE (panel);
 
455
 
 
456
        panel->priv->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
 
457
        gtk_widget_show (panel->priv->main_box);
 
458
        gtk_container_add (GTK_CONTAINER (panel), panel->priv->main_box);
389
459
}
390
460
 
391
461
static void
439
509
        GtkWidget *sidebar;
440
510
        GtkWidget *close_button;
441
511
 
442
 
        box = gtk_hbox_new(FALSE, 0);
 
512
        box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
443
513
 
444
514
        gtk_box_pack_start (GTK_BOX (box),
445
515
                            panel->priv->notebook,
448
518
                            0);
449
519
 
450
520
        /* Toolbar, close button and first separator */
451
 
        sidebar = gtk_vbox_new(FALSE, 6);
 
521
        sidebar = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
452
522
        gtk_container_set_border_width (GTK_CONTAINER (sidebar), 4);
453
523
 
454
524
        gtk_box_pack_start (GTK_BOX (box),
467
537
 
468
538
        gtk_widget_show_all (box);
469
539
 
470
 
        gtk_box_pack_start (GTK_BOX (panel),
 
540
        gtk_box_pack_start (GTK_BOX (panel->priv->main_box),
471
541
                            box,
472
542
                            TRUE,
473
543
                            TRUE,
483
553
        GtkWidget *dummy_label;
484
554
 
485
555
        /* Create title hbox */
486
 
        title_hbox = gtk_hbox_new (FALSE, 6);
 
556
        title_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
487
557
        gtk_container_set_border_width (GTK_CONTAINER (title_hbox), 5);
488
558
 
489
 
        gtk_box_pack_start (GTK_BOX (panel), title_hbox, FALSE, FALSE, 0);
 
559
        gtk_box_pack_start (GTK_BOX (panel->priv->main_box), title_hbox,
 
560
                                     FALSE, FALSE, 0);
490
561
 
491
 
        icon_name_hbox = gtk_hbox_new (FALSE, 0);
 
562
        icon_name_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
492
563
        gtk_box_pack_start (GTK_BOX (title_hbox),
493
564
                            icon_name_hbox,
494
565
                            TRUE,
532
603
 
533
604
        gtk_widget_show_all (title_hbox);
534
605
 
535
 
        gtk_box_pack_start (GTK_BOX (panel),
 
606
        gtk_box_pack_start (GTK_BOX (panel->priv->main_box),
536
607
                            panel->priv->notebook,
537
608
                            TRUE,
538
609
                            TRUE,
594
665
 
595
666
        /* set hbox spacing and label padding (see below) so that there's an
596
667
         * equal amount of space around the label */
597
 
        hbox = gtk_hbox_new (FALSE, 4);
 
668
        hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
598
669
 
599
670
        label_ebox = gtk_event_box_new ();
600
671
        gtk_event_box_set_visible_window (GTK_EVENT_BOX (label_ebox), FALSE);
601
672
        gtk_box_pack_start (GTK_BOX (hbox), label_ebox, TRUE, TRUE, 0);
602
673
 
603
 
        label_hbox = gtk_hbox_new (FALSE, 4);
 
674
        label_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
604
675
        gtk_container_add (GTK_CONTAINER (label_ebox), label_hbox);
605
676
 
606
677
        /* setup icon */