- /* we'll insert at the last position */
- gint len = gtk_text_get_length( GTK_TEXT(m_text) );
-#if wxUSE_UNICODE
- wxWX2MBbuf buf = text.mbc_str();
- gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len );
-#else
- gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len );
-#endif
-
- /* bring editable's cursor uptodate. bug in GTK. */
- GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) );
- }
- else
- {
- gtk_entry_append_text( GTK_ENTRY(m_text), text.mbc_str() );
- }
-
- gtk_signal_connect( GTK_OBJECT(m_text), "changed",
- GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this);
-}
-
-bool wxTextCtrl::LoadFile( const wxString &file )
-{
- wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") );
-
- if (!wxFileExists(file)) return FALSE;
-
- Clear();
-
- FILE *fp = (FILE*) NULL;
- struct stat statb;
-
- if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG ||
- !(fp = fopen (FNSTRINGCAST file.fn_str(), "r")))
- {
- return FALSE;
- }
- else
- {
- gint len = statb.st_size;
- char *text;
- if (!(text = (char*)malloc ((unsigned) (len + 1))))
- {
- fclose (fp);
- return FALSE;
- }
- if (fread (text, sizeof (char), len, fp) != (size_t) len)
+ bool hasSpecialAttributes = m_font.Ok() ||
+ m_foregroundColour.Ok() ||
+ m_backgroundColour.Ok();
+ if ( hasSpecialAttributes )