Make the main display saner

This tweaks:
 - packing to be what you'd kind of expect
 - makes the "summary info" always visible
 - the "extended info" is now on a notebook page of its own
 - dive profile the first notebook page, since the summary
   information is visible regardless.
which all just seems a lot more logical.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2011-08-31 18:30:42 -07:00
parent 3d01a5f71a
commit 23c6a42b08
3 changed files with 29 additions and 11 deletions

View file

@ -10,6 +10,7 @@ extern int selected_dive;
extern GtkWidget *dive_profile_frame(void);
extern GtkWidget *dive_info_frame(void);
extern GtkWidget *extended_dive_info_frame(void);
extern GtkWidget *create_dive_list(void);
extern void update_dive_info(struct dive *dive);
extern void repaint_dive(void);

18
info.c
View file

@ -51,19 +51,31 @@ GtkWidget *dive_info_frame(void)
datetime = gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(datetime), FALSE);
gtk_box_pack_start(GTK_BOX(hbox), datetime, FALSE, FALSE, 0);
depth = gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(depth), FALSE);
gtk_box_pack_start(GTK_BOX(hbox), depth, FALSE, FALSE, 0);
duration = gtk_entry_new();
gtk_editable_set_editable(GTK_EDITABLE(duration), FALSE);
gtk_box_pack_start(GTK_BOX(hbox), duration, FALSE, FALSE, 0);
return frame;
}
GtkWidget *extended_dive_info_frame(void)
{
GtkWidget *frame;
GtkWidget *vbox;
frame = gtk_frame_new("Extended dive info");
gtk_widget_show(frame);
vbox = gtk_vbox_new(FALSE, 5);
gtk_container_add(GTK_CONTAINER(frame), vbox);
/* Add extended info here: name, description, yadda yadda */
update_dive_info(current_dive);
return frame;
}

21
main.c
View file

@ -154,35 +154,40 @@ int main(int argc, char **argv)
g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(on_destroy), NULL);
main_window = win;
vbox = gtk_vbox_new(FALSE, 1);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(win), vbox);
menubar = get_menubar_menu(win);
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
/* Table for the list of dives, cairo window, and dive info */
table = gtk_table_new(2, 2, FALSE);
gtk_container_set_border_width(GTK_CONTAINER(table), 5);
gtk_box_pack_end(GTK_BOX(vbox), table, FALSE, TRUE, 0);
gtk_box_pack_end(GTK_BOX(vbox), table, TRUE, TRUE, 0);
gtk_widget_show(table);
/* Create the atual divelist */
divelist = create_dive_list();
gtk_table_attach_defaults(GTK_TABLE(table), divelist, 0, 1, 0, 2);
gtk_table_attach(GTK_TABLE(table), divelist, 0, 1, 0, 2,
0, GTK_FILL | GTK_SHRINK | GTK_EXPAND, 0, 0);
/* Frame for minimal dive info */
frame = dive_info_frame();
gtk_table_attach(GTK_TABLE(table), frame, 1, 2, 0, 1, 0, 0, 0, 0);
/* Notebook for dive info vs profile vs .. */
notebook = gtk_notebook_new();
gtk_table_attach_defaults(GTK_TABLE(table), notebook, 1, 2, 1, 2);
/* Frame for dive info */
frame = dive_info_frame();
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, gtk_label_new("Dive Info"));
/* Frame for dive profile */
frame = dive_profile_frame();
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, gtk_label_new("Dive Profile"));
dive_profile = frame;
/* Frame for extended dive info */
frame = extended_dive_info_frame();
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, gtk_label_new("Extended dive Info"));
gtk_widget_set_app_paintable(win, TRUE);
gtk_widget_show_all(win);