2 * This file Copyright (C) Mnemosyne LLC
4 * This file is licensed by the GPL version 2. Works owned by the
5 * Transmission project are granted a special exemption to clause 2 (b)
6 * so that the bulk of its code can remain under the MIT license.
7 * This exemption does not extend to derived works not owned by
8 * the Transmission project.
10 * $Id: hig.c 13739 2013-01-03 23:41:02Z jordan $
17 hig_workarea_create (void)
19 GtkWidget
* grid
= gtk_grid_new ();
21 gtk_container_set_border_width (GTK_CONTAINER (grid
), GUI_PAD_BIG
);
22 gtk_grid_set_row_spacing (GTK_GRID (grid
), GUI_PAD
);
23 gtk_grid_set_column_spacing (GTK_GRID (grid
), GUI_PAD_BIG
);
29 hig_workarea_add_section_divider (GtkWidget
* t
, guint
* row
)
31 GtkWidget
* w
= gtk_alignment_new (0.0f
, 0.0f
, 0.0f
, 0.0f
);
33 gtk_widget_set_size_request (w
, 0u, 6u);
34 gtk_grid_attach (GTK_GRID (t
), w
, 0, *row
, 2, 1);
39 hig_workarea_add_section_title_widget (GtkWidget
* t
, guint
* row
, GtkWidget
* w
)
41 gtk_widget_set_hexpand (w
, TRUE
);
42 gtk_grid_attach (GTK_GRID (t
), w
, 0, *row
, 2, 1);
47 hig_workarea_add_section_title (GtkWidget
* t
, guint
* row
, const char * section_title
)
52 g_snprintf (buf
, sizeof (buf
), "<b>%s</b>", section_title
);
53 l
= gtk_label_new (buf
);
54 gtk_misc_set_alignment (GTK_MISC (l
), 0.0f
, 0.5f
);
55 gtk_label_set_use_markup (GTK_LABEL (l
), TRUE
);
56 hig_workarea_add_section_title_widget (t
, row
, l
);
60 hig_workarea_add_wide_control (GtkWidget
* t
, guint
* row
, GtkWidget
* w
)
62 gtk_widget_set_hexpand (w
, TRUE
);
63 gtk_widget_set_margin_left (w
, 18);
64 gtk_grid_attach (GTK_GRID (t
), w
, 0, *row
, 2, 1);
68 hig_workarea_add_wide_tall_control (GtkWidget
* t
, guint
* row
, GtkWidget
* w
)
70 gtk_widget_set_hexpand (w
, TRUE
);
71 gtk_widget_set_vexpand (w
, TRUE
);
72 hig_workarea_add_wide_control (t
, row
, w
);
76 hig_workarea_add_wide_checkbutton (GtkWidget
* t
,
78 const char * mnemonic_string
,
81 GtkWidget
* w
= gtk_check_button_new_with_mnemonic (mnemonic_string
);
83 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w
), is_active
);
84 hig_workarea_add_wide_control (t
, row
, w
);
89 hig_workarea_add_label_w (GtkWidget
* t
, guint row
, GtkWidget
* w
)
91 gtk_widget_set_margin_left (w
, 18);
93 gtk_misc_set_alignment (GTK_MISC (w
), 0.0f
, 0.5f
);
95 gtk_label_set_use_markup (GTK_LABEL (w
), TRUE
);
96 gtk_grid_attach (GTK_GRID (t
), w
, 0, row
, 1, 1);
100 hig_workarea_add_tall_control (GtkWidget
* t
, guint row
, GtkWidget
* control
)
102 if (GTK_IS_MISC (control
))
103 gtk_misc_set_alignment (GTK_MISC (control
), 0.0f
, 0.5f
);
105 g_object_set (control
, "expand", TRUE
, NULL
);
106 gtk_grid_attach (GTK_GRID (t
), control
, 1, row
, 1, 1);
110 hig_workarea_add_control (GtkWidget
* t
, guint row
, GtkWidget
* control
)
112 if (GTK_IS_MISC (control
))
113 gtk_misc_set_alignment (GTK_MISC (control
), 0.0f
, 0.5f
);
115 gtk_widget_set_hexpand (control
, TRUE
);
116 gtk_grid_attach (GTK_GRID (t
), control
, 1, row
, 1, 1);
120 hig_workarea_add_row_w (GtkWidget
* t
,
124 GtkWidget
* mnemonic
)
126 hig_workarea_add_label_w (t
, *row
, label
);
127 hig_workarea_add_control (t
, *row
, control
);
128 if (GTK_IS_LABEL (label
))
129 gtk_label_set_mnemonic_widget (GTK_LABEL (label
),
130 mnemonic
? mnemonic
: control
);
135 hig_workarea_add_row (GtkWidget
* t
,
137 const char * mnemonic_string
,
139 GtkWidget
* mnemonic
)
141 GtkWidget
* l
= gtk_label_new_with_mnemonic (mnemonic_string
);
143 hig_workarea_add_row_w (t
, row
, l
, control
, mnemonic
);
148 hig_workarea_add_tall_row (GtkWidget
* table
,
150 const char * mnemonic_string
,
152 GtkWidget
* mnemonic
)
154 GtkWidget
* l
= gtk_label_new_with_mnemonic (mnemonic_string
);
155 GtkWidget
* h
= gtk_box_new (GTK_ORIENTATION_HORIZONTAL
, 0);
156 GtkWidget
* v
= gtk_box_new (GTK_ORIENTATION_VERTICAL
, 0);
157 gtk_box_pack_start (GTK_BOX (h
), l
, FALSE
, FALSE
, 0);
158 gtk_box_pack_start (GTK_BOX (v
), h
, FALSE
, FALSE
, GUI_PAD_SMALL
);
160 hig_workarea_add_label_w (table
, *row
, v
);
161 hig_workarea_add_tall_control (table
, *row
, control
);
163 if (GTK_IS_LABEL (l
))
164 gtk_label_set_mnemonic_widget (GTK_LABEL (l
),
165 mnemonic
? mnemonic
: control
);