diff options
| author | raveit65 <[email protected]> | 2015-09-30 12:49:16 +0200 | 
|---|---|---|
| committer | Wolfgang Ulbrich <[email protected]> | 2015-12-05 03:02:09 +0100 | 
| commit | f54aab0e53880c8e8c65d878ffe06e5e941e16e8 (patch) | |
| tree | c82a9d641344cce494099adf6d9494eb6a2544c2 /src | |
| parent | d96cb50cd99b8785482c610145035ca09322be47 (diff) | |
| download | caja-f54aab0e53880c8e8c65d878ffe06e5e941e16e8.tar.bz2 caja-f54aab0e53880c8e8c65d878ffe06e5e941e16e8.tar.xz | |
GTK3: desktop-item-properties, port GtkTable to GtkGrid
inspired from:
https://git.gnome.org/browse/nautilus/commit/?h=gnome-3-4&id=29dea2e
Diffstat (limited to 'src')
| -rw-r--r-- | src/file-manager/fm-ditem-page.c | 55 | 
1 files changed, 54 insertions, 1 deletions
| diff --git a/src/file-manager/fm-ditem-page.c b/src/file-manager/fm-ditem-page.c index c3b75b65..16cd204f 100644 --- a/src/file-manager/fm-ditem-page.c +++ b/src/file-manager/fm-ditem-page.c @@ -320,22 +320,38 @@ entry_focus_out_cb (GtkWidget *entry,  }  static GtkWidget * +#if GTK_CHECK_VERSION (3, 0, 0) +build_grid (GtkWidget *container, +#else  build_table (GtkWidget *container, +#endif               GKeyFile *key_file,               GtkSizeGroup *label_size_group,               GList *entries)  { +#if GTK_CHECK_VERSION (3, 0, 0) +	GtkWidget *grid; +#else      GtkWidget *table; +#endif      GtkWidget *label;      GtkWidget *entry;      GList *l;      char *val; +#if GTK_CHECK_VERSION (3, 0, 0) + +   grid = gtk_grid_new (); +   gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_VERTICAL); +   gtk_grid_set_row_spacing (GTK_GRID (grid), 6); +   gtk_grid_set_column_spacing (GTK_GRID (grid), 12); +#else      int i;      table = gtk_table_new (g_list_length (entries) + 1, 2, FALSE);      gtk_table_set_row_spacings (GTK_TABLE (table), 6);      gtk_table_set_col_spacings (GTK_TABLE (table), 12);      i = 0; +#endif      for (l = entries; l; l = l->next)      { @@ -354,6 +370,9 @@ build_table (GtkWidget *container,          gtk_size_group_add_widget (label_size_group, label);          entry = gtk_entry_new (); +#if GTK_CHECK_VERSION (3, 0, 0) +        gtk_widget_set_hexpand (entry, TRUE); +#endif          if (item_entry->localized)          { @@ -374,12 +393,19 @@ build_table (GtkWidget *container,          gtk_entry_set_text (GTK_ENTRY (entry), item_entry->current_value);          g_free (val); +#if GTK_CHECK_VERSION (3, 0, 0) +        gtk_container_add (GTK_CONTAINER (grid), label); +        gtk_grid_attach_next_to (GTK_GRID (grid), entry, label, +                                  GTK_POS_RIGHT, 1, 1); +#else          gtk_table_attach (GTK_TABLE (table), label,                            0, 1, i, i+1, GTK_FILL, GTK_FILL,                            0, 0);          gtk_table_attach (GTK_TABLE (table), entry,                            1, 2, i, i+1, GTK_EXPAND|GTK_FILL, GTK_EXPAND|GTK_FILL,                            0, 0); +#endif +          g_signal_connect (entry, "activate",                            G_CALLBACK (entry_activate_cb),                            container); @@ -413,25 +439,38 @@ build_table (GtkWidget *container,                                entry);          } +#if !GTK_CHECK_VERSION (3, 0, 0)          i++; +#endif      }      /* append dummy row */      label = gtk_label_new (""); +#if GTK_CHECK_VERSION (3, 0, 0) +    gtk_container_add (GTK_CONTAINER (grid), label); +    gtk_size_group_add_widget (label_size_group, label); + +    gtk_widget_show_all (grid); +    return grid; +#else      gtk_table_attach (GTK_TABLE (table), label,                        0, 1, i, i+1, GTK_FILL, GTK_FILL,                        0, 0);      gtk_size_group_add_widget (label_size_group, label); -      gtk_widget_show_all (table);      return table; +#endif  }  static void  create_page (GKeyFile *key_file, GtkWidget *box)  { +#if GTK_CHECK_VERSION (3, 0, 0) +    GtkWidget *grid; +#else      GtkWidget *table; +#endif      GList *entries;      GtkSizeGroup *label_size_group;      char *type; @@ -469,10 +508,23 @@ create_page (GKeyFile *key_file, GtkWidget *box)          /* we only handle launchers and links */          /* ensure that we build an empty table with a dummy row at the end */ +#if GTK_CHECK_VERSION (3, 0, 0) +        goto build_grid; +#else          goto build_table; +#endif      }      g_free (type); +#if GTK_CHECK_VERSION (3, 0, 0) +build_grid: +    label_size_group = g_object_get_data (G_OBJECT (box), "label-size-group"); + +    grid = build_grid (box, key_file, label_size_group, entries); +    g_list_free (entries); + +    gtk_box_pack_start (GTK_BOX (box), grid, FALSE, TRUE, 0); +#else  build_table:      label_size_group = g_object_get_data (G_OBJECT (box), "label-size-group"); @@ -480,6 +532,7 @@ build_table:      g_list_free (entries);      gtk_box_pack_start (GTK_BOX (box), table, FALSE, TRUE, 0); +#endif      gtk_widget_show_all (GTK_WIDGET (box));  } | 
