--- gtkentry.c.old Sun Jan 11 13:25:11 1998
+++ gtkentry.c Sun Jan 11 14:23:01 1998
@@ -1760,7 +1760,7 @@
new_text_length = entry->text_max_length - entry->text_length;
/* Don't insert anything, if there was nothing to insert. */
- if (new_text_length == 0)
+ if (new_text_length <= 0)
return;
start_pos = *position;
@@ -2104,4 +2104,13 @@
{
gtk_selection_convert (GTK_WIDGET(entry),
clipboard_atom, ctext_atom, event->time);
+}
+
+void
+gtk_entry_set_max_length (GtkEntry *entry, guint16 max)
+{
+ g_return_if_fail (entry != NULL);
+ g_return_if_fail (GTK_IS_ENTRY (entry));
+
+ entry->text_max_length = max;
}
--- gtkentry.h.old Sun Jan 11 13:25:03 1998
+++ gtkentry.h Sun Jan 11 13:27:45 1998
@@ -79,6 +79,9 @@
guint gtk_entry_get_type (void);
GtkWidget* gtk_entry_new (void);
GtkWidget* gtk_entry_new_with_max_length (guint16 max);
+/* If entry->text is already > max it's up to you to change it */
+void gtk_entry_set_max_length (GtkEntry *entry,
+ guint16 max);
void gtk_entry_set_text (GtkEntry *entry,
const gchar *text);
void gtk_entry_append_text (GtkEntry *entry,
--- gtktoolbar.c.old Sun Jan 11 13:42:09 1998
+++ gtktoolbar.c Sun Jan 11 14:56:53 1998
@@ -363,7 +363,8 @@
gtk_toolbar_add(GtkContainer *container,
GtkWidget *widget)
{
- g_warning("gtk_toolbar_add: use gtk_toolbar_add_item() instead!");
+ /* g_warning("gtk_toolbar_add: use gtk_toolbar_add_item() instead!");*/
+ gtk_toolbar_append_widget(GTK_TOOLBAR(container), NULL, widget);
}
static void
@@ -389,7 +390,7 @@
}
}
-void
+GtkWidget*
gtk_toolbar_append_item(GtkToolbar *toolbar,
const char *text,
const char *tooltip_text,
@@ -397,11 +398,11 @@
GtkSignalFunc callback,
gpointer user_data)
{
- gtk_toolbar_insert_item(toolbar, text, tooltip_text, icon,
+ return gtk_toolbar_insert_item(toolbar, text, tooltip_text, icon,
callback, user_data, toolbar->num_children);
}
-void
+GtkWidget*
gtk_toolbar_prepend_item(GtkToolbar *toolbar,
const char *text,
const char *tooltip_text,
@@ -409,11 +410,11 @@
GtkSignalFunc callback,
gpointer user_data)
{
- gtk_toolbar_insert_item(toolbar, text, tooltip_text, icon,
+ return gtk_toolbar_insert_item(toolbar, text, tooltip_text, icon,
callback, user_data, 0);
}
-void
+GtkWidget*
gtk_toolbar_insert_item(GtkToolbar *toolbar,
const char *text,
const char *tooltip_text,
@@ -425,8 +426,8 @@
Child *child;
GtkWidget *vbox;
- g_return_if_fail(toolbar != NULL);
- g_return_if_fail(GTK_IS_TOOLBAR(toolbar));
+ g_return_val_if_fail(toolbar != NULL, NULL);
+ g_return_val_if_fail(GTK_IS_TOOLBAR(toolbar), NULL);
child = g_new(Child, 1);
@@ -499,6 +500,8 @@
if (GTK_WIDGET_VISIBLE(child->button) && GTK_WIDGET_VISIBLE(toolbar))
gtk_widget_queue_resize(child->button);
+
+ return child->button;
}
void
@@ -530,6 +533,59 @@
}
void
+gtk_toolbar_append_widget (GtkToolbar *toolbar, const char* tooltip_text, GtkWidget *widget)
+{
+ gtk_toolbar_insert_widget(toolbar, tooltip_text, widget, toolbar->num_children);
+}
+
+void
+gtk_toolbar_prepend_widget (GtkToolbar *toolbar, const char* tooltip_text, GtkWidget *widget)
+{
+ gtk_toolbar_insert_widget(toolbar, tooltip_text, widget, 0);
+}
+
+void
+gtk_toolbar_insert_widget (GtkToolbar *toolbar, const char* tooltip_text,
+ GtkWidget *widget, gint position)
+{
+ Child *child;
+
+ g_return_if_fail(toolbar != NULL);
+ g_return_if_fail(GTK_IS_TOOLBAR(toolbar));
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(GTK_IS_WIDGET(widget));
+
+ child = g_new(Child, 1);
+
+ child->button = widget;
+ child->label = NULL;
+ child->icon = NULL;
+
+ if (tooltip_text)
+ gtk_tooltips_set_tips(toolbar->tooltips, child->button, tooltip_text);
+
+ gtk_widget_show(child->button);
+
+ toolbar->children = g_list_insert(toolbar->children, child, position);
+ toolbar->num_children++;
+
+ gtk_widget_set_parent(child->button, GTK_WIDGET(toolbar));
+
+ if (GTK_WIDGET_VISIBLE(toolbar)) {
+ if (GTK_WIDGET_REALIZED(toolbar)
+ && !GTK_WIDGET_REALIZED(child->button))
+ gtk_widget_realize(child->button);
+
+ if (GTK_WIDGET_MAPPED(toolbar)
+ && !GTK_WIDGET_MAPPED(child->button))
+ gtk_widget_map(child->button);
+ }
+
+ if (GTK_WIDGET_VISIBLE(child->button) && GTK_WIDGET_VISIBLE(toolbar))
+ gtk_widget_queue_resize(child->button);
+}
+
+void
gtk_toolbar_set_orientation(GtkToolbar *toolbar,
GtkOrientation orientation)
{
@@ -614,28 +670,28 @@
if (child)
switch (style) {
case GTK_TOOLBAR_ICONS:
- if (!GTK_WIDGET_VISIBLE(child->icon))
+ if (child->icon && !GTK_WIDGET_VISIBLE(child->icon))
gtk_widget_show(child->icon);
- if (GTK_WIDGET_VISIBLE(child->label))
+ if (child->label && GTK_WIDGET_VISIBLE(child->label))
gtk_widget_hide(child->label);
break;
case GTK_TOOLBAR_TEXT:
- if (GTK_WIDGET_VISIBLE(child->icon))
+ if (child->icon && GTK_WIDGET_VISIBLE(child->icon))
gtk_widget_hide(child->icon);
- if (!GTK_WIDGET_VISIBLE(child->label))
+ if (child->label && !GTK_WIDGET_VISIBLE(child->label))
gtk_widget_show(child->label);
break;
case GTK_TOOLBAR_BOTH:
- if (!GTK_WIDGET_VISIBLE(child->icon))
+ if (child->icon && !GTK_WIDGET_VISIBLE(child->icon))
gtk_widget_show(child->icon);
- if (!GTK_WIDGET_VISIBLE(child->label))
+ if (child->label && !GTK_WIDGET_VISIBLE(child->label))
gtk_widget_show(child->label);
break;
--- gtktoolbar.h.old Sun Jan 11 13:42:02 1998
+++ gtktoolbar.h Sun Jan 11 13:54:29 1998
@@ -73,19 +73,19 @@
GtkWidget *gtk_toolbar_new (GtkOrientation orientation,
GtkToolbarStyle style);
-void gtk_toolbar_append_item (GtkToolbar *toolbar,
+GtkWidget *gtk_toolbar_append_item (GtkToolbar *toolbar,
const char *text,
const char *tooltip_text,
GtkPixmap *icon,
GtkSignalFunc callback,
gpointer user_data);
-void gtk_toolbar_prepend_item (GtkToolbar *toolbar,
+GtkWidget *gtk_toolbar_prepend_item (GtkToolbar *toolbar,
const char *text,
const char *tooltip_text,
GtkPixmap *icon,
GtkSignalFunc callback,
gpointer user_data);
-void gtk_toolbar_insert_item (GtkToolbar *toolbar,
+GtkWidget *gtk_toolbar_insert_item (GtkToolbar *toolbar,
const char *text,
const char *tooltip_text,
GtkPixmap *icon,
@@ -95,6 +95,16 @@
void gtk_toolbar_append_space (GtkToolbar *toolbar);
void gtk_toolbar_prepend_space (GtkToolbar *toolbar);
void gtk_toolbar_insert_space (GtkToolbar *toolbar,
+ gint position);
+void gtk_toolbar_append_widget (GtkToolbar *toolbar,
+ const char *tooltip_text,
+ GtkWidget *widget);
+void gtk_toolbar_prepend_widget (GtkToolbar *toolbar,
+ const char *tooltip_text,
+ GtkWidget *widget);
+void gtk_toolbar_insert_widget (GtkToolbar *toolbar,
+ const char *tooltip_text,
+ GtkWidget *widget,
gint position);
void gtk_toolbar_set_orientation (GtkToolbar *toolbar,
--- testgtk.c.old Sun Jan 11 14:13:27 1998
+++ testgtk.c Sun Jan 11 14:15:54 1998
@@ -632,6 +632,7 @@
{
static GtkWidget *window = NULL;
GtkWidget *toolbar;
+ GtkWidget *entry;
if (!window)
{
@@ -681,6 +682,9 @@
(GtkSignalFunc) set_toolbar_both, toolbar);
gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
+
+ entry = gtk_entry_new();
+ gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), "Useless tooltip", entry);
gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
"Small", "Use small spaces",