Skip to content

Commit 831f94d

Browse files
visual: rework sidelist
To make it more visually appealing, do the following changes: - Improve the side widgets to be more like a list. - Move the search bar to the header. - Reorganize side widgets.
1 parent e74e277 commit 831f94d

File tree

1 file changed

+47
-37
lines changed

1 file changed

+47
-37
lines changed

julius/visual.c

+47-37
Original file line numberDiff line numberDiff line change
@@ -1969,7 +1969,7 @@ void
19691969
visual_show(BACKTRELLIS *bt)
19701970
{
19711971
GtkWidget *window, *button, *draw, *entry, *scale, *headerbar;
1972-
GtkWidget *box1, *box2, *label, *frame, *box3, *start_box, *zoom_box;
1972+
GtkWidget *box1, *box2, *label, *box3, *start_box, *zoom_box;
19731973
GSList *group;
19741974
GList *glist;
19751975

@@ -2007,20 +2007,19 @@ visual_show(BACKTRELLIS *bt)
20072007
gtk_window_set_titlebar(GTK_WINDOW(window), headerbar);
20082008

20092009
/* create horizontal packing box */
2010-
box1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
2011-
gtk_container_set_border_width(GTK_CONTAINER(box1), 18);
2010+
box1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
20122011
gtk_container_add(GTK_CONTAINER(window), box1);
20132012

20142013
/* box containing the drawing area and labels */
2015-
start_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
2014+
start_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 12);
20162015
gtk_widget_set_hexpand(start_box, TRUE);
20172016
gtk_widget_set_vexpand(start_box, TRUE);
20182017
gtk_container_add(GTK_CONTAINER(box1), start_box);
20192018

20202019
/* create scrolled window */
20212020
scrolled_window = gtk_scrolled_window_new(NULL, NULL);
2021+
gtk_widget_set_margin_top(scrolled_window, 12);
20222022
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
2023-
gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 18);
20242023

20252024
/* create drawing area */
20262025
draw = gtk_drawing_area_new();
@@ -2048,23 +2047,34 @@ visual_show(BACKTRELLIS *bt)
20482047
g_signal_connect_swapped(button, "clicked", G_CALLBACK(action_zoom_in), draw);
20492048
gtk_container_add(GTK_CONTAINER(zoom_box), button);
20502049

2050+
/* vertical separator */
2051+
gtk_container_add(GTK_CONTAINER(start_box), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL));
20512052

20522053
/* labels */
20532054
op_label = gtk_label_new("Accumulated score (normalized by time)");
20542055
gtk_widget_set_halign(op_label, GTK_ALIGN_START);
20552056
gtk_container_add(GTK_CONTAINER(start_box), op_label);
2057+
gtk_widget_set_margin_start(op_label, 18);
2058+
gtk_widget_set_margin_bottom(op_label, 12);
2059+
2060+
/* vertical separator */
2061+
gtk_container_add(GTK_CONTAINER(box1), gtk_separator_new(GTK_ORIENTATION_VERTICAL));
20562062

20572063
/* create packing box for buttons */
20582064
box2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
20592065
gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, TRUE, 0);
2066+
gtk_container_set_border_width(GTK_CONTAINER(box2), 12);
2067+
gtk_widget_set_size_request(box2, 200, -1);
20602068

20612069
if (re->speechlen != 0) {
2062-
/* create waveform related frame */
2063-
frame = gtk_frame_new("Waveform");
2064-
gtk_box_pack_start(GTK_BOX(box2), frame, FALSE, FALSE, 0);
2070+
/* create waveform related section */
2071+
label = gtk_label_new("<b>Waveform</b>");
2072+
gtk_box_pack_start(GTK_BOX(box2), label, FALSE, FALSE, 0);
20652073
box3 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
2074+
gtk_widget_set_margin_start(box3, 12);
2075+
gtk_widget_set_margin_bottom(box3, 12);
20662076
gtk_container_set_border_width(GTK_CONTAINER(box3), 12);
2067-
gtk_container_add(GTK_CONTAINER(frame), box3);
2077+
gtk_container_add(GTK_CONTAINER(box2), box3);
20682078

20692079
/* create play button if supported */
20702080
#ifdef PLAYCOMMAND
@@ -2084,11 +2094,15 @@ visual_show(BACKTRELLIS *bt)
20842094
}
20852095

