[Goodies-commits] r5511 - xfbib/branches/gobject/src

Jesper Karlsson zarper at xfce.org
Sat Oct 4 19:07:54 CEST 2008


Author: zarper
Date: 2008-10-04 17:07:53 +0000 (Sat, 04 Oct 2008)
New Revision: 5511

Modified:
   xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c
   xfbib/branches/gobject/src/xfbib-multiple-input.c
   xfbib/branches/gobject/src/xfbib-single-input.c
   xfbib/branches/gobject/src/xfbib-single-input.h
Log:
Changed the layout of the entry edit dialog.


Modified: xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c	2008-10-04 15:48:32 UTC (rev 5510)
+++ xfbib/branches/gobject/src/xfbib-entry-edit-dialog.c	2008-10-04 17:07:53 UTC (rev 5511)
@@ -26,7 +26,6 @@
 
 #include "xfbib-entry-edit-dialog.h"
 #include "xfbib-multiple-input.h"
-#include "xfbib-single-input.h"
 #include "xfbib-field.h"
 #include "xfbib-strbuf.h"
 #include "xfbib-entry.h"
@@ -91,7 +90,8 @@
 	GtkWidget *key_label;
 	GtkWidget *key_entry;
 	GtkWidget *key_button;
-	GtkWidget *inputs[XFBIB_FIELD_N_FIELDS];	/* Single and multiple inputs */
+	GtkWidget *labels[XFBIB_FIELD_N_FIELDS];	/* Label and NULL objects */
+	GtkWidget *inputs[XFBIB_FIELD_N_FIELDS];	/* Entry and multiple inputs */
 	GtkWidget *note_boxes[5];
 	GtkWidget *notebook;
 };
@@ -126,9 +126,9 @@
 		xfbib_strbuf_append(strbuf, tmp);
 	}
 
-	xfbib_strbuf_append(strbuf, (xfbib_single_input_get_entry_text(XFBIB_SINGLE_INPUT (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_YEAR])) + 2));
+	xfbib_strbuf_append(strbuf, (gtk_entry_get_text(GTK_ENTRY (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_YEAR])) + 2));
 
-	title = xfbib_single_input_get_entry_text(XFBIB_SINGLE_INPUT (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_TITLE]));
+	title = gtk_entry_get_text(GTK_ENTRY (XFBIB_ENTRY_EDIT_DIALOG (user_data)->inputs[XFBIB_FIELD_TITLE]));
 	split = g_strsplit(title, " ", 2);
 	title = split[0];
 	xfbib_strbuf_append(strbuf, title);
@@ -171,7 +171,7 @@
 static void
 xfbib_entry_edit_dialog_init(XfbibEntryEditDialog *instance)
 {
-	gint i, row[4] = {0, 0, 0, 0};
+	gint i, row[5] = {0, 0, 0, 0, 0}, box;
 	GtkWidget *top_box;
 	
 	instance->type_label = gtk_label_new("Type:");
@@ -183,7 +183,6 @@
 
 	instance->key_label = gtk_label_new("Key:");
 	instance->key_entry = gtk_entry_new();
-	//gtk_entry_set_width_chars(GTK_ENTRY(instance->key_entry), 30);
 	/* TODO: Remove the text from button, try and find a magic wand icon or something similar instead */
 	instance->key_button = gtk_button_new_from_stock(GTK_STOCK_EXECUTE);
 	g_signal_connect(G_OBJECT (instance->key_button), "clicked", G_CALLBACK (cb_generate_clicked), instance);
@@ -191,24 +190,30 @@
 	/* TODO: Should the type and key widgets be on two seperate rows instead to limit the width? */
 	top_box = gtk_hbox_new(FALSE, 12);
 
-	gtk_box_pack_start(GTK_BOX(top_box), instance->type_label, FALSE, FALSE, 0);
+	GtkWidget *leftalign, *rightalign;
+	leftalign = gtk_alignment_new(0, 0.5, 0, 0);
+	rightalign = gtk_alignment_new(0, 0.5, 0, 0);
+	gtk_alignment_set_padding(GTK_ALIGNMENT(leftalign), 0, 0, 6, 0);
+	gtk_alignment_set_padding(GTK_ALIGNMENT(rightalign), 0, 0, 0, 6);
+
+	gtk_box_pack_start(GTK_BOX(top_box), leftalign, FALSE, FALSE, 0);
+	gtk_container_add(GTK_CONTAINER(leftalign), instance->type_label);
 	gtk_box_pack_start(GTK_BOX(top_box), instance->type_combo_box, FALSE, FALSE, 0);
 
-	gtk_box_pack_end(GTK_BOX(top_box), instance->key_button, FALSE, FALSE, 0);
+	gtk_box_pack_end(GTK_BOX(top_box), rightalign, FALSE, FALSE, 0);
+	gtk_container_add(GTK_CONTAINER(rightalign), instance->key_button);
 	gtk_box_pack_end(GTK_BOX(top_box), instance->key_entry, FALSE, FALSE, 0);
 	gtk_box_pack_end(GTK_BOX(top_box), instance->key_label, FALSE, FALSE, 0);
 	
 	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (instance)->vbox), top_box, FALSE, FALSE, 0);
