[Libreoffice-commits] core.git: 8 commits - include/vcl svx/source vcl/inc vcl/source vcl/unx
Caolán McNamara
caolanm at redhat.com
Mon Apr 27 09:12:35 PDT 2015
include/vcl/combobox.hxx | 2
include/vcl/lstbox.hxx | 2
svx/source/tbxctrls/itemwin.cxx | 4 -
svx/source/tbxctrls/tbcontrl.cxx | 22 +++---
svx/source/tbxctrls/tbunocontroller.cxx | 9 --
vcl/inc/unx/gtk/gtkgdi.hxx | 1
vcl/source/control/spinfld.cxx | 6 -
vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx | 89 +++++++++++++++++---------
8 files changed, 76 insertions(+), 59 deletions(-)
New commits:
commit dfec380c3b56ee62c7d9cc1747af5663a0db81fb
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 16:48:30 2015 +0100
gtk3: use same arbitrary 0.2 and 0.8 ratios as gtk does
Change-Id: Ib0d04c00ff4689d53317dedbf67091596cc59fb0
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 663843a..0112ced 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -961,8 +961,8 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
break;
case RENDER_TOOLBAR_SEPERATOR:
gtk_render_line(context, cr,
- rControlRegion.GetWidth() / 2, 3,
- rControlRegion.GetWidth() / 2, rControlRegion.GetHeight() - 3 );
+ rControlRegion.GetWidth() / 2, rControlRegion.GetHeight() * 0.2,
+ rControlRegion.GetWidth() / 2, rControlRegion.GetHeight() * 0.8 );
break;
case RENDER_ARROW:
gtk_render_arrow(context, cr,
commit cb1fda082cc30dba210f293ec6fea8a13363835e
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 16:44:11 2015 +0100
gtk3: render vertical toolbar seperators
Change-Id: I6c4e5291b24015087b3ac56e2e178dbf42bf193f
diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx
index 2c8a8dc..1e52df4 100644
--- a/vcl/inc/unx/gtk/gtkgdi.hxx
+++ b/vcl/inc/unx/gtk/gtkgdi.hxx
@@ -70,6 +70,7 @@ private:
static GtkStyleContext *mpHScrollbarStyle;
static GtkStyleContext *mpToolbarStyle;
static GtkStyleContext *mpToolButtonStyle;
+ static GtkStyleContext *mpToolbarSeperatorStyle;
static GtkStyleContext *mpCheckButtonStyle;
static GtkStyleContext *mpMenuBarStyle;
static GtkStyleContext *mpMenuStyle;
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 9f0ea76..663843a 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -25,6 +25,7 @@ GtkStyleContext* GtkSalGraphics::mpVScrollbarStyle = NULL;
GtkStyleContext* GtkSalGraphics::mpHScrollbarStyle = NULL;
GtkStyleContext* GtkSalGraphics::mpToolbarStyle = NULL;
GtkStyleContext* GtkSalGraphics::mpToolButtonStyle = NULL;
+GtkStyleContext* GtkSalGraphics::mpToolbarSeperatorStyle = NULL;
GtkStyleContext* GtkSalGraphics::mpCheckButtonStyle = NULL;
GtkStyleContext* GtkSalGraphics::mpMenuBarStyle = NULL;
GtkStyleContext* GtkSalGraphics::mpMenuStyle = NULL;
@@ -66,12 +67,13 @@ enum {
RENDER_BACKGROUND_AND_FRAME = 1,
RENDER_CHECK = 2,
RENDER_BACKGROUND = 3,
- RENDER_LINE = 4,
- RENDER_ARROW = 5,
- RENDER_RADIO = 6,
- RENDER_SCROLLBAR = 7,
- RENDER_SPINBUTTON = 8,
- RENDER_COMBOBOX = 9,
+ RENDER_MENU_SEPERATOR = 4,
+ RENDER_TOOLBAR_SEPERATOR = 5,
+ RENDER_ARROW = 6,
+ RENDER_RADIO = 7,
+ RENDER_SCROLLBAR = 8,
+ RENDER_SPINBUTTON = 9,
+ RENDER_COMBOBOX = 10,
};
static void PrepareComboboxStyle( GtkStyleContext *context,
@@ -861,7 +863,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
case PART_MENU_SEPARATOR:
styleClass = GTK_STYLE_CLASS_SEPARATOR;
context = mpMenuItemStyle;
- renderType = RENDER_LINE;
+ renderType = RENDER_MENU_SEPERATOR;
break;
case PART_MENU_SUBMENU_ARROW:
context = mpMenuStyle;
@@ -885,6 +887,10 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
( (aValue.getTristateVal() == BUTTONVALUE_ON) ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_NORMAL));
context = mpToolButtonStyle;
break;
+ case PART_SEPARATOR_VERT:
+ context = mpToolbarSeperatorStyle;
+ renderType = RENDER_TOOLBAR_SEPERATOR;
+ break;
default:
return false;
}
@@ -948,11 +954,16 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
case RENDER_RADIO:
PaintCheckOrRadio(context, cr, rControlRegion, nType);
break;
- case RENDER_LINE:
+ case RENDER_MENU_SEPERATOR:
gtk_render_line(context, cr,
3, rControlRegion.GetHeight() / 2,
rControlRegion.GetWidth() - 3, rControlRegion.GetHeight() / 2);
break;
+ case RENDER_TOOLBAR_SEPERATOR:
+ gtk_render_line(context, cr,
+ rControlRegion.GetWidth() / 2, 3,
+ rControlRegion.GetWidth() / 2, rControlRegion.GetHeight() - 3 );
+ break;
case RENDER_ARROW:
gtk_render_arrow(context, cr,
G_PI / 2, 0, 0,
@@ -1515,7 +1526,7 @@ bool GtkSalGraphics::IsNativeControlSupported( ControlType nType, ControlPart nP
// || nPart==PART_THUMB_VERT
|| nPart==PART_BUTTON
// || nPart==PART_SEPARATOR_HORZ
-// || nPart==PART_SEPARATOR_VERT
+ || nPart==PART_SEPARATOR_VERT
)
return true;
break;
@@ -1634,6 +1645,8 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, GtkWidget *pWindow )
gtk_style_context_add_class(mpToolbarStyle, GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
gtk_style_context_add_class(mpToolbarStyle, GTK_STYLE_CLASS_TOOLBAR);
+ getStyleContext(&mpToolbarSeperatorStyle, GTK_WIDGET(gtk_separator_tool_item_new()));
+
getStyleContext(&mpToolButtonStyle, gtk_button_new());
/* Create a widget path for our toolbutton widget */
commit 4679d6b9c3975c322cf84bcfca6dbfbfd1155981
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 15:42:33 2015 +0100
gtk3: set max spin box height before determining rect
Change-Id: Ic7e2c3a76abf658cc4e639772e05c83851c1da71
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 4406be2..9f0ea76 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -1079,7 +1079,8 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
((nPart==PART_BUTTON_UP) || (nPart==PART_BUTTON_DOWN) ||
(nPart==PART_SUB_EDIT)) )
{
- aEditRect = NWGetSpinButtonRect( nPart, rControlRegion );
+ Rectangle aControlRegion(AdjustRectForTextBordersPadding(mpSpinStyle, rValue.getNumericVal(), rControlRegion));
+ aEditRect = NWGetSpinButtonRect(nPart, aControlRegion);
}
else if ( (nType==CTRL_COMBOBOX) &&
((nPart==PART_BUTTON_DOWN) || (nPart==PART_SUB_EDIT)) )
commit 9b6a6705f756467b12d9ff508e572b1bc279c394
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 15:40:23 2015 +0100
if it makes sense to handle DataChanged, then the same init must be called
as in the ctor
Change-Id: Ib95768397dc99d09154af03846f001d647437b69
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 6dfadc7..35ef967 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -192,6 +192,8 @@ private:
}
DECL_DLLPRIVATE_LINK( CheckAndMarkUnknownFont, VclWindowEvent* );
+ void SetOptimalSize();
+
protected:
virtual void Select() SAL_OVERRIDE;
virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
@@ -909,10 +911,7 @@ SvxFontNameBox_Impl::SvxFontNameBox_Impl( vcl::Window* pParent, const Reference<
m_xFrame (_xFrame),
mbEndPreview(false)
{
- Size aSize(LogicToPixel(aLogicalSize, MAP_APPFONT));
- set_width_request(aSize.Width());
- set_height_request(aSize.Height());
- SetSizePixel(aSize);
+ SetOptimalSize();
EnableControls_Impl();
GetSubEdit()->AddEventListener( LINK( this, SvxFontNameBox_Impl, CheckAndMarkUnknownFont ));
}
@@ -1031,12 +1030,20 @@ bool SvxFontNameBox_Impl::Notify( NotifyEvent& rNEvt )
return nHandled || FontNameBox::Notify( rNEvt );
}
+void SvxFontNameBox_Impl::SetOptimalSize()
+{
+ Size aSize(LogicToPixel(aLogicalSize, MAP_APPFONT));
+ set_width_request(aSize.Width());
+ set_height_request(aSize.Height());
+ SetSizePixel(aSize);
+}
+
void SvxFontNameBox_Impl::DataChanged( const DataChangedEvent& rDCEvt )
{
if ( (rDCEvt.GetType() == DataChangedEventType::SETTINGS) &&
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
{
- SetSizePixel(LogicToPixel(aLogicalSize, MAP_APPFONT));
+ SetOptimalSize();
}
else if ( ( rDCEvt.GetType() == DataChangedEventType::FONTS ) ||
( rDCEvt.GetType() == DataChangedEventType::DISPLAY ) )
commit cd962f121586e84eb7d020643dcf134e7e50a1c8
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 15:20:46 2015 +0100
manually setting drop down size is unnecessary
and can end up with a font size entry in the toolbar
of a different height to the other elements, because
the other ones only call it on DataChange, while
font size calls it all the time.
Change-Id: I495e28dd0d33a093869fd731538e43513a7b8b85
diff --git a/include/vcl/combobox.hxx b/include/vcl/combobox.hxx
index 34e6702..95ec9bc 100644
--- a/include/vcl/combobox.hxx
+++ b/include/vcl/combobox.hxx
@@ -114,8 +114,6 @@ public:
virtual void setPosSizePixel( long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ) SAL_OVERRIDE;
void SetPosSizePixel( const Point& rNewPos, const Size& rNewSize ) SAL_OVERRIDE
{ Edit::SetPosSizePixel( rNewPos, rNewSize ); }
- void SetDropDownSizePixel( const Size& rNewSize )
- { if( IsDropDownBox() ) setPosSizePixel( 0, 0, rNewSize.Width(), rNewSize.Height(), WINDOW_POSSIZE_SIZE | WINDOW_POSSIZE_DROPDOWN ); }
Rectangle GetDropDownPosSizePixel() const;
diff --git a/include/vcl/lstbox.hxx b/include/vcl/lstbox.hxx
index 775e72c..3f03f63 100644
--- a/include/vcl/lstbox.hxx
+++ b/include/vcl/lstbox.hxx
@@ -103,8 +103,6 @@ public:
long nWidth, long nHeight, sal_uInt16 nFlags = WINDOW_POSSIZE_ALL ) SAL_OVERRIDE;
void SetPosSizePixel( const Point& rNewPos, const Size& rNewSize ) SAL_OVERRIDE
{ Control::SetPosSizePixel( rNewPos, rNewSize ); }
- void SetDropDownSizePixel( const Size& rNewSize )
- { if( IsDropDownBox() ) setPosSizePixel( 0, 0, rNewSize.Width(), rNewSize.Height(), WINDOW_POSSIZE_SIZE | WINDOW_POSSIZE_DROPDOWN ); }
Rectangle GetDropDownPosSizePixel() const;
diff --git a/svx/source/tbxctrls/itemwin.cxx b/svx/source/tbxctrls/itemwin.cxx
index 92a017f..449cb7f 100644
--- a/svx/source/tbxctrls/itemwin.cxx
+++ b/svx/source/tbxctrls/itemwin.cxx
@@ -51,8 +51,6 @@ using namespace ::com::sun::star::util;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
-#define LOGICAL_EDIT_HEIGHT 12
-
SvxLineBox::SvxLineBox( vcl::Window* pParent, const Reference< XFrame >& rFrame, WinBits nBits ) :
LineLB( pParent, nBits ),
nCurPos ( 0 ),
@@ -235,8 +233,6 @@ void SvxLineBox::DataChanged( const DataChangedEvent& rDCEvt )
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
{
SetSizePixel(LogicToPixel(aLogicalSize, MAP_APPFONT));
- Size aDropSize( aLogicalSize.Width(), LOGICAL_EDIT_HEIGHT);
- SetDropDownSizePixel(LogicToPixel(aDropSize, MAP_APPFONT));
}
LineLB::DataChanged( rDCEvt );
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 91c5be0..6dfadc7 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -93,7 +93,6 @@
#include <svx/xflclit.hxx>
#define MAX_MRU_FONTNAME_ENTRIES 5
-#define LOGICAL_EDIT_HEIGHT 12
// don't make more than 15 entries visible at once
#define MAX_STYLES_ENTRIES static_cast< sal_uInt16 >( 15 )
@@ -529,8 +528,6 @@ void SvxStyleBox_Impl::DataChanged( const DataChangedEvent& rDCEvt )
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
{
SetSizePixel(LogicToPixel(aLogicalSize, MAP_APPFONT));
- Size aDropSize( aLogicalSize.Width(), LOGICAL_EDIT_HEIGHT);
- SetDropDownSizePixel(LogicToPixel(aDropSize, MAP_APPFONT));
}
ComboBox::DataChanged( rDCEvt );
@@ -1040,8 +1037,6 @@ void SvxFontNameBox_Impl::DataChanged( const DataChangedEvent& rDCEvt )
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
{
SetSizePixel(LogicToPixel(aLogicalSize, MAP_APPFONT));
- Size aDropSize( aLogicalSize.Width(), LOGICAL_EDIT_HEIGHT);
- SetDropDownSizePixel(LogicToPixel(aDropSize, MAP_APPFONT));
}
else if ( ( rDCEvt.GetType() == DataChangedEventType::FONTS ) ||
( rDCEvt.GetType() == DataChangedEventType::DISPLAY ) )
diff --git a/svx/source/tbxctrls/tbunocontroller.cxx b/svx/source/tbxctrls/tbunocontroller.cxx
index 680e9a3..0344ed8 100644
--- a/svx/source/tbxctrls/tbunocontroller.cxx
+++ b/svx/source/tbxctrls/tbunocontroller.cxx
@@ -38,8 +38,6 @@
#include <boost/scoped_ptr.hpp>
-#define LOGICAL_EDIT_HEIGHT 12
-
using namespace ::com::sun::star;
namespace {
@@ -132,8 +130,6 @@ SvxFontSizeBox_Impl::SvxFontSizeBox_Impl(
SetText( "" );
}
-
-
void SvxFontSizeBox_Impl::ReleaseFocus_Impl()
{
if ( !m_bRelease )
@@ -263,13 +259,8 @@ void SvxFontSizeBox_Impl::SetOptimalSize()
Size aPrefSize(LogicToPixel(m_aLogicalSize, MAP_APPFONT));
aPrefSize.Width() = get_preferred_size().Width();
SetSizePixel(aPrefSize);
- Size aDropSize(LogicToPixel(Size(0, LOGICAL_EDIT_HEIGHT), MAP_APPFONT));
- aDropSize.Width() = aPrefSize.Width();
- SetDropDownSizePixel(aDropSize);
}
-
-
void SvxFontSizeBox_Impl::DataChanged( const DataChangedEvent& rDCEvt )
{
if ( (rDCEvt.GetType() == DataChangedEventType::SETTINGS) &&
commit 653a4a659624d52945b9bd40647002cf31085fe0
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 13:39:55 2015 +0100
gtk3: semi-sane height for spinboxes
Change-Id: I22fb833b59b7e2d749f8111d897f81899019e2d5
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index 15ae57f..972bded 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -667,7 +667,7 @@ void SpinField::ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rec
vcl::Window *pBorder = pWin->GetWindow( WINDOW_BORDER );
// get the system's spin button size
- ImplControlValue aControlValue;
+ EditBoxValue aControlValue(pWin->GetTextHeight());
Rectangle aBound;
Point aPoint;
@@ -721,7 +721,7 @@ void SpinField::Resize()
{
ImplCalcButtonAreas( this, aSize, maDropDownRect, maUpperRect, maLowerRect );
- ImplControlValue aControlValue;
+ EditBoxValue aControlValue(GetTextHeight());
Point aPoint;
Rectangle aContent, aBound;
@@ -920,7 +920,7 @@ Size SpinField::CalcMinimumSizeForText(const OUString &rString) const
aSz.Width() += GetSettings().GetStyleSettings().GetScrollBarSize();
if ( GetStyle() & WB_SPIN )
{
- ImplControlValue aControlValue;
+ EditBoxValue aControlValue(GetTextHeight());
Rectangle aArea( Point(), Size(100, aSz.Height()));
Rectangle aEntireBound, aEntireContent, aEditBound, aEditContent;
if (
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 666eaf6..4406be2 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -1103,6 +1103,10 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
{
aEditRect = AdjustRectForTextBordersPadding(mpComboboxStyle, rValue.getNumericVal(), rControlRegion);
}
+ else if (CTRL_SPINBOX && nPart == PART_ENTIRE_CONTROL)
+ {
+ aEditRect = AdjustRectForTextBordersPadding(mpSpinStyle, rValue.getNumericVal(), rControlRegion);
+ }
else
{
return false;
commit 15e88c27440b1bcebf5aa09ab36635e4e977a438
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 13:20:12 2015 +0100
gtk3: seperate calcs for lists, comboboxes and editboxes
Change-Id: I38d5582e36fda2471a53e48f0611011bef30f5fe
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 355e2b2..666eaf6 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -1091,10 +1091,18 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
{
aEditRect = NWGetComboBoxButtonRect( nType, nPart, rControlRegion );
}
- else if ((nType == CTRL_EDITBOX || nType == CTRL_LISTBOX || nType == CTRL_COMBOBOX) && nPart == PART_ENTIRE_CONTROL)
+ else if (nType == CTRL_EDITBOX && nPart == PART_ENTIRE_CONTROL)
{
aEditRect = AdjustRectForTextBordersPadding(mpEntryStyle, rValue.getNumericVal(), rControlRegion);
}
+ else if (nType == CTRL_LISTBOX && nPart == PART_ENTIRE_CONTROL)
+ {
+ aEditRect = AdjustRectForTextBordersPadding(mpListboxStyle, rValue.getNumericVal(), rControlRegion);
+ }
+ else if (CTRL_COMBOBOX && nPart == PART_ENTIRE_CONTROL)
+ {
+ aEditRect = AdjustRectForTextBordersPadding(mpComboboxStyle, rValue.getNumericVal(), rControlRegion);
+ }
else
{
return false;
commit 37bb10790847bb2088e7f29211a31b1118fed2ad
Author: Caolán McNamara <caolanm at redhat.com>
Date: Mon Apr 27 13:15:17 2015 +0100
gtk3: hive the borders and padding calc off into a standalone
Change-Id: I0890a7d8c50b8646782bfc4358aa7c2f106dc22d
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index abab9e1..355e2b2 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -979,6 +979,28 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
return true;
}
+Rectangle AdjustRectForTextBordersPadding(GtkStyleContext* pStyle, long nTextHeight, const Rectangle& rControlRegion)
+{
+ gtk_style_context_save(pStyle);
+ gtk_style_context_add_class(pStyle, GTK_STYLE_CLASS_ENTRY);
+
+ GtkBorder border;
+ gtk_style_context_get_border(pStyle, GTK_STATE_FLAG_NORMAL, &border);
+
+ GtkBorder padding;
+ gtk_style_context_get_padding(pStyle, GTK_STATE_FLAG_NORMAL, &padding);
+
+ gint nWidgetHeight = nTextHeight + padding.top + padding.bottom + border.top + border.bottom;
+
+ nWidgetHeight = std::max<gint>(nWidgetHeight, rControlRegion.GetHeight());
+
+ Rectangle aEditRect(rControlRegion.TopLeft(), Size(rControlRegion.GetWidth(), nWidgetHeight));
+
+ gtk_style_context_restore(pStyle);
+
+ return aEditRect;
+}
+
bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState,
const ImplControlValue& rValue, const OUString&,
Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion )
@@ -1071,24 +1093,7 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
}
else if ((nType == CTRL_EDITBOX || nType == CTRL_LISTBOX || nType == CTRL_COMBOBOX) && nPart == PART_ENTIRE_CONTROL)
{
- gtk_style_context_save(mpEntryStyle);
- gtk_style_context_add_class(mpEntryStyle, GTK_STYLE_CLASS_ENTRY);
-
- GtkBorder border;
- gtk_style_context_get_border(mpEntryStyle, GTK_STATE_FLAG_NORMAL, &border);
-
- GtkBorder padding;
- gtk_style_context_get_padding(mpEntryStyle, GTK_STATE_FLAG_NORMAL, &padding);
-
- auto nTextHeight = rValue.getNumericVal();
-
- gint nWidgetHeight = nTextHeight + padding.top + padding.bottom + border.top + border.bottom;
-
- nWidgetHeight = std::max<gint>(nWidgetHeight, rControlRegion.GetHeight());
-
- aEditRect = Rectangle(rControlRegion.TopLeft(), Size(rControlRegion.GetWidth(), nWidgetHeight));
-
- gtk_style_context_restore(mpEntryStyle);
+ aEditRect = AdjustRectForTextBordersPadding(mpEntryStyle, rValue.getNumericVal(), rControlRegion);
}
else
{
More information about the Libreoffice-commits
mailing list