summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2008-10-29 09:25:50 +0000
committerRüdiger Timm <rt@openoffice.org>2008-10-29 09:25:50 +0000
commit011bcd1ea1e8ce10f6b9946d8d44d05a59387b8c (patch)
tree8037c716c846e504acc22b8082c5b886f661203d /vcl/source
parent0b3f346d173ae177ab2656b5e9953e5a310eebe1 (diff)
CWS-TOOLING: integrate CWS vcl95
Diffstat (limited to 'vcl/source')
-rw-r--r--vcl/source/app/settings.cxx6
-rw-r--r--vcl/source/control/edit.cxx19
-rw-r--r--vcl/source/gdi/bitmap.cxx3
-rw-r--r--vcl/source/gdi/outdev3.cxx2
-rw-r--r--vcl/source/window/window.cxx10
-rw-r--r--vcl/source/window/winproc.cxx87
6 files changed, 125 insertions, 2 deletions
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 47577ecc4260..12213c25a64f 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -485,6 +485,8 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
maWindowColor( rData.maWindowColor ),
maWindowTextColor( rData.maWindowTextColor ),
maWorkspaceColor( rData.maWorkspaceColor ),
+ maActiveTabColor( rData.maActiveTabColor ),
+ maInactiveTabColor( rData.maInactiveTabColor ),
maAppFont( rData.maAppFont ),
maHelpFont( rData.maAppFont ),
maTitleFont( rData.maTitleFont ),
@@ -599,6 +601,8 @@ void ImplStyleData::SetStandardStyles()
maMenuHighlightTextColor = Color( COL_WHITE );
maHighlightColor = Color( COL_BLUE );
maHighlightTextColor = Color( COL_WHITE );
+ maActiveTabColor = Color( COL_WHITE );
+ maInactiveTabColor = Color( COL_LIGHTGRAY );
maDisableColor = Color( COL_GRAY );
maHelpColor = Color( 0xFF, 0xFF, 0xE0 );
maHelpTextColor = Color( COL_BLACK );
@@ -1028,6 +1032,8 @@ BOOL StyleSettings::operator ==( const StyleSettings& rSet ) const
(mpData->maMenuHighlightTextColor == rSet.mpData->maMenuHighlightTextColor) &&
(mpData->maHighlightColor == rSet.mpData->maHighlightColor) &&
(mpData->maHighlightTextColor == rSet.mpData->maHighlightTextColor) &&
+ (mpData->maActiveTabColor == rSet.mpData->maActiveTabColor) &&
+ (mpData->maInactiveTabColor == rSet.mpData->maInactiveTabColor) &&
(mpData->maDisableColor == rSet.mpData->maDisableColor) &&
(mpData->maHelpColor == rSet.mpData->maHelpColor) &&
(mpData->maHelpTextColor == rSet.mpData->maHelpTextColor) &&
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index 4ed4b0968116..8754aaabf3a9 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -2221,6 +2221,12 @@ void Edit::Command( const CommandEvent& rCEvt )
SetCursorRect();
}
}
+ else if ( rCEvt.GetCommand() == COMMAND_SELECTIONCHANGE )
+ {
+ const CommandSelectionChangeData *pData = rCEvt.GetSelectionChangeData();
+ Selection aSelection( pData->GetStart(), pData->GetEnd() );
+ SetSelection(aSelection);
+ }
else
Control::Command( rCEvt );
}
@@ -2981,3 +2987,16 @@ void ImplSubEdit::Modify()
{
GetParent()->Modify();
}
+
+XubString Edit::GetSurroundingText() const
+{
+ if ( mpSubEdit )
+ return mpSubEdit->GetSurroundingText();
+ else
+ return maText;
+}
+
+Selection Edit::GetSurroundingTextSelection() const
+{
+ return GetSelection();
+}
diff --git a/vcl/source/gdi/bitmap.cxx b/vcl/source/gdi/bitmap.cxx
index 2d12a67efedf..572946f71690 100644
--- a/vcl/source/gdi/bitmap.cxx
+++ b/vcl/source/gdi/bitmap.cxx
@@ -513,6 +513,9 @@ void Bitmap::ReleaseAccess( BitmapReadAccess* pBitmapAccess )
BOOL Bitmap::Erase( const Color& rFillColor )
{
+ if( !(*this) )
+ return TRUE;
+
BitmapWriteAccess* pWriteAcc = AcquireWriteAccess();
BOOL bRet = FALSE;
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index cb5357fb6a3e..dafb288f4b68 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -7173,7 +7173,7 @@ void OutputDevice::DrawCtrlText( const Point& rPos, const XubString& rStr,
long nMnemonicX = 0;
long nMnemonicY = 0;
long nMnemonicWidth = 0;
- if ( nStyle & TEXT_DRAW_MNEMONIC )
+ if ( (nStyle & TEXT_DRAW_MNEMONIC) && nLen > 1 )
{
aStr = GetNonMnemonicString( aStr, nMnemonicPos );
if ( nMnemonicPos != STRING_NOTFOUND )
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 8116cbf04088..3fdc789bf781 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -9827,3 +9827,13 @@ void Window::PaintToDevice( OutputDevice* pDev, const Point& rPos, const Size& /
pDev->Pop();
}
+XubString Window::GetSurroundingText() const
+{
+ return XubString::EmptyString();
+}
+
+Selection Window::GetSurroundingTextSelection() const
+{
+ return Selection( 0, 0 );
+}
+
diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx
index 89007a3421da..56fcdee394d3 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -2289,6 +2289,78 @@ static long ImplHandleShowDialog( Window* pWindow, int nDialogId )
// -----------------------------------------------------------------------
+static void ImplHandleSurroundingTextRequest( Window *pWindow,
+ XubString& rText,
+ Selection &rSelRange )
+{
+ Window* pChild = ImplGetKeyInputWindow( pWindow );
+
+ if ( !pChild )
+ {
+ rText = XubString::EmptyString();
+ rSelRange.setMin( 0 );
+ rSelRange.setMax( 0 );
+ }
+ else
+ {
+
+ rText = pChild->GetSurroundingText();
+ Selection aSel = pChild->GetSurroundingTextSelection();
+ rSelRange.setMin( aSel.Min() );
+ rSelRange.setMax( aSel.Max() );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+static void ImplHandleSalSurroundingTextRequest( Window *pWindow,
+ SalSurroundingTextRequestEvent *pEvt )
+{
+ Selection aSelRange;
+ ImplHandleSurroundingTextRequest( pWindow, pEvt->maText, aSelRange );
+
+ aSelRange.Justify();
+
+ if( aSelRange.Min() < 0 )
+ pEvt->mnStart = 0;
+ else if( aSelRange.Min() > pEvt->maText.Len() )
+ pEvt->mnStart = pEvt->maText.Len();
+ else
+ pEvt->mnStart = aSelRange.Min();
+
+ if( aSelRange.Max() < 0 )
+ pEvt->mnStart = 0;
+ else if( aSelRange.Max() > pEvt->maText.Len() )
+ pEvt->mnEnd = pEvt->maText.Len();
+ else
+ pEvt->mnEnd = aSelRange.Max();
+}
+
+// -----------------------------------------------------------------------
+
+static void ImplHandleSurroundingTextSelectionChange( Window *pWindow,
+ ULONG nStart,
+ ULONG nEnd )
+{
+ Window* pChild = ImplGetKeyInputWindow( pWindow );
+ if( pChild )
+ {
+ CommandSelectionChangeData data( nStart, nEnd );
+ ImplCallCommand( pChild, COMMAND_SELECTIONCHANGE, &data );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+static void ImplHandleStartReconversion( Window *pWindow )
+{
+ Window* pChild = ImplGetKeyInputWindow( pWindow );
+ if( pChild )
+ ImplCallCommand( pChild, COMMAND_PREPARERECONVERSION );
+}
+
+// -----------------------------------------------------------------------
+
long ImplWindowFrameProc( Window* pWindow, SalFrame* /*pFrame*/,
USHORT nEvent, const void* pEvent )
{
@@ -2521,7 +2593,20 @@ long ImplWindowFrameProc( Window* pWindow, SalFrame* /*pFrame*/,
nRet = ImplHandleShowDialog( pWindow, nDialogID );
}
break;
-
+ case SALEVENT_SURROUNDINGTEXTREQUEST:
+ ImplHandleSalSurroundingTextRequest( pWindow, (SalSurroundingTextRequestEvent*)pEvent );
+ break;
+ case SALEVENT_SURROUNDINGTEXTSELECTIONCHANGE:
+ {
+ SalSurroundingTextSelectionChangeEvent* pEvt
+ = (SalSurroundingTextSelectionChangeEvent*)pEvent;
+ ImplHandleSurroundingTextSelectionChange( pWindow,
+ pEvt->mnStart,
+ pEvt->mnEnd );
+ }
+ case SALEVENT_STARTRECONVERSION:
+ ImplHandleStartReconversion( pWindow );
+ break;
#ifdef DBG_UTIL
default:
DBG_ERROR1( "ImplWindowFrameProc(): unknown event (%lu)", (ULONG)nEvent );