+	
+	gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(instance)->vbox), 6);
 
-
-	instance->note_boxes[0] = gtk_vbox_new(FALSE, 6);
-	instance->note_boxes[1] = gtk_hbox_new(FALSE, 12);
-	instance->note_boxes[2] = gtk_vbox_new(FALSE, 6);
-	instance->note_boxes[3] = gtk_vbox_new(FALSE, 6);
-	instance->note_boxes[4] = gtk_vbox_new(FALSE, 6);
 	for (i = 0; i < 5; i++) {
-		//instance->note_boxes[i] = gtk_table_new(1, 2, TRUE);
-		gtk_container_set_border_width(GTK_CONTAINER (instance->note_boxes[i]), 12);
+		instance->note_boxes[i] = gtk_table_new(1, 2, FALSE);
+		gtk_table_set_row_spacings(GTK_TABLE(instance->note_boxes[i]), 6);
+		gtk_table_set_col_spacings(GTK_TABLE(instance->note_boxes[i]), 12);
+		gtk_container_set_border_width(GTK_CONTAINER (instance->note_boxes[i]), 6);
 	}
 	
 	for (i = 0; i < XFBIB_FIELD_N_FIELDS; i++) {
@@ -216,11 +221,13 @@
 		if (i == XFBIB_FIELD_AUTHOR || i == XFBIB_FIELD_EDITOR) {
 			instance->inputs[i] = xfbib_multiple_input_new(xfbib_input_constants[i].label, xfbib_input_constants[i].tooltip);
 		} else {
-			instance->inputs[i] = xfbib_single_input_new(xfbib_input_constants[i].label, xfbib_input_constants[i].tooltip);
+			instance->labels[i] = gtk_label_new(xfbib_input_constants[i].label);
+			gtk_misc_set_alignment(GTK_MISC(instance->labels[i]), 0, 0.5);
+			instance->inputs[i] = gtk_entry_new();
+			gtk_widget_set_tooltip_text(instance->inputs[i], xfbib_input_constants[i].tooltip);
 		}
 
 		/* Add the input object to the correct box */
-		/* TODO: Make functions in single input to get each element and then place them in the table */
 		switch (i) {
 			case XFBIB_FIELD_INSTITUTION:
 			case XFBIB_FIELD_ORGANIZATION:
@@ -228,15 +235,12 @@
 			case XFBIB_FIELD_TITLE:
 			case XFBIB_FIELD_TYPE:
 				/* Box 0 */
-				gtk_box_pack_start (GTK_BOX (instance->note_boxes[0]), instance->inputs[i], FALSE, FALSE, 0);
+				box = 0;
 				break;
 			case XFBIB_FIELD_AUTHOR:
-				/* Box 1 */
-				gtk_box_pack_start (GTK_BOX (instance->note_boxes[1]), instance->inputs[i], FALSE, FALSE, 0);
-				break;
 			case XFBIB_FIELD_EDITOR:
 				/* Box 1 */
-				gtk_box_pack_end (GTK_BOX (instance->note_boxes[1]), instance->inputs[i], FALSE, FALSE, 0);
+				box = 1;
 				break;
 			case XFBIB_FIELD_BOOKTITLE:
 			case XFBIB_FIELD_CHAPTER:
@@ -247,7 +251,7 @@
 			case XFBIB_FIELD_VOLUME:
 			case XFBIB_FIELD_YEAR:
 				/* Box 2 */
-				gtk_box_pack_start (GTK_BOX (instance->note_boxes[2]), instance->inputs[i], FALSE, FALSE, 0);
+				box = 2;
 				break;
 			case XFBIB_FIELD_ADDRESS:
 			case XFBIB_FIELD_HOWPUBLISHED:
@@ -255,7 +259,7 @@
 			case XFBIB_FIELD_PUBLISHER:
 			case XFBIB_FIELD_SERIES:
 				/* Box 3 */
-				gtk_box_pack_start (GTK_BOX (instance->note_boxes[3]), instance->inputs[i], FALSE, FALSE, 0);
+				box = 3;
 				break;
 			case XFBIB_FIELD_ANNOTE:
 			case XFBIB_FIELD_CROSSREF:
@@ -264,12 +268,20 @@
 			case XFBIB_FIELD_NOTE:
 			case XFBIB_FIELD_URL:
 				/* Box 4 */
-				gtk_box_pack_start (GTK_BOX (instance->note_boxes[4]), instance->inputs[i], FALSE, FALSE, 0);
+				box = 4;
 				break;
 		}
+		if (i == XFBIB_FIELD_AUTHOR || i == XFBIB_FIELD_EDITOR) {
+			gtk_table_attach_defaults(GTK_TABLE(instance->note_boxes[box]), instance->inputs[i], row[box], row[box]+1, 0, 1);
+		} else {
+			gtk_table_attach(GTK_TABLE(instance->note_boxes[box]), instance->labels[i], 0, 1, row[box], row[box]+1, GTK_FILL, GTK_FILL, 0, 0);
+			gtk_table_attach(GTK_TABLE(instance->note_boxes[box]), instance->inputs[i], 1, 2, row[box], row[box]+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
+		}
+		row[box]++;
 	}
 
 	instance->notebook = gtk_notebook_new ();
+	gtk_container_set_border_width(GTK_CONTAINER (instance->notebook), 6);
 	gtk_notebook_set_tab_pos (GTK_NOTEBOOK (instance->notebook), GTK_POS_TOP);
 	gtk_notebook_append_page (GTK_NOTEBOOK (instance->notebook), instance->note_boxes[0], gtk_label_new("Title"));
 	gtk_notebook_append_page (GTK_NOTEBOOK (instance->notebook), instance->note_boxes[1], gtk_label_new("Author/Editor"));
@@ -326,11 +338,9 @@
 				continue;
 			}
 			if (n == XFBIB_FIELD_AUTHOR || n == XFBIB_FIELD_EDITOR) {
-				xfbib_multiple_input_set_text (XFBIB_MULTIPLE_INPUT (entry_edit_dialog->inputs[n]),
-						xfbib_field_get_value_str(field));
+				xfbib_multiple_input_set_text (XFBIB_MULTIPLE_INPUT (entry_edit_dialog->inputs[n]), xfbib_field_get_value_str(field));
 			} else {
-				xfbib_single_input_set_entry_text (XFBIB_SINGLE_INPUT (entry_edit_dialog->inputs[n]),
-						xfbib_field_get_value_str(field));
+				gtk_entry_set_text(GTK_ENTRY (entry_edit_dialog->inputs[n]), xfbib_field_get_value_str(field));
 			}
 		}
 	}
