// encoding
wxFontEncoding GetTextEncoding() const;
+ // returns either m_text or m_buffer depending on whether the control is
+ // single- or multi-line; convenient for the GTK+ functions which work with
+ // both
+ void *GetTextObject() const
+ {
+ return IsMultiLine() ? wx_static_cast(void *, m_buffer)
+ : wx_static_cast(void *, m_text);
+ }
+
+ // the widget used for single line controls
GtkWidget *m_text;
bool m_modified:1;
return;
}
- void* blockWidget = IsMultiLine() ? (void*)m_buffer : (void*)m_text;
- g_signal_handlers_block_by_func(blockWidget,
- (gpointer)gtk_text_changed_callback, this);
+ if ( !(flags & SetValue_SendEvent) )
+ {
+ g_signal_handlers_block_by_func(GetTextObject(),
+ (gpointer)gtk_text_changed_callback, this);
+ }
+
if ( IsMultiLine() )
{
gtk_text_buffer_set_text( m_buffer, buffer, strlen(buffer) );
&start, &end);
}
}
- else
+ else // single line
{
gtk_entry_set_text( GTK_ENTRY(m_text), buffer );
}
- g_signal_handlers_unblock_by_func(blockWidget,
- (gpointer)gtk_text_changed_callback, this);
+
+ if ( !(flags & SetValue_SendEvent) )
+ {
+ g_signal_handlers_unblock_by_func(GetTextObject(),
+ (gpointer)gtk_text_changed_callback, this);
+ }
// This was added after discussion on the list
SetInsertionPoint(0);