no real changes, just remove unnecessary indentation and scoping after r72001
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -134,111 +134,109 @@ static void wxGtkAboutDialogOnLink(GtkAboutDialog*, const char* link, void*)
|
||||
|
||||
void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* WXUNUSED(parent))
|
||||
{
|
||||
// don't create another dialog if one is already present
|
||||
if ( !gs_aboutDialog )
|
||||
gs_aboutDialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new());
|
||||
|
||||
GtkAboutDialog * const dlg = gs_aboutDialog;
|
||||
gtk_about_dialog_set_program_name(dlg, wxGTK_CONV_SYS(info.GetName()));
|
||||
if ( info.HasVersion() )
|
||||
gtk_about_dialog_set_version(dlg, wxGTK_CONV_SYS(info.GetVersion()));
|
||||
else
|
||||
gtk_about_dialog_set_version(dlg, NULL);
|
||||
if ( info.HasCopyright() )
|
||||
gtk_about_dialog_set_copyright(dlg, wxGTK_CONV_SYS(info.GetCopyrightToDisplay()));
|
||||
else
|
||||
gtk_about_dialog_set_copyright(dlg, NULL);
|
||||
if ( info.HasDescription() )
|
||||
gtk_about_dialog_set_comments(dlg, wxGTK_CONV_SYS(info.GetDescription()));
|
||||
else
|
||||
gtk_about_dialog_set_comments(dlg, NULL);
|
||||
if ( info.HasLicence() )
|
||||
gtk_about_dialog_set_license(dlg, wxGTK_CONV_SYS(info.GetLicence()));
|
||||
else
|
||||
gtk_about_dialog_set_license(dlg, NULL);
|
||||
|
||||
wxIcon icon = info.GetIcon();
|
||||
if ( icon.IsOk() )
|
||||
gtk_about_dialog_set_logo(dlg, info.GetIcon().GetPixbuf());
|
||||
|
||||
if ( info.HasWebSite() )
|
||||
{
|
||||
// don't create another dialog if one is already present
|
||||
if ( !gs_aboutDialog )
|
||||
gs_aboutDialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new());
|
||||
|
||||
GtkAboutDialog * const dlg = gs_aboutDialog;
|
||||
gtk_about_dialog_set_program_name(dlg, wxGTK_CONV_SYS(info.GetName()));
|
||||
if ( info.HasVersion() )
|
||||
gtk_about_dialog_set_version(dlg, wxGTK_CONV_SYS(info.GetVersion()));
|
||||
else
|
||||
gtk_about_dialog_set_version(dlg, NULL);
|
||||
if ( info.HasCopyright() )
|
||||
gtk_about_dialog_set_copyright(dlg, wxGTK_CONV_SYS(info.GetCopyrightToDisplay()));
|
||||
else
|
||||
gtk_about_dialog_set_copyright(dlg, NULL);
|
||||
if ( info.HasDescription() )
|
||||
gtk_about_dialog_set_comments(dlg, wxGTK_CONV_SYS(info.GetDescription()));
|
||||
else
|
||||
gtk_about_dialog_set_comments(dlg, NULL);
|
||||
if ( info.HasLicence() )
|
||||
gtk_about_dialog_set_license(dlg, wxGTK_CONV_SYS(info.GetLicence()));
|
||||
else
|
||||
gtk_about_dialog_set_license(dlg, NULL);
|
||||
|
||||
wxIcon icon = info.GetIcon();
|
||||
if ( icon.IsOk() )
|
||||
gtk_about_dialog_set_logo(dlg, info.GetIcon().GetPixbuf());
|
||||
|
||||
if ( info.HasWebSite() )
|
||||
{
|
||||
#ifdef __WXGTK3__
|
||||
g_signal_connect(dlg, "activate-link", G_CALLBACK(activate_link), dlg);
|
||||
g_signal_connect(dlg, "activate-link", G_CALLBACK(activate_link), dlg);
|
||||
#else
|
||||
// NB: must be called before gtk_about_dialog_set_website() as
|
||||
// otherwise it has no effect (although GTK+ docs don't mention
|
||||
// this...)
|
||||
gtk_about_dialog_set_url_hook(wxGtkAboutDialogOnLink, NULL, NULL);
|
||||
// NB: must be called before gtk_about_dialog_set_website() as
|
||||
// otherwise it has no effect (although GTK+ docs don't mention
|
||||
// this...)
|
||||
gtk_about_dialog_set_url_hook(wxGtkAboutDialogOnLink, NULL, NULL);
|
||||
#endif
|
||||
|
||||
gtk_about_dialog_set_website(dlg, wxGTK_CONV_SYS(info.GetWebSiteURL()));
|
||||
gtk_about_dialog_set_website_label
|
||||
(
|
||||
dlg,
|
||||
wxGTK_CONV_SYS(info.GetWebSiteDescription())
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_about_dialog_set_website(dlg, NULL);
|
||||
gtk_about_dialog_set_website_label(dlg, NULL);
|
||||
#ifdef __WXGTK3__
|
||||
g_signal_connect(dlg, "activate-link", G_CALLBACK(activate_link), NULL);
|
||||
#else
|
||||
gtk_about_dialog_set_url_hook(NULL, NULL, NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( info.HasDevelopers() )
|
||||
gtk_about_dialog_set_authors(dlg, GtkArray(info.GetDevelopers()));
|
||||
else
|
||||
gtk_about_dialog_set_authors(dlg, GtkArray());
|
||||
if ( info.HasDocWriters() )
|
||||
gtk_about_dialog_set_documenters(dlg, GtkArray(info.GetDocWriters()));
|
||||
else
|
||||
gtk_about_dialog_set_documenters(dlg, GtkArray());
|
||||
if ( info.HasArtists() )
|
||||
gtk_about_dialog_set_artists(dlg, GtkArray(info.GetArtists()));
|
||||
else
|
||||
gtk_about_dialog_set_artists(dlg, GtkArray());
|
||||
|
||||
wxString transCredits;
|
||||
if ( info.HasTranslators() )
|
||||
{
|
||||
const wxArrayString& translators = info.GetTranslators();
|
||||
const size_t count = translators.size();
|
||||
for ( size_t n = 0; n < count; n++ )
|
||||
{
|
||||
transCredits << translators[n] << wxT('\n');
|
||||
}
|
||||
}
|
||||
else // no translators explicitly specified
|
||||
{
|
||||
// maybe we have translator credits in the message catalog?
|
||||
wxString translator = _("translator-credits");
|
||||
|
||||
// gtk_about_dialog_set_translator_credits() is smart enough to
|
||||
// detect if "translator-credits" is untranslated and hide the
|
||||
// translators tab in that case, however it will still show the
|
||||
// "credits" button, (at least GTK 2.10.6) even if there are no
|
||||
// credits informations at all, so we still need to do the check
|
||||
// ourselves
|
||||
if ( translator != wxT("translator-credits") ) // untranslated!
|
||||
transCredits = translator;
|
||||
}
|
||||
|
||||
if ( !transCredits.empty() )
|
||||
gtk_about_dialog_set_translator_credits(dlg, wxGTK_CONV_SYS(transCredits));
|
||||
else
|
||||
gtk_about_dialog_set_translator_credits(dlg, NULL);
|
||||
|
||||
g_signal_connect(dlg, "response",
|
||||
G_CALLBACK(wxGtkAboutDialogOnClose), NULL);
|
||||
|
||||
gtk_window_present(GTK_WINDOW(dlg));
|
||||
gtk_about_dialog_set_website(dlg, wxGTK_CONV_SYS(info.GetWebSiteURL()));
|
||||
gtk_about_dialog_set_website_label
|
||||
(
|
||||
dlg,
|
||||
wxGTK_CONV_SYS(info.GetWebSiteDescription())
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_about_dialog_set_website(dlg, NULL);
|
||||
gtk_about_dialog_set_website_label(dlg, NULL);
|
||||
#ifdef __WXGTK3__
|
||||
g_signal_connect(dlg, "activate-link", G_CALLBACK(activate_link), NULL);
|
||||
#else
|
||||
gtk_about_dialog_set_url_hook(NULL, NULL, NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( info.HasDevelopers() )
|
||||
gtk_about_dialog_set_authors(dlg, GtkArray(info.GetDevelopers()));
|
||||
else
|
||||
gtk_about_dialog_set_authors(dlg, GtkArray());
|
||||
if ( info.HasDocWriters() )
|
||||
gtk_about_dialog_set_documenters(dlg, GtkArray(info.GetDocWriters()));
|
||||
else
|
||||
gtk_about_dialog_set_documenters(dlg, GtkArray());
|
||||
if ( info.HasArtists() )
|
||||
gtk_about_dialog_set_artists(dlg, GtkArray(info.GetArtists()));
|
||||
else
|
||||
gtk_about_dialog_set_artists(dlg, GtkArray());
|
||||
|
||||
wxString transCredits;
|
||||
if ( info.HasTranslators() )
|
||||
{
|
||||
const wxArrayString& translators = info.GetTranslators();
|
||||
const size_t count = translators.size();
|
||||
for ( size_t n = 0; n < count; n++ )
|
||||
{
|
||||
transCredits << translators[n] << wxT('\n');
|
||||
}
|
||||
}
|
||||
else // no translators explicitly specified
|
||||
{
|
||||
// maybe we have translator credits in the message catalog?
|
||||
wxString translator = _("translator-credits");
|
||||
|
||||
// gtk_about_dialog_set_translator_credits() is smart enough to
|
||||
// detect if "translator-credits" is untranslated and hide the
|
||||
// translators tab in that case, however it will still show the
|
||||
// "credits" button, (at least GTK 2.10.6) even if there are no
|
||||
// credits informations at all, so we still need to do the check
|
||||
// ourselves
|
||||
if ( translator != wxT("translator-credits") ) // untranslated!
|
||||
transCredits = translator;
|
||||
}
|
||||
|
||||
if ( !transCredits.empty() )
|
||||
gtk_about_dialog_set_translator_credits(dlg, wxGTK_CONV_SYS(transCredits));
|
||||
else
|
||||
gtk_about_dialog_set_translator_credits(dlg, NULL);
|
||||
|
||||
g_signal_connect(dlg, "response",
|
||||
G_CALLBACK(wxGtkAboutDialogOnClose), NULL);
|
||||
|
||||
gtk_window_present(GTK_WINDOW(dlg));
|
||||
}
|
||||
|
||||
#endif // wxUSE_ABOUTDLG
|
||||
|
@@ -178,9 +178,7 @@ void wxAnyButton::GTKDoShowBitmap(const wxBitmap& bitmap)
|
||||
}
|
||||
else // have both label and bitmap
|
||||
{
|
||||
{
|
||||
image = gtk_button_get_image(GTK_BUTTON(m_widget));
|
||||
}
|
||||
image = gtk_button_get_image(GTK_BUTTON(m_widget));
|
||||
}
|
||||
|
||||
wxCHECK_RET( image && GTK_IS_IMAGE(image), "must have image widget" );
|
||||
|
@@ -327,27 +327,25 @@ wxGTK2ArtProvider::CreateIconBundle(const wxArtID& id,
|
||||
}
|
||||
|
||||
// otherwise try icon themes
|
||||
{
|
||||
gint *sizes = gtk_icon_theme_get_icon_sizes
|
||||
(
|
||||
gtk_icon_theme_get_default(),
|
||||
stockid.utf8_str()
|
||||
);
|
||||
if ( !sizes )
|
||||
return bundle;
|
||||
gint *sizes = gtk_icon_theme_get_icon_sizes
|
||||
(
|
||||
gtk_icon_theme_get_default(),
|
||||
stockid.utf8_str()
|
||||
);
|
||||
if ( !sizes )
|
||||
return bundle;
|
||||
|
||||
gint *last = sizes;
|
||||
while ( *last )
|
||||
last++;
|
||||
gint *last = sizes;
|
||||
while ( *last )
|
||||
last++;
|
||||
|
||||
bundle = DoCreateIconBundle
|
||||
(
|
||||
stockid.utf8_str(),
|
||||
sizes, last,
|
||||
&CreateThemeIcon
|
||||
);
|
||||
g_free(sizes);
|
||||
}
|
||||
bundle = DoCreateIconBundle
|
||||
(
|
||||
stockid.utf8_str(),
|
||||
sizes, last,
|
||||
&CreateThemeIcon
|
||||
);
|
||||
g_free(sizes);
|
||||
|
||||
return bundle;
|
||||
}
|
||||
|
@@ -2534,26 +2534,23 @@ wxDataViewProgressRenderer::wxDataViewProgressRenderer( const wxString &label,
|
||||
{
|
||||
m_label = label;
|
||||
m_value = 0;
|
||||
m_renderer = (GtkCellRenderer*) gtk_cell_renderer_progress_new();
|
||||
|
||||
{
|
||||
m_renderer = (GtkCellRenderer*) gtk_cell_renderer_progress_new();
|
||||
|
||||
SetMode(mode);
|
||||
SetAlignment(align);
|
||||
SetMode(mode);
|
||||
SetAlignment(align);
|
||||
|
||||
#if !wxUSE_UNICODE
|
||||
// We can't initialize the renderer just yet because we don't have the
|
||||
// pointer to the column that uses this renderer yet and so attempt to
|
||||
// dereference GetOwner() to get the font that is used as a source of
|
||||
// encoding in multibyte-to-Unicode conversion in GTKSetLabel() in
|
||||
// non-Unicode builds would crash. So simply remember to do it later.
|
||||
if ( !m_label.empty() )
|
||||
m_needsToSetLabel = true;
|
||||
else
|
||||
// We can't initialize the renderer just yet because we don't have the
|
||||
// pointer to the column that uses this renderer yet and so attempt to
|
||||
// dereference GetOwner() to get the font that is used as a source of
|
||||
// encoding in multibyte-to-Unicode conversion in GTKSetLabel() in
|
||||
// non-Unicode builds would crash. So simply remember to do it later.
|
||||
if ( !m_label.empty() )
|
||||
m_needsToSetLabel = true;
|
||||
else
|
||||
#endif // !wxUSE_UNICODE
|
||||
{
|
||||
GTKSetLabel();
|
||||
}
|
||||
{
|
||||
GTKSetLabel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2585,19 +2582,17 @@ void wxDataViewProgressRenderer::GTKSetLabel()
|
||||
|
||||
bool wxDataViewProgressRenderer::SetValue( const wxVariant &value )
|
||||
{
|
||||
{
|
||||
#if !wxUSE_UNICODE
|
||||
if ( m_needsToSetLabel )
|
||||
GTKSetLabel();
|
||||
if ( m_needsToSetLabel )
|
||||
GTKSetLabel();
|
||||
#endif // !wxUSE_UNICODE
|
||||
|
||||
gint tmp = (long) value;
|
||||
GValue gvalue = { 0, };
|
||||
g_value_init( &gvalue, G_TYPE_INT );
|
||||
g_value_set_int( &gvalue, tmp );
|
||||
g_object_set_property( G_OBJECT(m_renderer), "value", &gvalue );
|
||||
g_value_unset( &gvalue );
|
||||
}
|
||||
gint tmp = (long) value;
|
||||
GValue gvalue = { 0, };
|
||||
g_value_init( &gvalue, G_TYPE_INT );
|
||||
g_value_set_int( &gvalue, tmp );
|
||||
g_object_set_property( G_OBJECT(m_renderer), "value", &gvalue );
|
||||
g_value_unset( &gvalue );
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -2636,34 +2631,30 @@ wxDataViewChoiceRenderer::wxDataViewChoiceRenderer( const wxArrayString &choices
|
||||
wxDataViewCellMode mode, int alignment ) :
|
||||
wxDataViewCustomRenderer( "string", mode, alignment, true )
|
||||
{
|
||||
m_choices = choices;
|
||||
|
||||
m_choices = choices;
|
||||
m_renderer = (GtkCellRenderer*) gtk_cell_renderer_combo_new();
|
||||
GtkListStore *store = gtk_list_store_new( 1, G_TYPE_STRING );
|
||||
for (size_t n = 0; n < m_choices.GetCount(); n++)
|
||||
{
|
||||
m_renderer = (GtkCellRenderer*) gtk_cell_renderer_combo_new();
|
||||
|
||||
GtkListStore *store = gtk_list_store_new( 1, G_TYPE_STRING );
|
||||
for (size_t n = 0; n < m_choices.GetCount(); n++)
|
||||
{
|
||||
gtk_list_store_insert_with_values(
|
||||
store, NULL, n, 0,
|
||||
static_cast<const char *>(m_choices[n].utf8_str()), -1 );
|
||||
}
|
||||
|
||||
g_object_set (m_renderer,
|
||||
"model", store,
|
||||
"text-column", 0,
|
||||
"has-entry", FALSE,
|
||||
NULL);
|
||||
|
||||
bool editable = (mode & wxDATAVIEW_CELL_EDITABLE) != 0;
|
||||
g_object_set (m_renderer, "editable", editable, NULL);
|
||||
|
||||
SetAlignment(alignment);
|
||||
|
||||
g_signal_connect_after( m_renderer, "edited", G_CALLBACK(wxGtkTextRendererEditedCallback), this );
|
||||
|
||||
GtkInitHandlers();
|
||||
gtk_list_store_insert_with_values(
|
||||
store, NULL, n, 0,
|
||||
static_cast<const char *>(m_choices[n].utf8_str()), -1 );
|
||||
}
|
||||
|
||||
g_object_set (m_renderer,
|
||||
"model", store,
|
||||
"text-column", 0,
|
||||
"has-entry", FALSE,
|
||||
NULL);
|
||||
|
||||
bool editable = (mode & wxDATAVIEW_CELL_EDITABLE) != 0;
|
||||
g_object_set (m_renderer, "editable", editable, NULL);
|
||||
|
||||
SetAlignment(alignment);
|
||||
|
||||
g_signal_connect_after( m_renderer, "edited", G_CALLBACK(wxGtkTextRendererEditedCallback), this );
|
||||
|
||||
GtkInitHandlers();
|
||||
}
|
||||
|
||||
bool wxDataViewChoiceRenderer::Render( wxRect rect, wxDC *dc, int state )
|
||||
@@ -2679,34 +2670,26 @@ wxSize wxDataViewChoiceRenderer::GetSize() const
|
||||
|
||||
bool wxDataViewChoiceRenderer::SetValue( const wxVariant &value )
|
||||
{
|
||||
|
||||
{
|
||||
GValue gvalue = { 0, };
|
||||
g_value_init( &gvalue, G_TYPE_STRING );
|
||||
g_value_set_string(&gvalue,
|
||||
wxGTK_CONV_FONT(value.GetString(),
|
||||
GetOwner()->GetOwner()->GetFont()));
|
||||
g_object_set_property( G_OBJECT(m_renderer), "text", &gvalue );
|
||||
g_value_unset( &gvalue );
|
||||
}
|
||||
GValue gvalue = { 0, };
|
||||
g_value_init( &gvalue, G_TYPE_STRING );
|
||||
g_value_set_string(&gvalue,
|
||||
wxGTK_CONV_FONT(value.GetString(),
|
||||
GetOwner()->GetOwner()->GetFont()));
|
||||
g_object_set_property( G_OBJECT(m_renderer), "text", &gvalue );
|
||||
g_value_unset( &gvalue );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool wxDataViewChoiceRenderer::GetValue( wxVariant &value ) const
|
||||
{
|
||||
{
|
||||
GValue gvalue = { 0, };
|
||||
g_value_init( &gvalue, G_TYPE_STRING );
|
||||
g_object_get_property( G_OBJECT(m_renderer), "text", &gvalue );
|
||||
wxString temp = wxGTK_CONV_BACK_FONT(g_value_get_string(&gvalue),
|
||||
GetOwner()->GetOwner()->GetFont());
|
||||
g_value_unset( &gvalue );
|
||||
value = temp;
|
||||
|
||||
//wxPrintf( "temp %s\n", temp );
|
||||
// TODO: remove this code
|
||||
}
|
||||
GValue gvalue = { 0, };
|
||||
g_value_init( &gvalue, G_TYPE_STRING );
|
||||
g_object_get_property( G_OBJECT(m_renderer), "text", &gvalue );
|
||||
wxString temp = wxGTK_CONV_BACK_FONT(g_value_get_string(&gvalue),
|
||||
GetOwner()->GetOwner()->GetFont());
|
||||
g_value_unset( &gvalue );
|
||||
value = temp;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -4524,10 +4507,8 @@ bool wxDataViewCtrl::Create(wxWindow *parent,
|
||||
g_signal_connect (m_treeview, "size_allocate",
|
||||
G_CALLBACK (gtk_dataviewctrl_size_callback), this);
|
||||
|
||||
{
|
||||
bool fixed = (style & wxDV_VARIABLE_LINE_HEIGHT) == 0;
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), fixed );
|
||||
}
|
||||
bool fixed = (style & wxDV_VARIABLE_LINE_HEIGHT) == 0;
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), fixed );
|
||||
|
||||
if (style & wxDV_MULTIPLE)
|
||||
{
|
||||
@@ -4633,10 +4614,8 @@ bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model )
|
||||
if (!wxDataViewCtrlBase::AssociateModel( model ))
|
||||
return false;
|
||||
|
||||
{
|
||||
bool fixed = (((GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT) == 0) || (model->IsVirtualListModel()));
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), fixed );
|
||||
}
|
||||
bool fixed = (((GetWindowStyle() & wxDV_VARIABLE_LINE_HEIGHT) == 0) || (model->IsVirtualListModel()));
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), fixed );
|
||||
|
||||
m_internal = new wxDataViewCtrlInternal( this, model );
|
||||
|
||||
@@ -4660,10 +4639,10 @@ bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
|
||||
|
||||
m_cols.Append( col );
|
||||
|
||||
if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
|
||||
GTK_TREE_VIEW_COLUMN_FIXED)
|
||||
{
|
||||
if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
|
||||
GTK_TREE_VIEW_COLUMN_FIXED)
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
|
||||
}
|
||||
|
||||
gtk_tree_view_append_column( GTK_TREE_VIEW(m_treeview),
|
||||
@@ -4679,10 +4658,10 @@ bool wxDataViewCtrl::PrependColumn( wxDataViewColumn *col )
|
||||
|
||||
m_cols.Insert( col );
|
||||
|
||||
if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
|
||||
GTK_TREE_VIEW_COLUMN_FIXED)
|
||||
{
|
||||
if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
|
||||
GTK_TREE_VIEW_COLUMN_FIXED)
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
|
||||
}
|
||||
|
||||
gtk_tree_view_insert_column( GTK_TREE_VIEW(m_treeview),
|
||||
@@ -4698,10 +4677,10 @@ bool wxDataViewCtrl::InsertColumn( unsigned int pos, wxDataViewColumn *col )
|
||||
|
||||
m_cols.Insert( pos, col );
|
||||
|
||||
if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
|
||||
GTK_TREE_VIEW_COLUMN_FIXED)
|
||||
{
|
||||
if (gtk_tree_view_column_get_sizing( GTK_TREE_VIEW_COLUMN(col->GetGtkHandle()) ) !=
|
||||
GTK_TREE_VIEW_COLUMN_FIXED)
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
|
||||
gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(m_treeview), FALSE );
|
||||
}
|
||||
|
||||
gtk_tree_view_insert_column( GTK_TREE_VIEW(m_treeview),
|
||||
|
@@ -1451,82 +1451,80 @@ void wxWindowDCImpl::DoDrawRotatedText( const wxString &text, wxCoord x, wxCoord
|
||||
|
||||
wxCHECK_RET( IsOk(), wxT("invalid window dc") );
|
||||
|
||||
x = XLOG2DEV(x);
|
||||
y = YLOG2DEV(y);
|
||||
|
||||
pango_layout_set_text(m_layout, wxGTK_CONV(text), -1);
|
||||
const bool setAttrs = m_font.GTKSetPangoAttrs(m_layout);
|
||||
int oldSize = 0;
|
||||
const bool isScaled = fabs(m_scaleY - 1.0) > 0.00001;
|
||||
if (isScaled)
|
||||
{
|
||||
x = XLOG2DEV(x);
|
||||
y = YLOG2DEV(y);
|
||||
//TODO: when Pango >= 1.6 is required, use pango_matrix_scale()
|
||||
// If there is a user or actually any scale applied to
|
||||
// the device context, scale the font.
|
||||
|
||||
pango_layout_set_text(m_layout, wxGTK_CONV(text), -1);
|
||||
const bool setAttrs = m_font.GTKSetPangoAttrs(m_layout);
|
||||
int oldSize = 0;
|
||||
const bool isScaled = fabs(m_scaleY - 1.0) > 0.00001;
|
||||
if (isScaled)
|
||||
{
|
||||
//TODO: when Pango >= 1.6 is required, use pango_matrix_scale()
|
||||
// If there is a user or actually any scale applied to
|
||||
// the device context, scale the font.
|
||||
// scale font description
|
||||
oldSize = pango_font_description_get_size(m_fontdesc);
|
||||
pango_font_description_set_size(m_fontdesc, int(oldSize * m_scaleY));
|
||||
|
||||
// scale font description
|
||||
oldSize = pango_font_description_get_size(m_fontdesc);
|
||||
pango_font_description_set_size(m_fontdesc, int(oldSize * m_scaleY));
|
||||
|
||||
// actually apply scaled font
|
||||
pango_layout_set_font_description( m_layout, m_fontdesc );
|
||||
}
|
||||
|
||||
int w, h;
|
||||
pango_layout_get_pixel_size(m_layout, &w, &h);
|
||||
|
||||
const GdkColor* bg_col = NULL;
|
||||
if (m_backgroundMode == wxBRUSHSTYLE_SOLID)
|
||||
bg_col = m_textBackgroundColour.GetColor();
|
||||
|
||||
// rotate the text
|
||||
PangoMatrix matrix = PANGO_MATRIX_INIT;
|
||||
pango_matrix_rotate (&matrix, angle);
|
||||
pango_context_set_matrix (m_context, &matrix);
|
||||
pango_layout_context_changed (m_layout);
|
||||
|
||||
// To be compatible with MSW, the rotation axis must be in the old
|
||||
// top-left corner.
|
||||
// Calculate the vertices of the rotated rectangle containing the text,
|
||||
// relative to the old top-left vertex.
|
||||
// We could use the matrix for this, but it's simpler with trignonometry.
|
||||
double rad = DegToRad(angle);
|
||||
// the rectangle vertices are counted clockwise with the first one
|
||||
// being at (0, 0)
|
||||
double x2 = w * cos(rad);
|
||||
double y2 = -w * sin(rad); // y axis points to the bottom, hence minus
|
||||
double x4 = h * sin(rad);
|
||||
double y4 = h * cos(rad);
|
||||
double x3 = x4 + x2;
|
||||
double y3 = y4 + y2;
|
||||
// Then we calculate max and min of the rotated rectangle.
|
||||
wxCoord maxX = (wxCoord)(dmax(dmax(0, x2), dmax(x3, x4)) + 0.5),
|
||||
maxY = (wxCoord)(dmax(dmax(0, y2), dmax(y3, y4)) + 0.5),
|
||||
minX = (wxCoord)(dmin(dmin(0, x2), dmin(x3, x4)) - 0.5),
|
||||
minY = (wxCoord)(dmin(dmin(0, y2), dmin(y3, y4)) - 0.5);
|
||||
|
||||
gdk_draw_layout_with_colors(m_gdkwindow, m_textGC, x+minX, y+minY,
|
||||
m_layout, NULL, bg_col);
|
||||
|
||||
if (setAttrs)
|
||||
pango_layout_set_attributes(m_layout, NULL);
|
||||
|
||||
// clean up the transformation matrix
|
||||
pango_context_set_matrix(m_context, NULL);
|
||||
|
||||
if (isScaled)
|
||||
{
|
||||
// reset unscaled size
|
||||
pango_font_description_set_size( m_fontdesc, oldSize );
|
||||
|
||||
// actually apply unscaled font
|
||||
pango_layout_set_font_description( m_layout, m_fontdesc );
|
||||
}
|
||||
|
||||
CalcBoundingBox(x+minX, y+minY);
|
||||
CalcBoundingBox(x+maxX, y+maxY);
|
||||
// actually apply scaled font
|
||||
pango_layout_set_font_description( m_layout, m_fontdesc );
|
||||
}
|
||||
|
||||
int w, h;
|
||||
pango_layout_get_pixel_size(m_layout, &w, &h);
|
||||
|
||||
const GdkColor* bg_col = NULL;
|
||||
if (m_backgroundMode == wxBRUSHSTYLE_SOLID)
|
||||
bg_col = m_textBackgroundColour.GetColor();
|
||||
|
||||
// rotate the text
|
||||
PangoMatrix matrix = PANGO_MATRIX_INIT;
|
||||
pango_matrix_rotate (&matrix, angle);
|
||||
pango_context_set_matrix (m_context, &matrix);
|
||||
pango_layout_context_changed (m_layout);
|
||||
|
||||
// To be compatible with MSW, the rotation axis must be in the old
|
||||
// top-left corner.
|
||||
// Calculate the vertices of the rotated rectangle containing the text,
|
||||
// relative to the old top-left vertex.
|
||||
// We could use the matrix for this, but it's simpler with trignonometry.
|
||||
double rad = DegToRad(angle);
|
||||
// the rectangle vertices are counted clockwise with the first one
|
||||
// being at (0, 0)
|
||||
double x2 = w * cos(rad);
|
||||
double y2 = -w * sin(rad); // y axis points to the bottom, hence minus
|
||||
double x4 = h * sin(rad);
|
||||
double y4 = h * cos(rad);
|
||||
double x3 = x4 + x2;
|
||||
double y3 = y4 + y2;
|
||||
// Then we calculate max and min of the rotated rectangle.
|
||||
wxCoord maxX = (wxCoord)(dmax(dmax(0, x2), dmax(x3, x4)) + 0.5),
|
||||
maxY = (wxCoord)(dmax(dmax(0, y2), dmax(y3, y4)) + 0.5),
|
||||
minX = (wxCoord)(dmin(dmin(0, x2), dmin(x3, x4)) - 0.5),
|
||||
minY = (wxCoord)(dmin(dmin(0, y2), dmin(y3, y4)) - 0.5);
|
||||
|
||||
gdk_draw_layout_with_colors(m_gdkwindow, m_textGC, x+minX, y+minY,
|
||||
m_layout, NULL, bg_col);
|
||||
|
||||
if (setAttrs)
|
||||
pango_layout_set_attributes(m_layout, NULL);
|
||||
|
||||
// clean up the transformation matrix
|
||||
pango_context_set_matrix(m_context, NULL);
|
||||
|
||||
if (isScaled)
|
||||
{
|
||||
// reset unscaled size
|
||||
pango_font_description_set_size( m_fontdesc, oldSize );
|
||||
|
||||
// actually apply unscaled font
|
||||
pango_layout_set_font_description( m_layout, m_fontdesc );
|
||||
}
|
||||
|
||||
CalcBoundingBox(x+minX, y+minY);
|
||||
CalcBoundingBox(x+maxX, y+maxY);
|
||||
}
|
||||
|
||||
void wxWindowDCImpl::DoGetTextExtent(const wxString &string,
|
||||
|
@@ -72,18 +72,16 @@ bool wxStaticText::Create(wxWindow *parent,
|
||||
|
||||
gtk_label_set_justify(GTK_LABEL(m_widget), justify);
|
||||
|
||||
{
|
||||
// set ellipsize mode
|
||||
PangoEllipsizeMode ellipsizeMode = PANGO_ELLIPSIZE_NONE;
|
||||
if ( style & wxST_ELLIPSIZE_START )
|
||||
ellipsizeMode = PANGO_ELLIPSIZE_START;
|
||||
else if ( style & wxST_ELLIPSIZE_MIDDLE )
|
||||
ellipsizeMode = PANGO_ELLIPSIZE_MIDDLE;
|
||||
else if ( style & wxST_ELLIPSIZE_END )
|
||||
ellipsizeMode = PANGO_ELLIPSIZE_END;
|
||||
// set ellipsize mode
|
||||
PangoEllipsizeMode ellipsizeMode = PANGO_ELLIPSIZE_NONE;
|
||||
if ( style & wxST_ELLIPSIZE_START )
|
||||
ellipsizeMode = PANGO_ELLIPSIZE_START;
|
||||
else if ( style & wxST_ELLIPSIZE_MIDDLE )
|
||||
ellipsizeMode = PANGO_ELLIPSIZE_MIDDLE;
|
||||
else if ( style & wxST_ELLIPSIZE_END )
|
||||
ellipsizeMode = PANGO_ELLIPSIZE_END;
|
||||
|
||||
gtk_label_set_ellipsize( GTK_LABEL(m_widget), ellipsizeMode );
|
||||
}
|
||||
gtk_label_set_ellipsize( GTK_LABEL(m_widget), ellipsizeMode );
|
||||
|
||||
// GTK_JUSTIFY_LEFT is 0, RIGHT 1 and CENTER 2
|
||||
static const float labelAlignments[] = { 0.0, 1.0, 0.5 };
|
||||
@@ -106,9 +104,7 @@ void wxStaticText::GTKDoSetLabel(GTKLabelSetter setter, const wxString& label)
|
||||
|
||||
InvalidateBestSize();
|
||||
|
||||
{
|
||||
(this->*setter)(GTK_LABEL(m_widget), label);
|
||||
}
|
||||
(this->*setter)(GTK_LABEL(m_widget), label);
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if ( !HasFlag(wxST_NO_AUTORESIZE) &&
|
||||
|
@@ -354,10 +354,8 @@ gtk_frame_map_callback( GtkWidget*,
|
||||
win->GetEventHandler()->ProcessEvent(eventShow);
|
||||
}
|
||||
|
||||
{
|
||||
// restore focus-on-map setting in case ShowWithoutActivating() was called
|
||||
gtk_window_set_focus_on_map(GTK_WINDOW(win->m_widget), true);
|
||||
}
|
||||
// restore focus-on-map setting in case ShowWithoutActivating() was called
|
||||
gtk_window_set_focus_on_map(GTK_WINDOW(win->m_widget), true);
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -972,8 +970,7 @@ void wxTopLevelWindowGTK::ShowWithoutActivating()
|
||||
{
|
||||
if (!m_isShown)
|
||||
{
|
||||
gtk_window_set_focus_on_map(GTK_WINDOW(m_widget), false);
|
||||
|
||||
gtk_window_set_focus_on_map(GTK_WINDOW(m_widget), false);
|
||||
Show(true);
|
||||
}
|
||||
}
|
||||
|
@@ -469,39 +469,35 @@ wxGUIAppTraits::GetStandardCmdLineOptions(wxArrayString& names,
|
||||
{
|
||||
wxString usage;
|
||||
|
||||
// check whether GLib version is greater than 2.6 but also lower than 2.33
|
||||
// because, as we use the undocumented _GOptionGroup struct, we don't want
|
||||
// to run this code with future versions which might change it (2.32 is the
|
||||
// latest one at the time of this writing)
|
||||
if (glib_check_version(2,33,0))
|
||||
{
|
||||
// since GTK>=2.6, we can use the glib_check_version() symbol...
|
||||
usage << _("The following standard GTK+ options are also supported:\n");
|
||||
|
||||
// check whether GLib version is greater than 2.6 but also lower than 2.33
|
||||
// because, as we use the undocumented _GOptionGroup struct, we don't want
|
||||
// to run this code with future versions which might change it (2.32 is the
|
||||
// latest one at the time of this writing)
|
||||
if (glib_check_version(2,33,0))
|
||||
// passing true here means that the function can open the default
|
||||
// display while parsing (not really used here anyhow)
|
||||
GOptionGroup *gtkOpts = gtk_get_option_group(true);
|
||||
|
||||
// WARNING: here we access the internals of GOptionGroup:
|
||||
GOptionEntry *entries = ((_GOptionGroup*)gtkOpts)->entries;
|
||||
unsigned int n_entries = ((_GOptionGroup*)gtkOpts)->n_entries;
|
||||
wxArrayString namesOptions, descOptions;
|
||||
|
||||
for ( size_t n = 0; n < n_entries; n++ )
|
||||
{
|
||||
usage << _("The following standard GTK+ options are also supported:\n");
|
||||
if ( entries[n].flags & G_OPTION_FLAG_HIDDEN )
|
||||
continue; // skip
|
||||
|
||||
// passing true here means that the function can open the default
|
||||
// display while parsing (not really used here anyhow)
|
||||
GOptionGroup *gtkOpts = gtk_get_option_group(true);
|
||||
names.push_back(wxGetNameFromGtkOptionEntry(&entries[n]));
|
||||
|
||||
// WARNING: here we access the internals of GOptionGroup:
|
||||
GOptionEntry *entries = ((_GOptionGroup*)gtkOpts)->entries;
|
||||
unsigned int n_entries = ((_GOptionGroup*)gtkOpts)->n_entries;
|
||||
wxArrayString namesOptions, descOptions;
|
||||
|
||||
for ( size_t n = 0; n < n_entries; n++ )
|
||||
{
|
||||
if ( entries[n].flags & G_OPTION_FLAG_HIDDEN )
|
||||
continue; // skip
|
||||
|
||||
names.push_back(wxGetNameFromGtkOptionEntry(&entries[n]));
|
||||
|
||||
const gchar * const entryDesc = entries[n].description;
|
||||
desc.push_back(wxString(entryDesc));
|
||||
}
|
||||
|
||||
g_option_group_free (gtkOpts);
|
||||
const gchar * const entryDesc = entries[n].description;
|
||||
desc.push_back(wxString(entryDesc));
|
||||
}
|
||||
|
||||
g_option_group_free (gtkOpts);
|
||||
}
|
||||
|
||||
return usage;
|
||||
|
Reference in New Issue
Block a user