#include "wx/mstream.h"
#include "wx/uri.h"
-#include <gdk/gdk.h>
+#include "wx/gtk/private.h"
//-------------------------------------------------------------------------
// global data
wxString wxDataFormat::GetId() const
{
- gchar* atom_name = gdk_atom_name( m_format );
- wxString ret = wxString::FromAscii( atom_name );
- g_free(atom_name);
- return ret;
+ wxGtkString atom_name(gdk_atom_name(m_format));
+ return wxString::FromAscii(atom_name);
}
void wxDataFormat::SetId( NativeFormat format )
#include "wx/filedlg.h"
#endif
-#include <gtk/gtk.h>
#include "wx/gtk/private.h"
#include <unistd.h> // chdir
-
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_dirdialog_ok_callback(GtkWidget *widget, wxDirDialog *dialog)
{
- gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
-
// change to the directory where the user went if asked
if (dialog->HasFlag(wxDD_CHANGE_DIR))
+ {
+ wxGtkString filename(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)));
chdir(filename);
-
- g_free(filename);
+ }
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject(dialog);
{
if (!gtk_check_version(2,4,0))
{
- gchar *str = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER(m_widget) );
- wxString ret = wxConvFileName->cMB2WX(str);
- if (str) g_free(str);
-
- return ret;
+ wxGtkString str(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget)));
+ return wxConvFileName->cMB2WX(str);
}
- else
- return wxGenericDirDialog::GetPath();
+
+ return wxGenericDirDialog::GetPath();
}
#endif // wxUSE_DIRDLG
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetWindowStyle();
- gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
+ wxGtkString filename(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)));
// gtk version numbers must be identical with the one in ctor (that calls set_do_overwrite_confirmation)
#if GTK_CHECK_VERSION(2,7,3)
if (style & wxFD_CHANGE_DIR)
{
// Use chdir to not care about filename encodings
- gchar* folder = g_path_get_dirname(filename);
+ wxGtkString folder(g_path_get_dirname(filename));
chdir(folder);
- g_free(folder);
}
- g_free(filename);
-
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
#if GTK_CHECK_VERSION(2,4,0)
GtkWidget *preview = GTK_WIDGET(user_data);
- gchar *str = gtk_file_chooser_get_preview_filename(chooser);
- wxGtkString filename(str);
- if (str) g_free(str);
+ wxGtkString filename(gtk_file_chooser_get_preview_filename(chooser));
if ( !filename )
return;
{
if (!gtk_check_version(2,4,0))
{
- gchar *str = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget));
- wxString ret = wxConvFileName->cMB2WX(str);
- if (str) g_free(str);
-
- return ret;
+ wxGtkString str(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(m_widget)));
+ return wxConvFileName->cMB2WX(str);
}
- else
- return wxGenericFileDialog::GetPath();
+
+ return wxGenericFileDialog::GetPath();
}
void wxFileDialog::GetFilenames(wxArrayString& files) const
{
if (!gtk_check_version(2,4,0))
{
- gchar *str = gtk_file_chooser_get_current_folder( GTK_FILE_CHOOSER(m_widget) );
- wxString ret = wxConvFileName->cMB2WX(str);
- if (str) g_free(str);
-
- return ret;
+ wxGtkString str(gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(m_widget)));
+ return wxConvFileName->cMB2WX(str);
}
- else
- return wxGenericFileDialog::GetDirectory();
+
+ return wxGenericFileDialog::GetDirectory();
}
void wxFileDialog::SetFilename(const wxString& name)
#include "wx/filepicker.h"
#include "wx/tooltip.h"
-#include <gtk/gtk.h>
-
-
+#include "wx/gtk/private.h"
// ============================================================================
// implementation
// NB: it's important to use gtk_file_chooser_get_filename instead of
// gtk_file_chooser_get_current_folder (see GTK docs) !
- gchar* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
+ wxGtkString filename(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)));
p->UpdatePath(filename);
// since GtkFileChooserButton when used to pick directories also uses a combobox,
// style was given.
if (p->HasFlag(wxDIRP_CHANGE_DIR))
chdir(filename);
- g_free(filename);
// ...and fire an event
wxFileDirPickerEvent event(wxEVT_COMMAND_DIRPICKER_CHANGED, p, p->GetId(), p->GetPath());
GtkFontSelectionDialog *fontdlg = GTK_FONT_SELECTION_DIALOG(dialog->m_widget);
- gchar *fontname = gtk_font_selection_dialog_get_font_name(fontdlg);
+ wxGtkString fontname(gtk_font_selection_dialog_get_font_name(fontdlg));
dialog->SetChosenFont( fontname);
- g_free( fontname );
-
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
WXLISTBOX_DATACOLUMN_ARG(listbox),
&entry, -1);
wxCHECK_MSG(entry, 0, wxT("Could not get entry"));
- gchar* keycollatekey = g_utf8_collate_key(key, -1);
+ wxGtkString keycollatekey(g_utf8_collate_key(key, -1));
int ret = strcasecmp(keycollatekey,
gtk_tree_entry_get_collate_key(entry));
- g_free(keycollatekey);
g_object_unref (entry);
return ret != 0;
if (attr.HasFont())
{
- char *font_string;
PangoFontDescription *font_description = attr.GetFont().GetNativeFontInfo()->description;
- font_string = pango_font_description_to_string(font_description);
- g_snprintf(buf, sizeof(buf), "WXFONT %s", font_string);
+ wxGtkString font_string(pango_font_description_to_string(font_description));
+ g_snprintf(buf, sizeof(buf), "WXFONT %s", font_string.c_str());
tag = gtk_text_tag_table_lookup( gtk_text_buffer_get_tag_table( text_buffer ),
buf );
if (!tag)
"font-desc", font_description,
NULL );
gtk_text_buffer_apply_tag (text_buffer, tag, start, end);
- g_free (font_string);
if (attr.GetFont().GetUnderlined())
{
gtk_text_buffer_get_start_iter( m_buffer, &start );
GtkTextIter end;
gtk_text_buffer_get_end_iter( m_buffer, &end );
- gchar *text = gtk_text_buffer_get_text( m_buffer, &start, &end, TRUE );
+ wxGtkString text(gtk_text_buffer_get_text(m_buffer, &start, &end, true));
const wxWxCharBuffer buf = wxGTK_CONV_BACK(text);
if ( buf )
tmp = buf;
-
- g_free( text );
}
else
{
wxString wxTextCtrl::GetLineText( long lineNo ) const
{
+ wxString result;
if ( IsMultiLine() )
{
GtkTextIter line;
gtk_text_buffer_get_iter_at_line(m_buffer,&line,lineNo);
GtkTextIter end = line;
gtk_text_iter_forward_to_line_end(&end);
- gchar *text = gtk_text_buffer_get_text(m_buffer,&line,&end,TRUE);
- wxString result(wxGTK_CONV_BACK(text));
- g_free(text);
- return result;
+ wxGtkString text(gtk_text_buffer_get_text(m_buffer, &line, &end, true));
+ result = wxGTK_CONV_BACK(text);
}
else
{
- if (lineNo == 0) return GetValue();
- return wxEmptyString;
+ if (lineNo == 0)
+ result = GetValue();
}
+ return result;
}
void wxTextCtrl::OnDropFiles( wxDropFilesEvent &WXUNUSED(event) )