| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_cui.hxx" |
| |
| // include --------------------------------------------------------------- |
| #include <svtools/colorcfg.hxx> |
| #include <svtools/extcolorcfg.hxx> |
| #include <svtools/headbar.hxx> |
| #include <svtools/ctrlbox.hxx> |
| #include <vcl/scrbar.hxx> |
| #include <svx/xtable.hxx> |
| #include <unotools/moduleoptions.hxx> |
| #include <unotools/pathoptions.hxx> |
| #include <vcl/msgbox.hxx> |
| #include <boost/shared_ptr.hpp> |
| #include <svx/svxdlg.hxx> |
| #include <helpid.hrc> |
| #include <dialmgr.hxx> |
| #include "optcolor.hxx" |
| #include <cuires.hrc> |
| #include "optcolor.hrc" |
| #include <svx/dlgutil.hxx> |
| |
| using namespace ::com::sun::star; |
| using namespace ::svtools; |
| |
| #define GROUP_COUNT 7 |
| #define GROUP_UNKNOWN -1 |
| #define GROUP_GENERAL 0 |
| #define GROUP_WRITER 1 |
| #define GROUP_HTML 2 |
| #define GROUP_CALC 3 |
| #define GROUP_DRAW 4 |
| #define GROUP_BASIC 5 |
| #define GROUP_SQL 6 |
| |
| const char* aColorLBHids[ColorConfigEntryCount] = |
| { |
| HID_COLORPAGE_DOCCOLOR_LB, |
| HID_COLORPAGE_DOCBOUNDARIES_LB, |
| HID_COLORPAGE_APPBACKGROUND_LB, |
| HID_COLORPAGE_OBJECTBOUNDARIES_LB, |
| HID_COLORPAGE_TABLEBOUNDARIES_LB, |
| HID_COLORPAGE_FONTCOLOR_LB, |
| HID_COLORPAGE_LINKS_LB, |
| HID_COLORPAGE_LINKSVISITED_LB, |
| HID_COLORPAGE_ANCHOR_LB, |
| HID_COLORPAGE_SPELL_LB, |
| HID_COLORPAGE_SMARTTAGS_LB, |
| HID_COLORPAGE_WRITERTEXTGRID_LB, |
| HID_COLORPAGE_WRITERFIELDSHADINGS_LB, |
| HID_COLORPAGE_WRITERIDXSHADINGS_LB, |
| HID_COLORPAGE_WRITERDIRECTCURSOR_LB, |
| HID_COLORPAGE_WRITERSCRIPTINDICATOR_LB, |
| HID_COLORPAGE_WRITERSECTIONBOUNDARIES_LB, |
| HID_COLORPAGE_WRITERPAGEBREAKS_LB, |
| HID_COLORPAGE_HTMLSGML_LB, |
| HID_COLORPAGE_HTMLCOMMENT_LB, |
| HID_COLORPAGE_HTMLKEYWORD_LB, |
| HID_COLORPAGE_HTMLUNKNOWN_LB, |
| HID_COLORPAGE_CALCGRID_LB, |
| HID_COLORPAGE_CALCPAGEBREAK_LB, |
| HID_COLORPAGE_CALCPAGEBREAKMANUAL_LB, |
| HID_COLORPAGE_CALCPAGEBREAKAUTOMATIC_LB, |
| HID_COLORPAGE_CALCDETECTIVE_LB, |
| HID_COLORPAGE_CALCDETECTIVEERROR_LB, |
| HID_COLORPAGE_CALCREFERENCE_LB, |
| HID_COLORPAGE_CALCNOTESBACKGROUND_LB, |
| HID_COLORPAGE_DRAWGRID_LB, |
| HID_COLORPAGE_DRAWDRAWING_LB, |
| HID_COLORPAGE_DRAWFILL_LB, |
| HID_COLORPAGE_BASICIDENTIFIER_LB, |
| HID_COLORPAGE_BASICCOMMENT_LB, |
| HID_COLORPAGE_BASICNUMBER_LB, |
| HID_COLORPAGE_BASICSTRING_LB, |
| HID_COLORPAGE_BASICOPERATOR_LB, |
| HID_COLORPAGE_BASICKEYWORD_LB, |
| HID_COLORPAGE_BASICERROR_LB |
| HID_COLORPAGE_SQLIDENTIFIER_LB, |
| HID_COLORPAGE_SQLNUMBER_LB, |
| HID_COLORPAGE_SQLSTRING_LB, |
| HID_COLORPAGE_SQLOPERATOR_LB, |
| HID_COLORPAGE_SQLKEYWORD_LB, |
| HID_COLORPAGE_SQLPARAMETER_LB, |
| HID_COLORPAGE_SQLCOMMENT_LB |
| }; |
| |
| const char* aColorCBHids[ColorConfigEntryCount] = |
| { |
| HID_COLORPAGE_DOCCOLOR_CB, |
| HID_COLORPAGE_DOCBOUNDARIES_CB, |
| HID_COLORPAGE_APPBACKGROUND_CB, |
| HID_COLORPAGE_OBJECTBOUNDARIES_CB, |
| HID_COLORPAGE_TABLEBOUNDARIES_CB, |
| HID_COLORPAGE_FONTCOLOR_CB, |
| HID_COLORPAGE_LINKS_CB, |
| HID_COLORPAGE_LINKSVISITED_CB, |
| HID_COLORPAGE_ANCHOR_CB, |
| HID_COLORPAGE_SPELL_CB, |
| HID_COLORPAGE_SMARTTAGS_CB, |
| HID_COLORPAGE_WRITERTEXTGRID_CB, |
| HID_COLORPAGE_WRITERFIELDSHADINGS_CB, |
| HID_COLORPAGE_WRITERIDXSHADINGS_CB, |
| HID_COLORPAGE_WRITERDIRECTCURSOR_CB, |
| HID_COLORPAGE_WRITERSCRIPTINDICATOR_CB, |
| HID_COLORPAGE_WRITERSECTIONBOUNDARIES_CB, |
| HID_COLORPAGE_WRITERPAGEBREAKS_CB, |
| HID_COLORPAGE_HTMLSGML_CB, |
| HID_COLORPAGE_HTMLCOMMENT_CB, |
| HID_COLORPAGE_HTMLKEYWORD_CB, |
| HID_COLORPAGE_HTMLUNKNOWN_CB, |
| HID_COLORPAGE_CALCGRID_CB, |
| HID_COLORPAGE_CALCPAGEBREAK_CB, |
| HID_COLORPAGE_CALCPAGEBREAKMANUAL_CB, |
| HID_COLORPAGE_CALCPAGEBREAKAUTOMATIC_CB, |
| HID_COLORPAGE_CALCDETECTIVE_CB, |
| HID_COLORPAGE_CALCDETECTIVEERROR_CB, |
| HID_COLORPAGE_CALCREFERENCE_CB, |
| HID_COLORPAGE_CALCNOTESBACKGROUND_CB, |
| HID_COLORPAGE_DRAWGRID_CB, |
| HID_COLORPAGE_DRAWDRAWING_CB, |
| HID_COLORPAGE_DRAWFILL_CB, |
| HID_COLORPAGE_BASICIDENTIFIER_CB, |
| HID_COLORPAGE_BASICCOMMENT_CB, |
| HID_COLORPAGE_BASICNUMBER_CB, |
| HID_COLORPAGE_BASICSTRING_CB, |
| HID_COLORPAGE_BASICOPERATOR_CB, |
| HID_COLORPAGE_BASICKEYWORD_CB, |
| HID_COLORPAGE_BASICERROR_CB |
| HID_COLORPAGE_SQLIDENTIFIER_CB, |
| HID_COLORPAGE_SQLNUMBER_CB, |
| HID_COLORPAGE_SQLSTRING_CB, |
| HID_COLORPAGE_SQLOPERATOR_CB, |
| HID_COLORPAGE_SQLKEYWORD_CB, |
| HID_COLORPAGE_SQLPARAMETER_CB, |
| HID_COLORPAGE_SQLCOMMENT_CB |
| }; |
| |
| /* -----------------------------2002/06/26 10:48------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| |
| class SvxExtFixedText_Impl : public FixedText |
| { |
| private: |
| long m_nGroupHeight; |
| |
| protected: |
| virtual void DataChanged( const DataChangedEvent& rDCEvt ); |
| |
| public: |
| SvxExtFixedText_Impl(Window* pParent, const ResId& rResId) : |
| FixedText(pParent, rResId), m_nGroupHeight(0) {} |
| |
| inline long GetGroupHeight() { return m_nGroupHeight; } |
| inline void SetGroupHeight( long _nHeight ) { m_nGroupHeight = _nHeight; } |
| }; |
| |
| /* -----------------------------25.03.2002 15:48------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| class ColorConfigCtrl_Impl; |
| class ColorConfigWindow_Impl : public Window |
| { |
| friend class ColorConfigCtrl_Impl; |
| Window aGeneralBackWN; |
| SvxExtFixedText_Impl aGeneralFT; |
| FixedText aDocColorFT; |
| ColorListBox aDocColorLB; |
| Window aDocColorWN; |
| CheckBox aDocBoundCB; |
| ColorListBox aDocBoundLB; |
| Window aDocBoundWN; |
| FixedText aAppBackFT; |
| ColorListBox aAppBackLB; |
| Window aAppBackWN; |
| CheckBox aObjBoundCB; |
| ColorListBox aObjBoundLB; |
| Window aObjBoundWN; |
| CheckBox aTableBoundCB; |
| ColorListBox aTableBoundLB; |
| Window aTableBoundWN; |
| FixedText aFontColorFT; |
| ColorListBox aFontColorLB; |
| Window aFontColorWN; |
| CheckBox aLinksCB; |
| ColorListBox aLinksLB; |
| Window aLinksWN; |
| CheckBox aLinksVisitedCB; |
| ColorListBox aLinksVisitedLB; |
| Window aLinksVisitedWN; |
| FixedText aSpellFT; |
| ColorListBox aSpellLB; |
| Window aSpellWN; |
| FixedText aSmarttagsFT; |
| ColorListBox aSmarttagsLB; |
| Window aSmarttagsWN; |
| Window aWriterBackWN; |
| SvxExtFixedText_Impl aWriterFT; |
| FixedText aWrtTextGridFT; |
| ColorListBox aWrtTextGridLB; |
| Window aWrtTextGridWN; |
| CheckBox aWrtFieldCB; |
| ColorListBox aWrtFieldLB; |
| Window aWrtFieldWN; |
| CheckBox aWrtIdxShadingBackCB; |
| ColorListBox aWrtIdxShadingBackLB; |
| Window aWrtIdxShadingBackWN; |
| FixedText aWrtScriptIndicatorFT; |
| ColorListBox aWrtScriptIndicatorLB; |
| Window aWrtScriptIndicatorWN; |
| CheckBox aWrtSectionBoundCB; |
| ColorListBox aWrtSectionBoundLB; |
| Window aWrtSectionBoundWN; |
| FixedText aWrtPageBreaksFT; |
| ColorListBox aWrtPageBreaksLB; |
| Window aWrtPageBreaksWN; |
| FixedText aWrtDirectCrsrFT; |
| ColorListBox aWrtDirectCrsrLB; |
| Window aWrtDirectCrsrWN; |
| Window aHTMLBackWN; |
| SvxExtFixedText_Impl aHTMLFT; |
| FixedText aHTMLSGMLFT; |
| ColorListBox aHTMLSGMLLB; |
| Window aHTMLSGMLWN; |
| FixedText aHTMLCommentFT; |
| ColorListBox aHTMLCommentLB; |
| Window aHTMLCommentWN; |
| FixedText aHTMLKeywdFT; |
| ColorListBox aHTMLKeywdLB; |
| Window aHTMLKeywdWN; |
| FixedText aHTMLUnknownFT; |
| ColorListBox aHTMLUnknownLB; |
| Window aHTMLUnknownWN; |
| Window aCalcBackWN; |
| SvxExtFixedText_Impl aCalcFT; |
| FixedText aCalcGridFT; |
| ColorListBox aCalcGridLB; |
| Window aCalcGridWN; |
| FixedText aCalcPageBreakFT; |
| ColorListBox aCalcPageBreakLB; |
| Window aCalcPageBreakWN; |
| FixedText aCalcPageBreakManualFT; |
| ColorListBox aCalcPageBreakManualLB; |
| Window aCalcPageBreakManualWN; |
| FixedText aCalcPageBreakAutoFT; |
| ColorListBox aCalcPageBreakAutoLB; |
| Window aCalcPageBreakAutoWN; |
| FixedText aCalcDetectiveFT; |
| ColorListBox aCalcDetectiveLB; |
| Window aCalcDetectiveWN; |
| FixedText aCalcDetectiveErrorFT; |
| ColorListBox aCalcDetectiveErrorLB; |
| Window aCalcDetectiveErrorWN; |
| FixedText aCalcReferenceFT; |
| ColorListBox aCalcReferenceLB; |
| Window aCalcReferenceWN; |
| FixedText aCalcNotesBackFT; |
| ColorListBox aCalcNotesBackLB; |
| Window aCalcNotesBackWN; |
| Window aDrawBackWN; |
| SvxExtFixedText_Impl aDrawFT; |
| FixedText aDrawGridFT; |
| ColorListBox aDrawGridLB; |
| Window aDrawGridWN; |
| Window aBasicBackWN; |
| SvxExtFixedText_Impl aBasicFT; |
| FixedText aBasicIdentifierFT; |
| ColorListBox aBasicIdentifierLB; |
| Window aBasicIdentifierWN; |
| FixedText aBasicCommentFT; |
| ColorListBox aBasicCommentLB; |
| Window aBasicCommentWN; |
| FixedText aBasicNumberFT; |
| ColorListBox aBasicNumberLB; |
| Window aBasicNumberWN; |
| FixedText aBasicStringFT; |
| ColorListBox aBasicStringLB; |
| Window aBasicStringWN; |
| FixedText aBasicOperatorFT; |
| ColorListBox aBasicOperatorLB; |
| Window aBasicOperatorWN; |
| FixedText aBasicKeywordFT; |
| ColorListBox aBasicKeywordLB; |
| Window aBasicKeywordWN; |
| FixedText aBasicErrorFT; |
| ColorListBox aBasicErrorLB; |
| Window aBasicErrorWN; |
| Window aSQLBackWN; |
| SvxExtFixedText_Impl aSQLFT; |
| FixedText aSQLIdentifierFT; |
| ColorListBox aSQLIdentifierLB; |
| Window aSQLIdentifierWN; |
| FixedText aSQLNumberFT; |
| ColorListBox aSQLNumberLB; |
| Window aSQLNumberWN; |
| FixedText aSQLStringFT; |
| ColorListBox aSQLStringLB; |
| Window aSQLStringWN; |
| FixedText aSQLOperatorFT; |
| ColorListBox aSQLOperatorLB; |
| Window aSQLOperatorWN; |
| FixedText aSQLKeywordFT; |
| ColorListBox aSQLKeywordLB; |
| Window aSQLKeywordWN; |
| FixedText aSQLParameterFT; |
| ColorListBox aSQLParameterLB; |
| Window aSQLParameterWN; |
| FixedText aSQLCommentFT; |
| ColorListBox aSQLCommentLB; |
| Window aSQLCommentWN; |
| |
| ::std::vector< SvxExtFixedText_Impl*> aChapters; |
| ::std::vector< Window* > aChapterWins; |
| ::std::vector< FixedText* > aFixedTexts; |
| ::std::vector< CheckBox* > aCheckBoxes; |
| ::std::vector< ColorListBox* > aColorBoxes; |
| ::std::vector< Window* > aWindows; // [ColorConfigEntryCount] |
| ::std::vector< ::boost::shared_ptr<SvxExtFixedText_Impl> > m_aExtensionTitles; |
| |
| SvtModuleOptions m_aModuleOptions; |
| |
| void SetNewPosition( sal_Int32 _nFeature, Window* _pWin ); |
| |
| virtual void Command( const CommandEvent& rCEvt ); |
| virtual void DataChanged( const DataChangedEvent& rDCEvt ); |
| |
| public: |
| ColorConfigWindow_Impl(Window* pParent, const ResId& rResId); |
| ~ColorConfigWindow_Impl(); |
| |
| inline const SvtModuleOptions& GetModuleOptions() const { return m_aModuleOptions; } |
| }; |
| |
| sal_Bool lcl_isGroupVisible( sal_Int32 _nGroup, const SvtModuleOptions& _rModOptions ) |
| { |
| sal_Bool bRet = sal_True; |
| |
| switch ( _nGroup ) |
| { |
| case GROUP_WRITER : |
| case GROUP_HTML : |
| { |
| bRet = _rModOptions.IsModuleInstalled( SvtModuleOptions::E_SWRITER ); |
| break; |
| } |
| |
| case GROUP_CALC : |
| { |
| bRet = _rModOptions.IsModuleInstalled( SvtModuleOptions::E_SCALC ); |
| break; |
| } |
| |
| case GROUP_DRAW : |
| { |
| bRet = ( _rModOptions.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) || |
| _rModOptions.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) ); |
| break; |
| } |
| case GROUP_SQL : |
| { |
| bRet = _rModOptions.IsModuleInstalled( SvtModuleOptions::E_SDATABASE ); |
| break; |
| } |
| } |
| |
| return bRet; |
| } |
| |
| sal_Int16 lcl_getGroup( sal_Int32 _nFeature ) |
| { |
| if ( _nFeature >= ColorConfigEntryCount ) |
| return GROUP_COUNT; // feature of an extension |
| |
| sal_Int16 nRet = GROUP_UNKNOWN; |
| |
| switch ( _nFeature ) |
| { |
| case DOCCOLOR : |
| case DOCBOUNDARIES : |
| case APPBACKGROUND : |
| case OBJECTBOUNDARIES : |
| case TABLEBOUNDARIES : |
| case FONTCOLOR : |
| case LINKS : |
| case LINKSVISITED : |
| case ANCHOR : |
| case SPELL : |
| case SMARTTAGS : |
| { |
| nRet = GROUP_GENERAL; |
| break; |
| } |
| |
| case WRITERTEXTGRID : |
| case WRITERFIELDSHADINGS : |
| case WRITERIDXSHADINGS : |
| case WRITERDIRECTCURSOR : |
| case WRITERSCRIPTINDICATOR : |
| case WRITERSECTIONBOUNDARIES : |
| case WRITERPAGEBREAKS : |
| { |
| nRet = GROUP_WRITER; |
| break; |
| } |
| |
| case HTMLSGML : |
| case HTMLCOMMENT : |
| case HTMLKEYWORD : |
| case HTMLUNKNOWN : |
| { |
| nRet = GROUP_HTML; |
| break; |
| } |
| |
| case CALCGRID : |
| case CALCPAGEBREAK : |
| case CALCPAGEBREAKMANUAL : |
| case CALCPAGEBREAKAUTOMATIC : |
| case CALCDETECTIVE : |
| case CALCDETECTIVEERROR : |
| case CALCREFERENCE : |
| case CALCNOTESBACKGROUND : |
| { |
| nRet = GROUP_CALC; |
| break; |
| } |
| |
| case DRAWGRID : |
| case DRAWDRAWING : |
| case DRAWFILL : |
| { |
| nRet = GROUP_DRAW; |
| break; |
| } |
| |
| case BASICIDENTIFIER : |
| case BASICCOMMENT : |
| case BASICNUMBER : |
| case BASICSTRING : |
| case BASICOPERATOR : |
| case BASICKEYWORD : |
| case BASICERROR : |
| { |
| nRet = GROUP_BASIC; |
| break; |
| } |
| case SQLIDENTIFIER : |
| case SQLNUMBER: |
| case SQLSTRING: |
| case SQLOPERATOR: |
| case SQLKEYWORD: |
| case SQLPARAMETER: |
| case SQLCOMMENT: |
| { |
| nRet = GROUP_SQL; |
| break; |
| } |
| } |
| return nRet; |
| } |
| |
| /* -----------------------------25.03.2002 17:05------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| ColorConfigWindow_Impl::ColorConfigWindow_Impl(Window* pParent, const ResId& rResId) : |
| Window(pParent, rResId), |
| aGeneralBackWN(this), |
| aGeneralFT(&aGeneralBackWN, ResId( FT_GENERAL, *rResId.GetResMgr() )), |
| aDocColorFT(this, ResId( FT_DOCCOLOR, *rResId.GetResMgr())), |
| aDocColorLB(this, ResId( LB_DOCCOLOR, *rResId.GetResMgr())), |
| aDocColorWN(this, ResId( WN_DOCCOLOR, *rResId.GetResMgr())), |
| aDocBoundCB(this, ResId( CB_DOCBOUND, *rResId.GetResMgr())), |
| aDocBoundLB(this, ResId( LB_DOCBOUND, *rResId.GetResMgr())), |
| aDocBoundWN(this, ResId( WN_DOCBOUND, *rResId.GetResMgr())), |
| aAppBackFT(this, ResId( FT_APPBACKGROUND, *rResId.GetResMgr())), |
| aAppBackLB(this, ResId( LB_APPBACKGROUND, *rResId.GetResMgr())), |
| aAppBackWN(this, ResId( WN_APPBACKGROUND, *rResId.GetResMgr())), |
| aObjBoundCB(this, ResId( CB_OBJECTBOUNDARIES, *rResId.GetResMgr())), |
| aObjBoundLB(this, ResId( LB_OBJECTBOUNDARIES, *rResId.GetResMgr())), |
| aObjBoundWN(this, ResId( WN_OBJECTBOUNDARIES, *rResId.GetResMgr())), |
| aTableBoundCB(this, ResId( CB_TABLEBOUNDARIES, *rResId.GetResMgr())), |
| aTableBoundLB(this, ResId( LB_TABLEBOUNDARIES, *rResId.GetResMgr())), |
| aTableBoundWN(this, ResId( WN_TABLEBOUNDARIES, *rResId.GetResMgr())), |
| aFontColorFT(this, ResId( FT_FONTCOLOR, *rResId.GetResMgr())), |
| aFontColorLB(this, ResId( LB_FONTCOLOR, *rResId.GetResMgr())), |
| aFontColorWN(this, ResId( WN_FONTCOLOR, *rResId.GetResMgr())), |
| aLinksCB(this, ResId( CB_LINKS, *rResId.GetResMgr())), |
| aLinksLB(this, ResId( LB_LINKS, *rResId.GetResMgr())), |
| aLinksWN(this, ResId( WN_LINKS, *rResId.GetResMgr())), |
| aLinksVisitedCB(this, ResId( CB_LINKSVISITED, *rResId.GetResMgr())), |
| aLinksVisitedLB(this, ResId( LB_LINKSVISITED, *rResId.GetResMgr())), |
| aLinksVisitedWN(this, ResId( WN_LINKSVISITED, *rResId.GetResMgr())), |
| aSpellFT(this, ResId( FT_SPELL, *rResId.GetResMgr())), |
| aSpellLB(this, ResId( LB_SPELL, *rResId.GetResMgr())), |
| aSpellWN(this, ResId( WN_SPELL, *rResId.GetResMgr())), |
| aSmarttagsFT(this, ResId( FT_SMARTTAGS, *rResId.GetResMgr() )), |
| aSmarttagsLB(this, ResId( LB_SMARTTAGS, *rResId.GetResMgr() )), |
| aSmarttagsWN(this, ResId( WN_SMARTTAGS, *rResId.GetResMgr() )), |
| aWriterBackWN(this), |
| aWriterFT(this, ResId(FT_WRITER, *rResId.GetResMgr())), |
| aWrtTextGridFT(this, ResId( FT_WRITERTEXTGRID, *rResId.GetResMgr())), |
| aWrtTextGridLB(this, ResId( LB_WRITERTEXTGRID, *rResId.GetResMgr())), |
| aWrtTextGridWN(this, ResId( WN_WRITERTEXTGRID, *rResId.GetResMgr())), |
| aWrtFieldCB(this, ResId( CB_WRITERFIELDSHADINGS, *rResId.GetResMgr())), |
| aWrtFieldLB(this, ResId( LB_WRITERFIELDSHADINGS, *rResId.GetResMgr())), |
| aWrtFieldWN(this, ResId( WN_WRITERFIELDSHADINGS, *rResId.GetResMgr())), |
| aWrtIdxShadingBackCB(this, ResId( CB_WRITERIDXSHADINGS, *rResId.GetResMgr())), |
| aWrtIdxShadingBackLB(this, ResId( LB_WRITERIDXSHADINGS, *rResId.GetResMgr())), |
| aWrtIdxShadingBackWN(this, ResId( WN_WRITERIDXSHADINGS, *rResId.GetResMgr())), |
| aWrtScriptIndicatorFT(this, ResId( FT_WRITERSCRIPTINDICATOR, *rResId.GetResMgr())), |
| aWrtScriptIndicatorLB(this, ResId( LB_WRITERSCRIPTINDICATOR, *rResId.GetResMgr())), |
| aWrtScriptIndicatorWN(this, ResId( WN_WRITERSCRIPTINDICATOR, *rResId.GetResMgr())), |
| aWrtSectionBoundCB(this, ResId( CB_WRITERSECTIONBOUNDARIES, *rResId.GetResMgr())), |
| aWrtSectionBoundLB(this, ResId( LB_WRITERSECTIONBOUNDARIES, *rResId.GetResMgr())), |
| aWrtSectionBoundWN(this, ResId( WN_WRITERSECTIONBOUNDARIES, *rResId.GetResMgr())), |
| aWrtPageBreaksFT(this, ResId( FT_WRITERPAGEBREAKS, *rResId.GetResMgr())), |
| aWrtPageBreaksLB(this, ResId( LB_WRITERPAGEBREAKS, *rResId.GetResMgr())), |
| aWrtPageBreaksWN(this, ResId( WN_WRITERPAGEBREAKS, *rResId.GetResMgr())), |
| aWrtDirectCrsrFT(this, ResId( FT_WRITERDIRECTCURSOR, *rResId.GetResMgr())), |
| aWrtDirectCrsrLB(this, ResId( LB_WRITERDIRECTCURSOR, *rResId.GetResMgr())), |
| aWrtDirectCrsrWN(this, ResId( WN_WRITERDIRECTCURSOR, *rResId.GetResMgr())), |
| aHTMLBackWN(this), |
| aHTMLFT(this, ResId( FT_HTML, *rResId.GetResMgr())), |
| aHTMLSGMLFT(this, ResId( FT_HTMLSGML, *rResId.GetResMgr())), |
| aHTMLSGMLLB(this, ResId( LB_HTMLSGML, *rResId.GetResMgr())), |
| aHTMLSGMLWN(this, ResId( WN_HTMLSGML, *rResId.GetResMgr())), |
| aHTMLCommentFT(this, ResId( FT_HTMLCOMMENT, *rResId.GetResMgr())), |
| aHTMLCommentLB(this, ResId( LB_HTMLCOMMENT, *rResId.GetResMgr())), |
| aHTMLCommentWN(this, ResId( WN_HTMLCOMMENT, *rResId.GetResMgr())), |
| aHTMLKeywdFT(this, ResId( FT_HTMLKEYWORD, *rResId.GetResMgr())), |
| aHTMLKeywdLB(this, ResId( LB_HTMLKEYWORD, *rResId.GetResMgr())), |
| aHTMLKeywdWN(this, ResId( WN_HTMLKEYWORD, *rResId.GetResMgr())), |
| aHTMLUnknownFT(this, ResId( FT_HTMLUNKNOWN, *rResId.GetResMgr())), |
| aHTMLUnknownLB(this, ResId( LB_HTMLUNKNOWN, *rResId.GetResMgr())), |
| aHTMLUnknownWN(this, ResId( WN_HTMLUNKNOWN, *rResId.GetResMgr())), |
| aCalcBackWN(this), |
| aCalcFT(this, ResId( FT_CALC, *rResId.GetResMgr())), |
| aCalcGridFT(this, ResId( FT_CALCGRID, *rResId.GetResMgr())), |
| aCalcGridLB(this, ResId( LB_CALCGRID, *rResId.GetResMgr())), |
| aCalcGridWN(this, ResId( WN_CALCGRID, *rResId.GetResMgr())), |
| aCalcPageBreakFT(this, ResId( FT_CALCPAGEBREAK, *rResId.GetResMgr())), |
| aCalcPageBreakLB(this, ResId( LB_CALCPAGEBREAK, *rResId.GetResMgr())), |
| aCalcPageBreakWN(this, ResId( WN_CALCPAGEBREAK, *rResId.GetResMgr())), |
| aCalcPageBreakManualFT(this, ResId( FT_CALCPAGEBREAKMANUAL, *rResId.GetResMgr())), |
| aCalcPageBreakManualLB(this, ResId( LB_CALCPAGEBREAKMANUAL, *rResId.GetResMgr())), |
| aCalcPageBreakManualWN(this, ResId( WN_CALCPAGEBREAKMANUAL, *rResId.GetResMgr())), |
| aCalcPageBreakAutoFT(this, ResId( FT_CALCPAGEBREAKAUTO, *rResId.GetResMgr())), |
| aCalcPageBreakAutoLB(this, ResId( LB_CALCPAGEBREAKAUTO, *rResId.GetResMgr())), |
| aCalcPageBreakAutoWN(this, ResId( WN_CALCPAGEBREAKAUTO, *rResId.GetResMgr())), |
| aCalcDetectiveFT(this, ResId( FT_CALCDETECTIVE, *rResId.GetResMgr())), |
| aCalcDetectiveLB(this, ResId( LB_CALCDETECTIVE, *rResId.GetResMgr())), |
| aCalcDetectiveWN(this, ResId( WN_CALCDETECTIVE, *rResId.GetResMgr())), |
| aCalcDetectiveErrorFT(this, ResId( FT_CALCDETECTIVEERROR, *rResId.GetResMgr())), |
| aCalcDetectiveErrorLB(this, ResId( LB_CALCDETECTIVEERROR, *rResId.GetResMgr())), |
| aCalcDetectiveErrorWN(this, ResId( WN_CALCDETECTIVEERROR, *rResId.GetResMgr())), |
| aCalcReferenceFT(this, ResId( FT_CALCREFERENCE, *rResId.GetResMgr())), |
| aCalcReferenceLB(this, ResId( LB_CALCREFERENCE, *rResId.GetResMgr())), |
| aCalcReferenceWN(this, ResId( WN_CALCREFERENCE, *rResId.GetResMgr())), |
| aCalcNotesBackFT(this, ResId( FT_CALCNOTESBACKGROUND, *rResId.GetResMgr())), |
| aCalcNotesBackLB(this, ResId( LB_CALCNOTESBACKGROUND, *rResId.GetResMgr())), |
| aCalcNotesBackWN(this, ResId( WN_CALCNOTESBACKGROUND, *rResId.GetResMgr())), |
| aDrawBackWN(this), |
| aDrawFT(this, ResId( FT_DRAW, *rResId.GetResMgr())), |
| aDrawGridFT(this, ResId( FT_DRAWGRID, *rResId.GetResMgr())), |
| aDrawGridLB(this, ResId( LB_DRAWGRID, *rResId.GetResMgr())), |
| aDrawGridWN(this, ResId( WN_DRAWGRID, *rResId.GetResMgr())), |
| aBasicBackWN(this), |
| aBasicFT(this, ResId( FT_BASIC, *rResId.GetResMgr())), |
| aBasicIdentifierFT(this, ResId( FT_BASICIDENTIFIER, *rResId.GetResMgr())), |
| aBasicIdentifierLB(this, ResId( LB_BASICIDENTIFIER, *rResId.GetResMgr())), |
| aBasicIdentifierWN(this, ResId( WN_BASICIDENTIFIER, *rResId.GetResMgr())), |
| aBasicCommentFT(this, ResId( FT_BASICCOMMENT, *rResId.GetResMgr())), |
| aBasicCommentLB(this, ResId( LB_BASICCOMMENT, *rResId.GetResMgr())), |
| aBasicCommentWN(this, ResId( WN_BASICCOMMENT, *rResId.GetResMgr())), |
| aBasicNumberFT(this, ResId( FT_BASICNUMBER, *rResId.GetResMgr())), |
| aBasicNumberLB(this, ResId( LB_BASICNUMBER, *rResId.GetResMgr())), |
| aBasicNumberWN(this, ResId( WN_BASICNUMBER, *rResId.GetResMgr())), |
| aBasicStringFT(this, ResId( FT_BASICSTRING, *rResId.GetResMgr())), |
| aBasicStringLB(this, ResId( LB_BASICSTRING, *rResId.GetResMgr())), |
| aBasicStringWN(this, ResId( WN_BASICSTRING, *rResId.GetResMgr())), |
| aBasicOperatorFT(this, ResId( FT_BASICOPERATOR, *rResId.GetResMgr())), |
| aBasicOperatorLB(this, ResId( LB_BASICOPERATOR, *rResId.GetResMgr())), |
| aBasicOperatorWN(this, ResId( WN_BASICOPERATOR, *rResId.GetResMgr())), |
| aBasicKeywordFT(this, ResId( FT_BASICKEYWORD, *rResId.GetResMgr())), |
| aBasicKeywordLB(this, ResId( LB_BASICKEYWORD, *rResId.GetResMgr())), |
| aBasicKeywordWN(this, ResId( WN_BASICKEYWORD, *rResId.GetResMgr())), |
| aBasicErrorFT(this, ResId( FT_BASICERROR, *rResId.GetResMgr())), |
| aBasicErrorLB(this, ResId( LB_BASICERROR, *rResId.GetResMgr())), |
| aBasicErrorWN(this, ResId( WN_BASICERROR, *rResId.GetResMgr())), |
| |
| aSQLBackWN(this), |
| aSQLFT(this, ResId( FT_SQL_COMMAND, *rResId.GetResMgr())), |
| aSQLIdentifierFT(this, ResId( FT_SQLIDENTIFIER, *rResId.GetResMgr())), |
| aSQLIdentifierLB(this, ResId( LB_SQLIDENTIFIER, *rResId.GetResMgr())), |
| aSQLIdentifierWN(this, ResId( WN_SQLIDENTIFIER, *rResId.GetResMgr())), |
| |
| aSQLNumberFT(this, ResId( FT_SQLNUMBER, *rResId.GetResMgr())), |
| aSQLNumberLB(this, ResId( LB_SQLNUMBER, *rResId.GetResMgr())), |
| aSQLNumberWN(this, ResId( WN_SQLNUMBER, *rResId.GetResMgr())), |
| |
| aSQLStringFT(this, ResId( FT_SQLSTRING, *rResId.GetResMgr())), |
| aSQLStringLB(this, ResId( LB_SQLSTRING, *rResId.GetResMgr())), |
| aSQLStringWN(this, ResId( WN_SQLSTRING, *rResId.GetResMgr())), |
| |
| aSQLOperatorFT(this, ResId( FT_SQLOPERATOR, *rResId.GetResMgr())), |
| aSQLOperatorLB(this, ResId( LB_SQLOPERATOR, *rResId.GetResMgr())), |
| aSQLOperatorWN(this, ResId( WN_SQLOPERATOR, *rResId.GetResMgr())), |
| |
| aSQLKeywordFT(this, ResId( FT_SQLKEYWORD, *rResId.GetResMgr())), |
| aSQLKeywordLB(this, ResId( LB_SQLKEYWORD, *rResId.GetResMgr())), |
| aSQLKeywordWN(this, ResId( WN_SQLKEYWORD, *rResId.GetResMgr())), |
| |
| aSQLParameterFT(this, ResId( FT_SQLPARAMETER, *rResId.GetResMgr())), |
| aSQLParameterLB(this, ResId( LB_SQLPARAMETER, *rResId.GetResMgr())), |
| aSQLParameterWN(this, ResId( WN_SQLPARAMETER, *rResId.GetResMgr())), |
| |
| aSQLCommentFT(this, ResId( FT_SQLCOMMENT, *rResId.GetResMgr())), |
| aSQLCommentLB(this, ResId( LB_SQLCOMMENT, *rResId.GetResMgr())), |
| aSQLCommentWN(this, ResId( WN_SQLCOMMENT, *rResId.GetResMgr())) |
| { |
| aFixedTexts.resize(ColorConfigEntryCount); |
| aCheckBoxes.resize(ColorConfigEntryCount); |
| aColorBoxes.resize(ColorConfigEntryCount); |
| aWindows.resize(ColorConfigEntryCount); |
| |
| aFixedTexts[DOCCOLOR ] = &aDocColorFT; |
| aCheckBoxes[DOCBOUNDARIES ] = &aDocBoundCB ; |
| aFixedTexts[APPBACKGROUND ] = &aAppBackFT; |
| aCheckBoxes[OBJECTBOUNDARIES ] = &aObjBoundCB ; |
| aCheckBoxes[TABLEBOUNDARIES ] = &aTableBoundCB ; |
| aFixedTexts[FONTCOLOR ] = &aFontColorFT ; |
| aCheckBoxes[LINKS ] = &aLinksCB ; |
| aCheckBoxes[LINKSVISITED ] = &aLinksVisitedCB ; |
| aFixedTexts[SPELL ]=& aSpellFT; |
| aFixedTexts[SMARTTAGS ]=& aSmarttagsFT; |
| aFixedTexts[WRITERTEXTGRID ]=& aWrtTextGridFT; |
| aCheckBoxes[WRITERFIELDSHADINGS ] = &aWrtFieldCB ; |
| aCheckBoxes[WRITERIDXSHADINGS ] = &aWrtIdxShadingBackCB ; |
| aFixedTexts[WRITERDIRECTCURSOR ]=& aWrtDirectCrsrFT; |
| aFixedTexts[WRITERSCRIPTINDICATOR ]=& aWrtScriptIndicatorFT; |
| aCheckBoxes[WRITERSECTIONBOUNDARIES ]=& aWrtSectionBoundCB; |
| aFixedTexts[HTMLSGML ]=& aHTMLSGMLFT; |
| aFixedTexts[HTMLCOMMENT ]=& aHTMLCommentFT; |
| aFixedTexts[HTMLKEYWORD ]=& aHTMLKeywdFT; |
| aFixedTexts[HTMLUNKNOWN ]=& aHTMLUnknownFT; |
| aFixedTexts[CALCGRID ] = &aCalcGridFT ; |
| aFixedTexts[CALCPAGEBREAK ] = &aCalcPageBreakFT; |
| aFixedTexts[CALCPAGEBREAKMANUAL ] = &aCalcPageBreakManualFT; |
| aFixedTexts[CALCPAGEBREAKAUTOMATIC ] = &aCalcPageBreakAutoFT; |
| aFixedTexts[CALCDETECTIVE ]=& aCalcDetectiveFT; |
| aFixedTexts[CALCDETECTIVEERROR ]=& aCalcDetectiveErrorFT; |
| aFixedTexts[CALCREFERENCE ]=& aCalcReferenceFT; |
| aFixedTexts[CALCNOTESBACKGROUND ]=& aCalcNotesBackFT; |
| aFixedTexts[WRITERPAGEBREAKS] = &aWrtPageBreaksFT; |
| aFixedTexts[DRAWGRID ] = &aDrawGridFT ; |
| aFixedTexts[BASICIDENTIFIER ] = &aBasicIdentifierFT; |
| aFixedTexts[BASICCOMMENT ] = &aBasicCommentFT; |
| aFixedTexts[BASICNUMBER ] = &aBasicNumberFT; |
| aFixedTexts[BASICSTRING ] = &aBasicStringFT; |
| aFixedTexts[BASICOPERATOR ] = &aBasicOperatorFT; |
| aFixedTexts[BASICKEYWORD ] = &aBasicKeywordFT; |
| aFixedTexts[BASICERROR ] = &aBasicErrorFT; |
| aFixedTexts[SQLIDENTIFIER ] = &aSQLIdentifierFT; |
| aFixedTexts[SQLNUMBER ] = &aSQLNumberFT; |
| aFixedTexts[SQLSTRING ] = &aSQLStringFT; |
| aFixedTexts[SQLOPERATOR ] = &aSQLOperatorFT; |
| aFixedTexts[SQLKEYWORD ] = &aSQLKeywordFT; |
| aFixedTexts[SQLPARAMETER ] = &aSQLParameterFT; |
| aFixedTexts[SQLCOMMENT ] = &aSQLCommentFT; |
| |
| aColorBoxes[DOCCOLOR ] = &aDocColorLB ; |
| aColorBoxes[DOCBOUNDARIES ] = &aDocBoundLB ; |
| aColorBoxes[APPBACKGROUND ] = &aAppBackLB ; |
| aColorBoxes[OBJECTBOUNDARIES ] = &aObjBoundLB ; |
| aColorBoxes[TABLEBOUNDARIES ] = &aTableBoundLB ; |
| aColorBoxes[FONTCOLOR ] = &aFontColorLB ; |
| aColorBoxes[LINKS ] = &aLinksLB ; |
| aColorBoxes[LINKSVISITED ] = &aLinksVisitedLB ; |
| aColorBoxes[SPELL ] = &aSpellLB ; |
| aColorBoxes[SMARTTAGS ] = &aSmarttagsLB ; |
| aColorBoxes[WRITERTEXTGRID ] = &aWrtTextGridLB ; |
| aColorBoxes[WRITERFIELDSHADINGS ] = &aWrtFieldLB ; |
| aColorBoxes[WRITERIDXSHADINGS ] = &aWrtIdxShadingBackLB ; |
| aColorBoxes[WRITERDIRECTCURSOR ] = &aWrtDirectCrsrLB ; |
| aColorBoxes[WRITERSCRIPTINDICATOR ] = &aWrtScriptIndicatorLB ; |
| aColorBoxes[WRITERSECTIONBOUNDARIES ] = &aWrtSectionBoundLB ; |
| aColorBoxes[WRITERPAGEBREAKS] = &aWrtPageBreaksLB; |
| aColorBoxes[HTMLSGML ] = &aHTMLSGMLLB ; |
| aColorBoxes[HTMLCOMMENT ] = &aHTMLCommentLB ; |
| aColorBoxes[HTMLKEYWORD ] = &aHTMLKeywdLB ; |
| aColorBoxes[HTMLUNKNOWN ] = &aHTMLUnknownLB ; |
| aColorBoxes[CALCGRID ] = &aCalcGridLB ; |
| aColorBoxes[CALCPAGEBREAK ] = &aCalcPageBreakLB ; |
| aColorBoxes[CALCPAGEBREAKMANUAL ] = &aCalcPageBreakManualLB ; |
| aColorBoxes[CALCPAGEBREAKAUTOMATIC]= &aCalcPageBreakAutoLB ; |
| aColorBoxes[CALCDETECTIVE ] = &aCalcDetectiveLB ; |
| aColorBoxes[CALCDETECTIVEERROR ] = &aCalcDetectiveErrorLB ; |
| aColorBoxes[CALCREFERENCE ] = &aCalcReferenceLB ; |
| aColorBoxes[CALCNOTESBACKGROUND ] = &aCalcNotesBackLB ; |
| aColorBoxes[DRAWGRID ] = &aDrawGridLB ; |
| aColorBoxes[BASICIDENTIFIER ] = &aBasicIdentifierLB; |
| aColorBoxes[BASICCOMMENT ] = &aBasicCommentLB; |
| aColorBoxes[BASICNUMBER ] = &aBasicNumberLB; |
| aColorBoxes[BASICSTRING ] = &aBasicStringLB; |
| aColorBoxes[BASICOPERATOR ] = &aBasicOperatorLB; |
| aColorBoxes[BASICKEYWORD ] = &aBasicKeywordLB; |
| aColorBoxes[BASICERROR ] = &aBasicErrorLB; |
| aColorBoxes[SQLIDENTIFIER ] = &aSQLIdentifierLB; |
| aColorBoxes[SQLNUMBER ] = &aSQLNumberLB; |
| aColorBoxes[SQLSTRING ] = &aSQLStringLB; |
| aColorBoxes[SQLOPERATOR ] = &aSQLOperatorLB; |
| aColorBoxes[SQLKEYWORD ] = &aSQLKeywordLB; |
| aColorBoxes[SQLPARAMETER ] = &aSQLParameterLB; |
| aColorBoxes[SQLCOMMENT ] = &aSQLCommentLB; |
| |
| aWindows[DOCCOLOR ] = &aDocColorWN ; |
| aWindows[DOCBOUNDARIES ] = &aDocBoundWN ; |
| aWindows[APPBACKGROUND ] = &aAppBackWN ; |
| aWindows[OBJECTBOUNDARIES ] = &aObjBoundWN ; |
| aWindows[TABLEBOUNDARIES ] = &aTableBoundWN ; |
| aWindows[FONTCOLOR ] = &aFontColorWN ; |
| aWindows[LINKS ] = &aLinksWN ; |
| aWindows[LINKSVISITED ] = &aLinksVisitedWN ; |
| aWindows[SPELL ] = &aSpellWN ; |
| aWindows[SMARTTAGS ] = &aSmarttagsWN ; |
| aWindows[WRITERTEXTGRID ] = &aWrtTextGridWN ; |
| aWindows[WRITERFIELDSHADINGS ] = &aWrtFieldWN ; |
| aWindows[WRITERIDXSHADINGS ] = &aWrtIdxShadingBackWN ; |
| aWindows[WRITERDIRECTCURSOR ] = &aWrtDirectCrsrWN ; |
| aWindows[WRITERSCRIPTINDICATOR ] = &aWrtScriptIndicatorWN ; |
| aWindows[WRITERSECTIONBOUNDARIES ] = &aWrtSectionBoundWN ; |
| aWindows[WRITERPAGEBREAKS] = &aWrtPageBreaksWN; |
| aWindows[HTMLSGML ] = &aHTMLSGMLWN ; |
| aWindows[HTMLCOMMENT ] = &aHTMLCommentWN ; |
| aWindows[HTMLKEYWORD ] = &aHTMLKeywdWN ; |
| aWindows[HTMLUNKNOWN ] = &aHTMLUnknownWN ; |
| aWindows[CALCGRID ] = &aCalcGridWN ; |
| aWindows[CALCPAGEBREAK ] = &aCalcPageBreakWN ; |
| aWindows[CALCPAGEBREAKMANUAL ] = &aCalcPageBreakManualWN ; |
| aWindows[CALCPAGEBREAKAUTOMATIC] = &aCalcPageBreakAutoWN ; |
| aWindows[CALCDETECTIVE ] = &aCalcDetectiveWN ; |
| aWindows[CALCDETECTIVEERROR ] = &aCalcDetectiveErrorWN ; |
| aWindows[CALCREFERENCE ] = &aCalcReferenceWN ; |
| aWindows[CALCNOTESBACKGROUND ] = &aCalcNotesBackWN ; |
| aWindows[DRAWGRID ] = &aDrawGridWN ; |
| aWindows[BASICIDENTIFIER ] = &aBasicIdentifierWN; |
| aWindows[BASICCOMMENT ] = &aBasicCommentWN; |
| aWindows[BASICNUMBER ] = &aBasicNumberWN; |
| aWindows[BASICSTRING ] = &aBasicStringWN; |
| aWindows[BASICOPERATOR ] = &aBasicOperatorWN; |
| aWindows[BASICKEYWORD ] = &aBasicKeywordWN; |
| aWindows[BASICERROR ] = &aBasicErrorWN; |
| aWindows[SQLIDENTIFIER ] = &aSQLIdentifierWN; |
| aWindows[SQLNUMBER ] = &aSQLNumberWN; |
| aWindows[SQLSTRING ] = &aSQLStringWN; |
| aWindows[SQLOPERATOR ] = &aSQLOperatorWN; |
| aWindows[SQLKEYWORD ] = &aSQLKeywordWN; |
| aWindows[SQLPARAMETER ] = &aSQLParameterWN; |
| aWindows[SQLCOMMENT ] = &aSQLCommentWN; |
| |
| aChapters.push_back(&aGeneralFT); aChapterWins.push_back(&aGeneralBackWN); |
| aChapters.push_back(&aWriterFT); aChapterWins.push_back(&aWriterBackWN); |
| aChapters.push_back(&aHTMLFT); aChapterWins.push_back(&aHTMLBackWN); |
| aChapters.push_back(&aCalcFT); aChapterWins.push_back(&aCalcBackWN); |
| aChapters.push_back(&aDrawFT); aChapterWins.push_back(&aDrawBackWN); |
| aChapters.push_back(&aBasicFT); aChapterWins.push_back(&aBasicBackWN); |
| aChapters.push_back(&aSQLFT); aChapterWins.push_back(&aSQLBackWN); |
| |
| // calculate heights of groups which can be hidden |
| aChapters[GROUP_WRITER ]->SetGroupHeight( aChapters[GROUP_HTML]->GetPosPixel().Y() - aChapters[GROUP_WRITER]->GetPosPixel().Y() ); |
| aChapters[GROUP_HTML ]->SetGroupHeight( aChapters[GROUP_CALC]->GetPosPixel().Y() - aChapters[GROUP_HTML]->GetPosPixel().Y() ); |
| aChapters[GROUP_CALC ]->SetGroupHeight( aChapters[GROUP_DRAW]->GetPosPixel().Y() - aChapters[GROUP_CALC]->GetPosPixel().Y() ); |
| aChapters[GROUP_DRAW ]->SetGroupHeight( aChapters[GROUP_BASIC]->GetPosPixel().Y() - aChapters[GROUP_DRAW]->GetPosPixel().Y() ); |
| aChapters[GROUP_BASIC ]->SetGroupHeight( aChapters[GROUP_SQL]->GetPosPixel().Y() - aChapters[GROUP_BASIC]->GetPosPixel().Y() ); |
| |
| ExtendedColorConfig aExtConfig; |
| sal_Int32 nExtCount = aExtConfig.GetComponentCount(); |
| if ( nExtCount ) |
| { |
| // calculate position behind last chapter |
| sal_Int32 nLastY = aSQLCommentWN.GetPosPixel().Y() + aSQLCommentWN.GetSizePixel().Height(); |
| nLastY = nLastY + LogicToPixel( Size( 0, 3 ), MAP_APPFONT ).Height(); |
| // to calculate the number of lines |
| sal_Int32 nHeight = LogicToPixel( Size( 0, _LINE_HEIGHT ), MAP_APPFONT ).Height(); |
| sal_Int32 nLineNum = nLastY / nHeight; |
| |
| Point aFixedPos = LogicToPixel( Point( _FT_XPOS, nLineNum * _LINE_HEIGHT ), MAP_APPFONT ); |
| Point aLBPos = LogicToPixel( Point( _LB_XPOS, nLineNum * _LINE_HEIGHT ), MAP_APPFONT ); |
| Size aFixedSize = LogicToPixel( Size( _FT_WIDTH , _FT_HEIGHT ), MAP_APPFONT ); |
| Size aLBSize = LogicToPixel( Size( _LB_WIDTH , _LB_HEIGHT ), MAP_APPFONT ); |
| Size aWinSize = LogicToPixel( Size( _WN_WIDTH , _WN_HEIGHT ), MAP_APPFONT ); |
| |
| for (sal_Int32 j = 0; j < nExtCount; ++j) |
| { |
| ::rtl::OUString sComponentName = aExtConfig.GetComponentName(j); |
| aChapterWins.push_back(new Window(this)); |
| ::boost::shared_ptr<SvxExtFixedText_Impl> pTitle(new SvxExtFixedText_Impl(this,ResId(FT_SQL_COMMAND, *rResId.GetResMgr()))); |
| m_aExtensionTitles.push_back(pTitle); |
| pTitle->SetPosSizePixel(LogicToPixel( Point( _FT_XPOS, nLineNum * _LINE_HEIGHT ), MAP_APPFONT ),aFixedSize); |
| pTitle->SetText(aExtConfig.GetComponentDisplayName(sComponentName)); |
| aChapters.push_back(pTitle.get()); |
| ++nLineNum; |
| sal_Int32 nColorCount = aExtConfig.GetComponentColorCount(sComponentName); |
| for (sal_Int32 i = 0; i < nColorCount; ++i,++nLineNum) |
| { |
| ExtendedColorConfigValue aColorEntry = aExtConfig.GetComponentColorConfigValue(sComponentName,i); |
| FixedText* pFixedText = new FixedText(this,ResId(FT_BASICERROR, *rResId.GetResMgr())); |
| pFixedText->SetPosSizePixel(LogicToPixel( Point( _FT_XPOS, nLineNum * _LINE_HEIGHT ), MAP_APPFONT ),aFixedSize); |
| pFixedText->SetText(aColorEntry.getDisplayName()); |
| aFixedTexts.push_back(pFixedText); |
| aCheckBoxes.push_back(NULL); // no checkboxes |
| ColorListBox* pColorBox = new ColorListBox(this,ResId(LB_BASICERROR, *rResId.GetResMgr())); |
| pColorBox->SetPosSizePixel(LogicToPixel( Point( _LB_XPOS, nLineNum * _LINE_HEIGHT ), MAP_APPFONT ),aLBSize); |
| aColorBoxes.push_back(pColorBox); |
| Window* pWin = new Window(this,ResId(WN_BASICERROR, *rResId.GetResMgr())); |
| pWin->SetPosSizePixel(LogicToPixel( Point( _WN_XPOS, nLineNum * _LINE_HEIGHT ), MAP_APPFONT ),aWinSize); |
| aWindows.push_back(pWin); |
| } // for (sal_Int32 i = 0; i < nExtCount; ++i,++nLineNum) |
| } |
| } |
| |
| FreeResource(); |
| |
| Color TempColor(COL_TRANSPARENT); |
| Wallpaper aTransparentWall(TempColor); |
| sal_Int32 nWinWidth = GetSizePixel().Width(); |
| sal_Int32 nFTHeight = aChapters[0]->GetSizePixel().Height(); |
| Color aBackColor; |
| const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); |
| sal_Bool bHighContrast = rStyleSettings.GetHighContrastMode(); |
| if ( bHighContrast ) |
| aBackColor = rStyleSettings.GetShadowColor(); |
| else |
| aBackColor = Color( COL_LIGHTGRAY); |
| sal_Int32 nCount = aChapterWins.size(); |
| for(sal_Int32 i = 0; i < nCount; ++i) |
| { |
| if ( lcl_isGroupVisible( i, m_aModuleOptions ) ) |
| { |
| Font aFont = aChapters[i]->GetFont(); |
| aFont.SetWeight(WEIGHT_BOLD); |
| aChapters[i]->SetFont(aFont); |
| aChapters[i]->SetBackground(aTransparentWall); |
| aChapterWins[i]->SetPosSizePixel( Point(0, aChapters[i]->GetPosPixel().Y()), |
| Size(nWinWidth, nFTHeight)); |
| aChapterWins[i]->SetBackground(Wallpaper(aBackColor)); |
| aChapterWins[i]->Show(); |
| } |
| else |
| { |
| aChapters[i]->Hide(); |
| aChapterWins[i]->Hide(); |
| } |
| } |
| Color aTextColor; |
| sal_Bool bSetTextColor = sal_False; |
| //#104195# when the window color is the same as the text color it has to be changed |
| Color aWinCol = rStyleSettings.GetWindowColor(); |
| Color aRCheckCol = rStyleSettings.GetRadioCheckTextColor(); |
| if(aWinCol == aRCheckCol ) |
| { |
| bSetTextColor = sal_True; |
| aRCheckCol.Invert(); |
| //if inversion didn't work (gray) then it's set to black |
| if(aRCheckCol == aWinCol) |
| aRCheckCol = Color(COL_BLACK); |
| } // if(aWinCol == aRCheckCol ) |
| nCount = aFixedTexts.size(); |
| sal_Int16 nGroup = GROUP_UNKNOWN; |
| for( sal_Int32 i = 0; i < nCount; i++ ) |
| { |
| if(ANCHOR == i) |
| continue; |
| sal_Int16 nNewGroup = lcl_getGroup(i); |
| sal_Bool bShow = lcl_isGroupVisible( nNewGroup, m_aModuleOptions ); |
| |
| if ( nNewGroup > nGroup ) |
| { |
| nGroup = nNewGroup; |
| if ( bShow && nGroup >= GROUP_CALC ) |
| { |
| SetNewPosition( i, aChapters[nGroup] ); |
| SetNewPosition( i, aChapterWins[nGroup] ); |
| } |
| } |
| if(aCheckBoxes[i]) |
| { |
| if ( bShow ) |
| SetNewPosition( i, aCheckBoxes[i] ); |
| else |
| aCheckBoxes[i]->Hide(); |
| aCheckBoxes[i]->SetBackground(aTransparentWall); |
| aCheckBoxes[i]->SetHelpId( aColorCBHids[i] ); |
| if(bSetTextColor) |
| aCheckBoxes[i]->SetTextColor(aRCheckCol); |
| } |
| if(aFixedTexts[i]) |
| { |
| if ( bShow ) |
| SetNewPosition( i, aFixedTexts[i] ); |
| else |
| aFixedTexts[i]->Hide(); |
| aFixedTexts[i]->SetBackground(aTransparentWall); |
| if(bSetTextColor) |
| aFixedTexts[i]->SetTextColor(aRCheckCol); |
| } |
| if(aWindows[i]) |
| { |
| if ( bShow ) |
| SetNewPosition( i, aWindows[i] ); |
| else |
| aWindows[i]->Hide(); |
| aWindows[i]->SetBorderStyle(WINDOW_BORDER_MONO); |
| } |
| |
| if ( aColorBoxes[i] ) |
| { |
| if ( bShow ) |
| SetNewPosition( i, aColorBoxes[i] ); |
| else |
| aColorBoxes[i]->Hide(); |
| } |
| } |
| |
| XColorListSharedPtr aColorTable(XPropertyListFactory::CreateSharedXColorList(SvtPathOptions().GetPalettePath())); |
| aColorBoxes[0]->InsertAutomaticEntry(); |
| for( sal_Int32 i = 0; i < aColorTable->Count(); i++ ) |
| { |
| XColorEntry* pEntry = aColorTable->GetColor(i); |
| aColorBoxes[0]->InsertEntry( pEntry->GetColor(), pEntry->GetName() ); |
| } |
| |
| aColorBoxes[0]->SetHelpId( aColorLBHids[0] ); |
| aColorBoxes[0]->SetDropDownLineCount( 10 ); |
| const sal_Int32 nColorLBHids = sizeof( aColorLBHids )/ sizeof( aColorLBHids[0] ); |
| |
| for( sal_Int32 i = 1; i < nCount; i++ ) |
| { |
| if( !aColorBoxes[i] ) |
| continue; |
| |
| aColorBoxes[i]->CopyEntries( *aColorBoxes[0] ); |
| if( i < nColorLBHids ) |
| aColorBoxes[i]->SetHelpId( aColorLBHids[i] ); |
| aColorBoxes[i]->SetDropDownLineCount( 10 ); |
| } |
| } |
| /* -----------------------------27.03.2002 11:04------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| ColorConfigWindow_Impl::~ColorConfigWindow_Impl() |
| { |
| aChapters.clear(); |
| ::std::vector< SvxExtFixedText_Impl*>().swap(aChapters); |
| |
| |
| sal_Int32 nCount = aFixedTexts.size(); |
| for (sal_Int32 i = ColorConfigEntryCount; i < nCount; ++i) |
| { |
| delete aFixedTexts[i]; |
| delete aCheckBoxes[i]; |
| delete aColorBoxes[i]; |
| delete aWindows[i]; |
| } |
| for (sal_uInt32 i = GROUP_COUNT; i < aChapterWins.size(); ++i) |
| delete aChapterWins[i]; |
| aChapterWins.clear(); |
| ::std::vector< Window*>().swap(aChapterWins); |
| } |
| /* -----------------------------2002/06/20 12:48------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void ColorConfigWindow_Impl::DataChanged( const DataChangedEvent& rDCEvt ) |
| { |
| Window::DataChanged( rDCEvt ); |
| if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && |
| (rDCEvt.GetFlags() & SETTINGS_STYLE) ) |
| { |
| const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); |
| sal_Bool bHighContrast = rStyleSettings.GetHighContrastMode(); |
| Color aBackColor( bHighContrast ? COL_TRANSPARENT : COL_LIGHTGRAY); |
| ::std::vector< Window* >::iterator aIter = aChapterWins.begin(); |
| ::std::vector< Window* >::iterator aEnd = aChapterWins.end(); |
| for(;aIter != aEnd; ++aIter ) |
| (*aIter)->SetBackground(Wallpaper(aBackColor)); |
| SetBackground(Wallpaper(rStyleSettings.GetWindowColor())); |
| } |
| } |
| /* -----------------------------2002/06/26 10:49------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void SvxExtFixedText_Impl::DataChanged(const DataChangedEvent& rDCEvt) |
| { |
| FixedText::DataChanged(rDCEvt); |
| Color TempColor(COL_TRANSPARENT); |
| Wallpaper aTransparentWall(TempColor); |
| if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && |
| (rDCEvt.GetFlags() & SETTINGS_STYLE) ) |
| { |
| Font aFont = GetFont(); |
| aFont.SetWeight(WEIGHT_BOLD); |
| SetFont(aFont); |
| SetBackground(aTransparentWall); |
| } |
| } |
| |
| void ColorConfigWindow_Impl::SetNewPosition( sal_Int32 _nFeature, Window* _pWin ) |
| { |
| DBG_ASSERT( _pWin, "ColorConfigWindow_Impl::SetNewPosition(): no window" ); |
| |
| // calculate the overall height of the invisible groups |
| long nDelta = 0; |
| sal_Int16 nGroup = lcl_getGroup( _nFeature ) - 1; |
| while ( nGroup > 0 ) // GROUP_GENERAL (0) is always visible |
| { |
| if ( !lcl_isGroupVisible( nGroup, m_aModuleOptions ) ) |
| nDelta += aChapters[nGroup]->GetGroupHeight(); |
| nGroup--; |
| } |
| |
| // move this window to its new position |
| if ( nDelta > 0 ) |
| { |
| Point aPos = _pWin->GetPosPixel(); |
| aPos.Y() -= nDelta; |
| _pWin->SetPosPixel( aPos ); |
| } |
| } |
| |
| /* -----------------------------08.04.2002 17:10------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void ColorConfigWindow_Impl::Command( const CommandEvent& rCEvt ) |
| { |
| GetParent()->Command(rCEvt); |
| } |
| /* -----------------------------25.03.2002 10:44------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| class ColorConfigCtrl_Impl : public Control |
| { |
| HeaderBar aHeaderHB; |
| ScrollBar aVScroll; |
| |
| String sOn; |
| String sUIElem; |
| String sColSetting; |
| String sPreview; |
| ColorConfigWindow_Impl aScrollWindow; |
| |
| EditableColorConfig* pColorConfig; |
| EditableExtendedColorConfig* pExtColorConfig; |
| |
| long nScrollPos; |
| |
| DECL_LINK(ScrollHdl, ScrollBar*); |
| DECL_LINK(ClickHdl, CheckBox*); |
| DECL_LINK(ColorHdl, ColorListBox*); |
| DECL_LINK(ControlFocusHdl, Control*); |
| |
| virtual long PreNotify( NotifyEvent& rNEvt ); |
| virtual void Command( const CommandEvent& rCEvt ); |
| virtual void DataChanged( const DataChangedEvent& rDCEvt ); |
| public: |
| ColorConfigCtrl_Impl(Window* pParent, const ResId& rResId ); |
| ~ColorConfigCtrl_Impl(); |
| |
| void SetConfig(EditableColorConfig& rConfig) {pColorConfig = &rConfig;} |
| void SetExtendedConfig(EditableExtendedColorConfig& rConfig) {pExtColorConfig = &rConfig;} |
| void Update(); |
| sal_Int32 GetScrollPosition() {return aVScroll.GetThumbPos();} |
| void SetScrollPosition(sal_Int32 nSet) |
| { |
| aVScroll.SetThumbPos(nSet); |
| ScrollHdl(&aVScroll); |
| } |
| }; |
| /* -----------------------------25.03.2002 17:09------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| ColorConfigCtrl_Impl::ColorConfigCtrl_Impl( |
| Window* pParent, const ResId& rResId) : |
| Control(pParent, rResId), |
| |
| |
| aHeaderHB(this, WB_BUTTONSTYLE | WB_BOTTOMBORDER), |
| aVScroll(this, ResId(VB_VSCROLL, *rResId.GetResMgr())), |
| sOn( ResId(ST_ON, *rResId.GetResMgr())), |
| sUIElem( ResId(ST_UIELEM, *rResId.GetResMgr())), |
| sColSetting( ResId(ST_COLSET, *rResId.GetResMgr())), |
| sPreview( ResId(ST_PREVIEW, *rResId.GetResMgr())), |
| aScrollWindow(this, ResId(WN_SCROLL, *rResId.GetResMgr())), |
| |
| pColorConfig(0), |
| pExtColorConfig(0), |
| nScrollPos(0) |
| { |
| FreeResource(); |
| |
| const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); |
| aScrollWindow.SetBackground(Wallpaper(rStyleSettings.GetFieldColor())); |
| aScrollWindow.SetHelpId( HID_OPTIONS_COLORCONFIG_COLORLIST_WIN ); |
| aVScroll.EnableDrag(); |
| aVScroll.Show(); |
| aHeaderHB.SetPosSizePixel( |
| Point(0,0), |
| Size(GetOutputSizePixel().Width(), aVScroll.GetPosPixel().Y())); |
| sal_Int32 nFirstWidth = aScrollWindow.aGeneralFT.GetPosPixel().X(); |
| sal_Int32 nSecondWidth = aScrollWindow.aColorBoxes[0]->GetPosPixel().X() - nFirstWidth; |
| sal_Int32 nThirdWidth = aScrollWindow.aWindows[0]->GetPosPixel().X() - nFirstWidth - nSecondWidth; |
| |
| const WinBits nHeadBits = HIB_VCENTER | HIB_FIXED| HIB_FIXEDPOS; |
| aHeaderHB.InsertItem( 1, sOn, nFirstWidth, (sal_uInt16)nHeadBits|HIB_CENTER); |
| aHeaderHB.InsertItem( 2, sUIElem, nSecondWidth, (sal_uInt16)nHeadBits|HIB_LEFT); |
| aHeaderHB.InsertItem( 3, sColSetting, nThirdWidth, (sal_uInt16)nHeadBits|HIB_LEFT); |
| aHeaderHB.InsertItem( 4, sPreview, |
| aHeaderHB.GetSizePixel().Width() - nFirstWidth - nSecondWidth - nThirdWidth, (sal_uInt16)nHeadBits|HIB_LEFT); |
| aHeaderHB.Show(); |
| |
| aVScroll.SetRangeMin(0); |
| sal_Int32 nScrollOffset = aScrollWindow.aColorBoxes[1]->GetPosPixel().Y() - aScrollWindow.aColorBoxes[0]->GetPosPixel().Y(); |
| sal_Int32 nVisibleEntries = aScrollWindow.GetSizePixel().Height() / nScrollOffset; |
| |
| aVScroll.SetRangeMax(aScrollWindow.aCheckBoxes.size() + aScrollWindow.aChapters.size() ); |
| // static: minus three for ANCHOR, DRAWFILL and DRAWDRAWING |
| aVScroll.SetRangeMax( aVScroll.GetRangeMax() - 3 ); |
| // dynamic: calculate the hidden lines |
| long nInvisibleLines = 0; |
| sal_Int16 nGroup = GROUP_UNKNOWN; |
| sal_Int32 nCount = aScrollWindow.aCheckBoxes.size(); |
| for ( sal_Int32 i = 0; i < nCount; i++ ) |
| { |
| if ( ANCHOR == i || DRAWFILL == i || DRAWDRAWING == i ) // not used at the moment |
| continue; |
| sal_Int16 nNewGroup = lcl_getGroup(i); |
| sal_Bool bVisible = lcl_isGroupVisible( nNewGroup, aScrollWindow.GetModuleOptions() ); |
| if ( !bVisible ) |
| nInvisibleLines++; |
| if ( nNewGroup > nGroup ) |
| { |
| nGroup = nNewGroup; |
| if ( !bVisible ) |
| nInvisibleLines++; |
| } |
| } |
| aVScroll.SetRangeMax( aVScroll.GetRangeMax() - nInvisibleLines ); |
| |
| aVScroll.SetPageSize( nVisibleEntries - 1 ); |
| aVScroll.SetVisibleSize(nVisibleEntries); |
| Link aScrollLink = LINK(this, ColorConfigCtrl_Impl, ScrollHdl); |
| aVScroll.SetScrollHdl(aScrollLink); |
| aVScroll.SetEndScrollHdl(aScrollLink); |
| |
| Link aCheckLink = LINK(this, ColorConfigCtrl_Impl, ClickHdl); |
| Link aColorLink = LINK(this, ColorConfigCtrl_Impl, ColorHdl); |
| Link aGetFocusLink = LINK(this, ColorConfigCtrl_Impl, ControlFocusHdl); |
| for( sal_Int16 i = 0; i < nCount; i++ ) |
| { |
| if(aScrollWindow.aColorBoxes[i]) |
| { |
| aScrollWindow.aColorBoxes[i]->SetSelectHdl(aColorLink); |
| aScrollWindow.aColorBoxes[i]->SetGetFocusHdl(aGetFocusLink); |
| } |
| if(aScrollWindow.aCheckBoxes[i]) |
| { |
| aScrollWindow.aCheckBoxes[i]->SetClickHdl(aCheckLink); |
| aScrollWindow.aCheckBoxes[i]->SetGetFocusHdl(aGetFocusLink); |
| } |
| } |
| } |
| /* -----------------------------27.03.2002 10:46------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| ColorConfigCtrl_Impl::~ColorConfigCtrl_Impl() |
| { |
| } |
| /* -----------------------------25.03.2002 17:19------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void ColorConfigCtrl_Impl::Update() |
| { |
| DBG_ASSERT(pColorConfig, "Configuration not set" ); |
| sal_Int32 i; |
| for( i = 0; i < ColorConfigEntryCount; i++ ) |
| { |
| if(ANCHOR == i) |
| continue; |
| const ColorConfigValue& rColorEntry = pColorConfig->GetColorValue(ColorConfigEntry(i)); |
| if(COL_AUTO == (sal_uInt32)rColorEntry.nColor) |
| { |
| if(aScrollWindow.aColorBoxes[i]) |
| aScrollWindow.aColorBoxes[i]->SelectEntryPos(0); |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->SetBackground( |
| Wallpaper(ColorConfig::GetDefaultColor((ColorConfigEntry) i))); |
| } |
| else |
| { |
| Color aColor(rColorEntry.nColor); |
| if(aScrollWindow.aColorBoxes[i]) |
| aScrollWindow.aColorBoxes[i]->SelectEntry( aColor ); |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->SetBackground(Wallpaper(aColor)); |
| } |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->Invalidate(); |
| if(aScrollWindow.aCheckBoxes[i]) |
| aScrollWindow.aCheckBoxes[i]->Check(rColorEntry.bIsVisible); |
| } // for( i = 0; i < ColorConfigEntryCount; i++ ) |
| |
| |
| sal_Int32 nExtCount = pExtColorConfig->GetComponentCount(); |
| sal_Int32 nCount = aScrollWindow.aCheckBoxes.size(); |
| sal_Int32 nPos = 0; |
| i = ColorConfigEntryCount; |
| for (sal_Int32 j = 0; j < nExtCount; ++j) |
| { |
| ::rtl::OUString sComponentName = pExtColorConfig->GetComponentName(j); |
| sal_Int32 nColorCount = pExtColorConfig->GetComponentColorCount(sComponentName); |
| |
| for( sal_Int32 k = 0; i < nCount && k < nColorCount; ++i ,++nPos,++k) |
| { |
| if(aScrollWindow.aColorBoxes[i]) |
| { |
| ExtendedColorConfigValue aColorEntry = pExtColorConfig->GetComponentColorConfigValue(sComponentName,k); |
| Color aColor(aColorEntry.getColor()); |
| if(aColorEntry.getDefaultColor() == aColorEntry.getColor() ) |
| { |
| aScrollWindow.aColorBoxes[i]->SelectEntryPos(0); |
| } |
| else |
| { |
| aScrollWindow.aColorBoxes[i]->SelectEntry( aColor ); |
| } |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->SetBackground(Wallpaper(aColor)); |
| |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->Invalidate(); |
| } |
| } |
| } |
| } |
| /* -----------------------------26.03.2002 12:55------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| sal_Bool lcl_MoveAndShow(Window* pWindow, long nOffset, long nMaxVisible, bool _bShow) |
| { |
| sal_Bool bHide = sal_True; |
| if(pWindow) |
| { |
| Point aPos = pWindow->GetPosPixel(); |
| aPos.Y() += nOffset; |
| pWindow->SetPosPixel(aPos); |
| if ( _bShow ) |
| bHide = aPos.Y() > nMaxVisible || (aPos.Y() + pWindow->GetSizePixel().Height()) < 0; |
| pWindow->Show(!bHide); |
| } |
| return !bHide; |
| } |
| IMPL_LINK(ColorConfigCtrl_Impl, ScrollHdl, ScrollBar*, pScrollBar) |
| { |
| aScrollWindow.SetUpdateMode(sal_True); |
| sal_Int16 i; |
| long nOffset = aScrollWindow.aColorBoxes[1]->GetPosPixel().Y() - aScrollWindow.aColorBoxes[0]->GetPosPixel().Y(); |
| nOffset *= (nScrollPos - pScrollBar->GetThumbPos()); |
| nScrollPos = pScrollBar->GetThumbPos(); |
| const long nWindowHeight = aScrollWindow.GetSizePixel().Height(); |
| sal_Int16 nFirstVisible = -1; |
| sal_Int16 nLastVisible = -1; |
| sal_Int32 nCount = aScrollWindow.aFixedTexts.size(); |
| for( i = 0; i < nCount; i++ ) |
| { |
| if(ANCHOR == i) |
| continue; |
| Point aPos; |
| //controls outside of the view need to be hidden to speed up accessibility tools |
| bool bShowCtrl = ( lcl_isGroupVisible( |
| lcl_getGroup(i), aScrollWindow.GetModuleOptions() ) != sal_False ); |
| lcl_MoveAndShow(aScrollWindow.aCheckBoxes[i], nOffset, nWindowHeight, bShowCtrl); |
| lcl_MoveAndShow(aScrollWindow.aFixedTexts[i], nOffset, nWindowHeight, bShowCtrl); |
| lcl_MoveAndShow(aScrollWindow.aWindows[i] , nOffset, nWindowHeight, bShowCtrl); |
| sal_Bool bShow = lcl_MoveAndShow(aScrollWindow.aColorBoxes[i], nOffset, nWindowHeight, bShowCtrl); |
| if(bShow) |
| { |
| if(nFirstVisible == -1) |
| nFirstVisible = i; |
| else |
| nLastVisible = i; |
| } |
| } |
| //show the one prior to the first visible and the first after the last visble control |
| //to enable KEY_TAB travelling |
| |
| if(nFirstVisible) |
| { |
| //skip gaps where no controls exist for the related ColorConfigEntry |
| do |
| --nFirstVisible; |
| while(!aScrollWindow.aCheckBoxes[nFirstVisible] && !aScrollWindow.aColorBoxes[nFirstVisible] && nFirstVisible >= 0); |
| |
| if ( lcl_isGroupVisible( |
| lcl_getGroup( nFirstVisible ), aScrollWindow.GetModuleOptions() ) != sal_False ) |
| { |
| if(aScrollWindow.aCheckBoxes[nFirstVisible]) |
| aScrollWindow.aCheckBoxes[nFirstVisible]->Show(); |
| if(aScrollWindow.aColorBoxes[nFirstVisible]) |
| aScrollWindow.aColorBoxes[nFirstVisible]->Show(); |
| } |
| } |
| |
| if(nLastVisible < nCount - 1) |
| { |
| nLastVisible++; |
| //skip gaps where no controls exist for the related ColorConfigEntry |
| while(!aScrollWindow.aCheckBoxes[nLastVisible] && !aScrollWindow.aColorBoxes[nLastVisible] && |
| nLastVisible < nCount - 1 ) |
| nLastVisible++; |
| if ( nLastVisible < nCount ) |
| { |
| if ( lcl_isGroupVisible( |
| lcl_getGroup( nLastVisible ), aScrollWindow.GetModuleOptions() ) != sal_False ) |
| { |
| if(aScrollWindow.aCheckBoxes[nLastVisible]) |
| aScrollWindow.aCheckBoxes[nLastVisible]->Show(); |
| if(aScrollWindow.aColorBoxes[nLastVisible]) |
| aScrollWindow.aColorBoxes[nLastVisible]->Show(); |
| } |
| } |
| } // if(nLastVisible < nCount - 1) |
| sal_Int32 nChapterCount = aScrollWindow.aChapters.size(); |
| for( i = 0; i < nChapterCount; i++ ) |
| { |
| Point aPos = aScrollWindow.aChapters[i]->GetPosPixel(); aPos.Y() += nOffset; aScrollWindow.aChapters[i]->SetPosPixel(aPos); |
| aPos = aScrollWindow.aChapterWins[i]->GetPosPixel(); aPos.Y() += nOffset; aScrollWindow.aChapterWins[i]->SetPosPixel(aPos); |
| } |
| aScrollWindow.SetUpdateMode(sal_True); |
| return 0; |
| } |
| /* -----------------------------29.04.2002 17:02------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| long ColorConfigCtrl_Impl::PreNotify( NotifyEvent& rNEvt ) |
| { |
| if(rNEvt.GetType() == EVENT_COMMAND) |
| { |
| const CommandEvent* pCEvt = rNEvt.GetCommandEvent(); |
| sal_uInt16 nCmd = pCEvt->GetCommand(); |
| if( COMMAND_WHEEL == nCmd ) |
| { |
| Command(*pCEvt); |
| return 1; |
| } |
| } |
| return Control::PreNotify(rNEvt); |
| } |
| /* -----------------------------08.04.2002 16:37------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void ColorConfigCtrl_Impl::Command( const CommandEvent& rCEvt ) |
| { |
| switch ( rCEvt.GetCommand() ) |
| { |
| |
| case COMMAND_WHEEL: |
| case COMMAND_STARTAUTOSCROLL: |
| case COMMAND_AUTOSCROLL: |
| { |
| const CommandWheelData* pWheelData = rCEvt.GetWheelData(); |
| if(pWheelData && !pWheelData->IsHorz() && COMMAND_WHEEL_ZOOM != pWheelData->GetMode()) |
| { |
| HandleScrollCommand( rCEvt, 0, &aVScroll ); |
| } |
| } |
| break; |
| default: |
| Control::Command(rCEvt); |
| } |
| } |
| |
| /* -----------------------------14.12.2005 12:37------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void ColorConfigCtrl_Impl::DataChanged( const DataChangedEvent& rDCEvt ) |
| { |
| Window::DataChanged( rDCEvt ); |
| if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && |
| (rDCEvt.GetFlags() & SETTINGS_STYLE) ) |
| { |
| const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); |
| SetBackground(Wallpaper(rStyleSettings.GetFieldColor())); |
| } |
| } |
| |
| |
| /* -----------------------------27.03.2002 11:43------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| IMPL_LINK(ColorConfigCtrl_Impl, ClickHdl, CheckBox*, pBox) |
| { |
| DBG_ASSERT(pColorConfig, "Configuration not set" ); |
| |
| for( sal_Int32 i = 0; i < ColorConfigEntryCount; i++ ) |
| { |
| if(ANCHOR == i) |
| continue; |
| if(aScrollWindow.aCheckBoxes[i] == pBox ) |
| { |
| ColorConfigValue aBoundCol = pColorConfig->GetColorValue(ColorConfigEntry(i)); |
| aBoundCol.bIsVisible = pBox->IsChecked(); |
| pColorConfig->SetColorValue(ColorConfigEntry(i), aBoundCol); |
| break; |
| } |
| } // for( sal_Int32 i = 0; i < ColorConfigEntryCount; i++ ) |
| return 0; |
| } |
| /* -----------------------------27.03.2002 11:43------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| IMPL_LINK(ColorConfigCtrl_Impl, ColorHdl, ColorListBox*, pBox) |
| { |
| DBG_ASSERT(pColorConfig, "Configuration not set" ); |
| sal_Int32 i = 0; |
| for( ; i < ColorConfigEntryCount; i++ ) |
| { |
| if(pBox && aScrollWindow.aColorBoxes[i] == pBox) |
| { |
| ColorConfigValue aColorEntry = pColorConfig->GetColorValue(ColorConfigEntry(i)); |
| if(!pBox->GetSelectEntryPos()) |
| { |
| aColorEntry.nColor = COL_AUTO; |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->SetBackground( |
| Wallpaper(ColorConfig::GetDefaultColor((ColorConfigEntry) i))); |
| } |
| else |
| { |
| Color aColor = pBox->GetSelectEntryColor(); // #i14869# no Color&, 'cause it's a ref to a temp object on the stack! |
| aColorEntry.nColor = aColor.GetColor(); |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->SetBackground(Wallpaper(aColor)); |
| } |
| if(aScrollWindow.aWindows[i]) |
| aScrollWindow.aWindows[i]->Invalidate(); |
| pColorConfig->SetColorValue(ColorConfigEntry(i), aColorEntry); |
| break; |
| } |
| } // for( sal_Int32 i = 0; i < ColorConfigEntryCount; i++ ) |
| sal_Int32 nExtCount = pExtColorConfig->GetComponentCount(); |
| sal_Int32 nCount = aScrollWindow.aCheckBoxes.size(); |
| sal_Int32 nPos = 0; |
| i = ColorConfigEntryCount; |
| for (sal_Int32 j = 0; j < nExtCount; ++j) |
| { |
| ::rtl::OUString sComponentName = pExtColorConfig->GetComponentName(j); |
| sal_Int32 nColorCount = pExtColorConfig->GetComponentColorCount(sComponentName); |
| |
| for( sal_Int32 k = 0; i < nCount && k < nColorCount; ++i ,++nPos,++k) |
| { |
| if(pBox && aScrollWindow.aColorBoxes[i] == pBox) |
| { |
| ExtendedColorConfigValue aColorEntry = pExtColorConfig->GetComponentColorConfigValue(sComponentName,k); |
| Color aColor = pBox->GetSelectEntryColor(); // #i14869# no Color&, 'cause it's a ref to a temp object on the stack! |
| aColorEntry.setColor(aColor.GetColor()); |
| if( !pBox->GetSelectEntryPos() ) // auto color |
| { |
| aColorEntry.setColor(aColorEntry.getDefaultColor()); |
| aColor.SetColor(aColorEntry.getColor()); |
| } |
| if ( aScrollWindow.aWindows[i] ) |
| { |
| aScrollWindow.aWindows[i]->SetBackground(Wallpaper(aColor)); |
| aScrollWindow.aWindows[i]->Invalidate(); |
| } |
| pExtColorConfig->SetColorValue(sComponentName,aColorEntry); |
| break; |
| } |
| } |
| } |
| return 0; |
| } |
| IMPL_LINK(ColorConfigCtrl_Impl, ControlFocusHdl, Control*, pCtrl) |
| { |
| //determine whether a control is completely visible |
| //and make it visible |
| Point aCtrlPos(pCtrl->GetPosPixel()); |
| sal_Int32 nWinHeight = aScrollWindow.GetSizePixel().Height(); |
| if(0 != (GETFOCUS_TAB & pCtrl->GetGetFocusFlags() && |
| (aCtrlPos.Y() < 0 || |
| nWinHeight < aCtrlPos.Y() + aScrollWindow.aColorBoxes[0]->GetSizePixel().Height()))) |
| { |
| long nThumbPos = aVScroll.GetThumbPos(); |
| if(nWinHeight < aCtrlPos.Y() + aScrollWindow.aColorBoxes[0]->GetSizePixel().Height()) |
| { |
| //scroll down |
| nThumbPos +=2; |
| } |
| else |
| { |
| //scroll up |
| nThumbPos -= 2; |
| if(nThumbPos < 0) |
| nThumbPos = 0; |
| } |
| aVScroll.SetThumbPos(nThumbPos); |
| ScrollHdl(&aVScroll); |
| } |
| return 0; |
| }; |
| /* -----------------------------25.03.2002 10:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| SvxColorOptionsTabPage::SvxColorOptionsTabPage( |
| Window* pParent, const SfxItemSet& rCoreSet) : |
| SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_COLORCONFIG ), rCoreSet ), |
| aColorSchemeFL( this, CUI_RES( FL_COLORSCHEME ) ), |
| aColorSchemeFT( this, CUI_RES( FT_COLORSCHEME ) ), |
| aColorSchemeLB( this, CUI_RES( LB_COLORSCHEME ) ), |
| aSaveSchemePB( this, CUI_RES( PB_SAVESCHEME) ), |
| aDeleteSchemePB( this, CUI_RES( PB_DELETESCHEME ) ), |
| aCustomColorsFL( this, CUI_RES( FL_CUSTOMCOLORS ) ), |
| bFillItemSetCalled(sal_False), |
| pColorConfig(0), |
| pExtColorConfig(0), |
| pColorConfigCT( new ColorConfigCtrl_Impl(this, CUI_RES( CT_COLORCONFIG ) )) |
| { |
| FreeResource(); |
| aColorSchemeLB.SetSelectHdl(LINK(this, SvxColorOptionsTabPage, SchemeChangedHdl_Impl)); |
| Link aLk = LINK(this, SvxColorOptionsTabPage, SaveDeleteHdl_Impl ); |
| aSaveSchemePB.SetClickHdl(aLk); |
| aDeleteSchemePB.SetClickHdl(aLk); |
| } |
| /* -----------------------------25.03.2002 10:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| SvxColorOptionsTabPage::~SvxColorOptionsTabPage() |
| { |
| //when the dialog is cancelled but the color scheme ListBox has been changed these |
| //changes need to be undone |
| if(!bFillItemSetCalled && aColorSchemeLB.GetSavedValue() != aColorSchemeLB.GetSelectEntryPos()) |
| { |
| rtl::OUString sOldScheme = aColorSchemeLB.GetEntry(aColorSchemeLB.GetSavedValue()); |
| if(sOldScheme.getLength()) |
| { |
| pColorConfig->SetCurrentSchemeName(sOldScheme); |
| pExtColorConfig->SetCurrentSchemeName(sOldScheme); |
| } |
| } |
| delete pColorConfigCT; |
| pColorConfig->ClearModified(); |
| pColorConfig->EnableBroadcast(); |
| delete pColorConfig; |
| pExtColorConfig->ClearModified(); |
| pExtColorConfig->EnableBroadcast(); |
| delete pExtColorConfig; |
| } |
| /* -----------------------------25.03.2002 10:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| SfxTabPage* SvxColorOptionsTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet ) |
| { |
| return ( new SvxColorOptionsTabPage( pParent, rAttrSet ) ); |
| } |
| /* -----------------------------25.03.2002 10:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| sal_Bool SvxColorOptionsTabPage::FillItemSet( SfxItemSet& ) |
| { |
| bFillItemSetCalled = sal_True; |
| if(aColorSchemeLB.GetSavedValue() != aColorSchemeLB.GetSelectEntryPos()) |
| { |
| pColorConfig->SetModified(); |
| pExtColorConfig->SetModified(); |
| } |
| if(pColorConfig->IsModified()) |
| pColorConfig->Commit(); |
| if(pExtColorConfig->IsModified()) |
| pExtColorConfig->Commit(); |
| return sal_True; |
| } |
| /* -----------------------------25.03.2002 10:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void SvxColorOptionsTabPage::Reset( const SfxItemSet& ) |
| { |
| if(pColorConfig) |
| { |
| pColorConfig->ClearModified(); |
| pColorConfig->DisableBroadcast(); |
| delete pColorConfig; |
| } |
| pColorConfig = new EditableColorConfig; |
| pColorConfigCT->SetConfig(*pColorConfig); |
| |
| if(pExtColorConfig) |
| { |
| pExtColorConfig->ClearModified(); |
| pExtColorConfig->DisableBroadcast(); |
| delete pExtColorConfig; |
| } |
| pExtColorConfig = new EditableExtendedColorConfig; |
| pColorConfigCT->SetExtendedConfig(*pExtColorConfig); |
| |
| String sUser = GetUserData(); |
| //has to be called always to speed up accessibility tools |
| pColorConfigCT->SetScrollPosition(sUser.ToInt32()); |
| aColorSchemeLB.Clear(); |
| uno::Sequence< ::rtl::OUString > aSchemes = pColorConfig->GetSchemeNames(); |
| const rtl::OUString* pSchemes = aSchemes.getConstArray(); |
| for(sal_Int32 i = 0; i < aSchemes.getLength(); i++) |
| aColorSchemeLB.InsertEntry(pSchemes[i]); |
| aColorSchemeLB.SelectEntry(pColorConfig->GetCurrentSchemeName()); |
| aColorSchemeLB.SaveValue(); |
| aDeleteSchemePB.Enable( aSchemes.getLength() > 1 ); |
| UpdateColorConfig(); |
| } |
| /* -----------------------------25.03.2002 10:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| int SvxColorOptionsTabPage::DeactivatePage( SfxItemSet* _pSet ) |
| { |
| if ( _pSet ) |
| FillItemSet( *_pSet ); |
| return( LEAVE_PAGE ); |
| } |
| /* -----------------------------25.03.2002 15:32------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void SvxColorOptionsTabPage::UpdateColorConfig() |
| { |
| //update the color config control |
| pColorConfigCT->Update(); |
| } |
| /* -----------------------------25.03.2002 15:30------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| IMPL_LINK(SvxColorOptionsTabPage, SchemeChangedHdl_Impl, ListBox*, pBox) |
| { |
| pColorConfig->LoadScheme(pBox->GetSelectEntry()); |
| pExtColorConfig->LoadScheme(pBox->GetSelectEntry()); |
| UpdateColorConfig(); |
| return 0; |
| } |
| /* -----------------------------09.04.2002 15:21------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| IMPL_LINK(SvxColorOptionsTabPage, SaveDeleteHdl_Impl, PushButton*, pButton ) |
| { |
| if(&aSaveSchemePB == pButton) |
| { |
| String sName; |
| //CHINA001 SvxNameDialog aNameDlg(pButton, |
| //CHINA001 sName, |
| //CHINA001 String(CUI_RES(RID_SVXSTR_COLOR_CONFIG_SAVE2))); |
| SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); |
| DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001 |
| AbstractSvxNameDialog* aNameDlg = pFact->CreateSvxNameDialog( pButton, |
| sName, String(CUI_RES(RID_SVXSTR_COLOR_CONFIG_SAVE2)) ); |
| DBG_ASSERT(aNameDlg, "Dialogdiet fail!");//CHINA001 |
| aNameDlg->SetCheckNameHdl( LINK(this, SvxColorOptionsTabPage, CheckNameHdl_Impl)); |
| aNameDlg->SetText(String(CUI_RES(RID_SVXSTR_COLOR_CONFIG_SAVE1))); |
| aNameDlg->SetHelpId(HID_OPTIONS_COLORCONFIG_SAVE_SCHEME); |
| aNameDlg->SetEditHelpId(HID_OPTIONS_COLORCONFIG_NAME_SCHEME); |
| aNameDlg->SetCheckNameHdl( LINK(this, SvxColorOptionsTabPage, CheckNameHdl_Impl)); |
| if(RET_OK == aNameDlg->Execute()) //CHINA001 if(RET_OK == aNameDlg.Execute()) |
| { |
| aNameDlg->GetName(sName); //CHINA001 aNameDlg.GetName(sName); |
| pColorConfig->AddScheme(sName); |
| pExtColorConfig->AddScheme(sName); |
| aColorSchemeLB.InsertEntry(sName); |
| aColorSchemeLB.SelectEntry(sName); |
| aColorSchemeLB.GetSelectHdl().Call(&aColorSchemeLB); |
| } |
| delete aNameDlg; //add by CHINA001 |
| } |
| else |
| { |
| DBG_ASSERT(aColorSchemeLB.GetEntryCount() > 1, "don't delete the last scheme"); |
| QueryBox aQuery(pButton, CUI_RES(RID_SVXQB_DELETE_COLOR_CONFIG)); |
| aQuery.SetText(String(CUI_RES(RID_SVXSTR_COLOR_CONFIG_DELETE))); |
| if(RET_YES == aQuery.Execute()) |
| { |
| rtl::OUString sDeleteScheme(aColorSchemeLB.GetSelectEntry()); |
| aColorSchemeLB.RemoveEntry(aColorSchemeLB.GetSelectEntryPos()); |
| aColorSchemeLB.SelectEntryPos(0); |
| aColorSchemeLB.GetSelectHdl().Call(&aColorSchemeLB); |
| //first select the new scheme and then delete the old one |
| pColorConfig->DeleteScheme(sDeleteScheme); |
| pExtColorConfig->DeleteScheme(sDeleteScheme); |
| } |
| } |
| aDeleteSchemePB.Enable( aColorSchemeLB.GetEntryCount() > 1 ); |
| return 0; |
| } |
| /* -----------------------------09.04.2002 15:47------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| IMPL_LINK(SvxColorOptionsTabPage, CheckNameHdl_Impl, AbstractSvxNameDialog*, pDialog ) |
| { |
| String sName; |
| pDialog->GetName(sName); |
| return sName.Len() && LISTBOX_ENTRY_NOTFOUND == aColorSchemeLB.GetEntryPos( sName ); |
| } |
| /* -----------------------------25.04.2002 15:12------------------------------ |
| |
| ---------------------------------------------------------------------------*/ |
| void SvxColorOptionsTabPage::FillUserData() |
| { |
| SetUserData(String::CreateFromInt32(pColorConfigCT->GetScrollPosition())); |
| } |
| |