20862096
/* create scaling frame */
2087-
frame = gtk_frame_new("Change view");
2088-
gtk_box_pack_start(GTK_BOX(box2), frame, FALSE, FALSE, 0);
2089-
box3 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
2097+
label = gtk_label_new("<b>Change view</b>");
2098+
gtk_widget_set_halign(label, GTK_ALIGN_START);
2099+
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
2100+
gtk_box_pack_start(GTK_BOX(box2), label, FALSE, FALSE, 0);
2101+
box3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
2102+
gtk_widget_set_margin_start(box3, 12);
2103+
gtk_widget_set_margin_bottom(box3, 12);
20902104
gtk_container_set_border_width(GTK_CONTAINER(box3), 12);
2091-
gtk_container_add(GTK_CONTAINER(frame), box3);
2105+
gtk_container_add(GTK_CONTAINER(box2), box3);
20922106

20932107
/* create word view button */
20942108
button = gtk_radio_button_new_with_label(NULL, "Word");
@@ -2108,38 +2122,34 @@ visual_show(BACKTRELLIS *bt)
21082122
g_signal_connect(button, "toggled", G_CALLBACK(action_view_beam), draw);
21092123
gtk_box_pack_start(GTK_BOX(box3), button, FALSE, FALSE, 0);
21102124

2111-
/* create show/hide frame */
2112-
frame = gtk_frame_new("Show/hide");
2113-
gtk_box_pack_start(GTK_BOX(box2), frame, FALSE, FALSE, 0);
2114-
box3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
2115-
gtk_container_set_border_width(GTK_CONTAINER(box3), 12);
2116-
gtk_container_add(GTK_CONTAINER(frame), box3);
2117-
21182125
/* create text toggle button */
2119-
button = gtk_toggle_button_new_with_label("Arcs");
2126+
button = gtk_check_button_new_with_label("Hide arcs");
2127+
gtk_widget_set_halign(button, GTK_ALIGN_START);
2128+
gtk_widget_set_margin_start(button, 12);
2129+
gtk_widget_set_margin_bottom(button, 18);
21202130
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
21212131
g_signal_connect(button, "toggled", G_CALLBACK(action_toggle_arc), draw);
2122-
gtk_box_pack_start(GTK_BOX(box3), button, FALSE, FALSE, 0);
2123-
2124-
/* create word entry frame */
2125-
frame = gtk_frame_new("View Words");
2126-
gtk_box_pack_start(GTK_BOX(box2), frame, FALSE, FALSE, 0);
2127-
box3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
2128-
gtk_container_set_border_width(GTK_CONTAINER(box3), 12);
2129-
gtk_container_add(GTK_CONTAINER(frame), box3);
2132+
gtk_box_pack_start(GTK_BOX(box2), button, FALSE, FALSE, 0);
21302133

21312134
/* create word ID entry */
2132-
entry = gtk_entry_new();
2133-
gtk_entry_set_max_length(GTK_ENTRY(entry), 16);
2135+
entry = gtk_search_entry_new();
2136+
gtk_entry_set_max_length(GTK_ENTRY(entry), 32);
2137+
gtk_entry_set_width_chars(GTK_ENTRY(entry), 32);
2138+
gtk_entry_set_placeholder_text(GTK_ENTRY(entry), "Type the word to search...");
21342139
g_signal_connect(entry, "activate", G_CALLBACK(action_set_wid), draw);
2135-
gtk_box_pack_start(GTK_BOX(box3), entry, FALSE, FALSE, 0);
2136-
2137-
/* create replay frame */
2138-
frame = gtk_frame_new("Pass2 Replay");
2139-
gtk_box_pack_start(GTK_BOX(box2), frame, FALSE, FALSE, 0);
2140+
g_signal_connect(entry, "search-changed", G_CALLBACK(action_set_wid), draw);
2141+
gtk_header_bar_set_custom_title(GTK_HEADER_BAR(headerbar), entry);
2142+
2143+
/* create replay section */
2144+
label = gtk_label_new("<b>Pass2 Replay</b>");
2145+
gtk_widget_set_halign(label, GTK_ALIGN_START);
2146+
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
2147+
gtk_box_pack_start(GTK_BOX(box2), label, FALSE, FALSE, 0);
21402148
box3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
2149+
gtk_widget_set_margin_start(box3, 12);
2150+
gtk_widget_set_margin_bottom(box3, 12);
21412151
gtk_container_set_border_width(GTK_CONTAINER(box3), 12);
2142-
gtk_container_add(GTK_CONTAINER(frame), box3);
2152+
gtk_container_add(GTK_CONTAINER(box2), box3);
21432153

21442154
/* create replay start button */
21452155
button = gtk_toggle_button_new_with_label("Start");

0 commit comments

Comments
 (0)