wxBusyInfo now uses wxGenericStaticText under GTK+, more Refresh/Update updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -79,6 +79,10 @@ public:
|
|||||||
virtual void RemoveGrab();
|
virtual void RemoveGrab();
|
||||||
virtual bool IsGrabbed() const { return m_grabbed; }
|
virtual bool IsGrabbed() const { return m_grabbed; }
|
||||||
|
|
||||||
|
|
||||||
|
virtual void Refresh( bool eraseBackground = true,
|
||||||
|
const wxRect *rect = (const wxRect *) NULL );
|
||||||
|
|
||||||
// implementation from now on
|
// implementation from now on
|
||||||
// --------------------------
|
// --------------------------
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/busyinfo.h"
|
#include "wx/busyinfo.h"
|
||||||
|
#include "wx/generic/stattextg.h"
|
||||||
|
|
||||||
class WXDLLEXPORT wxInfoFrame : public wxFrame
|
class WXDLLEXPORT wxInfoFrame : public wxFrame
|
||||||
{
|
{
|
||||||
@@ -46,7 +47,11 @@ wxInfoFrame::wxInfoFrame(wxWindow *parent, const wxString& message)
|
|||||||
| wxFRAME_TOOL_WINDOW | wxSTAY_ON_TOP)
|
| wxFRAME_TOOL_WINDOW | wxSTAY_ON_TOP)
|
||||||
{
|
{
|
||||||
wxPanel *panel = new wxPanel( this );
|
wxPanel *panel = new wxPanel( this );
|
||||||
|
#if __WXGTK__
|
||||||
|
wxGenericStaticText *text = new wxGenericStaticText(panel, wxID_ANY, message);
|
||||||
|
#else
|
||||||
wxStaticText *text = new wxStaticText(panel, wxID_ANY, message);
|
wxStaticText *text = new wxStaticText(panel, wxID_ANY, message);
|
||||||
|
#endif
|
||||||
|
|
||||||
panel->SetCursor(*wxHOURGLASS_CURSOR);
|
panel->SetCursor(*wxHOURGLASS_CURSOR);
|
||||||
text->SetCursor(*wxHOURGLASS_CURSOR);
|
text->SetCursor(*wxHOURGLASS_CURSOR);
|
||||||
|
@@ -777,6 +777,14 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long)
|
|||||||
// overridden wxWindow methods
|
// overridden wxWindow methods
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxTopLevelWindowGTK::Refresh( bool WXUNUSED(eraseBackground), const wxRect *WXUNUSED(rect) )
|
||||||
|
{
|
||||||
|
wxCHECK_RET( m_widget, wxT("invalid frame") );
|
||||||
|
|
||||||
|
gtk_widget_queue_draw( m_widget );
|
||||||
|
gdk_window_invalidate_rect( m_wxwindow->window, NULL, TRUE );
|
||||||
|
}
|
||||||
|
|
||||||
bool wxTopLevelWindowGTK::Show( bool show )
|
bool wxTopLevelWindowGTK::Show( bool show )
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
|
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
|
||||||
|
@@ -3526,32 +3526,31 @@ bool wxWindowGTK::ScrollPages(int pages)
|
|||||||
return DoScrollByUnits(ScrollDir_Vert, ScrollUnit_Page, pages);
|
return DoScrollByUnits(ScrollDir_Vert, ScrollUnit_Page, pages);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "wx/treectrl.h"
|
|
||||||
|
|
||||||
void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
|
void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
|
||||||
const wxRect *rect)
|
const wxRect *rect)
|
||||||
{
|
{
|
||||||
GtkWidget* widget;
|
wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
|
||||||
if (m_wxwindow)
|
|
||||||
widget = m_wxwindow;
|
|
||||||
else if (m_widget)
|
|
||||||
widget = m_widget;
|
|
||||||
else
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!widget->window)
|
if (!m_wxwindow)
|
||||||
return;
|
|
||||||
|
|
||||||
if (rect == NULL)
|
|
||||||
{
|
{
|
||||||
gdk_window_invalidate_rect( widget->window, NULL, TRUE );
|
if (rect)
|
||||||
|
gtk_widget_queue_draw_area( m_widget, rect->x, rect->y, rect->width, rect->height );
|
||||||
|
else
|
||||||
|
gtk_widget_queue_draw( m_widget );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
// Just return if the widget or one of its ancestors isn't mapped
|
||||||
|
GtkWidget *w;
|
||||||
|
for (w = m_wxwindow; w != NULL; w = w->parent)
|
||||||
|
if (!GTK_WIDGET_MAPPED (w))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (rect)
|
||||||
{
|
{
|
||||||
int x = rect->x;
|
int x = rect->x;
|
||||||
if (GetLayoutDirection() == wxLayout_RightToLeft)
|
if (GetLayoutDirection() == wxLayout_RightToLeft)
|
||||||
x = GetClientSize().x - x - rect->width;
|
x = GetClientSize().x - x - rect->width;
|
||||||
|
|
||||||
GdkRectangle r;
|
GdkRectangle r;
|
||||||
r.x = rect->x;
|
r.x = rect->x;
|
||||||
r.y = rect->y;
|
r.y = rect->y;
|
||||||
@@ -3559,6 +3558,9 @@ void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
|
|||||||
r.height = rect->height;
|
r.height = rect->height;
|
||||||
gdk_window_invalidate_rect( m_wxwindow->window, &r, TRUE );
|
gdk_window_invalidate_rect( m_wxwindow->window, &r, TRUE );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
gdk_window_invalidate_rect( m_wxwindow->window, NULL, TRUE );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowGTK::Update()
|
void wxWindowGTK::Update()
|
||||||
@@ -3570,7 +3572,7 @@ void wxWindowGTK::Update()
|
|||||||
// This ensures nothing will overwrite the drawing we are about to do.
|
// This ensures nothing will overwrite the drawing we are about to do.
|
||||||
gdk_display_sync(display);
|
gdk_display_sync(display);
|
||||||
|
|
||||||
gdk_window_process_updates(m_widget->window, true);
|
gdk_window_process_updates(m_widget->window, TRUE);
|
||||||
|
|
||||||
// Flush again, but no need to wait for it to finish
|
// Flush again, but no need to wait for it to finish
|
||||||
gdk_display_flush(display);
|
gdk_display_flush(display);
|
||||||
|
Reference in New Issue
Block a user