While we're at it, lets use it some more.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41597
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#include "wx/mstream.h"
#include "wx/uri.h"
#include "wx/mstream.h"
#include "wx/uri.h"
+#include "wx/gtk/private.h"
//-------------------------------------------------------------------------
// global data
//-------------------------------------------------------------------------
// global data
wxString wxDataFormat::GetId() const
{
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 )
}
void wxDataFormat::SetId( NativeFormat format )
#include "wx/filedlg.h"
#endif
#include "wx/filedlg.h"
#endif
#include "wx/gtk/private.h"
#include <unistd.h> // chdir
#include "wx/gtk/private.h"
#include <unistd.h> // chdir
-
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// "clicked" for OK-button
//-----------------------------------------------------------------------------
extern "C" {
static void gtk_dirdialog_ok_callback(GtkWidget *widget, wxDirDialog *dialog)
{
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))
// 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)));
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject(dialog);
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject(dialog);
{
if (!gtk_check_version(2,4,0))
{
{
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();
static void gtk_filedialog_ok_callback(GtkWidget *widget, wxFileDialog *dialog)
{
int style = dialog->GetWindowStyle();
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)
// 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
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));
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject(dialog);
dialog->GetEventHandler()->ProcessEvent(event);
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);
#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 (!gtk_check_version(2,4,0))
{
{
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
}
void wxFileDialog::GetFilenames(wxArrayString& files) const
{
if (!gtk_check_version(2,4,0))
{
{
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)
}
void wxFileDialog::SetFilename(const wxString& name)
#include "wx/filepicker.h"
#include "wx/tooltip.h"
#include "wx/filepicker.h"
#include "wx/tooltip.h"
-#include <gtk/gtk.h>
-
-
+#include "wx/gtk/private.h"
// ============================================================================
// implementation
// ============================================================================
// implementation
// NB: it's important to use gtk_file_chooser_get_filename instead of
// gtk_file_chooser_get_current_folder (see GTK docs) !
// 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,
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);
// style was given.
if (p->HasFlag(wxDIRP_CHANGE_DIR))
chdir(filename);
// ...and fire an event
wxFileDirPickerEvent event(wxEVT_COMMAND_DIRPICKER_CHANGED, p, p->GetId(), p->GetPath());
// ...and fire an event
wxFileDirPickerEvent event(wxEVT_COMMAND_DIRPICKER_CHANGED, p, p->GetId(), p->GetPath());
GtkFontSelectionDialog *fontdlg = GTK_FONT_SELECTION_DIALOG(dialog->m_widget);
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);
dialog->SetChosenFont( fontname);
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK);
event.SetEventObject( dialog );
dialog->GetEventHandler()->ProcessEvent( event );
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"));
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));
int ret = strcasecmp(keycollatekey,
gtk_tree_entry_get_collate_key(entry));
g_object_unref (entry);
return ret != 0;
g_object_unref (entry);
return ret != 0;
PangoFontDescription *font_description = attr.GetFont().GetNativeFontInfo()->description;
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)
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);
"font-desc", font_description,
NULL );
gtk_text_buffer_apply_tag (text_buffer, tag, start, end);
if (attr.GetFont().GetUnderlined())
{
if (attr.GetFont().GetUnderlined())
{
gtk_text_buffer_get_start_iter( m_buffer, &start );
GtkTextIter end;
gtk_text_buffer_get_end_iter( m_buffer, &end );
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;
const wxWxCharBuffer buf = wxGTK_CONV_BACK(text);
if ( buf )
tmp = buf;
wxString wxTextCtrl::GetLineText( long lineNo ) const
{
wxString wxTextCtrl::GetLineText( long lineNo ) const
{
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);
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);
- if (lineNo == 0) return GetValue();
- return wxEmptyString;
+ if (lineNo == 0)
+ result = GetValue();
}
void wxTextCtrl::OnDropFiles( wxDropFilesEvent &WXUNUSED(event) )
}
void wxTextCtrl::OnDropFiles( wxDropFilesEvent &WXUNUSED(event) )