@@ -363,14 +373,14 @@
 			xfbib_field_set_value(field, value);
 			field_list = g_list_append(field_list, field);
 		} else {
-			if(xfbib_single_input_get_entry_text(XFBIB_SINGLE_INPUT(entry_edit_dialog->inputs[n])) == "") {
+			if(gtk_entry_get_text(GTK_ENTRY(entry_edit_dialog->inputs[n])) == "") {
 				continue;
 			}
 			/* TODO: check if they are integers or strings(variables), don't assume text */
 			field = xfbib_field_new();
 			xfbib_field_set_variable(field, xfbib_input_constants[n].label);
 			value = xfbib_value_new();
-			xfbib_value_set_str(value, xfbib_single_input_get_entry_text(XFBIB_SINGLE_INPUT(entry_edit_dialog->inputs[n])));
+			xfbib_value_set_str(value, gtk_entry_get_text(GTK_ENTRY(entry_edit_dialog->inputs[n])));
 			xfbib_field_set_value(field, value);
 			field_list = g_list_append(field_list, field);
 		}

Modified: xfbib/branches/gobject/src/xfbib-multiple-input.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-multiple-input.c	2008-10-04 15:48:32 UTC (rev 5510)
+++ xfbib/branches/gobject/src/xfbib-multiple-input.c	2008-10-04 17:07:53 UTC (rev 5511)
@@ -145,7 +145,9 @@
 	GtkTreeViewColumn *column;
 	GtkWidget *scrolled_window;
 
-	button_box = gtk_hbox_new(FALSE, 10);
+	gtk_box_set_spacing(GTK_BOX(instance), 12);
+
+	button_box = gtk_hbox_new(FALSE, 12);
 	
 	/* Tree view */
 	instance->tree_view = gtk_tree_view_new();
@@ -182,14 +184,14 @@
 	//gtk_widget_set_tooltip_text (instance->toggle_button, "Toggle case sensitivity.");
 
 	
-	gtk_box_pack_start(GTK_BOX(button_box), instance->add_button, TRUE, FALSE, 1);
-	gtk_box_pack_start(GTK_BOX(button_box), instance->remove_button, TRUE, FALSE, 1);
+	gtk_box_pack_start(GTK_BOX(button_box), instance->add_button, TRUE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(button_box), instance->remove_button, TRUE, FALSE, 0);
 	//gtk_box_pack_start(GTK_BOX(button_box), instance->toggle_button, TRUE, FALSE, 1);
 	
 	gtk_container_add (GTK_CONTAINER (scrolled_window), instance->tree_view);
 
-	gtk_box_pack_start(GTK_BOX(instance), scrolled_window, TRUE, TRUE, 10);
-	gtk_box_pack_end(GTK_BOX(instance), button_box, FALSE, TRUE, 10);
+	gtk_box_pack_start(GTK_BOX(instance), scrolled_window, TRUE, TRUE, 0);
+	gtk_box_pack_end(GTK_BOX(instance), button_box, FALSE, TRUE, 0);
 	gtk_widget_show_all(GTK_WIDGET(instance));
 }
 

