diff options
author | Ruslan Kabatsayev <b7.10110111@gmail.com> | 2012-05-28 02:28:49 +0400 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-05-31 12:02:49 +0100 |
commit | 7b52e6b9b1c42ccd9ff5a6adbc3b62622d31ca75 (patch) | |
tree | d73beb25de21752fea134c2700a738ff02d23fce /vcl/unx | |
parent | 71056d59de59561ee1d74a3c2d9d66a223422c7e (diff) |
GTK theming: implement rendering window background
Change-Id: I34c6c38f383fce54aa0b2a61a5e88ee9a8cff4e7
Diffstat (limited to 'vcl/unx')
-rw-r--r-- | vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx index d65d635189c9..f9781abf74b1 100644 --- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx @@ -614,7 +614,8 @@ sal_Bool GtkSalGraphics::IsNativeControlSupported( ControlType nType, ControlPar ( (nPart == PART_TRACK_HORZ_AREA) || (nPart == PART_TRACK_VERT_AREA) ) - ) + ) || + (nType == CTRL_WINDOW_BACKGROUND) ) return( sal_True ); return( sal_False ); @@ -898,6 +899,10 @@ sal_Bool GtkSalGraphics::drawNativeControl( ControlType nType, { returnVal = NWPaintGTKSlider( gdkDrawable, nType, nPart, aCtrlRect, aClip, nState, aValue, rCaption ); } + else if( nType == CTRL_WINDOW_BACKGROUND ) + { + returnVal = NWPaintGTKWindowBackground( gdkDrawable, nType, nPart, aCtrlRect, aClip, nState, aValue, rCaption ); + } if( pixmap ) { @@ -1132,6 +1137,29 @@ sal_Bool GtkSalGraphics::getNativeControlRegion( ControlType nType, /************************************************************************ * Individual control drawing functions ************************************************************************/ +sal_Bool GtkSalGraphics::NWPaintGTKWindowBackground( + GdkDrawable* gdkDrawable, + ControlType, ControlPart, + const Rectangle& rControlRectangle, + const clipList& rClipList, + ControlState nState, const ImplControlValue&, + const OUString& ) +{ + int w,h; + gtk_window_get_size(GTK_WINDOW(m_pWindow),&w,&h); + GdkRectangle clipRect; + for( clipList::const_iterator it = rClipList.begin(); it != rClipList.end(); ++it ) + { + clipRect.x = it->Left(); + clipRect.y = it->Top(); + clipRect.width = it->GetWidth(); + clipRect.height = it->GetHeight(); + + gtk_paint_flat_box(m_pWindow->style,gdkDrawable,GTK_STATE_NORMAL,GTK_SHADOW_NONE,&clipRect,m_pWindow,"base",0,0,w,h); + } + + return sal_True; +} sal_Bool GtkSalGraphics::NWPaintGTKButtonReal( GtkWidget* button, |