Files
libreoffice/vcl/source/window/splitwin.cxx

3279 lines
97 KiB
C++
Raw Normal View History

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
re-base on ALv2 code. Includes (at least) relevant parts of: linecap: Reintegrating finished LineCap feature Patch contributed by Regina Henschel http://svn.apache.org/viewvc?view=revision&revision=1232507 Patches contributed by Sven Jacobi impress212: #i81610# fixed animation export http://svn.apache.org/viewvc?view=revision&revision=1167620 impress212: drawinglayer gbuild environment changes http://svn.apache.org/viewvc?view=revision&revision=1167627 http://svn.apache.org/viewvc?view=revision&revision=1167628 impress212: DffPropSet -> minor code improvements, removing table http://svn.apache.org/viewvc?view=revision&revision=1167634 impress212: #158494# fixed excel import (text rotation) http://svn.apache.org/viewvc?view=revision&revision=1167638 Patches contributed by Armin Le Grand Svg: Reintegrated Svg replacement from /branches/alg/svgreplavement http://svn.apache.org/viewvc?view=revision&revision=1220836 #118728# changed indentifying definitions for Svg file detection http://svn.apache.org/viewvc?view=revision&revision=1229961 #118838# LineGeometry creation for complicated cases optimized to create single Polygons http://svn.apache.org/viewvc?view=revision&revision=1236232 #119176# corrected file type detection for SVG for svg files without xml header http://svn.apache.org/viewvc?view=revision&revision=1309445 #118728# Extended Svg file detection http://svn.apache.org/viewvc?view=revision&revision=1230531 #118529# solve break converters and convert commands for OLEs and images http://svn.apache.org/viewvc?view=revision&revision=1186168 svg: added WaE changes from branch svgreplacement to trunc http://svn.apache.org/viewvc?view=revision&revision=1222974 svg: corrected missing member initialization http://svn.apache.org/viewvc?view=revision&revision=1226134 fix for #118525#: Using primitives for chart sub-geometry visualisation http://svn.apache.org/viewvc?view=revision&revision=1226879 #118898# Adapted ImpGraphic::ImplGetBitmap to correctly convert metafiles to bitmapEx ... http://svn.apache.org/viewvc?view=revision&revision=1293316 fix for #118525#: removed no longer used variable maOriginalMapMode, one more exception eliminated http://svn.apache.org/viewvc?view=revision&revision=1227097 #16758# Added buffering to the VDev usages of the VclProcessor2D derivates... http://svn.apache.org/viewvc?view=revision&revision=1229521 #116758# Secured VDev buffer device to Vcl deinit http://svn.apache.org/viewvc?view=revision&revision=1230574 #116758# added remembering allocated VDevs for VDevBuffer to be able to also delete these when vcl goes down; it should never happen, but You never know http://svn.apache.org/viewvc?view=revision&revision=1230927 #118730# Changed SvgClipPathNode to use MaskPrimitive2D for primitive representation instead of TransparencePrimitive2D http://svn.apache.org/viewvc?view=revision&revision=1231198 #118822# secured 3D geometry creation (slices) by subdividing the 2D source polyPolygon early http://svn.apache.org/viewvc?view=revision&revision=1234749 #118829# enhanced Svg gradient quality, obstacles avoided http://svn.apache.org/viewvc?view=revision&revision=1235361 #118834# Unified usage of TextBreakupHelper as single tooling class for i18n text primitive breakup http://svn.apache.org/viewvc?view=revision&revision=1236110 #118853# added square pixel size limit to conversion of TransparencePrimitive2D to Metafile action http://svn.apache.org/viewvc?view=revision&revision=1237656 #118824# coreccted mirroring and boundrect when the graphicmanager is used for bitmap output http://svn.apache.org/viewvc?view=revision&revision=1240097 #115092# Corrected VclProcessor2D::RenderPolygonStrokePrimitive2D for various optimization scenarios http://svn.apache.org/viewvc?view=revision&revision=1241434 #118783# Corrected errors in ID strings, corrected Svg line/fill export, corrected polygon close state http://svn.apache.org/viewvc?view=revision&revision=1232006 #118796# corrected null-pointer usage in SVG text exporter http://svn.apache.org/viewvc?view=revision&revision=1240262 #118729# Use GraphicStreamUrl and GraphicUrl to allow multi image import with linked graphics, too http://svn.apache.org/viewvc?view=revision&revision=1229962 #118898# corrected error in GDIMetaFile::GetBoundRect in handling MetaFloatTransparentAction http://svn.apache.org/viewvc?view=revision&revision=1293349 #118855# Corrected handling of possibly created empty clipRegions after PolyPolygon clipping http://svn.apache.org/viewvc?view=revision&revision=1237725 #115962# Better (but not yet optimal, see comments in task) handling of MetaFloatTransparentAction in PDF export http://svn.apache.org/viewvc?view=revision&revision=1241078 IP clearance: #118466# This patch removes librsvg, libcroco, libgsf, ... http://svn.apache.org/viewvc?view=revision&revision=1200879 118779# Added svg content streaming in/out to ImpGraphic stream operators http://svn.apache.org/viewvc?view=revision&revision=1231908 linecap: correctons for WaE and mac drawing http://svn.apache.org/viewvc?view=revision&revision=1232793 svg: uses current system Dpi for Svg replacement image creation http://svn.apache.org/viewvc?view=revision&revision=1233948 Patches contributed by Mathias Bauer (and others) gnumake4 work variously http://svn.apache.org/viewvc?view=revision&revision=1394326 http://svn.apache.org/viewvc?view=revision&revision=1396797 http://svn.apache.org/viewvc?view=revision&revision=1397315 http://svn.apache.org/viewvc?view=revision&revision=1394326 Remove duplicate header includes. cws mba34issues01: #i117720#: convert assertion into warning http://svn.apache.org/viewvc?view=revision&revision=1172352 118485 - Styles for OLEs are not saved. Submitted by Armin Le Grand. http://svn.apache.org/viewvc?view=revision&revision=1182166 cws mba34issues01: #i117714#: remove assertion http://svn.apache.org/viewvc?view=revision&revision=1172357 Patch contributed by Jurgen Schmidt add some additional checks to ensure proper reading operations http://svn.apache.org/viewvc?view=revision&revision=1209022 mostly prefer our stream / bounds checking work. Patches contributed by Herbert Duerr #i118816# add clarifying comment regarding Font::*Color*() methods http://svn.apache.org/viewvc?view=revision&revision=1233833 extend macro->string handling for empty strings http://svn.apache.org/viewvc?view=revision&revision=1175801 avoid magic constants for SALCOLOR_NONE http://svn.apache.org/viewvc?view=revision&revision=1177543 initialize slant properly in ImplFontMetricData constructor (author=iorsh) http://svn.apache.org/viewvc?view=revision&revision=1177551 #i118675# make check for extension updates more stable http://svn.apache.org/viewvc?view=revision&revision=1214797 #a118617# remove VBasicEventListener.dll binary There are no known users depending on its CLSID http://svn.apache.org/viewvc?view=revision&revision=1203697 Patches contributed by Ariel Constenla-Haile Fix build breaker on Linux/gcc http://svn.apache.org/viewvc?view=revision&revision=1221104 Fix crash when trying to instantiate css.graphic.GraphicRasterizer_RSVG http://svn.apache.org/viewvc?view=revision&revision=1215559 Patches contributed by Oliver-Rainer Wittmann sw34bf06: #i117962# - method <SwFlyFrm::IsPaint(..)> - consider instances of <SwFlyDrawObj> http://svn.apache.org/viewvc?view=revision&revision=1172120 sw34bf06: #i117783# - Writer's implementation of XPagePrintable - apply print settings to new printing routines http://svn.apache.org/viewvc?view=revision&revision=1172115 gnumake4 work variously from Hans-Joachim Lankenau http://svn.apache.org/viewvc?view=revision&revision=1397315 http://svn.apache.org/viewvc?view=revision&revision=1396797 http://svn.apache.org/viewvc?view=revision&revision=1396782 http://svn.apache.org/viewvc?view=revision&revision=1394707 plus some amount of re-splitting of legacy headers. Patch contributed by Pavel Janik WaE: Remove unused variables. http://svn.apache.org/viewvc?view=revision&revision=1230697 Patches contributed by Takashi Ono mingwport35: i#117795: MinGW port fix for vcl2gnumake http://svn.apache.org/viewvc?view=revision&revision=1172091 mingwport35: i#117795: MinGW port fix for vcl2gnumake http://svn.apache.org/viewvc?view=revision&revision=1172091 Patch contributed by Christian Lippka impress212: #i98044# re enable Text menu for outline and title shapes http://svn.apache.org/viewvc?view=revision&revision=1167639 Patch contributed by Andre Fischer 118674: Made category B code optional and disabled by default. http://svn.apache.org/viewvc?view=revision&revision=1215131 118881: Ignore empty paragraphs after bullets. http://svn.apache.org/viewvc?view=revision&revision=1296205 Patches contributed by Philipp Lohmann ooo340fixes: #i117780# use rtl allocator http://svn.apache.org/viewvc?view=revision&revision=1172087 ooo34gsl02: #i117807# fix an off by one error (index actually inside the pfb section header) http://svn.apache.org/viewvc?view=revision&revision=1167576 various cleanups, related compilation fixes, warning cleanups, re-working of obsolete stl template pieces to use boost instead, changed string classes, re-adapt KDE about data, about dialog, fixing warnings, and other fixes & improvements. Disable svg import / render for about/ branding code-paths for now. Restore full icon theme set. Remove OS/2 conditionals and sources. Remove conflicting gtk/full-screen monitors support. Retain existing svg rasterizer files - temporarily disabled. Standardize stringificaiton and fixup dllpostfix issues. Rename SvgGradientHelper::== to equalTo to avoid overloading issues. Use the flat GdiPlus API for LineCaps calls.
2012-10-09 12:22:23 +01:00
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
2000-09-18 16:07:07 +00:00
#include <string.h>
2000-09-18 16:07:07 +00:00
#include <tools/debug.hxx>
#include <tools/rcid.h>
#include <vcl/event.hxx>
#include <vcl/wall.hxx>
#include <vcl/bitmap.hxx>
#include <vcl/decoview.hxx>
#include <vcl/image.hxx>
#include <vcl/help.hxx>
#include <vcl/splitwin.hxx>
#include <vcl/settings.hxx>
2000-09-18 16:07:07 +00:00
#include <rsc/rsc-vcl-shared-types.hxx>
#include <svdata.hxx>
#include <svids.hrc>
#define SPLITWIN_SPLITSIZE 4
#define SPLITWIN_SPLITSIZEEX 4
#define SPLITWIN_SPLITSIZEEXLN 7
#define SPLITWIN_SPLITSIZEAUTOHIDE 72
#define SPLITWIN_SPLITSIZEFADE 72
#define SPLIT_HORZ ((sal_uInt16)0x0001)
#define SPLIT_VERT ((sal_uInt16)0x0002)
#define SPLIT_WINDOW ((sal_uInt16)0x0004)
#define SPLIT_NOSPLIT ((sal_uInt16)0x8000)
class ImplSplitItem
2000-09-18 16:07:07 +00:00
{
public:
ImplSplitItem();
~ImplSplitItem();
void dispose();
2000-09-18 16:07:07 +00:00
long mnSize;
long mnPixSize;
long mnLeft;
long mnTop;
long mnWidth;
long mnHeight;
long mnSplitPos;
long mnSplitSize;
long mnOldSplitPos;
long mnOldSplitSize;
long mnOldWidth;
long mnOldHeight;
ImplSplitSet* mpSet;
vclwidget: change all vcl::window fields to be wrapped in VclPtr and update the VclWidget clang plugin to - warn about unconverted fields - .clear() all VclPtr fields in dispose() methods Change-Id: I6e657c215bc6807efd992555399b3b1fc16c89b5 2 1 accessibility/inc/accessibility/extended/accessibleiconchoicectrlentry.hxx 2 1 accessibility/inc/accessibility/extended/accessibletabbarbase.hxx 1 1 accessibility/inc/accessibility/extended/accessibletablistbox.hxx 1 1 accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx 3 2 accessibility/inc/accessibility/extended/listboxaccessible.hxx 1 1 accessibility/inc/accessibility/extended/textwindowaccessibility.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessiblemenubar.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessiblestatusbar.hxx 4 4 accessibility/inc/accessibility/standard/vclxaccessiblestatusbaritem.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessibletabcontrol.hxx 2 1 accessibility/inc/accessibility/standard/vclxaccessibletabpage.hxx 3 2 accessibility/inc/accessibility/standard/vclxaccessibletabpagewindow.hxx 7 6 accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx 3 3 accessibility/source/extended/AccessibleToolPanelDeck.cxx 2 2 accessibility/source/extended/AccessibleToolPanelDeckTabBar.cxx 2 2 accessibility/source/extended/AccessibleToolPanelDeckTabBarItem.cxx 1 1 accessibility/source/extended/accessibleiconchoicectrlentry.cxx 3 3 accessibility/source/extended/textwindowaccessibility.cxx 3 3 accessibility/source/standard/vclxaccessibleradiobutton.cxx 1 1 accessibility/source/standard/vclxaccessibletabpagewindow.cxx 1 1 avmedia/inc/mediacontrol.hxx 1 2 avmedia/source/framework/mediacontrol.cxx 1 1 avmedia/source/framework/mediaplayer.cxx 7 7 avmedia/source/viewer/mediaevent_impl.cxx 2 1 avmedia/source/viewer/mediaevent_impl.hxx 1 2 avmedia/source/viewer/mediawindow_impl.cxx 1 1 avmedia/source/viewer/mediawindow_impl.hxx 1 1 basctl/source/basicide/basicrenderable.hxx 1 0 basctl/source/basicide/baside2.cxx 7 5 basctl/source/basicide/baside2.hxx 13 2 basctl/source/basicide/baside2b.cxx 3 3 basctl/source/basicide/baside3.cxx 14 14 basctl/source/basicide/basides1.cxx 4 4 basctl/source/basicide/basides2.cxx 2 2 basctl/source/basicide/basides3.cxx 6 6 basctl/source/basicide/basidesh.cxx 14 1 basctl/source/basicide/bastypes.cxx 15 0 basctl/source/basicide/brkdlg.cxx 8 6 basctl/source/basicide/brkdlg.hxx 11 0 basctl/source/basicide/layout.cxx 5 2 basctl/source/basicide/layout.hxx 11 0 basctl/source/basicide/linenumberwindow.cxx 3 1 basctl/source/basicide/linenumberwindow.hxx 14 0 basctl/source/basicide/macrodlg.cxx 15 15 basctl/source/basicide/macrodlg.hxx 45 1 basctl/source/basicide/moduldl2.cxx 32 1 basctl/source/basicide/moduldlg.cxx 36 26 basctl/source/basicide/moduldlg.hxx 20 0 basctl/source/dlged/managelang.cxx 2 1 basctl/source/inc/accessibledialogcontrolshape.hxx 2 1 basctl/source/inc/accessibledialogwindow.hxx 2 2 basctl/source/inc/baside3.hxx 4 4 basctl/source/inc/basidesh.hxx 5 4 basctl/source/inc/bastypes.hxx 3 2 basctl/source/inc/dlged.hxx 12 10 basctl/source/inc/managelang.hxx 1 1 chart2/inc/ChartModel.hxx 2 1 chart2/source/controller/accessibility/AccessibleViewForwarder.hxx 2 2 chart2/source/controller/dialogs/ChartTypeDialogController.hxx 1 2 chart2/source/controller/dialogs/dlg_ChartType.cxx 2 10 chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx 1 0 chart2/source/controller/dialogs/dlg_DataEditor.cxx 4 6 chart2/source/controller/dialogs/dlg_DataSource.cxx 17 0 chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx 6 8 chart2/source/controller/dialogs/dlg_View3D.cxx 2 2 chart2/source/controller/dialogs/res_BarGeometry.hxx 19 19 chart2/source/controller/dialogs/res_DataLabel.hxx 23 23 chart2/source/controller/dialogs/res_Trendline.hxx 14 0 chart2/source/controller/dialogs/tp_3D_SceneAppearance.cxx 6 4 chart2/source/controller/dialogs/tp_3D_SceneAppearance.hxx 18 0 chart2/source/controller/dialogs/tp_3D_SceneGeometry.cxx 9 7 chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx 14 1 chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx 16 16 chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx 17 0 chart2/source/controller/dialogs/tp_AxisLabel.cxx 17 17 chart2/source/controller/dialogs/tp_AxisLabel.hxx 24 0 chart2/source/controller/dialogs/tp_AxisPositions.cxx 20 18 chart2/source/controller/dialogs/tp_AxisPositions.hxx 44 19 chart2/source/controller/dialogs/tp_ChartType.cxx 3 3 chart2/source/controller/dialogs/tp_ChartType.hxx 28 0 chart2/source/controller/dialogs/tp_DataSource.cxx 22 20 chart2/source/controller/dialogs/tp_DataSource.hxx 12 0 chart2/source/controller/dialogs/tp_LegendPosition.cxx 3 1 chart2/source/controller/dialogs/tp_LegendPosition.hxx 16 0 chart2/source/controller/dialogs/tp_PolarOptions.cxx 8 6 chart2/source/controller/dialogs/tp_PolarOptions.hxx 24 0 chart2/source/controller/dialogs/tp_RangeChooser.cxx 15 13 chart2/source/controller/dialogs/tp_RangeChooser.hxx 35 0 chart2/source/controller/dialogs/tp_Scale.cxx 34 32 chart2/source/controller/dialogs/tp_Scale.hxx 24 0 chart2/source/controller/dialogs/tp_SeriesToAxis.cxx 19 17 chart2/source/controller/dialogs/tp_SeriesToAxis.hxx 7 0 chart2/source/controller/dialogs/tp_TitleRotation.cxx 7 7 chart2/source/controller/dialogs/tp_TitleRotation.hxx 13 0 chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.cxx 5 3 chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.hxx 1 1 chart2/source/controller/inc/dlg_ChartType.hxx 1 1 chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx 1 1 chart2/source/controller/inc/dlg_DataEditor.hxx 4 4 chart2/source/controller/inc/dlg_DataSource.hxx 8 6 chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx 4 4 chart2/source/controller/inc/dlg_View3D.hxx 27 27 chart2/source/controller/inc/res_ErrorBar.hxx 5 5 chart2/source/controller/inc/res_LegendPosition.hxx 14 14 chart2/source/controller/inc/res_Titles.hxx 1 1 chart2/source/controller/main/ChartController.hxx 2 3 chart2/source/controller/main/ChartWindow.cxx 1 1 chart2/source/controller/main/ChartWindow.hxx 6 6 chart2/source/controller/main/ShapeController.cxx 1 1 chart2/source/view/charttypes/GL3DBarChart.cxx 1 1 chart2/source/view/inc/GL3DBarChart.hxx 1 1 chart2/source/view/main/ChartView.cxx 155 50 compilerplugins/clang/vclwidgets.cxx 23 0 cui/source/customize/acccfg.cxx 95 20 cui/source/customize/cfg.cxx 1 0 cui/source/customize/cfgutil.cxx 1 0 cui/source/customize/eventdlg.cxx 1 1 cui/source/customize/eventdlg.hxx 12 0 cui/source/customize/macropg.cxx 8 6 cui/source/customize/macropg_impl.hxx 17 0 cui/source/customize/selector.cxx 20 0 cui/source/dialogs/SpellDialog.cxx 17 0 cui/source/dialogs/about.cxx 56 26 cui/source/dialogs/colorpicker.cxx 19 0 cui/source/dialogs/cuicharmap.cxx 29 1 cui/source/dialogs/cuifmsearch.cxx 84 2 cui/source/dialogs/cuigaldlg.cxx 72 0 cui/source/dialogs/cuigrfflt.cxx 15 0 cui/source/dialogs/cuiimapwnd.cxx 11 0 cui/source/dialogs/cuitbxform.cxx 41 0 cui/source/dialogs/dlgname.cxx 79 5 cui/source/dialogs/hangulhanjadlg.cxx 5 0 cui/source/dialogs/hldocntp.cxx 15 0 cui/source/dialogs/hldoctp.cxx 20 1 cui/source/dialogs/hlinettp.cxx 14 0 cui/source/dialogs/hlmailtp.cxx 15 0 cui/source/dialogs/hlmarkwn.cxx 9 5 cui/source/dialogs/hltpbase.cxx 18 0 cui/source/dialogs/hyphen.cxx 18 2 cui/source/dialogs/iconcdlg.cxx 45 0 cui/source/dialogs/insdlg.cxx 13 0 cui/source/dialogs/insrc.cxx 20 0 cui/source/dialogs/linkdlg.cxx 13 8 cui/source/dialogs/multipat.cxx 12 0 cui/source/dialogs/newtabledlg.cxx 9 9 cui/source/dialogs/passwdomdlg.cxx 13 0 cui/source/dialogs/pastedlg.cxx 7 0 cui/source/dialogs/postdlg.cxx 18 0 cui/source/dialogs/scriptdlg.cxx 11 0 cui/source/dialogs/showcols.cxx 14 0 cui/source/dialogs/splitcelldlg.cxx 25 0 cui/source/dialogs/srchxtra.cxx 39 0 cui/source/dialogs/thesdlg.cxx 13 0 cui/source/dialogs/zoom.cxx 29 0 cui/source/factory/cuiexp.cxx 0 2 cui/source/factory/dlgfact.cxx 2 3 cui/source/factory/dlgfact.hxx 3 1 cui/source/inc/ControlFocusHelper.hxx 20 20 cui/source/inc/SpellDialog.hxx 9 7 cui/source/inc/about.hxx 14 12 cui/source/inc/acccfg.hxx 26 26 cui/source/inc/align.hxx 62 52 cui/source/inc/autocdlg.hxx 29 29 cui/source/inc/backgrnd.hxx 34 32 cui/source/inc/border.hxx 44 33 cui/source/inc/cfg.hxx 1 1 cui/source/inc/cfgutil.hxx 95 85 cui/source/inc/chardlg.hxx 14 12 cui/source/inc/connect.hxx 12 10 cui/source/inc/cuicharmap.hxx 27 27 cui/source/inc/cuifmsearch.hxx 41 29 cui/source/inc/cuigaldlg.hxx 24 10 cui/source/inc/cuigrfflt.hxx 1 1 cui/source/inc/cuihyperdlg.hxx 7 5 cui/source/inc/cuiimapwnd.hxx 3 1 cui/source/inc/cuioptgenrl.hxx 3 1 cui/source/inc/cuisrchdlg.hxx 145 135 cui/source/inc/cuitabarea.hxx 57 53 cui/source/inc/cuitabline.hxx 3 1 cui/source/inc/cuitbxform.hxx 5 5 cui/source/inc/dbregister.hxx 17 12 cui/source/inc/dlgname.hxx 15 11 cui/source/inc/dstribut.hxx 21 21 cui/source/inc/grfpage.hxx 49 43 cui/source/inc/hangulhanjadlg.hxx 5 5 cui/source/inc/hldocntp.hxx 7 5 cui/source/inc/hldoctp.hxx 11 9 cui/source/inc/hlinettp.hxx 6 4 cui/source/inc/hlmailtp.hxx 7 5 cui/source/inc/hlmarkwn.hxx 7 7 cui/source/inc/hltpbase.hxx 10 8 cui/source/inc/hyphen.hxx 14 12 cui/source/inc/iconcdlg.hxx 29 25 cui/source/inc/insdlg.hxx 5 3 cui/source/inc/insrc.hxx 12 10 cui/source/inc/labdlg.hxx 12 10 cui/source/inc/linkdlg.hxx 19 17 cui/source/inc/measure.hxx 6 6 cui/source/inc/multipat.hxx 4 2 cui/source/inc/newtabledlg.hxx 30 30 cui/source/inc/numfmt.hxx 64 64 cui/source/inc/numpages.hxx 13 13 cui/source/inc/optasian.hxx 17 13 cui/source/inc/optdict.hxx 18 18 cui/source/inc/optlingu.hxx 4 4 cui/source/inc/optpath.hxx 29 29 cui/source/inc/page.hxx 71 59 cui/source/inc/paragrph.hxx 6 4 cui/source/inc/pastedlg.hxx 7 7 cui/source/inc/postdlg.hxx 11 9 cui/source/inc/scriptdlg.hxx 9 7 cui/source/inc/selector.hxx 4 2 cui/source/inc/showcols.hxx 6 4 cui/source/inc/splitcelldlg.hxx 10 6 cui/source/inc/srchxtra.hxx 28 26 cui/source/inc/swpossizetabpage.hxx 29 27 cui/source/inc/tabstpge.hxx 20 17 cui/source/inc/textanim.hxx 19 16 cui/source/inc/textattr.hxx 15 8 cui/source/inc/thesdlg.hxx 34 28 cui/source/inc/transfrm.hxx 5 5 cui/source/inc/treeopt.hxx 13 13 cui/source/inc/zoom.hxx 4 2 cui/source/options/certpath.cxx 4 4 cui/source/options/certpath.hxx 17 0 cui/source/options/connpooloptions.cxx 10 8 cui/source/options/connpooloptions.hxx 11 0 cui/source/options/cuisrchdlg.cxx 5 2 cui/source/options/dbregister.cxx 14 0 cui/source/options/doclinkdialog.cxx 6 4 cui/source/options/doclinkdialog.hxx 10 2 cui/source/options/fontsubs.cxx 12 12 cui/source/options/fontsubs.hxx 26 0 cui/source/options/optaboutconfig.cxx 10 6 cui/source/options/optaboutconfig.hxx 9 0 cui/source/options/optaccessibility.cxx 9 9 cui/source/options/optaccessibility.hxx 13 0 cui/source/options/optasian.cxx 16 0 cui/source/options/optbasic.cxx 8 6 cui/source/options/optbasic.hxx 5 0 cui/source/options/optchart.cxx 5 5 cui/source/options/optchart.hxx 29 32 cui/source/options/optcolor.cxx 4 4 cui/source/options/optcolor.hxx 16 0 cui/source/options/optctl.cxx 8 6 cui/source/options/optctl.hxx 31 0 cui/source/options/optdict.cxx 21 2 cui/source/options/optfltr.cxx 12 10 cui/source/options/optfltr.hxx 54 0 cui/source/options/optgdlg.cxx 47 45 cui/source/options/optgdlg.hxx 12 2 cui/source/options/optgenrl.cxx 26 0 cui/source/options/opthtml.cxx 18 16 cui/source/options/opthtml.hxx 45 4 cui/source/options/optinet2.cxx 37 35 cui/source/options/optinet2.hxx 29 6 cui/source/options/optjava.cxx 23 21 cui/source/options/optjava.hxx 28 0 cui/source/options/optjsearch.cxx 22 20 cui/source/options/optjsearch.hxx 31 4 cui/source/options/optlingu.cxx 17 0 cui/source/options/optmemory.cxx 9 7 cui/source/options/optmemory.hxx 44 5 cui/source/options/optopencl.cxx 21 20 cui/source/options/optopencl.hxx 4 2 cui/source/options/optpath.cxx 17 0 cui/source/options/optsave.cxx 19 19 cui/source/options/optsave.hxx 19 0 cui/source/options/optupdt.cxx 12 10 cui/source/options/optupdt.hxx 39 0 cui/source/options/personalization.cxx 20 16 cui/source/options/personalization.hxx 18 0 cui/source/options/securityoptions.cxx 10 8 cui/source/options/securityoptions.hxx 11 10 cui/source/options/treeopt.cxx 4 2 cui/source/options/webconninfo.cxx 4 4 cui/source/options/webconninfo.hxx 24 0 cui/source/tabpages/align.cxx 106 7 cui/source/tabpages/autocdlg.cxx 27 0 cui/source/tabpages/backgrnd.cxx 34 0 cui/source/tabpages/border.cxx 115 1 cui/source/tabpages/chardlg.cxx 22 0 cui/source/tabpages/connect.cxx 32 0 cui/source/tabpages/dstribut.cxx 18 0 cui/source/tabpages/grfpage.cxx 20 0 cui/source/tabpages/labdlg.cxx 10 10 cui/source/tabpages/macroass.cxx 25 0 cui/source/tabpages/measure.cxx 25 1 cui/source/tabpages/numfmt.cxx 60 1 cui/source/tabpages/numpages.cxx 29 0 cui/source/tabpages/page.cxx 99 0 cui/source/tabpages/paragrph.cxx 37 0 cui/source/tabpages/swpossizetabpage.cxx 34 1 cui/source/tabpages/tabstpge.cxx 26 0 cui/source/tabpages/textanim.cxx 24 0 cui/source/tabpages/textattr.cxx 72 0 cui/source/tabpages/tparea.cxx 14 1 cui/source/tabpages/tpbitmap.cxx 28 4 cui/source/tabpages/tpcolor.cxx 28 0 cui/source/tabpages/tpgradnt.cxx 21 0 cui/source/tabpages/tphatch.cxx 29 0 cui/source/tabpages/tpline.cxx 25 0 cui/source/tabpages/tplnedef.cxx 18 0 cui/source/tabpages/tplneend.cxx 17 0 cui/source/tabpages/tpshadow.cxx 58 0 cui/source/tabpages/transfrm.cxx 42 0 dbaccess/source/ext/macromigration/macromigrationpages.cxx 20 14 dbaccess/source/ext/macromigration/macromigrationpages.hxx 1 1 dbaccess/source/ext/macromigration/rangeprogressbar.hxx 0 1 dbaccess/source/ui/app/AppDetailPageHelper.cxx 2 1 dbaccess/source/ui/app/AppDetailView.cxx 2 2 dbaccess/source/ui/app/AppDetailView.hxx 1 1 dbaccess/source/ui/app/AppTitleWindow.cxx 1 1 dbaccess/source/ui/app/AppTitleWindow.hxx 4 10 dbaccess/source/ui/app/AppView.cxx 4 4 dbaccess/source/ui/app/AppView.hxx 1 0 dbaccess/source/ui/app/subcomponentmanager.cxx 7 16 dbaccess/source/ui/browser/brwview.cxx 1 2 dbaccess/source/ui/browser/dbtreeview.cxx 1 1 dbaccess/source/ui/browser/dbtreeview.hxx 10 0 dbaccess/source/ui/browser/genericcontroller.cxx 68 41 dbaccess/source/ui/control/FieldDescControl.cxx 2 2 dbaccess/source/ui/control/TableGrantCtrl.cxx 3 1 dbaccess/source/ui/control/VertSplitView.cxx 3 3 dbaccess/source/ui/control/curledit.cxx 1 0 dbaccess/source/ui/control/sqledit.cxx 16 0 dbaccess/source/ui/dlg/CollectionView.cxx 4 8 dbaccess/source/ui/dlg/ConnectionHelper.cxx 4 5 dbaccess/source/ui/dlg/ConnectionHelper.hxx 19 0 dbaccess/source/ui/dlg/ConnectionPage.cxx 13 11 dbaccess/source/ui/dlg/ConnectionPage.hxx 12 0 dbaccess/source/ui/dlg/ConnectionPageSetup.cxx 4 2 dbaccess/source/ui/dlg/ConnectionPageSetup.hxx 113 1 dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx 61 48 dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx 2 1 dbaccess/source/ui/dlg/DbAdminImpl.hxx 13 0 dbaccess/source/ui/dlg/QueryPropertiesDialog.cxx 20 0 dbaccess/source/ui/dlg/RelationDlg.cxx 30 1 dbaccess/source/ui/dlg/TextConnectionHelper.cxx 21 19 dbaccess/source/ui/dlg/TextConnectionHelper.hxx 19 5 dbaccess/source/ui/dlg/UserAdmin.cxx 4 4 dbaccess/source/ui/dlg/UserAdmin.hxx 22 0 dbaccess/source/ui/dlg/admincontrols.cxx 14 13 dbaccess/source/ui/dlg/admincontrols.hxx 1 1 dbaccess/source/ui/dlg/adminpages.hxx 6 0 dbaccess/source/ui/dlg/adtabdlg.cxx 57 31 dbaccess/source/ui/dlg/advancedsettings.cxx 28 28 dbaccess/source/ui/dlg/advancedsettings.hxx 19 0 dbaccess/source/ui/dlg/dbfindex.cxx 11 9 dbaccess/source/ui/dlg/dbfindex.hxx 7 4 dbaccess/source/ui/dlg/dbwizsetup.cxx 86 16 dbaccess/source/ui/dlg/detailpages.cxx 45 35 dbaccess/source/ui/dlg/detailpages.hxx 7 0 dbaccess/source/ui/dlg/directsql.cxx 8 8 dbaccess/source/ui/dlg/dlgsave.cxx 13 0 dbaccess/source/ui/dlg/dlgsize.cxx 14 0 dbaccess/source/ui/dlg/dsselect.cxx 6 5 dbaccess/source/ui/dlg/dsselect.hxx 30 0 dbaccess/source/ui/dlg/generalpage.cxx 15 11 dbaccess/source/ui/dlg/generalpage.hxx 9 0 dbaccess/source/ui/dlg/indexdialog.cxx 2 2 dbaccess/source/ui/dlg/indexfieldscontrol.cxx 5 0 dbaccess/source/ui/dlg/paramdialog.cxx 21 0 dbaccess/source/ui/dlg/queryfilter.cxx 18 0 dbaccess/source/ui/dlg/queryorder.cxx 9 2 dbaccess/source/ui/dlg/sqlmessage.cxx 3 0 dbaccess/source/ui/dlg/tablespage.cxx 3 3 dbaccess/source/ui/dlg/tablespage.hxx 11 0 dbaccess/source/ui/dlg/textconnectionsettings.cxx 8 7 dbaccess/source/ui/inc/CollectionView.hxx 2 1 dbaccess/source/ui/inc/ConnectionLine.hxx 2 1 dbaccess/source/ui/inc/ConnectionLineAccess.hxx 35 35 dbaccess/source/ui/inc/FieldDescControl.hxx 2 1 dbaccess/source/ui/inc/JAccess.hxx 1 1 dbaccess/source/ui/inc/JoinController.hxx 2 2 dbaccess/source/ui/inc/JoinDesignView.hxx 13 13 dbaccess/source/ui/inc/JoinTableView.hxx 1 1 dbaccess/source/ui/inc/QueryDesignView.hxx 5 4 dbaccess/source/ui/inc/QueryPropertiesDialog.hxx 1 1 dbaccess/source/ui/inc/QueryTextView.hxx 2 2 dbaccess/source/ui/inc/QueryViewSwitch.hxx 3 3 dbaccess/source/ui/inc/RelationControl.hxx 11 9 dbaccess/source/ui/inc/RelationDlg.hxx 1 1 dbaccess/source/ui/inc/RelationTableView.hxx 1 1 dbaccess/source/ui/inc/TableConnection.hxx 1 1 dbaccess/source/ui/inc/TableDesignHelpBar.hxx 3 3 dbaccess/source/ui/inc/TableDesignView.hxx 2 1 dbaccess/source/ui/inc/TableFieldDescription.hxx 2 2 dbaccess/source/ui/inc/TableGrantCtrl.hxx 1 1 dbaccess/source/ui/inc/TableWindow.hxx 2 1 dbaccess/source/ui/inc/TableWindowAccess.hxx 2 2 dbaccess/source/ui/inc/TableWindowListBox.hxx 1 1 dbaccess/source/ui/inc/TableWindowTitle.hxx 1 1 dbaccess/source/ui/inc/TokenWriter.hxx 3 3 dbaccess/source/ui/inc/VertSplitView.hxx 13 11 dbaccess/source/ui/inc/WCPage.hxx 6 6 dbaccess/source/ui/inc/WColumnSelect.hxx 5 5 dbaccess/source/ui/inc/WCopyTable.hxx 12 11 dbaccess/source/ui/inc/WNameMatch.hxx 3 1 dbaccess/source/ui/inc/WTabPage.hxx 13 9 dbaccess/source/ui/inc/WTypeSelect.hxx 6 6 dbaccess/source/ui/inc/adtabdlg.hxx 5 5 dbaccess/source/ui/inc/brwview.hxx 1 1 dbaccess/source/ui/inc/curledit.hxx 4 3 dbaccess/source/ui/inc/datasourceconnector.hxx 3 3 dbaccess/source/ui/inc/dbwizsetup.hxx 7 7 dbaccess/source/ui/inc/directsql.hxx 4 2 dbaccess/source/ui/inc/dlgsize.hxx 9 9 dbaccess/source/ui/inc/indexdialog.hxx 2 2 dbaccess/source/ui/inc/indexfieldscontrol.hxx 2 1 dbaccess/source/ui/inc/linkeddocuments.hxx 5 5 dbaccess/source/ui/inc/paramdialog.hxx 2 2 dbaccess/source/ui/inc/querycontainerwindow.hxx 13 11 dbaccess/source/ui/inc/queryfilter.hxx 10 8 dbaccess/source/ui/inc/queryorder.hxx 1 1 dbaccess/source/ui/inc/sqledit.hxx 3 1 dbaccess/source/ui/inc/textconnectionsettings.hxx 2 1 dbaccess/source/ui/inc/undosqledit.hxx 5 5 dbaccess/source/ui/inc/unodatbr.hxx 1 1 dbaccess/source/ui/misc/ToolBoxHelper.cxx 23 0 dbaccess/source/ui/misc/WCPage.cxx 17 0 dbaccess/source/ui/misc/WColumnSelect.cxx 5 5 dbaccess/source/ui/misc/WCopyTable.cxx 20 0 dbaccess/source/ui/misc/WNameMatch.cxx 41 13 dbaccess/source/ui/misc/WTypeSelect.cxx 1 0 dbaccess/source/ui/misc/singledoccontroller.cxx 5 4 dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx 1 1 dbaccess/source/ui/querydesign/JoinController.cxx 2 4 dbaccess/source/ui/querydesign/JoinDesignView.cxx 25 25 dbaccess/source/ui/querydesign/JoinTableView.cxx 1 1 dbaccess/source/ui/querydesign/QTableWindow.cxx 1 1 dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx 2 1 dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx 29 30 dbaccess/source/ui/querydesign/QueryDesignView.cxx 1 1 dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx 1 1 dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx 9 9 dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx 1 1 dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx 3 5 dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx 3 3 dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx 24 30 dbaccess/source/ui/querydesign/QueryTableView.cxx 1 2 dbaccess/source/ui/querydesign/QueryTextView.cxx 12 10 dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx 6 6 dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx 1 1 dbaccess/source/ui/querydesign/TableConnection.cxx 1 0 dbaccess/source/ui/querydesign/TableFieldDescription.cxx 2 3 dbaccess/source/ui/querydesign/TableWindow.cxx 4 4 dbaccess/source/ui/querydesign/TableWindowAccess.cxx 1 1 dbaccess/source/ui/querydesign/TableWindowListBox.cxx 3 5 dbaccess/source/ui/querydesign/TableWindowTitle.cxx 1 2 dbaccess/source/ui/querydesign/limitboxcontroller.cxx 2 1 dbaccess/source/ui/querydesign/limitboxcontroller.hxx 2 3 dbaccess/source/ui/querydesign/querycontainerwindow.cxx 5 0 dbaccess/source/ui/querydesign/querydlg.cxx 5 5 dbaccess/source/ui/querydesign/querydlg.hxx 3 2 dbaccess/source/ui/relationdesign/RelationTableView.cxx 1 2 dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx 1 1 dbaccess/source/ui/tabledesign/FieldDescGenWin.hxx 5 4 dbaccess/source/ui/tabledesign/TEditControl.cxx 6 6 dbaccess/source/ui/tabledesign/TEditControl.hxx 1 2 dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx 3 14 dbaccess/source/ui/tabledesign/TableDesignView.cxx 3 12 dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx 3 3 dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx 4 3 dbaccess/source/ui/tabledesign/TableUndo.hxx 1 1 dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx 3 3 dbaccess/source/ui/uno/composerdialogs.cxx 1 1 dbaccess/source/ui/uno/copytablewizard.cxx 4 4 desktop/source/app/cmdlinehelp.hxx 10 0 desktop/source/deployment/gui/dp_gui_dependencydialog.cxx 3 1 desktop/source/deployment/gui/dp_gui_dependencydialog.hxx 36 7 desktop/source/deployment/gui/dp_gui_dialog2.cxx 22 20 desktop/source/deployment/gui/dp_gui_dialog2.hxx 3 11 desktop/source/deployment/gui/dp_gui_extlistbox.cxx 3 3 desktop/source/deployment/gui/dp_gui_extlistbox.hxx 5 12 desktop/source/deployment/gui/dp_gui_theextmgr.cxx 3 3 desktop/source/deployment/gui/dp_gui_theextmgr.hxx 15 1 desktop/source/deployment/gui/dp_gui_updatedialog.cxx 15 15 desktop/source/deployment/gui/dp_gui_updatedialog.hxx 7 0 desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx 7 7 desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx 22 7 desktop/source/deployment/gui/license_dialog.cxx 2 1 editeng/source/editeng/impedit.hxx 2 1 editeng/source/editeng/textconv.hxx 1 1 editeng/source/misc/hangulhanja.cxx 2 2 editeng/source/misc/splwrap.cxx 6 0 extensions/source/abpilot/abpfinalpage.cxx 7 6 extensions/source/abpilot/abpfinalpage.hxx 2 1 extensions/source/abpilot/admininvokationimpl.hxx 10 1 extensions/source/abpilot/admininvokationpage.cxx 4 3 extensions/source/abpilot/admininvokationpage.hxx 12 0 extensions/source/abpilot/fieldmappingpage.cxx 5 3 extensions/source/abpilot/fieldmappingpage.hxx 10 0 extensions/source/abpilot/tableselectionpage.cxx 4 2 extensions/source/abpilot/tableselectionpage.hxx 11 0 extensions/source/abpilot/typeselectionpage.cxx 13 12 extensions/source/abpilot/typeselectionpage.hxx 1 1 extensions/source/abpilot/unodialogabp.cxx 4 3 extensions/source/bibliography/bibbeam.cxx 2 2 extensions/source/bibliography/bibbeam.hxx 5 2 extensions/source/bibliography/bibcont.cxx 2 2 extensions/source/bibliography/bibcont.hxx 1 0 extensions/source/bibliography/bibmod.cxx 1 1 extensions/source/bibliography/bibshortcuthandler.hxx 18 9 extensions/source/bibliography/bibview.cxx 23 11 extensions/source/bibliography/bibview.hxx 85 35 extensions/source/bibliography/datman.cxx 3 2 extensions/source/bibliography/datman.hxx 1 0 extensions/source/bibliography/framectr.cxx 55 7 extensions/source/bibliography/general.cxx 57 41 extensions/source/bibliography/general.hxx 1 0 extensions/source/bibliography/toolbar.cxx 2 2 extensions/source/bibliography/toolbar.hxx 39 0 extensions/source/dbpilots/commonpagesdbp.cxx 17 11 extensions/source/dbpilots/commonpagesdbp.hxx 12 0 extensions/source/dbpilots/controlwizard.cxx 7 6 extensions/source/dbpilots/controlwizard.hxx 15 0 extensions/source/dbpilots/gridwizard.cxx 8 6 extensions/source/dbpilots/gridwizard.hxx 48 2 extensions/source/dbpilots/groupboxwiz.cxx 18 10 extensions/source/dbpilots/groupboxwiz.hxx 33 0 extensions/source/dbpilots/listcombowizard.cxx 12 6 extensions/source/dbpilots/listcombowizard.hxx 7 6 extensions/source/plugin/inc/plugin/plctrl.hxx 3 4 extensions/source/propctrlr/browserline.cxx 4 4 extensions/source/propctrlr/browserline.hxx 2 2 extensions/source/propctrlr/browserview.cxx 1 1 extensions/source/propctrlr/browserview.hxx 2 7 extensions/source/propctrlr/commoncontrol.cxx 1 1 extensions/source/propctrlr/commoncontrol.hxx 1 1 extensions/source/propctrlr/controlfontdialog.cxx 25 2 extensions/source/propctrlr/formlinkdialog.cxx 6 5 extensions/source/propctrlr/formlinkdialog.hxx 11 0 extensions/source/propctrlr/listselectiondlg.cxx 3 1 extensions/source/propctrlr/listselectiondlg.hxx 11 0 extensions/source/propctrlr/newdatatype.cxx 4 2 extensions/source/propctrlr/newdatatype.hxx 1 0 extensions/source/propctrlr/propcontroller.cxx 2 2 extensions/source/propctrlr/propcontroller.hxx 1 5 extensions/source/propctrlr/propertyeditor.cxx 1 1 extensions/source/propctrlr/propertyeditor.hxx 3 0 extensions/source/propctrlr/selectlabeldialog.cxx 3 3 extensions/source/propctrlr/selectlabeldialog.hxx 5 11 extensions/source/propctrlr/standardcontrol.cxx 2 2 extensions/source/propctrlr/standardcontrol.hxx 5 0 extensions/source/propctrlr/taborder.cxx 5 5 extensions/source/propctrlr/taborder.hxx 14 0 extensions/source/scanner/grid.cxx 6 5 extensions/source/scanner/grid.hxx 31 1 extensions/source/scanner/sanedlg.cxx 24 24 extensions/source/scanner/sanedlg.hxx 13 0 filter/source/flash/impswfdialog.cxx 9 8 filter/source/flash/impswfdialog.hxx 1 1 filter/source/flash/swfdialog.cxx 122 2 filter/source/pdf/impdialog.cxx 99 93 filter/source/pdf/impdialog.hxx 1 1 filter/source/pdf/pdfdialog.cxx 2 2 filter/source/pdf/pdffilter.cxx 1 1 filter/source/svg/svgdialog.cxx 3 7 filter/source/xsltdialog/xmlfilterdialogcomponent.cxx 29 2 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx 17 13 filter/source/xsltdialog/xmlfiltersettingsdialog.hxx 4 2 filter/source/xsltdialog/xmlfiltertabdialog.cxx 4 4 filter/source/xsltdialog/xmlfiltertabdialog.hxx 12 0 filter/source/xsltdialog/xmlfiltertabpagebasic.cxx 6 5 filter/source/xsltdialog/xmlfiltertabpagebasic.hxx 14 0 filter/source/xsltdialog/xmlfiltertabpagexslt.cxx 9 8 filter/source/xsltdialog/xmlfiltertabpagexslt.hxx 15 1 filter/source/xsltdialog/xmlfiltertestdialog.cxx 15 15 filter/source/xsltdialog/xmlfiltertestdialog.hxx 8 11 forms/source/richtext/richtextimplcontrol.cxx 7 7 forms/source/richtext/richtextimplcontrol.hxx 2 8 forms/source/solar/control/navtoolbar.cxx 2 2 forms/source/solar/inc/navtoolbar.hxx 10 8 formula/source/ui/dlg/ControlHelper.hxx 33 33 formula/source/ui/dlg/formula.cxx 12 0 formula/source/ui/dlg/funcpage.cxx 4 2 formula/source/ui/dlg/funcpage.hxx 39 16 formula/source/ui/dlg/funcutl.cxx 20 0 formula/source/ui/dlg/parawin.cxx 25 25 formula/source/ui/dlg/parawin.hxx 11 0 formula/source/ui/dlg/structpg.cxx 3 1 formula/source/ui/dlg/structpg.hxx 1 1 fpicker/source/office/OfficeControlAccess.hxx 6 8 fpicker/source/office/PlacesListBox.cxx 6 6 fpicker/source/office/PlacesListBox.hxx 5 3 fpicker/source/office/QueryFolderName.hxx 3 2 fpicker/source/office/asyncfilepicker.hxx 3 7 fpicker/source/office/commonpicker.cxx 2 1 fpicker/source/office/commonpicker.hxx 34 9 fpicker/source/office/iodlg.cxx 11 11 fpicker/source/office/iodlg.hxx 3 2 fpicker/source/office/iodlgimp.cxx 25 27 fpicker/source/office/iodlgimp.hxx 2 4 framework/inc/classes/fwktabwindow.hxx 2 1 framework/inc/dispatch/closedispatcher.hxx 1 1 framework/inc/helper/vclstatusindicator.hxx 4 3 framework/inc/uielement/buttontoolbarcontroller.hxx 1 1 framework/inc/uielement/comboboxtoolbarcontroller.hxx 3 2 framework/inc/uielement/complextoolbarcontroller.hxx 2 1 framework/inc/uielement/dropdownboxtoolbarcontroller.hxx 1 1 framework/inc/uielement/edittoolbarcontroller.hxx 6 5 framework/inc/uielement/generictoolbarcontroller.hxx 2 1 framework/inc/uielement/spinfieldtoolbarcontroller.hxx 2 1 framework/inc/uielement/statusbaritem.hxx 6 5 framework/inc/uielement/statusbarmanager.hxx 1 1 framework/inc/uielement/toolbarmanager.hxx 1 1 framework/inc/uielement/toolbarmerger.hxx 1 2 framework/source/helper/vclstatusindicator.cxx 4 4 framework/source/services/tabwindowservice.cxx 1 1 framework/source/uielement/buttontoolbarcontroller.cxx 1 3 framework/source/uielement/comboboxtoolbarcontroller.cxx 1 1 framework/source/uielement/complextoolbarcontroller.cxx 1 3 framework/source/uielement/dropdownboxtoolbarcontroller.cxx 1 3 framework/source/uielement/edittoolbarcontroller.cxx 1 1 framework/source/uielement/generictoolbarcontroller.cxx 1 3 framework/source/uielement/spinfieldtoolbarcontroller.cxx 25 26 framework/source/uielement/statusbarmanager.cxx 4 4 framework/source/uielement/toolbarmanager.cxx 2 1 include/dbaccess/ToolBoxHelper.hxx 4 3 include/dbaccess/genericcontroller.hxx 2 1 include/editeng/splwrap.hxx 4 2 include/formula/funcutl.hxx 6 10 include/sfx2/basedlgs.hxx 5 3 include/sfx2/checkin.hxx 4 4 include/sfx2/childwin.hxx 46 40 include/sfx2/dinfdlg.hxx 2 3 include/sfx2/fcontnr.hxx 2 1 include/sfx2/frame.hxx 8 9 include/sfx2/infobar.hxx 1 1 include/sfx2/ipclient.hxx 12 12 include/sfx2/mgetempl.hxx 2 2 include/sfx2/newstyle.hxx 16 14 include/sfx2/passwd.hxx 22 21 include/sfx2/printopt.hxx 1 1 include/sfx2/prnmon.hxx 2 1 include/sfx2/sidebar/SidebarPanelBase.hxx 3 3 include/sfx2/stbitem.hxx 10 10 include/sfx2/tabdlg.hxx 10 10 include/sfx2/templatedlg.hxx 4 4 include/sfx2/templateinfodlg.hxx 1 1 include/sfx2/thumbnailview.hxx 1 1 include/sfx2/thumbnailviewitem.hxx 2 1 include/sfx2/viewsh.hxx 5 4 include/svtools/GraphicExportOptionsDialog.hxx 7 6 include/svtools/PlaceEditDialog.hxx 13 13 include/svtools/ServerDetailsControls.hxx 2 1 include/svtools/accessibleruler.hxx 4 4 include/svtools/addresstemplate.hxx 8 8 include/svtools/brwbox.hxx 4 1 include/svtools/brwhead.hxx 4 4 include/svtools/calendar.hxx 4 4 include/svtools/colrdlg.hxx 5 5 include/svtools/editbrowsebox.hxx 3 1 include/svtools/fileview.hxx 2 2 include/svtools/generictoolboxcontroller.hxx 2 1 include/svtools/genericunodialog.hxx 7 7 include/svtools/prnsetup.hxx 3 1 include/svtools/simptabl.hxx 2 0 include/svtools/tabbar.hxx 2 2 include/svtools/treelistbox.hxx 6 7 include/svtools/wizardmachine.hxx 5 5 include/svtools/wizdlg.hxx 2 1 include/svx/AccessibleShapeTreeInfo.hxx 25 25 include/svx/bmpmask.hxx 18 16 include/svx/compressgraphicdialog.hxx 4 2 include/svx/contdlg.hxx 29 27 include/svx/ctredlin.hxx 1 1 include/svx/dialcontrol.hxx 5 5 include/svx/fillctrl.hxx 1 1 include/svx/fmshell.hxx 7 3 include/svx/fontworkgallery.hxx 16 16 include/svx/hdft.hxx 9 9 include/svx/imapdlg.hxx 1 1 include/svx/lboxctrl.hxx 1 1 include/svx/linkwarn.hxx 21 19 include/svx/optgrid.hxx 8 6 include/svx/passwd.hxx 24 22 include/svx/rubydialog.hxx 1 1 include/svx/ruler.hxx 2 1 include/svx/sidebar/Popup.hxx 50 50 include/svx/srchdlg.hxx 2 2 include/svx/svdedxv.hxx 2 2 include/svx/svdpntv.hxx 4 3 include/svx/tbxcolorupdate.hxx 3 2 include/tools/errinf.hxx 9 11 include/vcl/builder.hxx 2 2 include/vcl/button.hxx 3 3 include/vcl/combobox.hxx 2 2 include/vcl/controllayout.hxx 2 1 include/vcl/cursor.hxx 1 1 include/vcl/dialog.hxx 7 7 include/vcl/dockwin.hxx 2 1 include/vcl/event.hxx 1 1 include/vcl/field.hxx 1 1 include/vcl/fixed.hxx 2 2 include/vcl/floatwin.hxx 1 1 include/vcl/fltcall.hxx 17 13 include/vcl/layout.hxx 4 4 include/vcl/lstbox.hxx 1 1 include/vcl/menu.hxx 8 8 include/vcl/msgbox.hxx 4 4 include/vcl/opengl/OpenGLContext.hxx 1 1 include/vcl/seleng.hxx 1 1 include/vcl/split.hxx 1 1 include/vcl/syswin.hxx 2 2 include/vcl/tabdlg.hxx 1 1 include/vcl/tabpage.hxx 1 1 include/vcl/taskpanelist.hxx 2 2 include/vcl/toolbox.hxx 4 3 include/vcl/vclevent.hxx 39 1 include/vcl/vclptr.hxx 1 1 include/vcl/waitobj.hxx 2 2 include/vcl/window.hxx 8 1 reportdesign/source/ui/dlg/AddField.cxx 9 0 reportdesign/source/ui/dlg/CondFormat.cxx 14 3 reportdesign/source/ui/dlg/Condition.cxx 16 16 reportdesign/source/ui/dlg/Condition.hxx 13 0 reportdesign/source/ui/dlg/DateTime.cxx 2 0 reportdesign/source/ui/dlg/Formula.cxx 58 17 reportdesign/source/ui/dlg/GroupsSorting.cxx 1 1 reportdesign/source/ui/dlg/Navigator.cxx 12 0 reportdesign/source/ui/dlg/PageNumber.cxx 6 6 reportdesign/source/ui/inc/CondFormat.hxx 8 7 reportdesign/source/ui/inc/DateTime.hxx 4 4 reportdesign/source/ui/inc/DesignView.hxx 3 3 reportdesign/source/ui/inc/Formula.hxx 10 10 reportdesign/source/ui/inc/GroupsSorting.hxx 7 6 reportdesign/source/ui/inc/PageNumber.hxx 1 1 reportdesign/source/ui/inc/ReportController.hxx 1 1 reportdesign/source/ui/inc/ReportSection.hxx 4 4 reportdesign/source/ui/inc/ReportWindow.hxx 1 1 reportdesign/source/ui/inc/ScrollHelper.hxx 2 2 reportdesign/source/ui/inc/SectionView.hxx 1 1 reportdesign/source/ui/inc/SectionWindow.hxx 1 1 reportdesign/source/ui/inc/StartMarker.hxx 6 6 reportdesign/source/ui/inc/ViewsWindow.hxx 1 1 reportdesign/source/ui/inc/dlgedfunc.hxx 1 1 reportdesign/source/ui/inc/propbrw.hxx 9 3 reportdesign/source/ui/report/DesignView.cxx 1 0 reportdesign/source/ui/report/ReportSection.cxx 2 0 reportdesign/source/ui/report/ReportWindow.cxx 1 0 reportdesign/source/ui/report/ScrollHelper.cxx 1 0 reportdesign/source/ui/report/SectionWindow.cxx 1 0 reportdesign/source/ui/report/StartMarker.cxx 1 0 reportdesign/source/ui/report/ViewsWindow.cxx 1 0 reportdesign/source/ui/report/propbrw.cxx 2 1 sc/inc/AccessibleFilterMenu.hxx 2 1 sc/inc/AccessibleFilterMenuItem.hxx 2 2 sc/inc/scmod.hxx 2 1 sc/inc/scopetools.hxx 1 1 sc/inc/waitoff.hxx 12 12 sc/source/ui/Accessibility/AccessibleText.cxx 12 1 sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx 9 1 sc/source/ui/StatisticsDialogs/ExponentialSmoothingDialog.cxx 9 1 sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx 25 3 sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx 22 3 sc/source/ui/StatisticsDialogs/SamplingDialog.cxx 18 1 sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx 22 2 sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx 5 0 sc/source/ui/app/inputhdl.cxx 7 7 sc/source/ui/app/scmod.cxx 2 4 sc/source/ui/attrdlg/scdlgfact.hxx 30 0 sc/source/ui/attrdlg/scuiexp.cxx 14 0 sc/source/ui/attrdlg/tabpages.cxx 18 0 sc/source/ui/cctrl/checklistmenu.cxx 23 0 sc/source/ui/condformat/colorformat.cxx 24 0 sc/source/ui/condformat/condformatdlg.cxx 4 1 sc/source/ui/condformat/condformatmgr.cxx 37 3 sc/source/ui/dbgui/PivotLayoutDialog.cxx 10 2 sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx 1 1 sc/source/ui/dbgui/PivotLayoutTreeListLabel.cxx 17 0 sc/source/ui/dbgui/consdlg.cxx 13 0 sc/source/ui/dbgui/dapidata.cxx 23 0 sc/source/ui/dbgui/dapitype.cxx 15 0 sc/source/ui/dbgui/dbnamdlg.cxx 39 0 sc/source/ui/dbgui/dpgroupdlg.cxx 32 0 sc/source/ui/dbgui/filtdlg.cxx 18 0 sc/source/ui/dbgui/pfiltdlg.cxx 78 0 sc/source/ui/dbgui/pvfundlg.cxx 18 0 sc/source/ui/dbgui/scendlg.cxx 22 0 sc/source/ui/dbgui/scuiasciiopt.cxx 12 0 sc/source/ui/dbgui/scuiimoptdlg.cxx 19 0 sc/source/ui/dbgui/sfiltdlg.cxx 13 0 sc/source/ui/dbgui/sortdlg.cxx 11 0 sc/source/ui/dbgui/subtdlg.cxx 12 0 sc/source/ui/dbgui/textimportoptions.cxx 26 4 sc/source/ui/dbgui/tpsort.cxx 18 0 sc/source/ui/dbgui/tpsubt.cxx 59 0 sc/source/ui/dbgui/validate.cxx 1 1 sc/source/ui/dialogs/searchresults.cxx 3 3 sc/source/ui/docshell/tablink.cxx 10 0 sc/source/ui/docshell/tpstat.cxx 0 2 sc/source/ui/drawfunc/fupoor.cxx 1 0 sc/source/ui/formdlg/dwfunctr.cxx 2 1 sc/source/ui/inc/AccessibleCsvControl.hxx 1 1 sc/source/ui/inc/AccessibleEditObject.hxx 2 2 sc/source/ui/inc/AccessibleText.hxx 5 4 sc/source/ui/inc/AnalysisOfVarianceDialog.hxx 2 1 sc/source/ui/inc/ExponentialSmoothingDialog.hxx 2 1 sc/source/ui/inc/MovingAverageDialog.hxx 28 27 sc/source/ui/inc/PivotLayoutDialog.hxx 2 1 sc/source/ui/inc/PivotLayoutTreeListBase.hxx 16 15 sc/source/ui/inc/RandomNumberGeneratorDialog.hxx 15 14 sc/source/ui/inc/SamplingDialog.hxx 11 10 sc/source/ui/inc/StatisticsInputOutputDialog.hxx 14 13 sc/source/ui/inc/StatisticsTwoVariableDialog.hxx 4 4 sc/source/ui/inc/acredlin.hxx 9 9 sc/source/ui/inc/anyrefdg.hxx 12 12 sc/source/ui/inc/areasdlg.hxx 8 5 sc/source/ui/inc/checklistmenu.hxx 15 14 sc/source/ui/inc/colorformat.hxx 11 8 sc/source/ui/inc/condformatdlg.hxx 4 4 sc/source/ui/inc/condformatmgr.hxx 6 5 sc/source/ui/inc/conflictsdlg.hxx 17 17 sc/source/ui/inc/consdlg.hxx 2 1 sc/source/ui/inc/content.hxx 9 2 sc/source/ui/inc/corodlg.hxx 6 4 sc/source/ui/inc/crdlg.hxx 13 12 sc/source/ui/inc/crnrdlg.hxx 5 3 sc/source/ui/inc/dapidata.hxx 12 11 sc/source/ui/inc/dapitype.hxx 10 9 sc/source/ui/inc/datafdlg.hxx 19 17 sc/source/ui/inc/datastreamdlg.hxx 18 18 sc/source/ui/inc/dbnamdlg.hxx 6 4 sc/source/ui/inc/delcldlg.hxx 10 9 sc/source/ui/inc/delcodlg.hxx 28 27 sc/source/ui/inc/dpgroupdlg.hxx 1 1 sc/source/ui/inc/dwfunctr.hxx 21 20 sc/source/ui/inc/filldlg.hxx 60 60 sc/source/ui/inc/filtdlg.hxx 12 12 sc/source/ui/inc/foptmgr.hxx 2 2 sc/source/ui/inc/fupoor.hxx 2 2 sc/source/ui/inc/gridwin.hxx 3 3 sc/source/ui/inc/groupdlg.hxx 8 8 sc/source/ui/inc/highred.hxx 5 4 sc/source/ui/inc/inputhdl.hxx 5 4 sc/source/ui/inc/inscldlg.hxx 26 26 sc/source/ui/inc/inscodlg.hxx 13 13 sc/source/ui/inc/instbdlg.hxx 3 1 sc/source/ui/inc/lbseldlg.hxx 8 7 sc/source/ui/inc/linkarea.hxx 4 2 sc/source/ui/inc/mtrindlg.hxx 8 7 sc/source/ui/inc/mvtabdlg.hxx 6 5 sc/source/ui/inc/namecrea.hxx 13 12 sc/source/ui/inc/namedefdlg.hxx 14 14 sc/source/ui/inc/namedlg.hxx 4 4 sc/source/ui/inc/namepast.hxx 1 1 sc/source/ui/inc/navipi.hxx 4 4 sc/source/ui/inc/notemark.hxx 5 5 sc/source/ui/inc/opredlin.hxx 67 60 sc/source/ui/inc/optsolver.hxx 21 21 sc/source/ui/inc/pfiltdlg.hxx 5 5 sc/source/ui/inc/prevwsh.hxx 8 7 sc/source/ui/inc/protectiondlg.hxx 46 42 sc/source/ui/inc/pvfundlg.hxx 1 1 sc/source/ui/inc/reffact.hxx 14 12 sc/source/ui/inc/retypepassdlg.hxx 10 9 sc/source/ui/inc/scendlg.hxx 22 22 sc/source/ui/inc/scuiasciiopt.hxx 15 13 sc/source/ui/inc/scuiautofmt.hxx 12 12 sc/source/ui/inc/scuiimoptdlg.hxx 22 21 sc/source/ui/inc/scuitphfedit.hxx 1 1 sc/source/ui/inc/searchresults.hxx 3 3 sc/source/ui/inc/sharedocdlg.hxx 4 2 sc/source/ui/inc/shtabdlg.hxx 6 5 sc/source/ui/inc/simpref.hxx 11 7 sc/source/ui/inc/solveroptions.hxx 11 10 sc/source/ui/inc/solvrdlg.hxx 5 3 sc/source/ui/inc/sortdlg.hxx 6 6 sc/source/ui/inc/sortkeydlg.hxx 4 3 sc/source/ui/inc/strindlg.hxx 3 1 sc/source/ui/inc/subtdlg.hxx 8 3 sc/source/ui/inc/tabbgcolordlg.hxx 13 12 sc/source/ui/inc/tabopdlg.hxx 7 4 sc/source/ui/inc/tabpages.hxx 5 5 sc/source/ui/inc/tabview.hxx 6 6 sc/source/ui/inc/textimportoptions.hxx 16 16 sc/source/ui/inc/tpcalc.hxx 3 3 sc/source/ui/inc/tpcompatibility.hxx 3 2 sc/source/ui/inc/tpdefaults.hxx 12 12 sc/source/ui/inc/tpformula.hxx 7 6 sc/source/ui/inc/tphf.hxx 5 5 sc/source/ui/inc/tpprint.hxx 17 17 sc/source/ui/inc/tpsort.hxx 5 5 sc/source/ui/inc/tpstat.hxx 13 13 sc/source/ui/inc/tpsubt.hxx 24 24 sc/source/ui/inc/tptable.hxx 12 12 sc/source/ui/inc/tpusrlst.hxx 44 44 sc/source/ui/inc/tpview.hxx 34 28 sc/source/ui/inc/validate.hxx 11 9 sc/source/ui/inc/xmlsourcedlg.hxx 4 1 sc/source/ui/miscdlgs/acredlin.cxx 8 10 sc/source/ui/miscdlgs/anyrefdg.cxx 11 0 sc/source/ui/miscdlgs/conflictsdlg.cxx 15 0 sc/source/ui/miscdlgs/crdlg.cxx 19 1 sc/source/ui/miscdlgs/crnrdlg.cxx 14 0 sc/source/ui/miscdlgs/datafdlg.cxx 27 0 sc/source/ui/miscdlgs/datastreamdlg.cxx 15 0 sc/source/ui/miscdlgs/delcldlg.cxx 19 4 sc/source/ui/miscdlgs/delcodlg.cxx 26 0 sc/source/ui/miscdlgs/filldlg.cxx 11 3 sc/source/ui/miscdlgs/groupdlg.cxx 7 1 sc/source/ui/miscdlgs/highred.cxx 14 4 sc/source/ui/miscdlgs/inscldlg.cxx 22 0 sc/source/ui/miscdlgs/inscodlg.cxx 13 0 sc/source/ui/miscdlgs/instbdlg.cxx 12 0 sc/source/ui/miscdlgs/lbseldlg.cxx 13 0 sc/source/ui/miscdlgs/linkarea.cxx 12 0 sc/source/ui/miscdlgs/mtrindlg.cxx 13 0 sc/source/ui/miscdlgs/mvtabdlg.cxx 14 0 sc/source/ui/miscdlgs/namecrea.cxx 94 1 sc/source/ui/miscdlgs/optsolver.cxx 13 0 sc/source/ui/miscdlgs/protectiondlg.cxx 24 1 sc/source/ui/miscdlgs/retypepassdlg.cxx 23 0 sc/source/ui/miscdlgs/scuiautofmt.cxx 3 1 sc/source/ui/miscdlgs/sharedocdlg.cxx 12 0 sc/source/ui/miscdlgs/shtabdlg.cxx 11 0 sc/source/ui/miscdlgs/simpref.cxx 27 0 sc/source/ui/miscdlgs/solveroptions.cxx 17 1 sc/source/ui/miscdlgs/solvrdlg.cxx 12 0 sc/source/ui/miscdlgs/strindlg.cxx 23 0 sc/source/ui/miscdlgs/tabbgcolordlg.cxx 19 0 sc/source/ui/miscdlgs/tabopdlg.cxx 21 0 sc/source/ui/namedlg/namedefdlg.cxx 14 1 sc/source/ui/namedlg/namedlg.cxx 4 1 sc/source/ui/namedlg/namepast.cxx 7 0 sc/source/ui/navipi/content.cxx 21 1 sc/source/ui/optdlg/calcoptionsdlg.cxx 17 16 sc/source/ui/optdlg/calcoptionsdlg.hxx 10 0 sc/source/ui/optdlg/opredlin.cxx 16 0 sc/source/ui/optdlg/tpcalc.cxx 7 0 sc/source/ui/optdlg/tpcompatibility.cxx 8 0 sc/source/ui/optdlg/tpdefaults.cxx 17 0 sc/source/ui/optdlg/tpformula.cxx 9 0 sc/source/ui/optdlg/tpprint.cxx 12 0 sc/source/ui/optdlg/tpusrlst.cxx 43 0 sc/source/ui/optdlg/tpview.cxx 12 0 sc/source/ui/pagedlg/areasdlg.cxx 26 0 sc/source/ui/pagedlg/scuitphfedit.cxx 8 0 sc/source/ui/pagedlg/tphf.cxx 27 0 sc/source/ui/pagedlg/tptable.cxx 14 0 sc/source/ui/sidebar/AlignmentPropertyPanel.cxx 11 9 sc/source/ui/sidebar/AlignmentPropertyPanel.hxx 10 0 sc/source/ui/sidebar/CellAppearancePropertyPanel.cxx 7 5 sc/source/ui/sidebar/CellAppearancePropertyPanel.hxx 12 0 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx 8 7 sc/source/ui/sidebar/NumberFormatPropertyPanel.hxx 4 4 sc/source/ui/vba/vbaeventshelper.cxx 14 13 sc/source/ui/view/gridwin.cxx 1 1 sc/source/ui/view/gridwin2.cxx 4 4 sc/source/ui/view/prevwsh.cxx 15 15 sc/source/ui/view/reffact.cxx 1 1 sc/source/ui/view/tabview.cxx 3 4 sc/source/ui/view/tabview5.cxx 20 1 sc/source/ui/xmlsource/xmlsourcedlg.cxx 1 1 sd/inc/Outliner.hxx 105 3 sd/source/filter/html/pubdlg.cxx 8 8 sd/source/ui/accessibility/AccessibleSlideSorterView.cxx 19 5 sd/source/ui/animations/CustomAnimationCreateDialog.cxx 2 2 sd/source/ui/animations/CustomAnimationCreateDialog.hxx 120 58 sd/source/ui/animations/CustomAnimationDialog.cxx 4 4 sd/source/ui/animations/CustomAnimationDialog.hxx 1 1 sd/source/ui/animations/CustomAnimationList.cxx 20 3 sd/source/ui/animations/CustomAnimationPane.cxx 17 17 sd/source/ui/animations/CustomAnimationPane.hxx 14 1 sd/source/ui/animations/SlideTransitionPane.cxx 13 13 sd/source/ui/animations/SlideTransitionPane.hxx 1 1 sd/source/ui/annotations/annotationtag.hxx 10 3 sd/source/ui/annotations/annotationwindow.cxx 5 4 sd/source/ui/annotations/annotationwindow.hxx 11 2 sd/source/ui/controller/slidelayoutcontroller.cxx 2 2 sd/source/ui/dlg/PaneChildWindows.cxx 17 0 sd/source/ui/dlg/PhotoAlbumDialog.cxx 13 11 sd/source/ui/dlg/PhotoAlbumDialog.hxx 13 0 sd/source/ui/dlg/RemoteDialog.cxx 5 3 sd/source/ui/dlg/RemoteDialog.hxx 1 1 sd/source/ui/dlg/RemoteDialogClientBox.hxx 20 2 sd/source/ui/dlg/animobjs.cxx 4 2 sd/source/ui/dlg/brkdlg.cxx 11 25 sd/source/ui/dlg/copydlg.cxx 29 0 sd/source/ui/dlg/custsdlg.cxx 61 61 sd/source/ui/dlg/dlgass.cxx 15 0 sd/source/ui/dlg/dlgfield.cxx 19 0 sd/source/ui/dlg/dlgsnap.cxx 47 19 sd/source/ui/dlg/headerfooterdlg.cxx 12 0 sd/source/ui/dlg/ins_paste.cxx 9 0 sd/source/ui/dlg/inspagob.cxx 16 0 sd/source/ui/dlg/layeroptionsdlg.cxx 15 0 sd/source/ui/dlg/masterlayoutdlg.cxx 9 0 sd/source/ui/dlg/morphdlg.cxx 13 3 sd/source/ui/dlg/paragr.cxx 33 0 sd/source/ui/dlg/present.cxx 26 1 sd/source/ui/dlg/prntopts.cxx 7 7 sd/source/ui/dlg/sddlgfact.cxx 1 2 sd/source/ui/dlg/sddlgfact.hxx 10 0 sd/source/ui/dlg/sdpreslt.cxx 3 1 sd/source/ui/dlg/sdtreelb.cxx 15 0 sd/source/ui/dlg/sduiexp.cxx 19 0 sd/source/ui/dlg/tpaction.cxx 42 0 sd/source/ui/dlg/tpoption.cxx 16 0 sd/source/ui/dlg/vectdlg.cxx 1 1 sd/source/ui/framework/factories/ChildWindowPane.cxx 4 8 sd/source/ui/framework/factories/FullScreenPane.cxx 1 1 sd/source/ui/framework/factories/Pane.cxx 5 3 sd/source/ui/func/fupoor.cxx 1 1 sd/source/ui/inc/AccessibleDocumentViewBase.hxx 2 1 sd/source/ui/inc/AccessibleSlideSorterView.hxx 4 4 sd/source/ui/inc/BreakDlg.hxx 2 1 sd/source/ui/inc/FormShellManager.hxx 1 1 sd/source/ui/inc/Ruler.hxx 2 2 sd/source/ui/inc/ViewShell.hxx 1 1 sd/source/ui/inc/Window.hxx 2 1 sd/source/ui/inc/WindowUpdater.hxx 23 23 sd/source/ui/inc/animobjs.hxx 11 11 sd/source/ui/inc/copydlg.hxx 21 20 sd/source/ui/inc/custsdlg.hxx 6 5 sd/source/ui/inc/dlgfield.hxx 11 9 sd/source/ui/inc/dlgsnap.hxx 2 1 sd/source/ui/inc/framework/Pane.hxx 3 3 sd/source/ui/inc/fupoor.hxx 6 6 sd/source/ui/inc/headerfooterdlg.hxx 4 2 sd/source/ui/inc/ins_paste.hxx 4 3 sd/source/ui/inc/inspagob.hxx 9 6 sd/source/ui/inc/layeroptionsdlg.hxx 7 5 sd/source/ui/inc/masterlayoutdlg.hxx 5 4 sd/source/ui/inc/morphdlg.hxx 2 2 sd/source/ui/inc/navigatr.hxx 25 23 sd/source/ui/inc/present.hxx 20 19 sd/source/ui/inc/prntopts.hxx 85 84 sd/source/ui/inc/pubdlg.hxx 6 5 sd/source/ui/inc/sdpreslt.hxx 2 2 sd/source/ui/inc/sdtreelb.hxx 1 1 sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx 16 15 sd/source/ui/inc/tpaction.hxx 32 30 sd/source/ui/inc/tpoption.hxx 11 10 sd/source/ui/inc/vectdlg.hxx 1 1 sd/source/ui/slideshow/slideshow.cxx 6 8 sd/source/ui/slideshow/slideshowimpl.cxx 6 6 sd/source/ui/slideshow/slideshowimpl.hxx 2 2 sd/source/ui/table/TableDesignPane.hxx 2 2 sd/source/ui/view/FormShellManager.cxx 1 0 sd/source/ui/view/sdruler.cxx 1 1 sd/source/ui/view/sdview2.cxx 1 0 sd/source/ui/view/sdwindow.cxx 1 1 sd/source/ui/view/viewshe2.cxx 1 1 sd/source/ui/view/viewshel.cxx 6 6 sfx2/inc/srchdlg.hxx 8 10 sfx2/source/appl/childwin.cxx 1 1 sfx2/source/appl/fileobj.hxx 2 1 sfx2/source/appl/helpinterceptor.hxx 20 4 sfx2/source/appl/impldde.cxx 2 2 sfx2/source/appl/lnkbase2.cxx 65 14 sfx2/source/appl/newhelp.cxx 33 25 sfx2/source/appl/newhelp.hxx 8 8 sfx2/source/appl/workwin.cxx 1 1 sfx2/source/control/thumbnailview.cxx 1 1 sfx2/source/control/thumbnailviewacc.cxx 3 2 sfx2/source/control/thumbnailviewacc.hxx 2 3 sfx2/source/control/thumbnailviewitem.cxx 2 0 sfx2/source/dialog/alienwarn.cxx 23 4 sfx2/source/dialog/backingwindow.cxx 29 29 sfx2/source/dialog/backingwindow.hxx 10 3 sfx2/source/dialog/basedlgs.cxx 13 0 sfx2/source/dialog/checkin.cxx 88 14 sfx2/source/dialog/dinfdlg.cxx 4 6 sfx2/source/dialog/dockwin.cxx 11 0 sfx2/source/dialog/documentfontsdialog.cxx 1 1 sfx2/source/dialog/filedlgimpl.hxx 8 23 sfx2/source/dialog/infobar.cxx 14 0 sfx2/source/dialog/inputdlg.cxx 12 0 sfx2/source/dialog/mgetempl.cxx 1 1 sfx2/source/dialog/navigat.cxx 2 0 sfx2/source/dialog/newstyle.cxx 4 4 sfx2/source/dialog/partwnd.cxx 22 0 sfx2/source/dialog/passwd.cxx 30 0 sfx2/source/dialog/printopt.cxx 2 1 sfx2/source/dialog/recfloat.cxx 4 4 sfx2/source/dialog/securitypage.cxx 11 8 sfx2/source/dialog/splitwin.cxx 6 0 sfx2/source/dialog/srchdlg.cxx 22 22 sfx2/source/dialog/tabdlg.cxx 5 1 sfx2/source/dialog/templateinfodlg.cxx 4 5 sfx2/source/dialog/templdlg.cxx 29 2 sfx2/source/dialog/versdlg.cxx 11 11 sfx2/source/doc/new.cxx 12 2 sfx2/source/doc/templatedlg.cxx 2 2 sfx2/source/inc/alienwarn.hxx 3 1 sfx2/source/inc/documentfontsdialog.hxx 6 4 sfx2/source/inc/inputdlg.hxx 1 1 sfx2/source/inc/recfloat.hxx 5 5 sfx2/source/inc/splitwin.hxx 5 5 sfx2/source/inc/templdgi.hxx 21 19 sfx2/source/inc/versdlg.hxx 6 6 sfx2/source/inc/workwin.hxx 12 12 sfx2/source/sidebar/FocusManager.cxx 5 5 sfx2/source/sidebar/FocusManager.hxx 15 4 sfx2/source/sidebar/PanelTitleBar.cxx 3 1 sfx2/source/sidebar/PanelTitleBar.hxx 1 1 sfx2/source/sidebar/SidebarChildWindow.cxx 9 9 sfx2/source/sidebar/SidebarController.cxx 2 2 sfx2/source/sidebar/SidebarController.hxx 6 10 sfx2/source/sidebar/SidebarPanelBase.cxx 1 1 sfx2/source/statbar/stbitem.cxx 1 1 sfx2/source/toolbox/imgmgr.cxx 11 15 sfx2/source/toolbox/tbxitem.cxx 1 1 sfx2/source/view/frame.cxx 1 1 sfx2/source/view/frame2.cxx 7 7 sfx2/source/view/impframe.hxx 2 2 sfx2/source/view/impviewframe.hxx 1 1 sfx2/source/view/printer.cxx 1 1 sfx2/source/view/sfxbasecontroller.cxx 2 2 sfx2/source/view/viewfrm.cxx 2 2 sfx2/source/view/viewprn.cxx 2 2 starmath/inc/ElementsDockingWindow.hxx 85 71 starmath/inc/dialog.hxx 3 3 starmath/inc/edit.hxx 3 3 starmath/inc/toolbox.hxx 1 1 starmath/inc/view.hxx 2 1 starmath/source/ElementsDockingWindow.cxx 2 2 starmath/source/accessibility.hxx 141 0 starmath/source/dialog.cxx 4 6 starmath/source/edit.cxx 4 4 starmath/source/toolbox.cxx 1 1 starmath/source/view.cxx 1 1 svtools/inc/vclxaccessibleheaderbar.hxx 2 1 svtools/inc/vclxaccessibleheaderbaritem.hxx 14 14 svtools/source/brwbox/brwbox1.cxx 16 16 svtools/source/brwbox/brwbox2.cxx 12 0 svtools/source/brwbox/brwhead.cxx 12 0 svtools/source/brwbox/datwin.cxx 6 4 svtools/source/brwbox/datwin.hxx 1 1 svtools/source/brwbox/ebbcontrols.cxx 4 2 svtools/source/brwbox/editbrowsebox.cxx 15 4 svtools/source/contnr/fileview.cxx 2 2 svtools/source/contnr/imivctl.hxx 2 2 svtools/source/contnr/imivctl1.cxx 11 0 svtools/source/contnr/simptabl.cxx 1 1 svtools/source/contnr/svtabbx.cxx 1 1 svtools/source/contnr/treelistbox.cxx 15 27 svtools/source/control/calendar.cxx 4 4 svtools/source/control/inettbc.cxx 2 2 svtools/source/control/roadmap.cxx 21 15 svtools/source/control/tabbar.cxx 6 6 svtools/source/control/toolbarmenu.cxx 1 1 svtools/source/control/toolbarmenuimp.hxx 1 1 svtools/source/control/valueacc.cxx 2 2 svtools/source/control/valueimp.hxx 16 0 svtools/source/dialogs/PlaceEditDialog.cxx 4 0 svtools/source/dialogs/addresstemplate.cxx 1 0 svtools/source/dialogs/colrdlg.cxx 8 0 svtools/source/dialogs/prnsetup.cxx 11 4 svtools/source/dialogs/restartdialog.cxx 1 6 svtools/source/dialogs/roadmapwizard.cxx 5 5 svtools/source/dialogs/wizardmachine.cxx 6 2 svtools/source/dialogs/wizdlg.cxx 13 0 svtools/source/filter/GraphicExportOptionsDialog.cxx 33 0 svtools/source/filter/exportdialog.cxx 33 33 svtools/source/filter/exportdialog.hxx 1 1 svtools/source/hatchwindow/hatchwindow.cxx 1 1 svtools/source/inc/hatchwindow.hxx 2 2 svtools/source/inc/svimpbox.hxx 2 2 svtools/source/misc/dialogcontrolling.cxx 8 12 svtools/source/table/tablecontrol_impl.cxx 3 3 svtools/source/table/tablecontrol_impl.hxx 2 2 svtools/source/toolpanel/paneltabbarpeer.cxx 1 1 svtools/source/toolpanel/paneltabbarpeer.hxx 2 2 svtools/source/toolpanel/toolpaneldeckpeer.cxx 1 1 svtools/source/toolpanel/toolpaneldeckpeer.hxx 1 1 svtools/source/uno/addrtempuno.cxx 2 4 svtools/source/uno/generictoolboxcontroller.cxx 1 2 svtools/source/uno/genericunodialog.cxx 3 3 svtools/source/uno/popupwindowcontroller.cxx 1 1 svtools/source/uno/treecontrolpeer.hxx 10 10 svtools/source/uno/wizard/unowizard.cxx 1 1 svtools/source/uno/wizard/wizardshell.hxx 3 1 svx/inc/extrusiondepthdialog.hxx 3 3 svx/inc/galbrws2.hxx 1 1 svx/inc/svdibrow.hxx 2 2 svx/inc/tbunosearchcontrollers.hxx 1 0 svx/source/accessibility/AccessibleShapeTreeInfo.cxx 3 3 svx/source/accessibility/GraphCtlAccessibleContext.cxx 25 8 svx/source/dialog/_bmpmask.cxx 20 1 svx/source/dialog/_contdlg.cxx 25 0 svx/source/dialog/compressgraphicdialog.cxx 4 4 svx/source/dialog/contimp.hxx 42 10 svx/source/dialog/ctredlin.cxx 45 2 svx/source/dialog/docrecovery.cxx 6 326 svx/source/dialog/fontwork.cxx 16 0 svx/source/dialog/hdft.cxx 10 2 svx/source/dialog/imapdlg.cxx 1 0 svx/source/dialog/linkwarn.cxx 27 0 svx/source/dialog/optgrid.cxx 1 1 svx/source/dialog/orienthelper.cxx 15 0 svx/source/dialog/passwd.cxx 33 0 svx/source/dialog/rubydialog.cxx 43 1 svx/source/dialog/srchdlg.cxx 1 0 svx/source/dialog/svxruler.cxx 159 162 svx/source/fmcomp/gridcell.cxx 3 3 svx/source/fmcomp/gridctrl.cxx 109 12 svx/source/form/datanavi.cxx 2 2 svx/source/form/filtnav.cxx 1 2 svx/source/form/fmPropBrw.cxx 2 2 svx/source/form/fmexpl.cxx 13 2 svx/source/form/tabwin.cxx 1 1 svx/source/form/xfm_addcondition.cxx 1 2 svx/source/gallery2/galbrws1.cxx 1 1 svx/source/gallery2/galbrws1.hxx 8 8 svx/source/gallery2/galbrws2.cxx 2 1 svx/source/inc/AccessibleFrameSelector.hxx 1 1 svx/source/inc/GraphCtlAccessibleContext.hxx 1 1 svx/source/inc/charmapacc.hxx 2 1 svx/source/inc/datalistener.hxx 72 62 svx/source/inc/datanavi.hxx 22 16 svx/source/inc/docrecovery.hxx 1 1 svx/source/inc/filtnav.hxx 1 1 svx/source/inc/fmexch.hxx 1 1 svx/source/inc/fmexpl.hxx 2 1 svx/source/inc/fmvwimp.hxx 6 6 svx/source/inc/gridcell.hxx 2 1 svx/source/inc/svxrectctaccessiblecontext.hxx 4 2 svx/source/inc/tabwin.hxx 1 1 svx/source/inc/tbxform.hxx 17 0 svx/source/sidebar/area/AreaPropertyPanel.cxx 12 8 svx/source/sidebar/area/AreaPropertyPanel.hxx 17 0 svx/source/sidebar/graphic/GraphicPropertyPanel.cxx 11 8 svx/source/sidebar/graphic/GraphicPropertyPanel.hxx 4 2 svx/source/sidebar/insert/InsertPropertyPanel.cxx 2 2 svx/source/sidebar/insert/InsertPropertyPanel.hxx 23 0 svx/source/sidebar/line/LinePropertyPanel.cxx 16 13 svx/source/sidebar/line/LinePropertyPanel.hxx 24 5 svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx 11 9 svx/source/sidebar/paragraph/ParaLineSpacingControl.hxx 20 0 svx/source/sidebar/paragraph/ParaPropertyPanel.cxx 13 10 svx/source/sidebar/paragraph/ParaPropertyPanel.hxx 23 0 svx/source/sidebar/possize/PosSizePropertyPanel.cxx 17 14 svx/source/sidebar/possize/PosSizePropertyPanel.hxx 15 0 svx/source/sidebar/text/TextPropertyPanel.cxx 8 5 svx/source/sidebar/text/TextPropertyPanel.hxx 3 3 svx/source/sidebar/tools/Popup.cxx 5 7 svx/source/svdraw/sdrpaintwindow.cxx 11 11 svx/source/svdraw/svdedxv.cxx 8 9 svx/source/svdraw/svdibrow.cxx 1 1 svx/source/svdraw/svdmrkv.cxx 8 12 svx/source/svdraw/svdpntv.cxx 2 2 svx/source/svdraw/svdview.cxx 14 1 svx/source/tbxctrls/bulletsnumbering.cxx 8 6 svx/source/tbxctrls/colorwindow.hxx 33 0 svx/source/tbxctrls/extrusioncontrols.cxx 6 2 svx/source/tbxctrls/extrusioncontrols.hxx 2 2 svx/source/tbxctrls/fillctrl.cxx 22 0 svx/source/tbxctrls/fontworkgallery.cxx 17 6 svx/source/tbxctrls/lboxctrl.cxx 16 0 svx/source/tbxctrls/tbcontrl.cxx 2 3 svx/source/tbxctrls/tbunocontroller.cxx 2 4 svx/source/tbxctrls/tbunosearchcontrollers.cxx 29 2 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx 21 19 svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx 1 2 svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx 2 1 svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx 6 1 svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx 6 6 svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.hxx 1 1 svx/source/unodraw/recoveryui.cxx 1 1 svx/source/unodraw/unoshtxt.cxx 3 2 sw/inc/PostItMgr.hxx 5 5 sw/inc/SidebarWin.hxx 4 2 sw/inc/colwd.hxx 1 1 sw/inc/hhcwrp.hxx 1 1 sw/inc/postithelper.hxx 1 1 sw/inc/viewsh.hxx 22 9 sw/qa/tiledrendering/tiledrendering.cxx 1 1 sw/source/core/access/accdoc.hxx 1 1 sw/source/core/access/accfrmobj.cxx 2 1 sw/source/core/access/accfrmobj.hxx 1 1 sw/source/core/view/viewsh.cxx 17 4 sw/source/ui/chrdlg/break.cxx 10 0 sw/source/ui/chrdlg/chardlg.cxx 21 1 sw/source/ui/chrdlg/drpcps.cxx 20 0 sw/source/ui/chrdlg/numpara.cxx 10 0 sw/source/ui/chrdlg/swuiccoll.cxx 93 34 sw/source/ui/config/mailconfigpage.cxx 4 0 sw/source/ui/config/optcomp.cxx 42 0 sw/source/ui/config/optload.cxx 165 0 sw/source/ui/config/optpage.cxx 9 1 sw/source/ui/dbui/addresslistdialog.cxx 9 9 sw/source/ui/dbui/addresslistdialog.hxx 39 23 sw/source/ui/dbui/createaddresslistdialog.cxx 20 18 sw/source/ui/dbui/createaddresslistdialog.hxx 28 5 sw/source/ui/dbui/customizeaddresslistdialog.cxx 12 8 sw/source/ui/dbui/customizeaddresslistdialog.hxx 29 4 sw/source/ui/dbui/dbinsdlg.cxx 2 0 sw/source/ui/dbui/dbtablepreviewdialog.cxx 2 2 sw/source/ui/dbui/dbtablepreviewdialog.hxx 111 33 sw/source/ui/dbui/mmaddressblockpage.cxx 53 46 sw/source/ui/dbui/mmaddressblockpage.hxx 15 0 sw/source/ui/dbui/mmdocselectpage.cxx 10 9 sw/source/ui/dbui/mmdocselectpage.hxx 21 0 sw/source/ui/dbui/mmgreetingspage.cxx 27 25 sw/source/ui/dbui/mmgreetingspage.hxx 11 0 sw/source/ui/dbui/mmlayoutpage.cxx 11 11 sw/source/ui/dbui/mmlayoutpage.hxx 19 0 sw/source/ui/dbui/mmmergepage.cxx 10 8 sw/source/ui/dbui/mmmergepage.hxx 41 3 sw/source/ui/dbui/mmoutputpage.cxx 42 42 sw/source/ui/dbui/mmoutputpage.hxx 33 3 sw/source/ui/dbui/mmoutputtypepage.cxx 7 5 sw/source/ui/dbui/mmoutputtypepage.hxx 18 0 sw/source/ui/dbui/mmpreparemergepage.cxx 10 8 sw/source/ui/dbui/mmpreparemergepage.hxx 2 1 sw/source/ui/dbui/selectdbtabledialog.cxx 2 2 sw/source/ui/dbui/selectdbtabledialog.hxx 12 0 sw/source/ui/dialog/abstract.cxx 15 0 sw/source/ui/dialog/ascfldlg.cxx 18 1 sw/source/ui/dialog/docstdlg.cxx 0 1 sw/source/ui/dialog/swdlgfact.cxx 2 3 sw/source/ui/dialog/swdlgfact.hxx 15 0 sw/source/ui/dialog/swmessdialog.cxx 25 0 sw/source/ui/dialog/swuiexp.cxx 74 0 sw/source/ui/dialog/uiregionsw.cxx 13 0 sw/source/ui/dialog/wordcountdialog.cxx 11 0 sw/source/ui/dochdl/selglos.cxx 21 0 sw/source/ui/envelp/envfmt.cxx 12 10 sw/source/ui/envelp/envfmt.hxx 14 0 sw/source/ui/envelp/envlop1.cxx 17 0 sw/source/ui/envelp/envprt.cxx 9 7 sw/source/ui/envelp/envprt.hxx 80 0 sw/source/ui/envelp/label1.cxx 35 0 sw/source/ui/envelp/labfmt.cxx 22 19 sw/source/ui/envelp/labfmt.hxx 9 0 sw/source/ui/envelp/labprt.cxx 11 11 sw/source/ui/envelp/labprt.hxx 54 0 sw/source/ui/envelp/mailmrge.cxx 58 52 sw/source/ui/envelp/swuilabimp.hxx 14 0 sw/source/ui/fldui/DropDownFieldDialog.cxx 5 0 sw/source/ui/fldui/changedb.cxx 18 0 sw/source/ui/fldui/flddb.cxx 13 12 sw/source/ui/fldui/flddb.hxx 12 0 sw/source/ui/fldui/flddinf.cxx 7 6 sw/source/ui/fldui/flddinf.hxx 21 0 sw/source/ui/fldui/flddok.cxx 15 14 sw/source/ui/fldui/flddok.hxx 3 0 sw/source/ui/fldui/fldedt.cxx 31 0 sw/source/ui/fldui/fldfunc.cxx 26 25 sw/source/ui/fldui/fldfunc.hxx 15 0 sw/source/ui/fldui/fldref.cxx 10 9 sw/source/ui/fldui/fldref.hxx 22 0 sw/source/ui/fldui/fldvar.cxx 17 16 sw/source/ui/fldui/fldvar.hxx 14 0 sw/source/ui/fldui/inpdlg.cxx 10 0 sw/source/ui/fldui/javaedit.cxx 25 1 sw/source/ui/frmdlg/column.cxx 32 5 sw/source/ui/frmdlg/cption.cxx 91 4 sw/source/ui/frmdlg/frmpage.cxx 20 0 sw/source/ui/frmdlg/wrap.cxx 148 26 sw/source/ui/index/cnttab.cxx 12 1 sw/source/ui/index/multmrk.cxx 19 11 sw/source/ui/index/swuiidxmrk.cxx 9 0 sw/source/ui/misc/bookmark.cxx 27 4 sw/source/ui/misc/docfnote.cxx 12 0 sw/source/ui/misc/glosbib.cxx 35 6 sw/source/ui/misc/glossary.cxx 18 17 sw/source/ui/misc/impfnote.hxx 10 0 sw/source/ui/misc/insfnote.cxx 22 0 sw/source/ui/misc/linenum.cxx 26 2 sw/source/ui/misc/num.cxx 36 3 sw/source/ui/misc/outline.cxx 17 0 sw/source/ui/misc/pgfnote.cxx 28 1 sw/source/ui/misc/pggrid.cxx 28 2 sw/source/ui/misc/srtdlg.cxx 12 0 sw/source/ui/misc/titlepage.cxx 12 0 sw/source/ui/table/colwd.cxx 14 0 sw/source/ui/table/convert.cxx 11 0 sw/source/ui/table/instable.cxx 12 0 sw/source/ui/table/mergetbl.cxx 12 0 sw/source/ui/table/rowht.cxx 14 0 sw/source/ui/table/splittbl.cxx 67 5 sw/source/ui/table/tabledlg.cxx 22 1 sw/source/ui/table/tautofmt.cxx 12 0 sw/source/ui/utlui/swrenamexnameddlg.cxx 33 0 sw/source/uibase/dbui/dbui.cxx 12 1 sw/source/uibase/dbui/mailmergechildwindow.cxx 1 1 sw/source/uibase/docvw/HeaderFooterWin.cxx 4 3 sw/source/uibase/docvw/PageBreakWin.cxx 3 8 sw/source/uibase/docvw/PostItMgr.cxx 6 11 sw/source/uibase/docvw/SidebarWin.cxx 3 4 sw/source/uibase/docvw/srcedtw.cxx 12 1 sw/source/uibase/envelp/syncbtn.cxx 6 4 sw/source/uibase/inc/DropDownFieldDialog.hxx 1 1 sw/source/uibase/inc/FrameControl.hxx 1 1 sw/source/uibase/inc/FrameControlsManager.hxx 2 2 sw/source/uibase/inc/HeaderFooterWin.hxx 1 1 sw/source/uibase/inc/PageBreakWin.hxx 4 4 sw/source/uibase/inc/abstract.hxx 9 8 sw/source/uibase/inc/ascfldlg.hxx 4 3 sw/source/uibase/inc/bookmark.hxx 8 7 sw/source/uibase/inc/break.hxx 5 5 sw/source/uibase/inc/changedb.hxx 11 11 sw/source/uibase/inc/chrdlg.hxx 28 28 sw/source/uibase/inc/column.hxx 3 3 sw/source/uibase/inc/conttree.hxx 14 14 sw/source/uibase/inc/convert.hxx 15 15 sw/source/uibase/inc/cption.hxx 25 25 sw/source/uibase/inc/dbinsdlg.hxx 13 7 sw/source/uibase/inc/dbui.hxx 12 11 sw/source/uibase/inc/docstdlg.hxx 1 1 sw/source/uibase/inc/drawbase.hxx 17 16 sw/source/uibase/inc/drpcps.hxx 10 9 sw/source/uibase/inc/envlop.hxx 3 3 sw/source/uibase/inc/fldedt.hxx 2 1 sw/source/uibase/inc/fldmgr.hxx 83 80 sw/source/uibase/inc/frmpage.hxx 7 6 sw/source/uibase/inc/glosbib.hxx 12 12 sw/source/uibase/inc/glossary.hxx 6 4 sw/source/uibase/inc/inpdlg.hxx 2 2 sw/source/uibase/inc/inputwin.hxx 10 10 sw/source/uibase/inc/insfnote.hxx 11 11 sw/source/uibase/inc/instable.hxx 10 10 sw/source/uibase/inc/javaedit.hxx 1 1 sw/source/uibase/inc/label.hxx 16 15 sw/source/uibase/inc/linenum.hxx 10 10 sw/source/uibase/inc/mailconfigpage.hxx 3 1 sw/source/uibase/inc/mailmergechildwindow.hxx 1 1 sw/source/uibase/inc/mailmergehelper.hxx 47 42 sw/source/uibase/inc/mailmrge.hxx 3 1 sw/source/uibase/inc/mergetbl.hxx 3 2 sw/source/uibase/inc/multmrk.hxx 2 2 sw/source/uibase/inc/navipi.hxx 24 24 sw/source/uibase/inc/num.hxx 15 14 sw/source/uibase/inc/numpara.hxx 4 4 sw/source/uibase/inc/optcomp.hxx 38 36 sw/source/uibase/inc/optload.hxx 138 130 sw/source/uibase/inc/optpage.hxx 12 11 sw/source/uibase/inc/outline.hxx 13 12 sw/source/uibase/inc/pgfnote.hxx 24 22 sw/source/uibase/inc/pggrid.hxx 1 1 sw/source/uibase/inc/prcntfld.hxx 6 6 sw/source/uibase/inc/pview.hxx 3 3 sw/source/uibase/inc/redlndlg.hxx 65 63 sw/source/uibase/inc/regionsw.hxx 4 2 sw/source/uibase/inc/rowht.hxx 4 1 sw/source/uibase/inc/selglos.hxx 1 1 sw/source/uibase/inc/shdwcrsr.hxx 6 4 sw/source/uibase/inc/splittbl.hxx 3 3 sw/source/uibase/inc/srcedtw.hxx 32 32 sw/source/uibase/inc/srtdlg.hxx 7 5 sw/source/uibase/inc/swmessdialog.hxx 4 2 sw/source/uibase/inc/swrenamexnameddlg.hxx 2 1 sw/source/uibase/inc/swruler.hxx 9 9 sw/source/uibase/inc/swuiccoll.hxx 109 105 sw/source/uibase/inc/swuicnttab.hxx 45 45 sw/source/uibase/inc/swuiidxmrk.hxx 3 1 sw/source/uibase/inc/syncbtn.hxx 13 13 sw/source/uibase/inc/tautofmt.hxx 12 12 sw/source/uibase/inc/titlepage.hxx 10 10 sw/source/uibase/inc/view.hxx 13 13 sw/source/uibase/inc/wordcountdialog.hxx 2 2 sw/source/uibase/inc/workctrl.hxx 15 14 sw/source/uibase/inc/wrap.hxx 1 1 sw/source/uibase/misc/redlndlg.cxx 7 0 sw/source/uibase/misc/swruler.cxx 1 1 sw/source/uibase/ribbar/inputwin.cxx 2 1 sw/source/uibase/ribbar/workctrl.cxx 1 0 sw/source/uibase/shells/txtattr.cxx 1 0 sw/source/uibase/shells/txtcrsr.cxx 1 1 sw/source/uibase/sidebar/PageColumnControl.cxx 1 1 sw/source/uibase/sidebar/PageColumnControl.hxx 1 1 sw/source/uibase/sidebar/PageMarginControl.cxx 1 1 sw/source/uibase/sidebar/PageMarginControl.hxx 1 1 sw/source/uibase/sidebar/PageOrientationControl.cxx 1 1 sw/source/uibase/sidebar/PageOrientationControl.hxx 4 0 sw/source/uibase/sidebar/PagePropertyPanel.cxx 4 4 sw/source/uibase/sidebar/PagePropertyPanel.hxx 1 1 sw/source/uibase/sidebar/PageSizeControl.cxx 1 1 sw/source/uibase/sidebar/PageSizeControl.hxx 12 0 sw/source/uibase/sidebar/WrapPropertyPanel.cxx 8 7 sw/source/uibase/sidebar/WrapPropertyPanel.hxx 45 42 sw/source/uibase/table/tablepg.hxx 23 14 sw/source/uibase/uiview/pview.cxx 7 7 sw/source/uibase/uiview/view.cxx 1 5 sw/source/uibase/uiview/viewling.cxx 8 8 sw/source/uibase/uiview/viewmdi.cxx 1 0 sw/source/uibase/utlui/content.cxx 1 0 sw/source/uibase/utlui/glbltree.cxx 19 4 sw/source/uibase/utlui/gloslst.cxx 2 3 sw/source/uibase/utlui/navipi.cxx 1 0 tools/source/ref/errinf.cxx 15 0 uui/source/authfallbackdlg.cxx 7 5 uui/source/authfallbackdlg.hxx 12 0 uui/source/fltdlg.cxx 4 2 uui/source/fltdlg.hxx 25 0 uui/source/logindlg.cxx 17 15 uui/source/logindlg.hxx 13 0 uui/source/masterpasscrtdlg.cxx 5 3 uui/source/masterpasscrtdlg.hxx 12 0 uui/source/masterpassworddlg.cxx 4 2 uui/source/masterpassworddlg.hxx 15 0 uui/source/nameclashdlg.cxx 7 5 uui/source/nameclashdlg.hxx 15 0 uui/source/passworddlg.cxx 7 5 uui/source/passworddlg.hxx 15 0 uui/source/secmacrowarnings.cxx 10 9 uui/source/secmacrowarnings.hxx 14 0 uui/source/unknownauthdlg.cxx 6 4 uui/source/unknownauthdlg.hxx 12 4 vcl/generic/print/genprnpsp.cxx 40 2 vcl/generic/print/prtsetup.cxx 24 20 vcl/generic/print/prtsetup.hxx 3 3 vcl/inc/brdwin.hxx 2 2 vcl/inc/dndevdis.hxx 7 6 vcl/inc/ilstbox.hxx 55 54 vcl/inc/printdlg.hxx 5 4 vcl/inc/salframe.hxx 18 23 vcl/inc/svdata.hxx 1 1 vcl/inc/toolbox.h 2 1 vcl/inc/unx/i18n_status.hxx 29 29 vcl/inc/window.h 9 0 vcl/source/app/salvtables.cxx 19 11 vcl/source/app/svapp.cxx 2 0 vcl/source/app/svdata.cxx 9 0 vcl/source/app/vclevent.cxx 14 14 vcl/source/control/button.cxx 3 5 vcl/source/control/combobox.cxx 4 0 vcl/source/control/ctrl.cxx 1 0 vcl/source/control/fixed.cxx 15 3 vcl/source/control/ilstbox.cxx 4 12 vcl/source/control/lstbox.cxx 12 16 vcl/source/control/tabctrl.cxx 1 1 vcl/source/edit/textview.cxx 8 15 vcl/source/edit/vclmedit.cxx 2 4 vcl/source/gdi/print3.cxx 1 0 vcl/source/window/accel.cxx 2 3 vcl/source/window/accessibility.cxx 1 1 vcl/source/window/brdwin.cxx 5 17 vcl/source/window/btndlg.cxx 15 12 vcl/source/window/builder.cxx 1 1 vcl/source/window/clipping.cxx 2 2 vcl/source/window/cursor.cxx 4 3 vcl/source/window/dialog.cxx 10 10 vcl/source/window/dlgctrl.cxx 3 3 vcl/source/window/dndevdis.cxx 8 9 vcl/source/window/dockmgr.cxx 10 6 vcl/source/window/dockwin.cxx 20 3 vcl/source/window/event.cxx 4 2 vcl/source/window/floatwin.cxx 4 2 vcl/source/window/introwin.cxx 20 15 vcl/source/window/layout.cxx 10 10 vcl/source/window/menu.cxx 3 3 vcl/source/window/menubarwindow.cxx 2 2 vcl/source/window/menufloatingwindow.cxx 11 11 vcl/source/window/mouse.cxx 6 17 vcl/source/window/msgbox.cxx 1 1 vcl/source/window/paint.cxx 45 18 vcl/source/window/printdlg.cxx 1 0 vcl/source/window/split.cxx 3 3 vcl/source/window/splitwin.cxx 18 19 vcl/source/window/stacking.cxx 1 0 vcl/source/window/syswin.cxx 2 1 vcl/source/window/tabdlg.cxx 7 12 vcl/source/window/taskpanelist.cxx 5 4 vcl/source/window/toolbox.cxx 21 22 vcl/source/window/window.cxx 16 18 vcl/source/window/window2.cxx 7 7 vcl/source/window/winproc.cxx 1 3 vcl/unx/generic/app/i18n_status.cxx 18 4 vcl/unx/generic/printer/cupsmgr.cxx 3 2 vcl/workben/icontest.cxx 1 1 vcl/workben/mtfdemo.cxx 13 6 vcl/workben/vcldemo.cxx 3 3 xmlsecurity/inc/xmlsecurity/certificatechooser.hxx 22 17 xmlsecurity/inc/xmlsecurity/certificateviewer.hxx 18 18 xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx 22 18 xmlsecurity/inc/xmlsecurity/macrosecurity.hxx 3 1 xmlsecurity/source/dialogs/certificatechooser.cxx 44 1 xmlsecurity/source/dialogs/certificateviewer.cxx 16 1 xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx 38 1 xmlsecurity/source/dialogs/macrosecurity.cxx
2015-03-09 14:29:30 +02:00
VclPtr<vcl::Window> mpWindow;
VclPtr<vcl::Window> mpOrgParent;
sal_uInt16 mnId;
SplitWindowItemFlags mnBits;
bool mbFixed;
bool mbSubSize;
/// Minimal width or height of the item. -1 means no restriction.
long mnMinSize;
/// Maximal width or height of the item. -1 means no restriction.
long mnMaxSize;
2000-09-18 16:07:07 +00:00
};
typedef std::vector< ImplSplitItem* > ImplSplitItems;
class ImplSplitSet
2000-09-18 16:07:07 +00:00
{
public:
ImplSplitSet();
~ImplSplitSet();
void dispose();
ImplSplitItems mpItems;
2000-09-18 16:07:07 +00:00
Wallpaper* mpWallpaper;
Bitmap* mpBitmap;
long mnLastSize;
long mnSplitSize;
sal_uInt16 mnId;
bool mbCalcPix;
2000-09-18 16:07:07 +00:00
};
ImplSplitItem::ImplSplitItem()
: mnSize(0)
, mnPixSize(0)
, mnLeft(0)
, mnTop(0)
, mnWidth(0)
, mnHeight(0)
, mnSplitPos(0)
, mnSplitSize(0)
, mnOldSplitPos(0)
, mnOldSplitSize(0)
, mnOldWidth(0)
, mnOldHeight(0)
, mpSet(0)
, mnId(0)
, mnBits(SplitWindowItemFlags::NONE)
, mbFixed(false)
, mbSubSize(false)
, mnMinSize(-1)
, mnMaxSize(-1)
{
}
ImplSplitItem::~ImplSplitItem()
{
dispose();
}
void ImplSplitItem::dispose()
{
if (mpSet) {
delete mpSet ;
mpSet = NULL;
}
mpWindow.clear();
mpOrgParent.clear();
}
ImplSplitSet::ImplSplitSet() :
mpWallpaper( NULL ),
mpBitmap( NULL ),
mnLastSize( 0 ),
mnSplitSize( SPLITWIN_SPLITSIZE ),
mnId( 0 ),
mbCalcPix( true )
{
}
ImplSplitSet::~ImplSplitSet()
{
dispose();
}
void ImplSplitSet::dispose()
{
size_t nItems = mpItems.size();
for ( size_t i = 0; i < nItems; i++ )
delete mpItems[i];
mpItems.clear();
if ( mpWallpaper ) {
delete mpWallpaper;
mpWallpaper = NULL;
}
if ( mpBitmap ) {
delete mpBitmap;
mpBitmap = NULL;
}
}
/** Check whether the given size is inside the valid range defined by
[rItem.mnMinSize,rItem.mnMaxSize]. When it is not inside it then return
the upper or lower bound, respectively. Otherwise return the given size
unmodified.
Note that either mnMinSize and/or mnMaxSize can be -1 in which case the
size has not lower or upper bound.
*/
namespace {
long ValidateSize (const long nSize, const ImplSplitItem* pItem)
{
if (pItem->mnMinSize>=0 && nSize<pItem->mnMinSize)
return pItem->mnMinSize;
else if (pItem->mnMaxSize>0 && nSize>pItem->mnMaxSize)
return pItem->mnMaxSize;
else
return nSize;
}
}
static void ImplCalcBorder( WindowAlign eAlign, bool bNoAlign,
2000-09-18 16:07:07 +00:00
long& rLeft, long& rTop,
long& rRight, long& rBottom )
{
if ( bNoAlign )
{
rLeft = 2;
rTop = 2;
rRight = 2;
rBottom = 2;
}
else
{
switch ( eAlign )
2000-09-18 16:07:07 +00:00
{
case WindowAlign::Top:
rLeft = 2;
2000-09-18 16:07:07 +00:00
rTop = 2;
rRight = 2;
2000-09-18 16:07:07 +00:00
rBottom = 0;
break;
case WindowAlign::Left:
rLeft = 0;
2000-09-18 16:07:07 +00:00
rTop = 2;
rRight = 2;
2000-09-18 16:07:07 +00:00
rBottom = 2;
break;
case WindowAlign::Bottom:
rLeft = 2;
2000-09-18 16:07:07 +00:00
rTop = 0;
rRight = 2;
2000-09-18 16:07:07 +00:00
rBottom = 2;
break;
default:
2000-09-18 16:07:07 +00:00
rLeft = 0;
rTop = 2;
rRight = 2;
rBottom = 2;
break;
2000-09-18 16:07:07 +00:00
}
}
}
void SplitWindow::ImplDrawBorder(vcl::RenderContext& rRenderContext)
2000-09-18 16:07:07 +00:00
{
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
long nDX = mnDX;
long nDY = mnDY;
2000-09-18 16:07:07 +00:00
if (mbNoAlign)
2000-09-18 16:07:07 +00:00
{
DecorationView aDecoView(&rRenderContext);
Point aTmpPoint;
Rectangle aRect(aTmpPoint, Size(nDX, nDY));
aDecoView.DrawFrame(aRect, DrawFrameStyle::DoubleIn);
2000-09-18 16:07:07 +00:00
}
else
{
switch (meAlign)
{
case WindowAlign::Bottom:
rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(0, 0), Point(nDX - 1, 0));
rRenderContext.DrawLine(Point(0, nDY - 2), Point(nDX - 1, nDY - 2));
rRenderContext.SetLineColor(rStyleSettings.GetLightColor());
rRenderContext.DrawLine(Point(0, 1), Point(nDX - 1, 1));
rRenderContext.DrawLine(Point(0, nDY - 1), Point(nDX - 1, nDY - 1));
break;
case WindowAlign::Top:
rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(0, nDY - 2), Point(nDX - 1, nDY - 2));
rRenderContext.DrawLine(Point(0, 0), Point(nDX - 1, 0));
rRenderContext.SetLineColor(rStyleSettings.GetLightColor());
rRenderContext.DrawLine(Point(0, nDY - 1), Point(nDX - 1, nDY - 1));
rRenderContext.DrawLine(Point(0, 1), Point(nDX - 1, 1));
break;
case WindowAlign::Left:
rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(nDX - 2, 0), Point(nDX - 2, nDY - 2));
rRenderContext.DrawLine(Point(0, 0), Point(nDX - 1, 0));
rRenderContext.DrawLine(Point(0, nDY - 2), Point(nDX - 2, nDY - 2));
rRenderContext.SetLineColor(rStyleSettings.GetLightColor());
rRenderContext.DrawLine(Point(nDX - 1, 0), Point(nDX - 1, nDY - 1));
rRenderContext.DrawLine(Point(0, 1), Point(nDX - 3, 1));
rRenderContext.DrawLine(Point(0, nDY - 1), Point(nDX - 2, nDY - 1));
break;
default:
rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(0, 0), Point( 0, nDY - 2));
rRenderContext.DrawLine(Point(0, 0), Point( nDX - 1, 0));
rRenderContext.DrawLine(Point(0, nDY - 2), Point(nDX - 1, nDY - 2));
rRenderContext.SetLineColor( rStyleSettings.GetLightColor());
rRenderContext.DrawLine(Point(1, 1), Point(1, nDY - 3));
rRenderContext.DrawLine(Point(1, 1), Point(nDX - 1, 1));
rRenderContext.DrawLine(Point(0, nDY - 1), Point(nDX - 1, nDY - 1));
}
}
}
void SplitWindow::ImplDrawBorderLine(vcl::RenderContext& rRenderContext)
{
if (mbFadeOut || mbAutoHide)
{
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
long nDX = mnDX;
long nDY = mnDY;
switch (meAlign)
{
case WindowAlign::Left:
rRenderContext.SetLineColor( rStyleSettings.GetShadowColor() );
rRenderContext.DrawLine( Point( nDX-SPLITWIN_SPLITSIZEEXLN-1, 1 ), Point( nDX-SPLITWIN_SPLITSIZEEXLN-1, nDY-2 ) );
rRenderContext.SetLineColor( rStyleSettings.GetLightColor() );
rRenderContext.DrawLine( Point( nDX-SPLITWIN_SPLITSIZEEXLN, 1 ), Point( nDX-SPLITWIN_SPLITSIZEEXLN, nDY-3 ) );
break;
case WindowAlign::Right:
rRenderContext.SetLineColor( rStyleSettings.GetShadowColor() );
rRenderContext.DrawLine( Point( SPLITWIN_SPLITSIZEEXLN-1, 0 ), Point( SPLITWIN_SPLITSIZEEXLN-1, nDY-2 ) );
rRenderContext.SetLineColor( rStyleSettings.GetLightColor() );
rRenderContext.DrawLine( Point( SPLITWIN_SPLITSIZEEXLN, 1 ), Point( SPLITWIN_SPLITSIZEEXLN, nDY-3 ) );
break;
case WindowAlign::Top:
rRenderContext.SetLineColor( rStyleSettings.GetShadowColor() );
rRenderContext.DrawLine( Point( 0, nDY-SPLITWIN_SPLITSIZEEXLN-1 ), Point( nDX-1, nDY-SPLITWIN_SPLITSIZEEXLN-1 ) );
rRenderContext.SetLineColor( rStyleSettings.GetLightColor() );
rRenderContext.DrawLine( Point( 0, nDY-SPLITWIN_SPLITSIZEEXLN ), Point( nDX-1, nDY-SPLITWIN_SPLITSIZEEXLN ) );
break;
case WindowAlign::Bottom:
rRenderContext.SetLineColor( rStyleSettings.GetShadowColor() );
rRenderContext.DrawLine( Point( 0, 5 ), Point( nDX-1, 5 ) );
rRenderContext.SetLineColor( rStyleSettings.GetLightColor() );
rRenderContext.DrawLine( Point( 0, SPLITWIN_SPLITSIZEEXLN ), Point( nDX-1, SPLITWIN_SPLITSIZEEXLN ) );
break;
2000-09-18 16:07:07 +00:00
}
}
}
static ImplSplitSet* ImplFindSet( ImplSplitSet* pSet, sal_uInt16 nId )
2000-09-18 16:07:07 +00:00
{
if ( pSet->mnId == nId )
return pSet;
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnId == nId )
return pItems[i]->mpSet;
2000-09-18 16:07:07 +00:00
}
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpSet )
2000-09-18 16:07:07 +00:00
{
ImplSplitSet* pFindSet = ImplFindSet( pItems[i]->mpSet, nId );
2000-09-18 16:07:07 +00:00
if ( pFindSet )
return pFindSet;
}
}
return NULL;
}
static ImplSplitSet* ImplFindItem( ImplSplitSet* pSet, sal_uInt16 nId, sal_uInt16& rPos )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnId == nId )
2000-09-18 16:07:07 +00:00
{
rPos = i;
return pSet;
}
}
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpSet )
2000-09-18 16:07:07 +00:00
{
ImplSplitSet* pFindSet = ImplFindItem( pItems[i]->mpSet, nId, rPos );
2000-09-18 16:07:07 +00:00
if ( pFindSet )
return pFindSet;
}
}
return NULL;
}
static sal_uInt16 ImplFindItem( ImplSplitSet* pSet, vcl::Window* pWindow )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpWindow == pWindow )
return pItems[i]->mnId;
2000-09-18 16:07:07 +00:00
else
{
if ( pItems[i]->mpSet )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nId = ImplFindItem( pItems[i]->mpSet, pWindow );
2000-09-18 16:07:07 +00:00
if ( nId )
return nId;
}
}
}
return 0;
}
static sal_uInt16 ImplFindItem( ImplSplitSet* pSet, const Point& rPos,
bool bRows, bool bDown = true )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnWidth && pItems[i]->mnHeight )
2000-09-18 16:07:07 +00:00
{
Point aPoint( pItems[i]->mnLeft, pItems[i]->mnTop );
Size aSize( pItems[i]->mnWidth, pItems[i]->mnHeight );
2000-09-18 16:07:07 +00:00
Rectangle aRect( aPoint, aSize );
if ( bRows )
{
if ( bDown )
aRect.Bottom() += pSet->mnSplitSize;
else
aRect.Top() -= pSet->mnSplitSize;
}
else
{
if ( bDown )
aRect.Right() += pSet->mnSplitSize;
else
aRect.Left() -= pSet->mnSplitSize;
}
if ( aRect.IsInside( rPos ) )
{
if ( pItems[i]->mpSet && !pItems[i]->mpSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
{
return ImplFindItem( pItems[i]->mpSet, rPos,
!(pItems[i]->mnBits & SplitWindowItemFlags::ColSet) );
2000-09-18 16:07:07 +00:00
}
else
return pItems[i]->mnId;
2000-09-18 16:07:07 +00:00
}
}
}
return 0;
}
static void ImplCalcSet( ImplSplitSet* pSet,
long nSetLeft, long nSetTop,
long nSetWidth, long nSetHeight,
bool bRows, bool bDown = true )
2000-09-18 16:07:07 +00:00
{
if ( pSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
return;
sal_uInt16 i;
sal_uInt16 j;
sal_uInt16 nMins;
sal_uInt16 nCalcItems;
size_t nItems = pSet->mpItems.size();
sal_uInt16 nVisItems;
sal_uInt16 nAbsItems;
2000-09-18 16:07:07 +00:00
long nCalcSize;
long nSizeDelta;
long nSizeWinSize;
long nNewSizeWinSize;
long nTemp;
long nTempErr;
long nErrorSum;
long nCurSizeDelta;
long nPos;
long nMaxPos;
long* pSize;
ImplSplitItems& pItems = pSet->mpItems;
bool bEmpty;
2000-09-18 16:07:07 +00:00
// get number of visible items
2000-09-18 16:07:07 +00:00
nVisItems = 0;
for ( i = 0; i < nItems; i++ )
{
if ( !(pItems[i]->mnBits & SplitWindowItemFlags::Invisible) )
2000-09-18 16:07:07 +00:00
nVisItems++;
}
// calculate sizes
2000-09-18 16:07:07 +00:00
if ( bRows )
nCalcSize = nSetHeight;
else
nCalcSize = nSetWidth;
nCalcSize -= (nVisItems-1)*pSet->mnSplitSize;
long nCurSize = 0;
2000-09-18 16:07:07 +00:00
if ( pSet->mbCalcPix || (pSet->mnLastSize != nCalcSize) )
{
long nPercentFactor = 10;
long nRelCount = 0;
long nPercent = 0;
long nRelPercent = 0;
long nAbsSize = 0;
for ( i = 0; i < nItems; i++ )
{
if ( !(pItems[i]->mnBits & SplitWindowItemFlags::Invisible) )
2000-09-18 16:07:07 +00:00
{
if ( pItems[i]->mnBits & SplitWindowItemFlags::RelativeSize )
nRelCount += pItems[i]->mnSize;
else if ( pItems[i]->mnBits & SplitWindowItemFlags::PercentSize )
nPercent += pItems[i]->mnSize;
2000-09-18 16:07:07 +00:00
else
nAbsSize += pItems[i]->mnSize;
2000-09-18 16:07:07 +00:00
}
}
// map relative values to percentages (percentage here one tenth of a procent)
2000-09-18 16:07:07 +00:00
nPercent *= nPercentFactor;
if ( nRelCount )
{
long nRelPercentBase = 1000;
while ( (nRelCount > nRelPercentBase) && (nPercentFactor < 100000) )
{
nRelPercentBase *= 10;
nPercentFactor *= 10;
}
if ( nPercent < nRelPercentBase )
{
nRelPercent = (nRelPercentBase-nPercent)/nRelCount;
nPercent += nRelPercent*nRelCount;
}
else
nRelPercent = 0;
}
if ( !nPercent )
nPercent = 1;
nSizeDelta = nCalcSize-nAbsSize;
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnBits & SplitWindowItemFlags::Invisible )
pItems[i]->mnPixSize = 0;
else if ( pItems[i]->mnBits & SplitWindowItemFlags::RelativeSize )
2000-09-18 16:07:07 +00:00
{
if ( nSizeDelta <= 0 )
pItems[i]->mnPixSize = 0;
2000-09-18 16:07:07 +00:00
else
pItems[i]->mnPixSize = (nSizeDelta*pItems[i]->mnSize*nRelPercent)/nPercent;
2000-09-18 16:07:07 +00:00
}
else if ( pItems[i]->mnBits & SplitWindowItemFlags::PercentSize )
2000-09-18 16:07:07 +00:00
{
if ( nSizeDelta <= 0 )
pItems[i]->mnPixSize = 0;
2000-09-18 16:07:07 +00:00
else
pItems[i]->mnPixSize = (nSizeDelta*pItems[i]->mnSize*nPercentFactor)/nPercent;
2000-09-18 16:07:07 +00:00
}
else
pItems[i]->mnPixSize = pItems[i]->mnSize;
nCurSize += pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
pSet->mbCalcPix = false;
2000-09-18 16:07:07 +00:00
pSet->mnLastSize = nCalcSize;
// adapt window
2000-09-18 16:07:07 +00:00
nSizeDelta = nCalcSize-nCurSize;
if ( nSizeDelta )
{
nAbsItems = 0;
nSizeWinSize = 0;
nNewSizeWinSize = 0;
// first resize absolute items relative
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( !(pItems[i]->mnBits & SplitWindowItemFlags::Invisible) )
2000-09-18 16:07:07 +00:00
{
if ( !(pItems[i]->mnBits & (SplitWindowItemFlags::RelativeSize | SplitWindowItemFlags::PercentSize)) )
2000-09-18 16:07:07 +00:00
{
nAbsItems++;
nSizeWinSize += pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
}
}
// do not compensate rounding errors here
if ( (nAbsItems < (sal_uInt16)(std::abs( nSizeDelta ))) && nSizeWinSize )
2000-09-18 16:07:07 +00:00
{
for ( i = 0; i < nItems; i++ )
{
if ( !(pItems[i]->mnBits & SplitWindowItemFlags::Invisible) )
2000-09-18 16:07:07 +00:00
{
if ( !(pItems[i]->mnBits & (SplitWindowItemFlags::RelativeSize | SplitWindowItemFlags::PercentSize)) )
2000-09-18 16:07:07 +00:00
{
pItems[i]->mnPixSize += (nSizeDelta*pItems[i]->mnPixSize)/nSizeWinSize;
nNewSizeWinSize += pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
}
}
nSizeDelta -= nNewSizeWinSize-nSizeWinSize;
}
// compensate rounding errors now
2000-09-18 16:07:07 +00:00
j = 0;
nMins = 0;
while ( nSizeDelta && (nItems != nMins) )
{
// determinne which items we can calculate
2000-09-18 16:07:07 +00:00
nCalcItems = 0;
while ( !nCalcItems )
{
for ( i = 0; i < nItems; i++ )
{
pItems[i]->mbSubSize = false;
2000-09-18 16:07:07 +00:00
if ( j >= 2 )
pItems[i]->mbSubSize = true;
2000-09-18 16:07:07 +00:00
else
{
if ( !(pItems[i]->mnBits & SplitWindowItemFlags::Invisible) )
2000-09-18 16:07:07 +00:00
{
if ( (nSizeDelta > 0) || pItems[i]->mnPixSize )
2000-09-18 16:07:07 +00:00
{
if ( j >= 1 )
pItems[i]->mbSubSize = true;
2000-09-18 16:07:07 +00:00
else
{
if ( (j == 0) && (pItems[i]->mnBits & (SplitWindowItemFlags::RelativeSize | SplitWindowItemFlags::PercentSize)) )
pItems[i]->mbSubSize = true;
2000-09-18 16:07:07 +00:00
}
}
}
}
if ( pItems[i]->mbSubSize )
2000-09-18 16:07:07 +00:00
nCalcItems++;
}
j++;
}
// subtract size of individual items
2000-09-18 16:07:07 +00:00
nErrorSum = nSizeDelta % nCalcItems;
nCurSizeDelta = nSizeDelta / nCalcItems;
nMins = 0;
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnBits & SplitWindowItemFlags::Invisible )
2000-09-18 16:07:07 +00:00
nMins++;
else if ( pItems[i]->mbSubSize )
2000-09-18 16:07:07 +00:00
{
pSize = &(pItems[i]->mnPixSize);
2000-09-18 16:07:07 +00:00
if ( nErrorSum )
{
if ( nErrorSum < 0 )
nTempErr = -1;
else
nTempErr = 1;
}
else
nTempErr = 0;
if ( (*pSize+nCurSizeDelta+nTempErr) <= 0 )
{
nTemp = *pSize;
if ( nTemp )
{
*pSize -= nTemp;
nSizeDelta += nTemp;
}
nMins++;
}
else
{
*pSize += nCurSizeDelta;
nSizeDelta -= nCurSizeDelta;
if ( nTempErr && (*pSize || (nTempErr > 0)) )
{
*pSize += nTempErr;
nSizeDelta -= nTempErr;
nErrorSum -= nTempErr;
}
}
}
}
}
}
}
// calculate maximum size
2000-09-18 16:07:07 +00:00
if ( bRows )
{
nPos = nSetTop;
if ( !bDown )
nMaxPos = nSetTop-nSetHeight;
else
nMaxPos = nSetTop+nSetHeight;
}
else
{
nPos = nSetLeft;
if ( !bDown )
nMaxPos = nSetLeft-nSetWidth;
else
nMaxPos = nSetLeft+nSetWidth;
}
// order windows and adept values
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
pItems[i]->mnOldSplitPos = pItems[i]->mnSplitPos;
pItems[i]->mnOldSplitSize = pItems[i]->mnSplitSize;
pItems[i]->mnOldWidth = pItems[i]->mnWidth;
pItems[i]->mnOldHeight = pItems[i]->mnHeight;
2000-09-18 16:07:07 +00:00
if ( pItems[i]->mnBits & SplitWindowItemFlags::Invisible )
bEmpty = true;
2000-09-18 16:07:07 +00:00
else
{
bEmpty = false;
2000-09-18 16:07:07 +00:00
if ( bDown )
{
if ( nPos+pItems[i]->mnPixSize > nMaxPos )
bEmpty = true;
2000-09-18 16:07:07 +00:00
}
else
{
nPos -= pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
if ( nPos < nMaxPos )
bEmpty = true;
2000-09-18 16:07:07 +00:00
}
}
if ( bEmpty )
{
pItems[i]->mnWidth = 0;
pItems[i]->mnHeight = 0;
pItems[i]->mnSplitSize = 0;
2000-09-18 16:07:07 +00:00
}
else
{
if ( bRows )
{
pItems[i]->mnLeft = nSetLeft;
pItems[i]->mnTop = nPos;
pItems[i]->mnWidth = nSetWidth;
pItems[i]->mnHeight = pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
else
{
pItems[i]->mnLeft = nPos;
pItems[i]->mnTop = nSetTop;
pItems[i]->mnWidth = pItems[i]->mnPixSize;
pItems[i]->mnHeight = nSetHeight;
2000-09-18 16:07:07 +00:00
}
if ( i > nItems-1 )
pItems[i]->mnSplitSize = 0;
2000-09-18 16:07:07 +00:00
else
{
pItems[i]->mnSplitSize = pSet->mnSplitSize;
2000-09-18 16:07:07 +00:00
if ( bDown )
{
pItems[i]->mnSplitPos = nPos+pItems[i]->mnPixSize;
if ( pItems[i]->mnSplitPos+pItems[i]->mnSplitSize > nMaxPos )
pItems[i]->mnSplitSize = nMaxPos-pItems[i]->mnSplitPos;
2000-09-18 16:07:07 +00:00
}
else
{
pItems[i]->mnSplitPos = nPos-pSet->mnSplitSize;
if ( pItems[i]->mnSplitPos < nMaxPos )
pItems[i]->mnSplitSize = pItems[i]->mnSplitPos+pSet->mnSplitSize-nMaxPos;
2000-09-18 16:07:07 +00:00
}
}
}
if ( !(pItems[i]->mnBits & SplitWindowItemFlags::Invisible) )
2000-09-18 16:07:07 +00:00
{
if ( !bDown )
nPos -= pSet->mnSplitSize;
else
nPos += pItems[i]->mnPixSize+pSet->mnSplitSize;
2000-09-18 16:07:07 +00:00
}
}
// calculate Sub-Set's
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpSet && pItems[i]->mnWidth && pItems[i]->mnHeight )
2000-09-18 16:07:07 +00:00
{
ImplCalcSet( pItems[i]->mpSet,
pItems[i]->mnLeft, pItems[i]->mnTop,
pItems[i]->mnWidth, pItems[i]->mnHeight,
!(pItems[i]->mnBits & SplitWindowItemFlags::ColSet) );
2000-09-18 16:07:07 +00:00
}
}
// set fixed
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
pItems[i]->mbFixed = false;
if ( pItems[i]->mnBits & SplitWindowItemFlags::Fixed )
pItems[i]->mbFixed = true;
2000-09-18 16:07:07 +00:00
else
{
// this item is also fixed if Child-Set is available,
// if a child is fixed
if ( pItems[i]->mpSet )
2000-09-18 16:07:07 +00:00
{
for ( j = 0; j < pItems[i]->mpSet->mpItems.size(); j++ )
2000-09-18 16:07:07 +00:00
{
if ( pItems[i]->mpSet->mpItems[j]->mbFixed )
2000-09-18 16:07:07 +00:00
{
pItems[i]->mbFixed = true;
2000-09-18 16:07:07 +00:00
break;
}
}
}
}
}
}
void SplitWindow::ImplCalcSet2( SplitWindow* pWindow, ImplSplitSet* pSet, bool bHide,
bool bRows, bool /*bDown*/ )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
if ( pWindow->IsReallyVisible() && pWindow->IsUpdateMode() && pWindow->mbInvalidate )
{
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnSplitSize )
2000-09-18 16:07:07 +00:00
{
// invalidate all, if applicable or only a small part
if ( (pItems[i]->mnOldSplitPos != pItems[i]->mnSplitPos) ||
(pItems[i]->mnOldSplitSize != pItems[i]->mnSplitSize) ||
(pItems[i]->mnOldWidth != pItems[i]->mnWidth) ||
(pItems[i]->mnOldHeight != pItems[i]->mnHeight) )
2000-09-18 16:07:07 +00:00
{
Rectangle aRect;
// invalidate old rectangle
2000-09-18 16:07:07 +00:00
if ( bRows )
{
aRect.Left() = pItems[i]->mnLeft;
aRect.Right() = pItems[i]->mnLeft+pItems[i]->mnOldWidth-1;
aRect.Top() = pItems[i]->mnOldSplitPos;
aRect.Bottom() = aRect.Top() + pItems[i]->mnOldSplitSize;
2000-09-18 16:07:07 +00:00
}
else
{
aRect.Top() = pItems[i]->mnTop;
aRect.Bottom() = pItems[i]->mnTop+pItems[i]->mnOldHeight-1;
aRect.Left() = pItems[i]->mnOldSplitPos;
aRect.Right() = aRect.Left() + pItems[i]->mnOldSplitSize;
2000-09-18 16:07:07 +00:00
}
pWindow->Invalidate( aRect );
// invalidate new rectangle
2000-09-18 16:07:07 +00:00
if ( bRows )
{
aRect.Left() = pItems[i]->mnLeft;
aRect.Right() = pItems[i]->mnLeft+pItems[i]->mnWidth-1;
aRect.Top() = pItems[i]->mnSplitPos;
aRect.Bottom() = aRect.Top() + pItems[i]->mnSplitSize;
2000-09-18 16:07:07 +00:00
}
else
{
aRect.Top() = pItems[i]->mnTop;
aRect.Bottom() = pItems[i]->mnTop+pItems[i]->mnHeight-1;
aRect.Left() = pItems[i]->mnSplitPos;
aRect.Right() = aRect.Left() + pItems[i]->mnSplitSize;
2000-09-18 16:07:07 +00:00
}
pWindow->Invalidate( aRect );
// invalidate complete set, as these areas
// are not cluttered by windows
if ( pItems[i]->mpSet && pItems[i]->mpSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
{
aRect.Left() = pItems[i]->mnLeft;
aRect.Top() = pItems[i]->mnTop;
aRect.Right() = pItems[i]->mnLeft+pItems[i]->mnWidth-1;
aRect.Bottom() = pItems[i]->mnTop+pItems[i]->mnHeight-1;
2000-09-18 16:07:07 +00:00
pWindow->Invalidate( aRect );
}
}
}
}
}
// position windows
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpSet )
2000-09-18 16:07:07 +00:00
{
bool bTempHide = bHide;
if ( !pItems[i]->mnWidth || !pItems[i]->mnHeight )
bTempHide = true;
ImplCalcSet2( pWindow, pItems[i]->mpSet, bTempHide,
!(pItems[i]->mnBits & SplitWindowItemFlags::ColSet) );
2000-09-18 16:07:07 +00:00
}
else
{
if ( pItems[i]->mnWidth && pItems[i]->mnHeight && !bHide )
2000-09-18 16:07:07 +00:00
{
Point aPos( pItems[i]->mnLeft, pItems[i]->mnTop );
Size aSize( pItems[i]->mnWidth, pItems[i]->mnHeight );
pItems[i]->mpWindow->SetPosSizePixel( aPos, aSize );
2000-09-18 16:07:07 +00:00
}
else
pItems[i]->mpWindow->Hide();
2000-09-18 16:07:07 +00:00
}
}
// show windows and reset flag
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpWindow && pItems[i]->mnWidth && pItems[i]->mnHeight && !bHide )
pItems[i]->mpWindow->Show();
2000-09-18 16:07:07 +00:00
}
}
static void ImplCalcLogSize( ImplSplitItems pItems, size_t nItems )
2000-09-18 16:07:07 +00:00
{
// update original sizes
size_t i;
2000-09-18 16:07:07 +00:00
long nRelSize = 0;
long nPerSize = 0;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnBits & SplitWindowItemFlags::RelativeSize )
nRelSize += pItems[i]->mnPixSize;
else if ( pItems[i]->mnBits & SplitWindowItemFlags::PercentSize )
nPerSize += pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
nPerSize += nRelSize;
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mnBits & SplitWindowItemFlags::RelativeSize )
2000-09-18 16:07:07 +00:00
{
if ( nRelSize )
pItems[i]->mnSize = (pItems[i]->mnPixSize+(nRelSize/2))/nRelSize;
2000-09-18 16:07:07 +00:00
else
pItems[i]->mnSize = 1;
2000-09-18 16:07:07 +00:00
}
else if ( pItems[i]->mnBits & SplitWindowItemFlags::PercentSize )
2000-09-18 16:07:07 +00:00
{
if ( nPerSize )
pItems[i]->mnSize = (pItems[i]->mnPixSize*100)/nPerSize;
2000-09-18 16:07:07 +00:00
else
pItems[i]->mnSize = 1;
2000-09-18 16:07:07 +00:00
}
else
pItems[i]->mnSize = pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
}
void SplitWindow::ImplDrawBack(vcl::RenderContext& rRenderContext, const Rectangle& rRect,
const Wallpaper* pWall, const Bitmap* pBitmap)
2000-09-18 16:07:07 +00:00
{
if (pBitmap)
2000-09-18 16:07:07 +00:00
{
Point aPos = rRect.TopLeft();
Size aBmpSize = pBitmap->GetSizePixel();
rRenderContext.Push(PushFlags::CLIPREGION);
rRenderContext.IntersectClipRegion(rRect);
2000-09-18 16:07:07 +00:00
do
{
aPos.X() = rRect.Left();
do
{
rRenderContext.DrawBitmap(aPos, *pBitmap);
2000-09-18 16:07:07 +00:00
aPos.X() += aBmpSize.Width();
}
while (aPos.X() < rRect.Right());
2000-09-18 16:07:07 +00:00
aPos.Y() += aBmpSize.Height();
}
while (aPos.Y() < rRect.Bottom());
rRenderContext.Pop();
2000-09-18 16:07:07 +00:00
}
else
{
rRenderContext.DrawWallpaper(rRect, *pWall);
}
2000-09-18 16:07:07 +00:00
}
void SplitWindow::ImplDrawBack(vcl::RenderContext& rRenderContext, ImplSplitSet* pSet)
2000-09-18 16:07:07 +00:00
{
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
// also draw background for mainset
if (pSet->mnId == 0)
2000-09-18 16:07:07 +00:00
{
if (pSet->mpBitmap)
2000-09-18 16:07:07 +00:00
{
Rectangle aRect(mnLeftBorder, mnTopBorder,
mnDX - mnRightBorder - 1,
mnDY - mnBottomBorder - 1);
ImplDrawBack(rRenderContext, aRect, pSet->mpWallpaper, pSet->mpBitmap);
2000-09-18 16:07:07 +00:00
}
}
for (i = 0; i < nItems; i++)
2000-09-18 16:07:07 +00:00
{
pSet = pItems[i]->mpSet;
if (pSet)
2000-09-18 16:07:07 +00:00
{
if (pSet->mpBitmap || pSet->mpWallpaper)
2000-09-18 16:07:07 +00:00
{
Point aPoint(pItems[i]->mnLeft, pItems[i]->mnTop);
Size aSize(pItems[i]->mnWidth, pItems[i]->mnHeight);
Rectangle aRect(aPoint, aSize);
ImplDrawBack(rRenderContext, aRect, pSet->mpWallpaper, pSet->mpBitmap);
2000-09-18 16:07:07 +00:00
}
}
}
for (i = 0; i < nItems; i++)
2000-09-18 16:07:07 +00:00
{
if (pItems[i]->mpSet)
ImplDrawBack(rRenderContext, pItems[i]->mpSet);
2000-09-18 16:07:07 +00:00
}
}
static void ImplDrawSplit(vcl::RenderContext& rRenderContext, ImplSplitSet* pSet, bool bRows, bool bFlat, bool bDown = true)
2000-09-18 16:07:07 +00:00
{
if (pSet->mpItems.empty())
2000-09-18 16:07:07 +00:00
return;
sal_uInt16 i;
size_t nItems = pSet->mpItems.size();
long nPos;
long nTop;
long nBottom;
ImplSplitItems& pItems = pSet->mpItems;
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
2000-09-18 16:07:07 +00:00
for (i = 0; i < nItems-1; i++)
2000-09-18 16:07:07 +00:00
{
if (pItems[i]->mnSplitSize)
2000-09-18 16:07:07 +00:00
{
nPos = pItems[i]->mnSplitPos;
2000-09-18 16:07:07 +00:00
long nItemSplitSize = pItems[i]->mnSplitSize;
2000-09-18 16:07:07 +00:00
long nSplitSize = pSet->mnSplitSize;
if (bRows)
2000-09-18 16:07:07 +00:00
{
nTop = pItems[i]->mnLeft;
nBottom = pItems[i]->mnLeft+pItems[i]->mnWidth-1;
2000-09-18 16:07:07 +00:00
if (bFlat)
nPos--;
2000-09-18 16:07:07 +00:00
if (bDown || (nItemSplitSize >= nSplitSize))
2000-09-18 16:07:07 +00:00
{
rRenderContext.SetLineColor(rStyleSettings.GetLightColor());
rRenderContext.DrawLine(Point(nTop, nPos + 1), Point(nBottom, nPos + 1));
2000-09-18 16:07:07 +00:00
}
nPos += nSplitSize-2;
if (bFlat)
nPos+=2;
if ((!bDown && (nItemSplitSize >= 2)) ||
(bDown && (nItemSplitSize >= nSplitSize - 1)))
2000-09-18 16:07:07 +00:00
{
rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(nTop, nPos), Point(nBottom, nPos));
2000-09-18 16:07:07 +00:00
}
if (!bFlat)
2000-09-18 16:07:07 +00:00
{
nPos++;
if (!bDown || (nItemSplitSize >= nSplitSize))
2000-09-18 16:07:07 +00:00
{
rRenderContext.SetLineColor(rStyleSettings.GetDarkShadowColor());
rRenderContext.DrawLine(Point(nTop, nPos), Point(nBottom, nPos));
2000-09-18 16:07:07 +00:00
}
}
}
else
{
nTop = pItems[i]->mnTop;
nBottom = pItems[i]->mnTop+pSet->mpItems[i]->mnHeight-1;
2000-09-18 16:07:07 +00:00
if (bFlat)
nPos--;
if (bDown || (nItemSplitSize >= nSplitSize))
2000-09-18 16:07:07 +00:00
{
rRenderContext.SetLineColor(rStyleSettings.GetLightColor());
rRenderContext.DrawLine(Point(nPos + 1, nTop), Point(nPos+1, nBottom));
2000-09-18 16:07:07 +00:00
}
nPos += pSet->mnSplitSize - 2;
if (bFlat)
nPos += 2;
if ((!bDown && (nItemSplitSize >= 2)) ||
(bDown && (nItemSplitSize >= nSplitSize - 1)))
2000-09-18 16:07:07 +00:00
{
rRenderContext.SetLineColor(rStyleSettings.GetShadowColor());
rRenderContext.DrawLine(Point(nPos, nTop), Point(nPos, nBottom));
2000-09-18 16:07:07 +00:00
}
if( !bFlat )
{
nPos++;
if (!bDown || (nItemSplitSize >= nSplitSize))
2000-09-18 16:07:07 +00:00
{
rRenderContext.SetLineColor(rStyleSettings.GetDarkShadowColor());
rRenderContext.DrawLine(Point(nPos, nTop), Point(nPos, nBottom));
2000-09-18 16:07:07 +00:00
}
}
}
}
}
for (i = 0; i < nItems; i++)
2000-09-18 16:07:07 +00:00
{
if (pItems[i]->mpSet && pItems[i]->mnWidth && pItems[i]->mnHeight)
{
ImplDrawSplit(rRenderContext, pItems[i]->mpSet, !(pItems[i]->mnBits & SplitWindowItemFlags::ColSet), bFlat);
}
2000-09-18 16:07:07 +00:00
}
}
sal_uInt16 SplitWindow::ImplTestSplit( ImplSplitSet* pSet, const Point& rPos,
long& rMouseOff, ImplSplitSet** ppFoundSet, sal_uInt16& rFoundPos,
bool bRows, bool /*bDown*/ )
2000-09-18 16:07:07 +00:00
{
if ( pSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
return 0;
sal_uInt16 i;
sal_uInt16 nSplitTest;
size_t nItems = pSet->mpItems.size();
2000-09-18 16:07:07 +00:00
long nMPos1;
long nMPos2;
long nPos;
long nTop;
long nBottom;
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
if ( bRows )
{
nMPos1 = rPos.X();
nMPos2 = rPos.Y();
}
else
{
nMPos1 = rPos.Y();
nMPos2 = rPos.X();
}
for ( i = 0; i < nItems-1; i++ )
{
if ( pItems[i]->mnSplitSize )
2000-09-18 16:07:07 +00:00
{
if ( bRows )
{
nTop = pItems[i]->mnLeft;
nBottom = pItems[i]->mnLeft+pItems[i]->mnWidth-1;
2000-09-18 16:07:07 +00:00
}
else
{
nTop = pItems[i]->mnTop;
nBottom = pItems[i]->mnTop+pItems[i]->mnHeight-1;
2000-09-18 16:07:07 +00:00
}
nPos = pItems[i]->mnSplitPos;
2000-09-18 16:07:07 +00:00
if ( (nMPos1 >= nTop) && (nMPos1 <= nBottom) &&
(nMPos2 >= nPos) && (nMPos2 <= nPos+pItems[i]->mnSplitSize) )
2000-09-18 16:07:07 +00:00
{
if ( !pItems[i]->mbFixed && !pItems[i+1]->mbFixed )
2000-09-18 16:07:07 +00:00
{
rMouseOff = nMPos2-nPos;
*ppFoundSet = pSet;
rFoundPos = i;
if ( bRows )
return SPLIT_VERT;
else
return SPLIT_HORZ;
}
else
return SPLIT_NOSPLIT;
}
}
}
for ( i = 0; i < nItems; i++ )
{
if ( pItems[i]->mpSet )
2000-09-18 16:07:07 +00:00
{
nSplitTest = ImplTestSplit( pItems[i]->mpSet, rPos,
2000-09-18 16:07:07 +00:00
rMouseOff, ppFoundSet, rFoundPos,
!(pItems[i]->mnBits & SplitWindowItemFlags::ColSet) );
2000-09-18 16:07:07 +00:00
if ( nSplitTest )
return nSplitTest;
}
}
return 0;
}
sal_uInt16 SplitWindow::ImplTestSplit( SplitWindow* pWindow, const Point& rPos,
long& rMouseOff, ImplSplitSet** ppFoundSet, sal_uInt16& rFoundPos )
2000-09-18 16:07:07 +00:00
{
// Resizable SplitWindow should be treated different
2000-09-18 16:07:07 +00:00
if ( pWindow->mnWinStyle & WB_SIZEABLE )
{
long nTPos;
long nPos;
long nBorder;
if ( pWindow->mbHorz )
{
if ( pWindow->mbBottomRight )
{
nBorder = pWindow->mnBottomBorder;
nPos = 0;
}
else
{
nBorder = pWindow->mnTopBorder;
nPos = pWindow->mnDY-nBorder;
}
nTPos = rPos.Y();
}
else
{
if ( pWindow->mbBottomRight )
{
nBorder = pWindow->mnRightBorder;
nPos = 0;
}
else
{
nBorder = pWindow->mnLeftBorder;
nPos = pWindow->mnDX-nBorder;
}
nTPos = rPos.X();
}
long nSplitSize = pWindow->mpMainSet->mnSplitSize-2;
if ( pWindow->mbAutoHide || pWindow->mbFadeOut )
nSplitSize += SPLITWIN_SPLITSIZEEXLN;
2000-09-18 16:07:07 +00:00
if ( !pWindow->mbBottomRight )
nPos -= nSplitSize;
if ( (nTPos >= nPos) && (nTPos <= nPos+nSplitSize+nBorder) )
{
rMouseOff = nTPos-nPos;
*ppFoundSet = pWindow->mpMainSet;
if ( !pWindow->mpMainSet->mpItems.empty() )
rFoundPos = pWindow->mpMainSet->mpItems.size() - 1;
2000-09-18 16:07:07 +00:00
else
rFoundPos = 0;
if ( pWindow->mbHorz )
return SPLIT_VERT | SPLIT_WINDOW;
else
return SPLIT_HORZ | SPLIT_WINDOW;
}
}
return ImplTestSplit( pWindow->mpMainSet, rPos, rMouseOff, ppFoundSet, rFoundPos,
pWindow->mbHorz, !pWindow->mbBottomRight );
}
void SplitWindow::ImplDrawSplitTracking(const Point& rPos)
2000-09-18 16:07:07 +00:00
{
Rectangle aRect;
if (mnSplitTest & SPLIT_HORZ)
2000-09-18 16:07:07 +00:00
{
aRect.Top() = maDragRect.Top();
aRect.Bottom() = maDragRect.Bottom();
2000-09-18 16:07:07 +00:00
aRect.Left() = rPos.X();
aRect.Right() = aRect.Left() + mpSplitSet->mnSplitSize - 1;
if (!(mnWinStyle & WB_NOSPLITDRAW))
2000-09-18 16:07:07 +00:00
aRect.Right()--;
if ((mnSplitTest & SPLIT_WINDOW) && (mbAutoHide || mbFadeOut))
2000-09-18 16:07:07 +00:00
{
aRect.Left() += SPLITWIN_SPLITSIZEEXLN;
aRect.Right() += SPLITWIN_SPLITSIZEEXLN;
2000-09-18 16:07:07 +00:00
}
}
else
{
aRect.Left() = maDragRect.Left();
aRect.Right() = maDragRect.Right();
aRect.Top() = rPos.Y();
aRect.Bottom() = aRect.Top() + mpSplitSet->mnSplitSize - 1;
if (!(mnWinStyle & WB_NOSPLITDRAW))
2000-09-18 16:07:07 +00:00
aRect.Bottom()--;
if ((mnSplitTest & SPLIT_WINDOW) && (mbAutoHide || mbFadeOut))
2000-09-18 16:07:07 +00:00
{
aRect.Top() += SPLITWIN_SPLITSIZEEXLN;
aRect.Bottom() += SPLITWIN_SPLITSIZEEXLN;
2000-09-18 16:07:07 +00:00
}
}
ShowTracking(aRect, SHOWTRACK_SPLIT);
2000-09-18 16:07:07 +00:00
}
void SplitWindow::ImplInit( vcl::Window* pParent, WinBits nStyle )
2000-09-18 16:07:07 +00:00
{
ImplSplitSet* pNewSet = new ImplSplitSet();
2000-09-18 16:07:07 +00:00
mpMainSet = pNewSet;
mpBaseSet = pNewSet;
mpSplitSet = NULL;
mpLastSizes = NULL;
mnDX = 0;
mnDY = 0;
mnLeftBorder = 0;
mnTopBorder = 0;
mnRightBorder = 0;
mnBottomBorder = 0;
mnMaxSize = 0;
mnMouseOff = 0;
meAlign = WindowAlign::Top;
2000-09-18 16:07:07 +00:00
mnWinStyle = nStyle;
mnSplitTest = 0;
mnSplitPos = 0;
mnMouseModifier = 0;
mnMStartPos = 0;
mnMSplitPos = 0;
mbDragFull = false;
mbHorz = true;
mbBottomRight = false;
mbCalc = false;
mbRecalc = true;
mbInvalidate = true;
mbAutoHide = false;
mbFadeIn = false;
mbFadeOut = false;
mbAutoHideIn = false;
mbAutoHideDown = false;
mbFadeInDown = false;
mbFadeOutDown = false;
mbAutoHidePressed = false;
mbFadeInPressed = false;
mbFadeOutPressed = false;
mbFadeNoButtonMode = false;
mbNoAlign = false;
2000-09-18 16:07:07 +00:00
if ( nStyle & WB_NOSPLITDRAW )
{
pNewSet->mnSplitSize -= 2;
mbInvalidate = false;
2000-09-18 16:07:07 +00:00
}
if ( nStyle & WB_BORDER )
{
ImplCalcBorder( meAlign, mbNoAlign, mnLeftBorder, mnTopBorder,
mnRightBorder, mnBottomBorder );
}
else
{
mnLeftBorder = 0;
mnTopBorder = 0;
mnRightBorder = 0;
mnBottomBorder = 0;
}
DockingWindow::ImplInit( pParent, (nStyle | WB_CLIPCHILDREN) & ~(WB_BORDER | WB_SIZEABLE) );
ImplInitSettings();
}
void SplitWindow::ImplInitSettings()
{
// If a bitmap was set for MainSet, we should not delete the background.
// If MainSet has a Wallpaper, this is the background,
// otherwise it is the standard colour
2000-09-18 16:07:07 +00:00
if ( mpMainSet->mpBitmap )
SetBackground();
else if ( mpMainSet->mpWallpaper )
SetBackground( *mpMainSet->mpWallpaper );
else
{
const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
Color aColor;
if ( IsControlBackground() )
aColor = GetControlBackground();
else if ( Window::GetStyle() & WB_3DLOOK )
aColor = rStyleSettings.GetFaceColor();
else
aColor = rStyleSettings.GetWindowColor();
SetBackground( aColor );
}
}
SplitWindow::SplitWindow( vcl::Window* pParent, WinBits nStyle ) :
2000-09-18 16:07:07 +00:00
DockingWindow( WINDOW_SPLITWINDOW )
{
ImplInit( pParent, nStyle );
}
SplitWindow::~SplitWindow()
{
disposeOnce();
}
void SplitWindow::dispose()
2000-09-18 16:07:07 +00:00
{
// delete Sets
if (mpMainSet) {
delete mpMainSet ;
mpMainSet = NULL; //NULL for base-class callbacks during destruction
}
DockingWindow::dispose();
2000-09-18 16:07:07 +00:00
}
void SplitWindow::ImplSetWindowSize( long nDelta )
{
if ( !nDelta )
return;
Size aSize = GetSizePixel();
switch ( meAlign )
2000-09-18 16:07:07 +00:00
{
case WindowAlign::Top:
2000-09-18 16:07:07 +00:00
aSize.Height() += nDelta;
SetSizePixel( aSize );
break;
case WindowAlign::Bottom:
2012-02-18 22:24:11 +04:00
{
maDragRect.Top() += nDelta;
2000-09-18 16:07:07 +00:00
Point aPos = GetPosPixel();
aPos.Y() -= nDelta;
aSize.Height() += nDelta;
SetPosSizePixel( aPos, aSize );
break;
2012-02-18 22:24:11 +04:00
}
case WindowAlign::Left:
2000-09-18 16:07:07 +00:00
aSize.Width() += nDelta;
SetSizePixel( aSize );
break;
case WindowAlign::Right:
default:
2012-02-18 20:08:38 +00:00
{
maDragRect.Left() += nDelta;
2000-09-18 16:07:07 +00:00
Point aPos = GetPosPixel();
aPos.X() -= nDelta;
aSize.Width() += nDelta;
SetPosSizePixel( aPos, aSize );
break;
2000-09-18 16:07:07 +00:00
}
2012-02-18 20:08:38 +00:00
}
2000-09-18 16:07:07 +00:00
SplitResize();
}
Size SplitWindow::CalcLayoutSizePixel( const Size& aNewSize )
{
Size aSize( aNewSize );
long nSplitSize = mpMainSet->mnSplitSize-2;
if ( mbAutoHide || mbFadeOut )
nSplitSize += SPLITWIN_SPLITSIZEEXLN;
// if the window is sizeable and if it does not contain a relative window,
// the size is determined according to MainSet
if ( mnWinStyle & WB_SIZEABLE )
{
long nCurSize;
long nCalcSize = 0;
sal_uInt16 i;
for ( i = 0; i < mpMainSet->mpItems.size(); i++ )
{
if ( mpMainSet->mpItems[i]->mnBits & (SplitWindowItemFlags::RelativeSize | SplitWindowItemFlags::PercentSize) )
break;
else
nCalcSize += mpMainSet->mpItems[i]->mnSize;
}
if ( i == mpMainSet->mpItems.size() )
{
long nDelta = 0;
Point aPos = GetPosPixel();
if ( mbHorz )
nCurSize = aNewSize.Height()-mnTopBorder-mnBottomBorder;
else
nCurSize = aNewSize.Width()-mnLeftBorder-mnRightBorder;
nCurSize -= nSplitSize;
nCurSize -= (mpMainSet->mpItems.size()-1)*mpMainSet->mnSplitSize;
nDelta = nCalcSize-nCurSize;
if ( !nDelta )
return aSize;
switch ( meAlign )
{
case WindowAlign::Top:
aSize.Height() += nDelta;
break;
case WindowAlign::Bottom:
aPos.Y() -= nDelta;
aSize.Height() += nDelta;
break;
case WindowAlign::Left:
aSize.Width() += nDelta;
break;
case WindowAlign::Right:
default:
aPos.X() -= nDelta;
aSize.Width() += nDelta;
break;
}
}
}
return aSize;
}
2000-09-18 16:07:07 +00:00
void SplitWindow::ImplCalcLayout()
{
if ( !mbCalc || !mbRecalc || mpMainSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
return;
long nSplitSize = mpMainSet->mnSplitSize-2;
if ( mbAutoHide || mbFadeOut )
nSplitSize += SPLITWIN_SPLITSIZEEXLN;
2000-09-18 16:07:07 +00:00
// if the window is sizeable and if it does not contain a relative window,
// the size is determined according to MainSet
2000-09-18 16:07:07 +00:00
if ( mnWinStyle & WB_SIZEABLE )
{
long nCurSize;
long nCalcSize = 0;
sal_uInt16 i;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < mpMainSet->mpItems.size(); i++ )
2000-09-18 16:07:07 +00:00
{
if ( mpMainSet->mpItems[i]->mnBits & (SplitWindowItemFlags::RelativeSize | SplitWindowItemFlags::PercentSize) )
2000-09-18 16:07:07 +00:00
break;
else
nCalcSize += mpMainSet->mpItems[i]->mnSize;
2000-09-18 16:07:07 +00:00
}
if ( i == mpMainSet->mpItems.size() )
2000-09-18 16:07:07 +00:00
{
if ( mbHorz )
nCurSize = mnDY-mnTopBorder-mnBottomBorder;
else
nCurSize = mnDX-mnLeftBorder-mnRightBorder;
nCurSize -= nSplitSize;
nCurSize -= (mpMainSet->mpItems.size()-1)*mpMainSet->mnSplitSize;
2000-09-18 16:07:07 +00:00
mbRecalc = false;
2000-09-18 16:07:07 +00:00
ImplSetWindowSize( nCalcSize-nCurSize );
mbRecalc = true;
2000-09-18 16:07:07 +00:00
}
}
if ( (mnDX <= 0) || (mnDY <= 0) )
return;
// pre-calculate sizes/position
2000-09-18 16:07:07 +00:00
long nL;
long nT;
long nW;
long nH;
if ( mbHorz )
{
if ( mbBottomRight )
nT = mnDY-mnBottomBorder;
else
nT = mnTopBorder;
nL = mnLeftBorder;
}
else
{
if ( mbBottomRight )
nL = mnDX-mnRightBorder;
else
nL = mnLeftBorder;
nT = mnTopBorder;
}
nW = mnDX-mnLeftBorder-mnRightBorder;
nH = mnDY-mnTopBorder-mnBottomBorder;
if ( mnWinStyle & WB_SIZEABLE )
{
if ( mbHorz )
nH -= nSplitSize;
else
nW -= nSplitSize;
}
// calculate sets recursive
2000-09-18 16:07:07 +00:00
ImplCalcSet( mpMainSet, nL, nT, nW, nH, mbHorz, !mbBottomRight );
ImplCalcSet2( this, mpMainSet, false, mbHorz, !mbBottomRight );
mbCalc = false;
2000-09-18 16:07:07 +00:00
}
void SplitWindow::ImplUpdate()
{
mbCalc = true;
2000-09-18 16:07:07 +00:00
if ( IsReallyShown() && IsUpdateMode() && mbRecalc )
{
if ( !mpMainSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
ImplCalcLayout();
else
Invalidate();
}
}
void SplitWindow::ImplSplitMousePos( Point& rMousePos )
{
if ( mnSplitTest & SPLIT_HORZ )
{
rMousePos.X() -= mnMouseOff;
if ( rMousePos.X() < maDragRect.Left() )
rMousePos.X() = maDragRect.Left();
else if ( rMousePos.X()+mpSplitSet->mnSplitSize+1 > maDragRect.Right() )
rMousePos.X() = maDragRect.Right()-mpSplitSet->mnSplitSize+1;
// store in screen coordinates due to FullDrag
2000-09-18 16:07:07 +00:00
mnMSplitPos = OutputToScreenPixel( rMousePos ).X();
}
else
{
rMousePos.Y() -= mnMouseOff;
if ( rMousePos.Y() < maDragRect.Top() )
rMousePos.Y() = maDragRect.Top();
else if ( rMousePos.Y()+mpSplitSet->mnSplitSize+1 > maDragRect.Bottom() )
rMousePos.Y() = maDragRect.Bottom()-mpSplitSet->mnSplitSize+1;
mnMSplitPos = OutputToScreenPixel( rMousePos ).Y();
}
}
void SplitWindow::ImplGetButtonRect( Rectangle& rRect, long nEx, bool bTest ) const
2000-09-18 16:07:07 +00:00
{
long nSplitSize = mpMainSet->mnSplitSize-1;
2000-09-18 16:07:07 +00:00
if ( mbAutoHide || mbFadeOut || mbFadeIn )
nSplitSize += SPLITWIN_SPLITSIZEEX;
long nButtonSize = 0;
if ( mbFadeIn )
nButtonSize += SPLITWIN_SPLITSIZEFADE+1;
if ( mbFadeOut )
nButtonSize += SPLITWIN_SPLITSIZEFADE+1;
if ( mbAutoHide )
nButtonSize += SPLITWIN_SPLITSIZEAUTOHIDE+1;
long nCenterEx = 0;
if ( mbHorz )
nCenterEx += ((mnDX-mnLeftBorder-mnRightBorder)-nButtonSize)/2;
else
nCenterEx += ((mnDY-mnTopBorder-mnBottomBorder)-nButtonSize)/2;
if ( nCenterEx > 0 )
nEx += nCenterEx;
switch ( meAlign )
2000-09-18 16:07:07 +00:00
{
case WindowAlign::Top:
2000-09-18 16:07:07 +00:00
rRect.Left() = mnLeftBorder+nEx;
rRect.Top() = mnDY-mnBottomBorder-nSplitSize;
rRect.Right() = rRect.Left()+SPLITWIN_SPLITSIZEAUTOHIDE;
rRect.Bottom() = mnDY-mnBottomBorder-1;
if ( bTest )
{
rRect.Top() -= mnTopBorder;
rRect.Bottom() += mnBottomBorder;
}
break;
case WindowAlign::Bottom:
2000-09-18 16:07:07 +00:00
rRect.Left() = mnLeftBorder+nEx;
rRect.Top() = mnTopBorder;
rRect.Right() = rRect.Left()+SPLITWIN_SPLITSIZEAUTOHIDE;
rRect.Bottom() = mnTopBorder+nSplitSize-1;
if ( bTest )
{
rRect.Top() -= mnTopBorder;
rRect.Bottom() += mnBottomBorder;
}
break;
case WindowAlign::Left:
2000-09-18 16:07:07 +00:00
rRect.Left() = mnDX-mnRightBorder-nSplitSize;
rRect.Top() = mnTopBorder+nEx;
rRect.Right() = mnDX-mnRightBorder-1;
rRect.Bottom() = rRect.Top()+SPLITWIN_SPLITSIZEAUTOHIDE;
if ( bTest )
{
rRect.Left() -= mnLeftBorder;
rRect.Right() += mnRightBorder;
}
break;
case WindowAlign::Right:
2000-09-18 16:07:07 +00:00
rRect.Left() = mnLeftBorder;
rRect.Top() = mnTopBorder+nEx;
rRect.Right() = mnLeftBorder+nSplitSize-1;
rRect.Bottom() = rRect.Top()+SPLITWIN_SPLITSIZEAUTOHIDE;
if ( bTest )
{
rRect.Left() -= mnLeftBorder;
rRect.Right() += mnRightBorder;
}
break;
2000-09-18 16:07:07 +00:00
}
}
void SplitWindow::ImplGetAutoHideRect( Rectangle& rRect, bool bTest ) const
2000-09-18 16:07:07 +00:00
{
Rectangle aRect;
if ( mbAutoHide )
{
long nEx = 0;
if ( mbFadeIn || mbFadeOut )
nEx = SPLITWIN_SPLITSIZEFADE+1;
ImplGetButtonRect( aRect, nEx, bTest && mbFadeIn );
}
rRect = aRect;
}
void SplitWindow::ImplGetFadeInRect( Rectangle& rRect, bool bTest ) const
2000-09-18 16:07:07 +00:00
{
Rectangle aRect;
if ( mbFadeIn )
ImplGetButtonRect( aRect, 0, bTest );
rRect = aRect;
}
void SplitWindow::ImplGetFadeOutRect( Rectangle& rRect, bool ) const
2000-09-18 16:07:07 +00:00
{
Rectangle aRect;
if ( mbFadeOut )
ImplGetButtonRect( aRect, 0, false );
2000-09-18 16:07:07 +00:00
rRect = aRect;
}
void SplitWindow::ImplDrawButtonRect(vcl::RenderContext& rRenderContext, const Rectangle& rRect, long nSize)
2000-09-18 16:07:07 +00:00
{
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
2000-09-18 16:07:07 +00:00
if ( mbHorz )
{
long nLeft = rRect.Left();
long nRight = rRect.Right();
long nCenter = rRect.Center().Y();
long nEx1 = nLeft+((rRect.GetWidth()-nSize)/2)-2;
long nEx2 = nEx1+nSize+3;
rRenderContext.SetLineColor( rStyleSettings.GetLightColor() );
rRenderContext.DrawLine( Point( rRect.Left(), rRect.Top() ), Point( rRect.Left(), rRect.Bottom() ) );
rRenderContext.DrawLine( Point( rRect.Left(), rRect.Top() ), Point( rRect.Right(), rRect.Top() ) );
rRenderContext.SetLineColor( rStyleSettings.GetShadowColor() );
rRenderContext.DrawLine( Point( rRect.Right(), rRect.Top() ), Point( rRect.Right(), rRect.Bottom() ) );
rRenderContext.DrawLine( Point( rRect.Left(), rRect.Bottom() ), Point( rRect.Right(), rRect.Bottom() ) );
2000-09-18 16:07:07 +00:00
long i = nLeft+2;
while ( i < nRight-3 )
{
if ( (i < nEx1) || (i > nEx2 ) )
{
rRenderContext.DrawPixel( Point( i, nCenter-2 ), rStyleSettings.GetLightColor() );
rRenderContext.DrawPixel( Point( i+1, nCenter-2+1 ), rStyleSettings.GetShadowColor() );
2000-09-18 16:07:07 +00:00
}
i++;
CWS-TOOLING: integrate CWS vcl100 2009-03-26 21:27:56 +0100 pl r270106 : #i10000# fix an include path missing when using configure 2009-03-16 12:18:24 +0100 pl r269518 : #i98963# revert change 2009-03-13 14:56:47 +0100 pl r269483 : #i98980# work around a mysterious crash 2009-03-12 20:02:48 +0100 pl r269440 : resolve some warnings 2009-03-12 19:30:32 +0100 pl r269439 : resolve some warnings 2009-03-12 18:07:47 +0100 pl r269432 : solve some warnings 2009-03-12 09:07:33 +0100 hdu r269358 : #i100134# remove obsolete RCS/CVS keywords from source 2009-03-11 21:18:28 +0100 pl r269355 : #i100134# change sft.h and ttcr.h to c++ headers 2009-03-11 20:19:15 +0100 pl r269353 : #i100134# remove some ugly C style lists 2009-03-11 18:19:35 +0100 hdu r269347 : #i100134# make psprint.fontsubset source C++ and make it compile 2009-03-11 14:44:35 +0100 hdu r269334 : #i99862# fix justification of vocalized hebrew (thanks hennerdrewes) 2009-03-11 13:40:35 +0100 pl r269327 : CWS-TOOLING: rebase CWS vcl100 to trunk@269297 (milestone: DEV300:m43) 2009-03-10 16:49:34 +0100 hdu r269284 : #i1000020# add style-matching heuristics for single-char stylenames 2009-03-10 15:42:53 +0100 hdu r269278 : use fast ASCII-matching for extracting attributes from PSName 2009-03-09 16:29:08 +0100 pl r269200 : #i98980# skip bundles that are not NP plugins 2009-03-09 13:26:14 +0100 hdu r269083 : #i99868# fix text breaking for large nCharExtra 2009-03-09 12:20:01 +0100 hdu r269078 : #i99868# fix text breaking for large nCharExtra 2009-03-06 17:35:27 +0100 pl r269032 : #i98980# mouse events 2009-03-06 17:10:14 +0100 pl r269024 : #i98980# flash animations, initial paint problem 2009-03-05 20:00:21 +0100 pl r268939 : #i98980# more plugin support 2009-03-05 15:35:06 +0100 pl r268914 : #i98980# first twitches of a live plugin 2009-03-05 15:34:10 +0100 pl r268913 : #i98980# access to carbon headers 2009-03-04 15:46:29 +0100 pl r268839 : #i98980# generalize vcl SystemChildWindow from QTMovieView to NSView 2009-03-04 15:40:20 +0100 pl r268838 : #i98980# generalize vcl SystemChildWindow from QTMovieView to NSView 2009-03-04 11:30:49 +0100 hdu r268801 : #i99722# for OSX any anisotropy reported for the display resolution is best ignored 2009-03-02 15:52:21 +0100 pl r268655 : #i99770# fix ambiguous looking if statements (thanks cmc) 2009-03-02 13:28:17 +0100 pl r268649 : #i99770# fix ambiguous looking if statements (thanks cmc) 2009-02-27 15:39:30 +0100 pl r268603 : #i97512# omit degenrate current matrix 2009-02-27 12:37:29 +0100 pl r268579 : #i99716# remove unused code (thanks cmc) 2009-02-27 11:21:18 +0100 pl r268569 : #i99705 remove unused code (thanks cmc) 2009-02-23 10:42:00 +0100 pl r268345 : #i99492# remove a typo (thanks tono) 2009-02-19 12:46:21 +0100 pl r268274 : #i99411# add new mimetype 2009-02-10 12:57:59 +0100 pl r267548 : #i98980# more aqua plugin changes 2009-02-06 16:50:34 +0100 pl r267475 : #i98980# plugin detection 2009-02-06 16:46:48 +0100 pl r267474 : #i98980# make debug compilation work 2009-02-06 12:16:37 +0100 pl r267449 : #98963# add missing wrapper 2009-02-04 20:06:59 +0100 pl r267402 : #i97135# work around a gcc x64 optimizer bug 2009-02-04 13:45:36 +0100 pl r267380 : #159153# do not emit empty glyph vector 2009-02-03 17:47:16 +0100 pl r267338 : #i98533# recent gtk versions do not support GTK_MODULES for accessibility anymore 2009-02-03 10:39:46 +0100 pl r267305 : #i97146# check if the idle formatted view is still valid 2009-01-28 11:23:23 +0100 pl r267045 : #i42227# #i48965# refinement of check markings images 2009-01-27 19:40:01 +0100 pl r267016 : #i42227# #i48965# change menus wrt checkmarks and images
2009-04-01 11:54:14 +00:00
if ( (i < nEx1) || ((i > nEx2 ) && (i < nRight-3)) )
2000-09-18 16:07:07 +00:00
{
rRenderContext.DrawPixel( Point( i, nCenter+2 ), rStyleSettings.GetLightColor() );
rRenderContext.DrawPixel( Point( i+1, nCenter+2+1 ), rStyleSettings.GetShadowColor() );
2000-09-18 16:07:07 +00:00
}
i += 2;
}
}
else
{
long nTop = rRect.Top();
long nBottom = rRect.Bottom();
long nCenter = rRect.Center().X();
long nEx1 = nTop+((rRect.GetHeight()-nSize)/2)-2;
long nEx2 = nEx1+nSize+3;
rRenderContext.SetLineColor( rStyleSettings.GetLightColor() );
rRenderContext.DrawLine( Point( rRect.Left(), rRect.Top() ), Point( rRect.Right(), rRect.Top() ) );
rRenderContext.DrawLine( Point( rRect.Left(), rRect.Top() ), Point( rRect.Left(), rRect.Bottom() ) );
rRenderContext.SetLineColor( rStyleSettings.GetShadowColor() );
rRenderContext.DrawLine( Point( rRect.Right(), rRect.Top() ), Point( rRect.Right(), rRect.Bottom() ) );
rRenderContext.DrawLine( Point( rRect.Left(), rRect.Bottom() ), Point( rRect.Right(), rRect.Bottom() ) );
2000-09-18 16:07:07 +00:00
long i = nTop+2;
while ( i < nBottom-3 )
{
if ( (i < nEx1) || (i > nEx2 ) )
{
rRenderContext.DrawPixel( Point( nCenter-2, i ), rStyleSettings.GetLightColor() );
rRenderContext.DrawPixel( Point( nCenter-2+1, i+1 ), rStyleSettings.GetShadowColor() );
2000-09-18 16:07:07 +00:00
}
i++;
CWS-TOOLING: integrate CWS vcl100 2009-03-26 21:27:56 +0100 pl r270106 : #i10000# fix an include path missing when using configure 2009-03-16 12:18:24 +0100 pl r269518 : #i98963# revert change 2009-03-13 14:56:47 +0100 pl r269483 : #i98980# work around a mysterious crash 2009-03-12 20:02:48 +0100 pl r269440 : resolve some warnings 2009-03-12 19:30:32 +0100 pl r269439 : resolve some warnings 2009-03-12 18:07:47 +0100 pl r269432 : solve some warnings 2009-03-12 09:07:33 +0100 hdu r269358 : #i100134# remove obsolete RCS/CVS keywords from source 2009-03-11 21:18:28 +0100 pl r269355 : #i100134# change sft.h and ttcr.h to c++ headers 2009-03-11 20:19:15 +0100 pl r269353 : #i100134# remove some ugly C style lists 2009-03-11 18:19:35 +0100 hdu r269347 : #i100134# make psprint.fontsubset source C++ and make it compile 2009-03-11 14:44:35 +0100 hdu r269334 : #i99862# fix justification of vocalized hebrew (thanks hennerdrewes) 2009-03-11 13:40:35 +0100 pl r269327 : CWS-TOOLING: rebase CWS vcl100 to trunk@269297 (milestone: DEV300:m43) 2009-03-10 16:49:34 +0100 hdu r269284 : #i1000020# add style-matching heuristics for single-char stylenames 2009-03-10 15:42:53 +0100 hdu r269278 : use fast ASCII-matching for extracting attributes from PSName 2009-03-09 16:29:08 +0100 pl r269200 : #i98980# skip bundles that are not NP plugins 2009-03-09 13:26:14 +0100 hdu r269083 : #i99868# fix text breaking for large nCharExtra 2009-03-09 12:20:01 +0100 hdu r269078 : #i99868# fix text breaking for large nCharExtra 2009-03-06 17:35:27 +0100 pl r269032 : #i98980# mouse events 2009-03-06 17:10:14 +0100 pl r269024 : #i98980# flash animations, initial paint problem 2009-03-05 20:00:21 +0100 pl r268939 : #i98980# more plugin support 2009-03-05 15:35:06 +0100 pl r268914 : #i98980# first twitches of a live plugin 2009-03-05 15:34:10 +0100 pl r268913 : #i98980# access to carbon headers 2009-03-04 15:46:29 +0100 pl r268839 : #i98980# generalize vcl SystemChildWindow from QTMovieView to NSView 2009-03-04 15:40:20 +0100 pl r268838 : #i98980# generalize vcl SystemChildWindow from QTMovieView to NSView 2009-03-04 11:30:49 +0100 hdu r268801 : #i99722# for OSX any anisotropy reported for the display resolution is best ignored 2009-03-02 15:52:21 +0100 pl r268655 : #i99770# fix ambiguous looking if statements (thanks cmc) 2009-03-02 13:28:17 +0100 pl r268649 : #i99770# fix ambiguous looking if statements (thanks cmc) 2009-02-27 15:39:30 +0100 pl r268603 : #i97512# omit degenrate current matrix 2009-02-27 12:37:29 +0100 pl r268579 : #i99716# remove unused code (thanks cmc) 2009-02-27 11:21:18 +0100 pl r268569 : #i99705 remove unused code (thanks cmc) 2009-02-23 10:42:00 +0100 pl r268345 : #i99492# remove a typo (thanks tono) 2009-02-19 12:46:21 +0100 pl r268274 : #i99411# add new mimetype 2009-02-10 12:57:59 +0100 pl r267548 : #i98980# more aqua plugin changes 2009-02-06 16:50:34 +0100 pl r267475 : #i98980# plugin detection 2009-02-06 16:46:48 +0100 pl r267474 : #i98980# make debug compilation work 2009-02-06 12:16:37 +0100 pl r267449 : #98963# add missing wrapper 2009-02-04 20:06:59 +0100 pl r267402 : #i97135# work around a gcc x64 optimizer bug 2009-02-04 13:45:36 +0100 pl r267380 : #159153# do not emit empty glyph vector 2009-02-03 17:47:16 +0100 pl r267338 : #i98533# recent gtk versions do not support GTK_MODULES for accessibility anymore 2009-02-03 10:39:46 +0100 pl r267305 : #i97146# check if the idle formatted view is still valid 2009-01-28 11:23:23 +0100 pl r267045 : #i42227# #i48965# refinement of check markings images 2009-01-27 19:40:01 +0100 pl r267016 : #i42227# #i48965# change menus wrt checkmarks and images
2009-04-01 11:54:14 +00:00
if ( (i < nEx1) || ((i > nEx2 ) && (i < nBottom-3)) )
2000-09-18 16:07:07 +00:00
{
rRenderContext.DrawPixel( Point( nCenter+2, i ), rStyleSettings.GetLightColor() );
rRenderContext.DrawPixel( Point( nCenter+2+1, i+1 ), rStyleSettings.GetShadowColor() );
2000-09-18 16:07:07 +00:00
}
i += 2;
}
}
}
void SplitWindow::ImplDrawAutoHide(vcl::RenderContext& rRenderContext, bool bInPaint)
2000-09-18 16:07:07 +00:00
{
if (mbAutoHide)
2000-09-18 16:07:07 +00:00
{
Rectangle aTempRect;
ImplGetAutoHideRect( aTempRect );
if (!bInPaint)
rRenderContext.Erase( aTempRect );
2000-09-18 16:07:07 +00:00
// load ImageListe, if not available
2000-09-18 16:07:07 +00:00
ImplSVData* pSVData = ImplGetSVData();
ImageList* pImageList;
if (mbHorz)
2000-09-18 16:07:07 +00:00
{
if (!pSVData->maCtrlData.mpSplitHPinImgList)
2000-09-18 16:07:07 +00:00
{
ResMgr* pResMgr = ImplGetResMgr();
if (pResMgr)
{
Color aNonAlphaMask( 0x00, 0x00, 0xFF );
pSVData->maCtrlData.mpSplitHPinImgList = new ImageList(4);
pSVData->maCtrlData.mpSplitHPinImgList->InsertFromHorizontalBitmap
( ResId( SV_RESID_BITMAP_SPLITHPIN, *pResMgr ), 4, &aNonAlphaMask );
}
}
2000-09-18 16:07:07 +00:00
pImageList = pSVData->maCtrlData.mpSplitHPinImgList;
}
else
{
if (!pSVData->maCtrlData.mpSplitVPinImgList)
2000-09-18 16:07:07 +00:00
{
ResMgr* pResMgr = ImplGetResMgr();
pSVData->maCtrlData.mpSplitVPinImgList = new ImageList(4);
if (pResMgr)
{
Color aNonAlphaMask( 0x00, 0x00, 0xFF );
pSVData->maCtrlData.mpSplitVPinImgList->InsertFromHorizontalBitmap(
ResId( SV_RESID_BITMAP_SPLITVPIN, *pResMgr ), 4, &aNonAlphaMask);
}
2000-09-18 16:07:07 +00:00
}
pImageList = pSVData->maCtrlData.mpSplitVPinImgList;
}
if (!pImageList)
return;
2000-09-18 16:07:07 +00:00
// retrieve and return image
sal_uInt16 nId;
if (mbAutoHidePressed)
2000-09-18 16:07:07 +00:00
{
if (mbAutoHideIn)
2000-09-18 16:07:07 +00:00
nId = 3;
else
nId = 4;
}
else
{
if (mbAutoHideIn)
2000-09-18 16:07:07 +00:00
nId = 1;
else
nId = 2;
}
Image aImage = pImageList->GetImage( nId );
Size aImageSize = aImage.GetSizePixel();
Point aPos(aTempRect.Left() + ((aTempRect.GetWidth() - aImageSize.Width()) / 2),
aTempRect.Top() + ((aTempRect.GetHeight() - aImageSize.Height()) / 2));
long nSize;
if (mbHorz)
2000-09-18 16:07:07 +00:00
nSize = aImageSize.Width();
else
nSize = aImageSize.Height();
ImplDrawButtonRect(rRenderContext, aTempRect, nSize);
rRenderContext.DrawImage(aPos, aImage);
2000-09-18 16:07:07 +00:00
}
}
void SplitWindow::ImplDrawGrip(vcl::RenderContext& rRenderContext, const Rectangle& rRect, bool bHorizontal, bool bLeft)
2000-09-18 16:07:07 +00:00
{
const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
Color aColor;
if (rRect.IsInside(GetPointerPosPixel()))
2000-09-18 16:07:07 +00:00
{
vcl::RenderTools::DrawSelectionBackground(rRenderContext, *this, rRect, 2, false, false, false);
aColor = rStyleSettings.GetDarkShadowColor();
2000-09-18 16:07:07 +00:00
}
else
{
rRenderContext.SetLineColor(rStyleSettings.GetDarkShadowColor());
rRenderContext.SetFillColor(rStyleSettings.GetDarkShadowColor());
rRenderContext.DrawRect(rRect);
2000-09-18 16:07:07 +00:00
aColor = rStyleSettings.GetFaceColor();
}
2000-09-18 16:07:07 +00:00
AntialiasingFlags nAA = rRenderContext.GetAntialiasing();
rRenderContext.SetAntialiasing(nAA | AntialiasingFlags::PixelSnapHairline | AntialiasingFlags::EnableB2dDraw);
long nWidth = rRect.getWidth();
long nWidthHalf = nWidth / 2;
long nHeight = rRect.getHeight();
long nHeightHalf = nHeight / 2;
long nLeft = rRect.Left();
long nRight = rRect.Right();
long nTop = rRect.Top();
long nBottom = rRect.Bottom();
long nMargin = 1;
rRenderContext.SetLineColor(aColor);
rRenderContext.SetFillColor(aColor);
tools::Polygon aPoly(3);
if (bHorizontal)
{
long nCenter = nLeft + nWidthHalf;
if (bLeft)
{
aPoly.SetPoint(Point(nCenter, nTop + nMargin), 0);
aPoly.SetPoint(Point(nCenter - nHeightHalf, nBottom - nMargin), 1);
aPoly.SetPoint(Point(nCenter - nHeightHalf, nBottom - nMargin), 2);
}
else
{
aPoly.SetPoint(Point(nCenter, nBottom - nMargin), 0);
aPoly.SetPoint(Point(nCenter - nHeightHalf, nTop + nMargin), 1);
aPoly.SetPoint(Point(nCenter + nHeightHalf, nTop + nMargin), 2);
}
rRenderContext.DrawPolygon(aPoly);
}
else
{
long nCenter = nTop + nHeightHalf;
if (bLeft)
{
aPoly.SetPoint(Point(nLeft + nMargin, nCenter), 0);
aPoly.SetPoint(Point(nRight - nMargin, nCenter - nWidthHalf), 1);
aPoly.SetPoint(Point(nRight - nMargin, nCenter + nWidthHalf), 2);
}
else
{
aPoly.SetPoint(Point(nRight - nMargin, nCenter), 0);
aPoly.SetPoint(Point(nLeft + nMargin, nCenter - nWidthHalf), 1);
aPoly.SetPoint(Point(nLeft + nMargin, nCenter + nWidthHalf), 2);
}
rRenderContext.DrawPolygon(aPoly);
}
rRenderContext.SetAntialiasing(nAA);
}
2000-09-18 16:07:07 +00:00
void SplitWindow::ImplDrawFadeIn(vcl::RenderContext& rRenderContext, bool bInPaint)
2000-09-18 16:07:07 +00:00
{
if (mbFadeIn)
2000-09-18 16:07:07 +00:00
{
Rectangle aTempRect;
ImplGetFadeInRect(aTempRect);
2000-09-18 16:07:07 +00:00
bool bLeft = true;
switch (meAlign)
{
case WindowAlign::Top:
case WindowAlign::Left:
bLeft = false;
break;
case WindowAlign::Bottom:
case WindowAlign::Right:
default:
bLeft = true;
break;
}
if (!bInPaint)
rRenderContext.Erase(aTempRect);
2000-09-18 16:07:07 +00:00
ImplDrawGrip(rRenderContext, aTempRect, (meAlign == WindowAlign::Top) || (meAlign == WindowAlign::Bottom), bLeft);
2000-09-18 16:07:07 +00:00
}
}
void SplitWindow::ImplDrawFadeOut(vcl::RenderContext& rRenderContext, bool bInPaint)
2000-09-18 16:07:07 +00:00
{
if (mbFadeOut)
2000-09-18 16:07:07 +00:00
{
Rectangle aTempRect;
ImplGetFadeOutRect(aTempRect);
2000-09-18 16:07:07 +00:00
bool bLeft = true;
switch (meAlign)
{
case WindowAlign::Bottom:
case WindowAlign::Right:
bLeft = false;
break;
case WindowAlign::Top:
case WindowAlign::Left:
default:
bLeft = true;
break;
}
if (!bInPaint)
rRenderContext.Erase(aTempRect);
2000-09-18 16:07:07 +00:00
ImplDrawGrip(rRenderContext, aTempRect, (meAlign == WindowAlign::Top) || (meAlign == WindowAlign::Bottom), bLeft);
2000-09-18 16:07:07 +00:00
}
}
void SplitWindow::ImplStartSplit( const MouseEvent& rMEvt )
{
Point aMousePosPixel = rMEvt.GetPosPixel();
mnSplitTest = ImplTestSplit( this, aMousePosPixel, mnMouseOff, &mpSplitSet, mnSplitPos );
if ( mnSplitTest && !(mnSplitTest & SPLIT_NOSPLIT) )
{
ImplSplitItem* pSplitItem;
long nCurMaxSize;
sal_uInt16 nTemp;
bool bPropSmaller;
mnMouseModifier = rMEvt.GetModifier();
if ( !(mnMouseModifier & KEY_SHIFT) || (static_cast<sal_uInt16>(mnSplitPos+1) >= mpSplitSet->mpItems.size()) )
bPropSmaller = false;
else
bPropSmaller = true;
// here we can set the maximum size
StartSplit();
if ( mnMaxSize )
nCurMaxSize = mnMaxSize;
else
{
Size aSize = GetParent()->GetOutputSizePixel();
if ( mbHorz )
nCurMaxSize = aSize.Height();
else
nCurMaxSize = aSize.Width();
}
if ( !mpSplitSet->mpItems.empty() )
{
bool bDown = true;
if ( (mpSplitSet == mpMainSet) && mbBottomRight )
bDown = false;
pSplitItem = mpSplitSet->mpItems[mnSplitPos];
maDragRect.Left() = pSplitItem->mnLeft;
maDragRect.Top() = pSplitItem->mnTop;
maDragRect.Right() = pSplitItem->mnLeft+pSplitItem->mnWidth-1;
maDragRect.Bottom() = pSplitItem->mnTop+pSplitItem->mnHeight-1;
if ( mnSplitTest & SPLIT_HORZ )
{
if ( bDown )
maDragRect.Right() += mpSplitSet->mnSplitSize;
else
maDragRect.Left() -= mpSplitSet->mnSplitSize;
}
else
{
if ( bDown )
maDragRect.Bottom() += mpSplitSet->mnSplitSize;
else
maDragRect.Top() -= mpSplitSet->mnSplitSize;
}
if ( mnSplitPos )
{
nTemp = mnSplitPos;
while ( nTemp )
{
pSplitItem = mpSplitSet->mpItems[nTemp-1];
if ( pSplitItem->mbFixed )
break;
else
{
if ( mnSplitTest & SPLIT_HORZ )
{
if ( bDown )
maDragRect.Left() -= pSplitItem->mnPixSize;
else
maDragRect.Right() += pSplitItem->mnPixSize;
}
else
{
if ( bDown )
maDragRect.Top() -= pSplitItem->mnPixSize;
else
maDragRect.Bottom() += pSplitItem->mnPixSize;
}
}
nTemp--;
}
}
if ( (mpSplitSet == mpMainSet) && (mnWinStyle & WB_SIZEABLE) && !bPropSmaller )
{
if ( bDown )
{
if ( mbHorz )
maDragRect.Bottom() += nCurMaxSize-mnDY-mnTopBorder;
else
maDragRect.Right() += nCurMaxSize-mnDX-mnLeftBorder;
}
else
{
if ( mbHorz )
maDragRect.Top() -= nCurMaxSize-mnDY-mnBottomBorder;
else
maDragRect.Left() -= nCurMaxSize-mnDX-mnRightBorder;
}
}
else
{
nTemp = mnSplitPos+1;
while ( nTemp < mpSplitSet->mpItems.size() )
{
pSplitItem = mpSplitSet->mpItems[nTemp];
if ( pSplitItem->mbFixed )
break;
else
{
if ( mnSplitTest & SPLIT_HORZ )
{
if ( bDown )
maDragRect.Right() += pSplitItem->mnPixSize;
else
maDragRect.Left() -= pSplitItem->mnPixSize;
}
else
{
if ( bDown )
maDragRect.Bottom() += pSplitItem->mnPixSize;
else
maDragRect.Top() -= pSplitItem->mnPixSize;
}
}
nTemp++;
}
}
}
else
{
maDragRect.Left() = mnLeftBorder;
maDragRect.Top() = mnTopBorder;
maDragRect.Right() = mnDX-mnRightBorder-1;
maDragRect.Bottom() = mnDY-mnBottomBorder-1;
if ( mbHorz )
{
if ( mbBottomRight )
maDragRect.Top() -= nCurMaxSize-mnDY-mnBottomBorder;
else
maDragRect.Bottom() += nCurMaxSize-mnDY-mnTopBorder;
}
else
{
if ( mbBottomRight )
maDragRect.Left() -= nCurMaxSize-mnDX-mnRightBorder;
else
maDragRect.Right() += nCurMaxSize-mnDX-mnLeftBorder;
}
}
StartTracking();
mbDragFull = bool(GetSettings().GetStyleSettings().GetDragFullOptions() & DragFullOptions::Split);
ImplSplitMousePos( aMousePosPixel );
if (!mbDragFull)
{
ImplDrawSplitTracking(aMousePosPixel);
}
else
{
ImplSplitItems& pItems = mpSplitSet->mpItems;
sal_uInt16 nItems = mpSplitSet->mpItems.size();
mpLastSizes = new long[nItems*2];
for ( sal_uInt16 i = 0; i < nItems; i++ )
{
mpLastSizes[i*2] = pItems[i]->mnSize;
mpLastSizes[i*2+1] = pItems[i]->mnPixSize;
}
}
mnMStartPos = mnMSplitPos;
PointerStyle eStyle = PointerStyle::Arrow;
if ( mnSplitTest & SPLIT_HORZ )
eStyle = PointerStyle::HSplit;
else if ( mnSplitTest & SPLIT_VERT )
eStyle = PointerStyle::VSplit;
Pointer aPtr( eStyle );
SetPointer( aPtr );
}
}
2000-09-18 16:07:07 +00:00
void SplitWindow::StartSplit()
{
}
void SplitWindow::Split()
{
maSplitHdl.Call( this );
}
void SplitWindow::SplitResize()
{
}
void SplitWindow::AutoHide()
{
}
void SplitWindow::FadeIn()
{
}
void SplitWindow::FadeOut()
{
}
void SplitWindow::MouseButtonDown( const MouseEvent& rMEvt )
{
if ( !rMEvt.IsLeft() || rMEvt.IsMod2() )
{
DockingWindow::MouseButtonDown( rMEvt );
return;
}
Point aMousePosPixel = rMEvt.GetPosPixel();
Rectangle aTestRect;
mbFadeNoButtonMode = false;
ImplGetAutoHideRect( aTestRect, true );
2000-09-18 16:07:07 +00:00
if ( aTestRect.IsInside( aMousePosPixel ) )
{
mbAutoHideDown = true;
mbAutoHidePressed = true;
Invalidate();
2000-09-18 16:07:07 +00:00
}
else
{
ImplGetFadeOutRect( aTestRect, true );
2000-09-18 16:07:07 +00:00
if ( aTestRect.IsInside( aMousePosPixel ) )
{
mbFadeOutDown = true;
mbFadeOutPressed = true;
Invalidate();
2000-09-18 16:07:07 +00:00
}
else
{
ImplGetFadeInRect( aTestRect, true );
2000-09-18 16:07:07 +00:00
if ( aTestRect.IsInside( aMousePosPixel ) )
{
mbFadeInDown = true;
mbFadeInPressed = true;
Invalidate();
2000-09-18 16:07:07 +00:00
}
else if ( !aTestRect.IsEmpty() && !(mnWinStyle & WB_SIZEABLE) )
{
mbFadeNoButtonMode = true;
2000-09-18 16:07:07 +00:00
FadeIn();
return;
}
}
}
if ( mbAutoHideDown || mbFadeInDown || mbFadeOutDown )
StartTracking();
else
ImplStartSplit( rMEvt );
2000-09-18 16:07:07 +00:00
}
void SplitWindow::MouseMove( const MouseEvent& rMEvt )
{
if ( !IsTracking() )
{
Point aPos = rMEvt.GetPosPixel();
long nTemp;
ImplSplitSet* pTempSplitSet;
sal_uInt16 nTempSplitPos;
sal_uInt16 nSplitTest = ImplTestSplit( this, aPos, nTemp, &pTempSplitSet, nTempSplitPos );
PointerStyle eStyle = PointerStyle::Arrow;
2000-09-18 16:07:07 +00:00
Rectangle aAutoHideRect;
Rectangle aFadeInRect;
Rectangle aFadeOutRect;
ImplGetAutoHideRect( aAutoHideRect );
ImplGetFadeInRect( aFadeInRect );
ImplGetFadeOutRect( aFadeOutRect );
if ( !aAutoHideRect.IsInside( aPos ) &&
!aFadeInRect.IsInside( aPos ) &&
!aFadeOutRect.IsInside( aPos ) )
{
if ( nSplitTest && !(nSplitTest & SPLIT_NOSPLIT) )
{
if ( nSplitTest & SPLIT_HORZ )
eStyle = PointerStyle::HSplit;
2000-09-18 16:07:07 +00:00
else if ( nSplitTest & SPLIT_VERT )
eStyle = PointerStyle::VSplit;
2000-09-18 16:07:07 +00:00
}
}
Pointer aPtr( eStyle );
SetPointer( aPtr );
}
}
void SplitWindow::Tracking( const TrackingEvent& rTEvt )
{
Point aMousePosPixel = rTEvt.GetMouseEvent().GetPosPixel();
if ( mbAutoHideDown )
{
if ( rTEvt.IsTrackingEnded() )
{
mbAutoHideDown = false;
2000-09-18 16:07:07 +00:00
if ( mbAutoHidePressed )
{
mbAutoHidePressed = false;
2000-09-18 16:07:07 +00:00
if ( !rTEvt.IsTrackingCanceled() )
{
mbAutoHideIn = !mbAutoHideIn;
Invalidate();
2000-09-18 16:07:07 +00:00
AutoHide();
}
else
Invalidate();
2000-09-18 16:07:07 +00:00
}
}
else
{
Rectangle aTestRect;
ImplGetAutoHideRect( aTestRect, true );
bool bNewPressed = aTestRect.IsInside( aMousePosPixel );
2000-09-18 16:07:07 +00:00
if ( bNewPressed != mbAutoHidePressed )
{
mbAutoHidePressed = bNewPressed;
Invalidate();
2000-09-18 16:07:07 +00:00
}
}
}
else if ( mbFadeInDown )
{
if ( rTEvt.IsTrackingEnded() )
{
mbFadeInDown = false;
2000-09-18 16:07:07 +00:00
if ( mbFadeInPressed )
{
mbFadeInPressed = false;
Invalidate();
2000-09-18 16:07:07 +00:00
if ( !rTEvt.IsTrackingCanceled() )
FadeIn();
}
}
else
{
Rectangle aTestRect;
ImplGetFadeInRect( aTestRect, true );
bool bNewPressed = aTestRect.IsInside( aMousePosPixel );
2000-09-18 16:07:07 +00:00
if ( bNewPressed != mbFadeInPressed )
{
mbFadeInPressed = bNewPressed;
Invalidate();
2000-09-18 16:07:07 +00:00
}
}
}
else if ( mbFadeOutDown )
{
if ( rTEvt.IsTrackingEnded() )
{
mbFadeOutDown = false;
2000-09-18 16:07:07 +00:00
if ( mbFadeOutPressed )
{
mbFadeOutPressed = false;
Invalidate();
2000-09-18 16:07:07 +00:00
if ( !rTEvt.IsTrackingCanceled() )
FadeOut();
}
}
else
{
Rectangle aTestRect;
ImplGetFadeOutRect( aTestRect, true );
bool bNewPressed = aTestRect.IsInside( aMousePosPixel );
if ( !bNewPressed )
2000-09-18 16:07:07 +00:00
{
mbFadeOutPressed = bNewPressed;
Invalidate();
// We need a mouseevent with a position inside the button for the
// ImplStartSplit function!
MouseEvent aOrgMEvt = rTEvt.GetMouseEvent();
MouseEvent aNewMEvt = MouseEvent( aTestRect.Center(), aOrgMEvt.GetClicks(),
aOrgMEvt.GetMode(), aOrgMEvt.GetButtons(),
aOrgMEvt.GetModifier() );
ImplStartSplit( aNewMEvt );
mbFadeOutDown = false;
2000-09-18 16:07:07 +00:00
}
}
}
else
{
ImplSplitMousePos( aMousePosPixel );
bool bSplit = true;
2000-09-18 16:07:07 +00:00
if ( mbDragFull )
{
if ( rTEvt.IsTrackingEnded() )
{
if ( rTEvt.IsTrackingCanceled() )
{
ImplSplitItems& pItems = mpSplitSet->mpItems;
size_t nItems = pItems.size();
for ( size_t i = 0; i < nItems; i++ )
2000-09-18 16:07:07 +00:00
{
pItems[i]->mnSize = mpLastSizes[i*2];
pItems[i]->mnPixSize = mpLastSizes[i*2+1];
2000-09-18 16:07:07 +00:00
}
ImplUpdate();
Split();
}
bSplit = false;
2000-09-18 16:07:07 +00:00
}
}
else
{
if ( rTEvt.IsTrackingEnded() )
{
HideTracking();
bSplit = !rTEvt.IsTrackingCanceled();
}
else
{
ImplDrawSplitTracking(aMousePosPixel);
bSplit = false;
2000-09-18 16:07:07 +00:00
}
}
if ( bSplit )
{
bool bPropSmaller = (mnMouseModifier & KEY_SHIFT) != 0;
bool bPropGreater = (mnMouseModifier & KEY_MOD1) != 0;
long nDelta = mnMSplitPos-mnMStartPos;
2000-09-18 16:07:07 +00:00
if ( (mnSplitTest & SPLIT_WINDOW) && mpMainSet->mpItems.empty() )
2000-09-18 16:07:07 +00:00
{
if ( (mpSplitSet == mpMainSet) && mbBottomRight )
nDelta *= -1;
ImplSetWindowSize( nDelta );
}
else
{
long nNewSize = mpSplitSet->mpItems[mnSplitPos]->mnPixSize;
2000-09-18 16:07:07 +00:00
if ( (mpSplitSet == mpMainSet) && mbBottomRight )
nNewSize -= nDelta;
2000-09-18 16:07:07 +00:00
else
nNewSize += nDelta;
SplitItem( mpSplitSet->mpItems[mnSplitPos]->mnId, nNewSize,
2000-09-18 16:07:07 +00:00
bPropSmaller, bPropGreater );
}
Split();
if ( mbDragFull )
{
Update();
mnMStartPos = mnMSplitPos;
}
}
if ( rTEvt.IsTrackingEnded() )
{
delete [] mpLastSizes;
2000-09-18 16:07:07 +00:00
mpLastSizes = NULL;
mpSplitSet = NULL;
mnMouseOff = 0;
mnMStartPos = 0;
mnMSplitPos = 0;
mnMouseModifier = 0;
mnSplitTest = 0;
mnSplitPos = 0;
}
}
}
bool SplitWindow::PreNotify( NotifyEvent& rNEvt )
{
const MouseEvent* pMouseEvt = NULL;
if( (rNEvt.GetType() == MouseNotifyEvent::MOUSEMOVE) && (pMouseEvt = rNEvt.GetMouseEvent()) != NULL )
{
if( !pMouseEvt->GetButtons() && !pMouseEvt->IsSynthetic() && !pMouseEvt->IsModifierChanged() )
{
// trigger redraw if mouse over state has changed
Rectangle aFadeInRect;
Rectangle aFadeOutRect;
ImplGetFadeInRect( aFadeInRect );
ImplGetFadeOutRect( aFadeOutRect );
if ( aFadeInRect.IsInside( GetPointerPosPixel() ) != aFadeInRect.IsInside( GetLastPointerPosPixel() ) )
Invalidate( aFadeInRect );
if ( aFadeOutRect.IsInside( GetPointerPosPixel() ) != aFadeOutRect.IsInside( GetLastPointerPosPixel() ) )
Invalidate( aFadeOutRect );
if( pMouseEvt->IsLeaveWindow() || pMouseEvt->IsEnterWindow() )
{
Invalidate( aFadeInRect );
Invalidate( aFadeOutRect );
}
}
}
return Window::PreNotify( rNEvt );
}
void SplitWindow::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
2000-09-18 16:07:07 +00:00
{
if (mnWinStyle & WB_BORDER)
ImplDrawBorder(rRenderContext);
2000-09-18 16:07:07 +00:00
ImplDrawBorderLine(rRenderContext);
ImplDrawFadeOut(rRenderContext, true);
ImplDrawFadeIn(rRenderContext, true);
ImplDrawAutoHide(rRenderContext, true);
2000-09-18 16:07:07 +00:00
// draw FrameSet-backgrounds
ImplDrawBack(rRenderContext, mpMainSet);
2000-09-18 16:07:07 +00:00
// draw splitter
if (!(mnWinStyle & WB_NOSPLITDRAW))
{
bool bFlat = (GetStyle() & WB_FLATSPLITDRAW) == WB_FLATSPLITDRAW;
ImplDrawSplit(rRenderContext, mpMainSet, mbHorz, bFlat, !mbBottomRight);
}
2000-09-18 16:07:07 +00:00
}
void SplitWindow::Move()
{
DockingWindow::Move();
}
void SplitWindow::Resize()
{
Size aSize = GetOutputSizePixel();
mnDX = aSize.Width();
mnDY = aSize.Height();
ImplUpdate();
Invalidate();
}
void SplitWindow::RequestHelp( const HelpEvent& rHEvt )
{
2002-04-24 11:12:05 +00:00
// no keyboard help for splitwin
if ( rHEvt.GetMode() & (HelpEventMode::BALLOON | HelpEventMode::QUICK) && !rHEvt.KeyboardActivated() )
2000-09-18 16:07:07 +00:00
{
Point aMousePosPixel = ScreenToOutputPixel( rHEvt.GetMousePosPixel() );
Rectangle aHelpRect;
sal_uInt16 nHelpResId = 0;
2000-09-18 16:07:07 +00:00
ImplGetAutoHideRect( aHelpRect, true );
2000-09-18 16:07:07 +00:00
if ( aHelpRect.IsInside( aMousePosPixel ) )
{
if ( mbAutoHideIn )
nHelpResId = SV_HELPTEXT_SPLITFIXED;
else
nHelpResId = SV_HELPTEXT_SPLITFLOATING;
}
else
{
ImplGetFadeInRect( aHelpRect, true );
2000-09-18 16:07:07 +00:00
if ( aHelpRect.IsInside( aMousePosPixel ) )
nHelpResId = SV_HELPTEXT_FADEIN;
else
{
ImplGetFadeOutRect( aHelpRect, true );
2000-09-18 16:07:07 +00:00
if ( aHelpRect.IsInside( aMousePosPixel ) )
nHelpResId = SV_HELPTEXT_FADEOUT;
}
}
// get rectangle
2000-09-18 16:07:07 +00:00
if ( nHelpResId )
{
Point aPt = OutputToScreenPixel( aHelpRect.TopLeft() );
aHelpRect.Left() = aPt.X();
aHelpRect.Top() = aPt.Y();
aPt = OutputToScreenPixel( aHelpRect.BottomRight() );
aHelpRect.Right() = aPt.X();
aHelpRect.Bottom() = aPt.Y();
// get and draw text
OUString aStr;
ResMgr* pResMgr = ImplGetResMgr();
if( pResMgr )
aStr = ResId( nHelpResId, *pResMgr ).toString();
if ( rHEvt.GetMode() & HelpEventMode::BALLOON )
2000-09-18 16:07:07 +00:00
Help::ShowBalloon( this, aHelpRect.Center(), aHelpRect, aStr );
else
Help::ShowQuickHelp( this, aHelpRect, aStr );
return;
}
}
DockingWindow::RequestHelp( rHEvt );
}
void SplitWindow::StateChanged( StateChangedType nType )
{
switch ( nType )
2000-09-18 16:07:07 +00:00
{
case StateChangedType::InitShow:
2000-09-18 16:07:07 +00:00
if ( IsUpdateMode() )
ImplCalcLayout();
break;
case StateChangedType::UpdateMode:
2000-09-18 16:07:07 +00:00
if ( IsUpdateMode() && IsReallyShown() )
ImplCalcLayout();
break;
case StateChangedType::ControlBackground:
2000-09-18 16:07:07 +00:00
ImplInitSettings();
Invalidate();
break;
default:;
2000-09-18 16:07:07 +00:00
}
DockingWindow::StateChanged( nType );
}
void SplitWindow::DataChanged( const DataChangedEvent& rDCEvt )
{
if ( (rDCEvt.GetType() == DataChangedEventType::SETTINGS) &&
(rDCEvt.GetFlags() & AllSettingsFlags::STYLE) )
2000-09-18 16:07:07 +00:00
{
ImplInitSettings();
Invalidate();
}
else
DockingWindow::DataChanged( rDCEvt );
}
void SplitWindow::InsertItem( sal_uInt16 nId, vcl::Window* pWindow, long nSize,
sal_uInt16 nPos, sal_uInt16 nIntoSetId,
SplitWindowItemFlags nBits )
2000-09-18 16:07:07 +00:00
{
#ifdef DBG_UTIL
sal_uInt16 nDbgDummy;
2000-09-18 16:07:07 +00:00
DBG_ASSERT( !ImplFindItem( mpMainSet, nId, nDbgDummy ), "SplitWindow::InsertItem() - Id already exists" );
#endif
// Size has to be at least 1.
2000-09-18 16:07:07 +00:00
if ( nSize < 1 )
nSize = 1;
ImplSplitSet* pSet = ImplFindSet( mpMainSet, nIntoSetId );
#ifdef DBG_UTIL
DBG_ASSERT( pSet, "SplitWindow::InsertItem() - Set not exists" );
#endif
if(!pSet)
{
return;
}
2000-09-18 16:07:07 +00:00
// Don't insert further than the end
if ( nPos > pSet->mpItems.size() )
nPos = pSet->mpItems.size();
// Create new item
ImplSplitItem* pItem = new ImplSplitItem();
2000-09-18 16:07:07 +00:00
pItem->mnSize = nSize;
pItem->mnPixSize = 0;
2000-09-18 16:07:07 +00:00
pItem->mnId = nId;
pItem->mnBits = nBits;
pItem->mnMinSize=-1;
pItem->mnMaxSize=-1;
2000-09-18 16:07:07 +00:00
if ( pWindow )
{
// New VclPtr reference
2000-09-18 16:07:07 +00:00
pItem->mpWindow = pWindow;
pItem->mpOrgParent = pWindow->GetParent();
// Attach window to SplitWindow.
2000-09-18 16:07:07 +00:00
pWindow->Hide();
pWindow->SetParent( this );
}
else
{
ImplSplitSet * pNewSet = new ImplSplitSet();
2000-09-18 16:07:07 +00:00
pNewSet->mnId = nId;
pNewSet->mnSplitSize = pSet->mnSplitSize;
pItem->mpSet = pNewSet;
}
// Insert in set
pSet->mpItems.insert( pSet->mpItems.begin() + nPos, pItem );
pSet->mbCalcPix = true;
2000-09-18 16:07:07 +00:00
ImplUpdate();
}
void SplitWindow::InsertItem( sal_uInt16 nId, long nSize,
sal_uInt16 nPos, sal_uInt16 nIntoSetId,
SplitWindowItemFlags nBits )
2000-09-18 16:07:07 +00:00
{
InsertItem( nId, NULL, nSize, nPos, nIntoSetId, nBits );
2000-09-18 16:07:07 +00:00
}
void SplitWindow::RemoveItem( sal_uInt16 nId, bool bHide )
2000-09-18 16:07:07 +00:00
{
#ifdef DBG_UTIL
sal_uInt16 nDbgDummy;
2000-09-18 16:07:07 +00:00
DBG_ASSERT( ImplFindItem( mpMainSet, nId, nDbgDummy ), "SplitWindow::RemoveItem() - Id not found" );
#endif
// search set
sal_uInt16 nPos;
ImplSplitSet* pSet = ImplFindItem( mpMainSet, nId, nPos );
if (!pSet)
return;
ImplSplitItem* pItem = pSet->mpItems[nPos];
VclPtr<vcl::Window> pWindow = pItem->mpWindow;
VclPtr<vcl::Window> pOrgParent = pItem->mpOrgParent;
2000-09-18 16:07:07 +00:00
// delete set if required
if ( !pWindow ) {
delete pItem->mpSet ;
pItem->mpSet = NULL;
}
2000-09-18 16:07:07 +00:00
// remove item
pSet->mbCalcPix = true;
pSet->mpItems.erase( pSet->mpItems.begin() + nPos );
2000-09-18 16:07:07 +00:00
ImplUpdate();
// to have the least amounts of paints delete window only here
2000-09-18 16:07:07 +00:00
if ( pWindow )
{
// restore window
2000-09-18 16:07:07 +00:00
if ( bHide || (pOrgParent != this) )
{
pWindow->Hide();
pWindow->SetParent( pOrgParent );
}
}
// Clear and delete
delete pItem;
pWindow.clear();
pOrgParent.clear();
2000-09-18 16:07:07 +00:00
}
void SplitWindow::Clear()
{
// delete all sets
delete mpMainSet ;
2000-09-18 16:07:07 +00:00
// create Main-Set again
mpMainSet = new ImplSplitSet();
2000-09-18 16:07:07 +00:00
if ( mnWinStyle & WB_NOSPLITDRAW )
mpMainSet->mnSplitSize -= 2;
mpBaseSet = mpMainSet;
2000-09-18 16:07:07 +00:00
// and invalidate again
2000-09-18 16:07:07 +00:00
ImplUpdate();
}
void SplitWindow::SplitItem( sal_uInt16 nId, long nNewSize,
bool bPropSmall, bool bPropGreat )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nPos;
2000-09-18 16:07:07 +00:00
ImplSplitSet* pSet = ImplFindItem( mpBaseSet, nId, nPos );
if (!pSet)
2000-09-18 16:07:07 +00:00
return;
size_t nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
// When there is an explicit minimum or maximum size then move nNewSize
// into that range (when it is not yet already in it.)
nNewSize = ValidateSize(nNewSize, pItems[nPos]);
2000-09-18 16:07:07 +00:00
if ( mbCalc )
{
pItems[nPos]->mnSize = nNewSize;
2000-09-18 16:07:07 +00:00
return;
}
long nDelta = nNewSize-pItems[nPos]->mnPixSize;
2000-09-18 16:07:07 +00:00
if ( !nDelta )
return;
// calculate area, which could be affected by splitting
sal_uInt16 nMin = 0;
sal_uInt16 nMax = nItems;
for (size_t i = 0; i < nItems; ++i)
2000-09-18 16:07:07 +00:00
{
if ( pItems[i]->mbFixed )
2000-09-18 16:07:07 +00:00
{
if ( i < nPos )
nMin = i+1;
else
nMax = i;
}
}
// treat TopSet different if the window is sizeable
bool bSmall = true;
bool bGreat = true;
2000-09-18 16:07:07 +00:00
if ( (pSet == mpMainSet) && (mnWinStyle & WB_SIZEABLE) )
{
if ( nPos < pSet->mpItems.size()-1 )
2000-09-18 16:07:07 +00:00
{
if ( !((bPropSmall && bPropGreat) ||
((nDelta > 0) && bPropSmall) ||
((nDelta < 0) && bPropGreat)) )
{
if ( nDelta < 0 )
bGreat = false;
2000-09-18 16:07:07 +00:00
else
bSmall = false;
2000-09-18 16:07:07 +00:00
}
}
else
{
if ( nDelta < 0 )
bGreat = false;
2000-09-18 16:07:07 +00:00
else
bSmall = false;
2000-09-18 16:07:07 +00:00
}
}
else if ( nPos >= nMax )
{
bSmall = false;
bGreat = false;
2000-09-18 16:07:07 +00:00
}
else if ( nPos && (nPos >= pSet->mpItems.size()-1) )
2000-09-18 16:07:07 +00:00
{
nPos--;
nDelta *= -1;
bool bTemp = bPropSmall;
2000-09-18 16:07:07 +00:00
bPropSmall = bPropGreat;
bPropGreat = bTemp;
}
sal_uInt16 n;
// now splitt the windows
2000-09-18 16:07:07 +00:00
if ( nDelta < 0 )
{
if ( bGreat )
{
if ( bPropGreat )
{
long nTempDelta = nDelta;
2000-09-18 16:07:07 +00:00
do
{
n = nPos+1;
do
{
if ( nTempDelta )
{
pItems[n]->mnPixSize++;
2000-09-18 16:07:07 +00:00
nTempDelta++;
}
n++;
}
while ( n < nMax );
}
while ( nTempDelta );
}
else
pItems[nPos+1]->mnPixSize -= nDelta;
2000-09-18 16:07:07 +00:00
}
if ( bSmall )
{
if ( bPropSmall )
{
do
{
n = nPos+1;
do
{
if ( nDelta && pItems[n-1]->mnPixSize )
2000-09-18 16:07:07 +00:00
{
pItems[n-1]->mnPixSize--;
2000-09-18 16:07:07 +00:00
nDelta++;
}
n--;
}
while ( n > nMin );
}
while ( nDelta );
}
else
{
n = nPos+1;
do
{
if ( pItems[n-1]->mnPixSize+nDelta < 0 )
2000-09-18 16:07:07 +00:00
{
nDelta += pItems[n-1]->mnPixSize;
pItems[n-1]->mnPixSize = 0;
2000-09-18 16:07:07 +00:00
}
else
{
pItems[n-1]->mnPixSize += nDelta;
2000-09-18 16:07:07 +00:00
break;
}
n--;
}
while ( n > nMin );
}
}
}
else
{
if ( bGreat )
{
if ( bPropGreat )
{
long nTempDelta = nDelta;
2000-09-18 16:07:07 +00:00
do
{
n = nPos+1;
do
{
if ( nTempDelta )
{
pItems[n-1]->mnPixSize++;
2000-09-18 16:07:07 +00:00
nTempDelta--;
}
n--;
}
while ( n > nMin );
}
while ( nTempDelta );
}
else
pItems[nPos]->mnPixSize += nDelta;
2000-09-18 16:07:07 +00:00
}
if ( bSmall )
{
if ( bPropSmall )
{
do
{
n = nPos+1;
do
{
if ( nDelta && pItems[n]->mnPixSize )
2000-09-18 16:07:07 +00:00
{
pItems[n]->mnPixSize--;
2000-09-18 16:07:07 +00:00
nDelta--;
}
n++;
}
while ( n < nMax );
}
while ( nDelta );
}
else
{
n = nPos+1;
do
{
if ( pItems[n]->mnPixSize-nDelta < 0 )
2000-09-18 16:07:07 +00:00
{
nDelta -= pItems[n]->mnPixSize;
pItems[n]->mnPixSize = 0;
2000-09-18 16:07:07 +00:00
}
else
{
pItems[n]->mnPixSize -= nDelta;
2000-09-18 16:07:07 +00:00
break;
}
n++;
}
while ( n < nMax );
}
}
}
// update original sizes
2000-09-18 16:07:07 +00:00
ImplCalcLogSize( pItems, nItems );
ImplUpdate();
}
void SplitWindow::SetItemSize( sal_uInt16 nId, long nNewSize )
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nPos;
2000-09-18 16:07:07 +00:00
ImplSplitSet* pSet = ImplFindItem( mpBaseSet, nId, nPos );
ImplSplitItem* pItem;
if ( !pSet )
return;
// check if size is changed
pItem = pSet->mpItems[nPos];
2000-09-18 16:07:07 +00:00
if ( pItem->mnSize != nNewSize )
{
// set new size and re-calculate
2000-09-18 16:07:07 +00:00
pItem->mnSize = nNewSize;
pSet->mbCalcPix = true;
2000-09-18 16:07:07 +00:00
ImplUpdate();
}
}
long SplitWindow::GetItemSize( sal_uInt16 nId ) const
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nPos;
2000-09-18 16:07:07 +00:00
ImplSplitSet* pSet = ImplFindItem( mpBaseSet, nId, nPos );
if ( pSet )
return pSet->mpItems[nPos]->mnSize;
2000-09-18 16:07:07 +00:00
else
return 0;
}
long SplitWindow::GetItemSize( sal_uInt16 nId, SplitWindowItemFlags nBits ) const
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nPos;
2000-09-18 16:07:07 +00:00
ImplSplitSet* pSet = ImplFindItem( mpBaseSet, nId, nPos );
if ( pSet )
{
if ( nBits == pSet->mpItems[nPos]->mnBits )
return pSet->mpItems[nPos]->mnSize;
2000-09-18 16:07:07 +00:00
else
{
const_cast<SplitWindow*>(this)->ImplCalcLayout();
2000-09-18 16:07:07 +00:00
long nRelSize = 0;
long nPerSize = 0;
size_t nItems;
SplitWindowItemFlags nTempBits;
sal_uInt16 i;
nItems = pSet->mpItems.size();
ImplSplitItems& pItems = pSet->mpItems;
2000-09-18 16:07:07 +00:00
for ( i = 0; i < nItems; i++ )
{
if ( i == nPos )
nTempBits = nBits;
else
nTempBits = pItems[i]->mnBits;
if ( nTempBits & SplitWindowItemFlags::RelativeSize )
nRelSize += pItems[i]->mnPixSize;
else if ( nTempBits & SplitWindowItemFlags::PercentSize )
nPerSize += pItems[i]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
nPerSize += nRelSize;
if ( nBits & SplitWindowItemFlags::RelativeSize )
2000-09-18 16:07:07 +00:00
{
if ( nRelSize )
return (pItems[nPos]->mnPixSize+(nRelSize/2))/nRelSize;
2000-09-18 16:07:07 +00:00
else
return 1;
}
else if ( nBits & SplitWindowItemFlags::PercentSize )
2000-09-18 16:07:07 +00:00
{
if ( nPerSize )
return (pItems[nPos]->mnPixSize*100)/nPerSize;
2000-09-18 16:07:07 +00:00
else
return 1;
}
else
return pItems[nPos]->mnPixSize;
2000-09-18 16:07:07 +00:00
}
}
else
return 0;
}
void SplitWindow::SetItemSizeRange (sal_uInt16 nId, const Range& rRange)
{
sal_uInt16 nPos;
ImplSplitSet* pSet = ImplFindItem(mpBaseSet, nId, nPos);
if (pSet != NULL)
{
pSet->mpItems[nPos]->mnMinSize = rRange.Min();
pSet->mpItems[nPos]->mnMaxSize = rRange.Max();
}
}
sal_uInt16 SplitWindow::GetSet( sal_uInt16 nId ) const
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nPos;
2000-09-18 16:07:07 +00:00
ImplSplitSet* pSet = ImplFindItem( mpBaseSet, nId, nPos );
if ( pSet )
return pSet->mnId;
else
return 0;
}
bool SplitWindow::IsItemValid( sal_uInt16 nId ) const
2000-09-18 16:07:07 +00:00
{
sal_uInt16 nPos;
ImplSplitSet* pSet = mpBaseSet ? ImplFindItem(mpBaseSet, nId, nPos) : NULL;
2000-09-18 16:07:07 +00:00
if ( pSet )
return true;
2000-09-18 16:07:07 +00:00
else
return false;
2000-09-18 16:07:07 +00:00
}
sal_uInt16 SplitWindow::GetItemId( vcl::Window* pWindow ) const
2000-09-18 16:07:07 +00:00
{
return ImplFindItem( mpBaseSet, pWindow );
}
sal_uInt16 SplitWindow::GetItemId( const Point& rPos ) const
2000-09-18 16:07:07 +00:00
{
return ImplFindItem( mpBaseSet, rPos, mbHorz, !mbBottomRight );
}
sal_uInt16 SplitWindow::GetItemPos( sal_uInt16 nId, sal_uInt16 nSetId ) const
2000-09-18 16:07:07 +00:00
{
ImplSplitSet* pSet = ImplFindSet( mpBaseSet, nSetId );
sal_uInt16 nPos = SPLITWINDOW_ITEM_NOTFOUND;
2000-09-18 16:07:07 +00:00
if ( pSet )
{
for ( size_t i = 0; i < pSet->mpItems.size(); i++ )
2000-09-18 16:07:07 +00:00
{
if ( pSet->mpItems[i]->mnId == nId )
2000-09-18 16:07:07 +00:00
{
nPos = i;
break;
}
}
}
return nPos;
}
sal_uInt16 SplitWindow::GetItemId( sal_uInt16 nPos, sal_uInt16 nSetId ) const
2000-09-18 16:07:07 +00:00
{
ImplSplitSet* pSet = ImplFindSet( mpBaseSet, nSetId );
if ( pSet && (nPos < pSet->mpItems.size()) )
return pSet->mpItems[nPos]->mnId;
2000-09-18 16:07:07 +00:00
else
return 0;
}
sal_uInt16 SplitWindow::GetItemCount( sal_uInt16 nSetId ) const
2000-09-18 16:07:07 +00:00
{
ImplSplitSet* pSet = ImplFindSet( mpBaseSet, nSetId );
if ( pSet )
return pSet->mpItems.size();
2000-09-18 16:07:07 +00:00
else
return 0;
}
void SplitWindow::ImplNewAlign()
{
if ( mbNoAlign )
{
mbHorz = false;
mbBottomRight = false;
2000-09-18 16:07:07 +00:00
}
else
2000-09-18 16:07:07 +00:00
{
switch ( meAlign )
{
case WindowAlign::Top:
mbHorz = true;
mbBottomRight = false;
break;
case WindowAlign::Bottom:
mbHorz = true;
mbBottomRight = true;
break;
case WindowAlign::Left:
mbHorz = false;
mbBottomRight = false;
break;
case WindowAlign::Right:
mbHorz = false;
mbBottomRight = true;
break;
}
2000-09-18 16:07:07 +00:00
}
if ( mnWinStyle & WB_BORDER )
{
ImplCalcBorder( meAlign, mbNoAlign, mnLeftBorder, mnTopBorder,
mnRightBorder, mnBottomBorder );
}
if ( IsReallyVisible() && IsUpdateMode() )
Invalidate();
ImplUpdate();
}
void SplitWindow::SetAlign( WindowAlign eNewAlign )
{
if ( meAlign != eNewAlign )
{
meAlign = eNewAlign;
ImplNewAlign();
}
}
void SplitWindow::ShowAutoHideButton( bool bShow )
2000-09-18 16:07:07 +00:00
{
mbAutoHide = bShow;
ImplUpdate();
}
void SplitWindow::ShowFadeInHideButton( bool bShow )
2000-09-18 16:07:07 +00:00
{
mbFadeIn = bShow;
ImplUpdate();
}
void SplitWindow::ShowFadeOutButton( bool bShow )
2000-09-18 16:07:07 +00:00
{
mbFadeOut = bShow;
ImplUpdate();
}
void SplitWindow::SetAutoHideState( bool bAutoHide )
2000-09-18 16:07:07 +00:00
{
mbAutoHideIn = bAutoHide;
if ( IsReallyVisible() )
{
Rectangle aRect;
ImplGetAutoHideRect( aRect );
Invalidate( aRect );
}
}
long SplitWindow::GetFadeInSize() const
{
long n = 0;
if ( mbHorz )
n = mnTopBorder+mnBottomBorder;
else
n = mnLeftBorder+mnRightBorder;
return n+SPLITWIN_SPLITSIZE+SPLITWIN_SPLITSIZEEX-2;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */