[Libreoffice-commits] .: Branch 'feature/gtk3' - vcl/unx
vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 49 ++ 1 file changed, 43 insertions(+), 6 deletions(-) New commits: commit 7f121e108c6d66c6bdf6fc321c29872d2d416e72 Author: Lucas Baudin xapa...@gmail.com Date: Sat Oct 22 17:45:27 2011 +0200 gtk3: add toolbar rendering, there is some graphical bugs if you have more than one row in the toolbar (is it detectable in GtkSalGraphices?) diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx index b021036..a5877dd 100644 --- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx @@ -92,7 +92,27 @@ void GtkSalGraphics::drawStyleContext( GtkStyleContext* style, GtkStateFlags fla rect.width = rControlRegion.GetWidth() + 2; if(render_background) -gtk_render_background(gtk_widget_get_style_context(mpWindow), cr, 0, 0, rControlRegion.GetWidth() + 2, rControlRegion.GetHeight() + 2); +gtk_render_background(gtk_widget_get_style_context(mpWindow), +cr, +0, 0, +rControlRegion.GetWidth() + 2, rControlRegion.GetHeight() + 2); + +else if(style == mpToolButtonStyle) +{ +/* For toolbuttons, we need to re-draw the toolbar. We also need to re-draw + * the window background which is under the toolbar. + * + * FIXME: the width and height of the toolbar are hardcoded, it would be better + * if we could get the size, and the coords of the parent before re-drawing. + */ +gtk_render_background(gtk_widget_get_style_context(mpWindow), +cr, +-2, -2, +rControlRegion.GetWidth() + 6, rControlRegion.GetHeight() + 6); +gtk_render_background(mpToolbarStyle, cr, +-4, -4, +rControlRegion.GetWidth() + 8, rControlRegion.GetHeight() + 8); +} gtk_style_context_set_state(style, flags); @@ -136,7 +156,10 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart drawStyleContext(mpToolbarStyle, flags, rControlRegion); return sal_True; case PART_BUTTON: -drawStyleContext(mpToolButtonStyle, flags, rControlRegion); +/* For all checkbuttons in the toolbars */ +flags = (GtkStateFlags)(flags | +( (aValue.getTristateVal() == BUTTONVALUE_ON) ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_NORMAL)); +drawStyleContext(mpToolButtonStyle, flags, rControlRegion, false); return sal_True; } break; @@ -518,7 +541,9 @@ sal_Bool GtkSalGraphics::IsNativeControlSupported( ControlType nType, ControlPar if( (nType == CTRL_PUSHBUTTON nPart == PART_ENTIRE_CONTROL) || (nType == CTRL_CHECKBOX nPart == PART_ENTIRE_CONTROL) || nType == CTRL_SCROLLBAR - || nType == CTRL_EDITBOX /*|| + || nType == CTRL_EDITBOX + || (nType == CTRL_TOOLBAR nPart == PART_ENTIRE_CONTROL) + || (nType == CTRL_TOOLBAR nPart == PART_BUTTON)/*|| segfault with recent code, needs investigating nType == CTRL_TOOLBAR*/ ) return sal_True; return sal_False; @@ -531,7 +556,7 @@ void GtkSalGraphics::getStyleContext(GtkStyleContext** style, GtkWidget* widget) { *style = gtk_widget_get_style_context(widget); g_object_ref(*style); -gtk_widget_destroy(widget); +//gtk_widget_destroy(widget); } GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow ) @@ -546,13 +571,25 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow ) * too slow */ GtkWidget* toolbar = gtk_toolbar_new(); GtkWidget* toolbutton = gtk_button_new(); -//gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(toolbutton)); getStyleContext(mpEntryStyle, gtk_entry_new()); getStyleContext(mpButtonStyle, gtk_button_new()); getStyleContext(mpToolbarStyle, toolbar); + gtk_style_context_add_class(mpToolbarStyle, primary-toolbar); +gtk_style_context_add_class(mpToolbarStyle, toolbar); getStyleContext(mpToolButtonStyle, GTK_WIDGET(toolbutton)); -gtk_style_context_add_class(mpToolButtonStyle, button); /* TODO */ + +/* Create a widget path for our toolbutton widget */ +GtkWidgetPath* path = gtk_widget_path_new (); +gtk_widget_path_append_type(path, GTK_TYPE_TOOLBAR); +gtk_widget_path_append_type(path, GTK_TYPE_TOOL_BUTTON); +gtk_widget_path_append_type(path, GTK_TYPE_BUTTON); + +gtk_widget_path_iter_add_class (path, 0, primary-toolbar); +gtk_widget_path_iter_add_class (path, 0, toolbar); +gtk_widget_path_iter_add_class (path, 2, button); +gtk_style_context_set_path(mpToolButtonStyle, path); + getStyleContext(mpScrollbarStyle, gtk_vscrollbar_new(NULL)); getStyleContext(mpCheckButtonStyle, gtk_check_button_new());
[Libreoffice-commits] .: Branch 'feature/gtk3' - vcl/unx
vcl/unx/generic/app/saldata.cxx |1 + vcl/unx/generic/app/wmadaptor.cxx |2 +- 2 files changed, 2 insertions(+), 1 deletion(-) New commits: commit 30c55ed21d66fc68977881423fc3b52fdd82693b Author: Michael Meeks michael.me...@suse.com Date: Thu Oct 20 19:37:01 2011 +0100 generic: fix error trap push/pop/reset semantics diff --git a/vcl/unx/generic/app/saldata.cxx b/vcl/unx/generic/app/saldata.cxx index 0459ee4..1164a4e 100644 --- a/vcl/unx/generic/app/saldata.cxx +++ b/vcl/unx/generic/app/saldata.cxx @@ -294,6 +294,7 @@ bool X11SalData::ErrorTrapPop( bool bIgnoreError ) bool err = false; if( !bIgnoreError ) err = HasXErrorOccurred(); +ResetXErrorOccurred(); PopXErrorLevel(); return err; } diff --git a/vcl/unx/generic/app/wmadaptor.cxx b/vcl/unx/generic/app/wmadaptor.cxx index ed97ddb..d530932 100644 --- a/vcl/unx/generic/app/wmadaptor.cxx +++ b/vcl/unx/generic/app/wmadaptor.cxx @@ -800,7 +800,7 @@ bool WMAdaptor::getNetWmName() nFormat == 32 nItems != 0 ) { -if ( GetGenericData()-ErrorTrapPop( false ) ) +if ( ! GetGenericData()-ErrorTrapPop( false ) ) { GetGenericData()-ErrorTrapPush(); aCheckWindow = *(XLIB_Window*)pProperty; ___ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] .: Branch 'feature/gtk3' - vcl/unx
vcl/unx/generic/gdi/salbmp.cxx|1 - vcl/unx/generic/window/salobj.cxx |1 - vcl/unx/gtk/app/gtkdata.cxx | 18 +- vcl/unx/gtk/app/gtkinst.cxx |2 ++ vcl/unx/gtk/window/gtkframe.cxx | 37 ++--- 5 files changed, 45 insertions(+), 14 deletions(-) New commits: commit ab5fe885321d0be4267a6772b91d04bede948e43 Author: Michael Meeks michael.me...@suse.com Date: Fri Oct 7 11:29:18 2011 +0100 WaE: cleanup misc. redundant warnings, and silence the gtk2 case diff --git a/vcl/unx/generic/gdi/salbmp.cxx b/vcl/unx/generic/gdi/salbmp.cxx index d0201e3..44c1a71 100644 --- a/vcl/unx/generic/gdi/salbmp.cxx +++ b/vcl/unx/generic/gdi/salbmp.cxx @@ -218,7 +218,6 @@ BitmapBuffer* X11SalBitmap::ImplCreateDIB( if( aDrawable nWidth nHeight nDrawableDepth ) { SalDisplay* pSalDisp = GetGenericData()-GetSalDisplay(); -SalXLib*pXLib = pSalDisp-GetXLib(); Display*pXDisp = pSalDisp-GetDisplay(); // do not die on XError here diff --git a/vcl/unx/generic/window/salobj.cxx b/vcl/unx/generic/window/salobj.cxx index da09378..5ad6c40 100644 --- a/vcl/unx/generic/window/salobj.cxx +++ b/vcl/unx/generic/window/salobj.cxx @@ -273,7 +273,6 @@ X11SalObject::~X11SalObject() { std::list SalObject* rObjects = GetGenericData()-GetSalDisplay()-getSalObjects(); rObjects.remove( this ); -SalDisplay* pSalDisp = GetGenericData()-GetSalDisplay(); GetGenericData()-ErrorTrapPush(); if ( maSecondary ) diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx index f5075a9..4fd338b 100644 --- a/vcl/unx/gtk/app/gtkdata.cxx +++ b/vcl/unx/gtk/app/gtkdata.cxx @@ -68,9 +68,9 @@ using namespace vcl_sal; using ::rtl::OUString; -/*** - * class GtkSalDisplay* - ***/ +/*** + * class GtkSalDisplay * + ***/ extern C { GdkFilterReturn call_filterGdkEvent( GdkXEvent* sys_event, GdkEvent* event, @@ -126,6 +126,9 @@ void signalKeysChanged( GdkKeymap*, gpointer data ) GtkSalDisplay* pDisp = (GtkSalDisplay*)data; #if !GTK_CHECK_VERSION(3,0,0) pDisp-GetKeyboardName(true); +#else +(void)pDisp; +#warning FIXME: impl. / check signalKeysChanged ... #endif } @@ -192,6 +195,8 @@ GdkFilterReturn GtkSalDisplay::filterGdkEvent( GdkXEvent* sys_event, return aFilterReturn; #else +(void) sys_event; +#warning FIXME: implement filterGdkEvent ... return GDK_FILTER_CONTINUE; #endif } @@ -202,7 +207,8 @@ void GtkSalDisplay::screenSizeChanged( GdkScreen* pScreen ) if (pScreen) m_aFrames.front()-CallCallback( SALEVENT_DISPLAYCHANGED, 0 ); #else -#warning get this right +(void)pScreen; +#warning FIXME: implement screenSizeChanged ... #endif } @@ -224,7 +230,9 @@ extern C void GtkSalDisplay::initScreen( int nScreen ) const { #if GTK_CHECK_VERSION(3,0,0) -// no colormaps handling in gtk 3 or need to init screens ... +// No implementation needed for gt3k: no colormaps handling +// or need to init screens ... +(void)nScreen; #else if( nScreen 0 || nScreen = static_castint(m_aScreens.size()) ) nScreen = m_nDefaultScreen; diff --git a/vcl/unx/gtk/app/gtkinst.cxx b/vcl/unx/gtk/app/gtkinst.cxx index 156e0d3..597be51 100644 --- a/vcl/unx/gtk/app/gtkinst.cxx +++ b/vcl/unx/gtk/app/gtkinst.cxx @@ -235,6 +235,7 @@ extern C { GdkEvent *event, gpointer data) { +(void)event; // FIXME: in theory this could be for non-X events but in reality it never is. XEvent *pXEvent = (XEvent *)_xevent; sal_uInt16 nType; @@ -341,6 +342,7 @@ SalObject* GtkInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWind if( pWindowData ) return X11SalObject::CreateObject( pParent, pWindowData, bShow ); #else +(void)pWindowData; #warning FIXME: Missing CreateObject functionality ... #endif diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx index 0b99e6d..cbd23ec 100644 --- a/vcl/unx/gtk/window/gtkframe.cxx +++ b/vcl/unx/gtk/window/gtkframe.cxx @@ -343,7 +343,9 @@ GetAlternateKeyCode( const sal_uInt16 nKeyCode ) } static int debugQueuePureRedraw = 0; +#if GTK_CHECK_VERSION(3,0,0) static int debugRedboxRedraws = 0; +#endif void GtkSalFrame::doKeyCallback( guint state, guint keyval, @@ -787,8 +789,12 @@ static void lcl_set_accept_focus( GtkWindow* pWindow, gboolean bAccept, bool bBe XFree(