Modified: xfbib/branches/gobject/src/xfbib-single-input.c
===================================================================
--- xfbib/branches/gobject/src/xfbib-single-input.c	2008-10-04 15:48:32 UTC (rev 5510)
+++ xfbib/branches/gobject/src/xfbib-single-input.c	2008-10-04 17:07:53 UTC (rev 5511)
@@ -79,10 +79,12 @@
 static void
 xfbib_single_input_init(XfbibSingleInput *instance)
 {
+	gtk_box_set_spacing(GTK_BOX(instance), 12);
+
 	instance->label = gtk_label_new("");
 	
 	instance->entry = gtk_entry_new();
-	gtk_entry_set_width_chars(GTK_ENTRY (instance->entry), 30);
+	gtk_entry_set_width_chars(GTK_ENTRY(instance->entry), -1);
 	
 	//instance->toggle_button = gtk_toggle_button_new_with_label("aA");
 	//gtk_widget_set_tooltip_text (instance->toggle_button, "Toggle case sensitivity.");
@@ -90,7 +92,7 @@
 	/* Pack the buttons */
 	gtk_box_pack_start(GTK_BOX(instance), instance->label, FALSE, FALSE, 3);
 	//gtk_box_pack_end(GTK_BOX(instance), instance->toggle_button, FALSE, TRUE, 10);
-	gtk_box_pack_end(GTK_BOX(instance), instance->entry, FALSE, TRUE, 3);
+	gtk_box_pack_end(GTK_BOX(instance), instance->entry, TRUE, TRUE, 3);
 	gtk_widget_show_all(GTK_WIDGET(instance));
 }
 

Modified: xfbib/branches/gobject/src/xfbib-single-input.h
===================================================================
--- xfbib/branches/gobject/src/xfbib-single-input.h	2008-10-04 15:48:32 UTC (rev 5510)
+++ xfbib/branches/gobject/src/xfbib-single-input.h	2008-10-04 17:07:53 UTC (rev 5511)
@@ -38,7 +38,6 @@
 GtkWidget *xfbib_single_input_new(gchar *, gchar *);
 void xfbib_single_input_set_entry_text(XfbibSingleInput *, const gchar *);
 const gchar *xfbib_single_input_get_entry_text(XfbibSingleInput *);
-
 G_END_DECLS
 
 #endif //__XFBIB_SINGLE_INPUT_H




More information about the Goodies-commits mailing list