diff options
author | Rüdiger Timm <rt@openoffice.org> | 2008-10-29 09:25:50 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2008-10-29 09:25:50 +0000 |
commit | 011bcd1ea1e8ce10f6b9946d8d44d05a59387b8c (patch) | |
tree | 8037c716c846e504acc22b8082c5b886f661203d /vcl/source | |
parent | 0b3f346d173ae177ab2656b5e9953e5a310eebe1 (diff) |
CWS-TOOLING: integrate CWS vcl95
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/app/settings.cxx | 6 | ||||
-rw-r--r-- | vcl/source/control/edit.cxx | 19 | ||||
-rw-r--r-- | vcl/source/gdi/bitmap.cxx | 3 | ||||
-rw-r--r-- | vcl/source/gdi/outdev3.cxx | 2 | ||||
-rw-r--r-- | vcl/source/window/window.cxx | 10 | ||||
-rw-r--r-- | vcl/source/window/winproc.cxx | 87 |
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 ); |