| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef SC_NAVIPI_HXX |
| #define SC_NAVIPI_HXX |
| |
| #include <vector> |
| #include <vcl/toolbox.hxx> |
| #include <vcl/field.hxx> |
| #include <vcl/lstbox.hxx> |
| #include <svtools/stdctrl.hxx> |
| #include <svl/poolitem.hxx> |
| #include <svl/lstner.hxx> |
| #include <sfx2/childwin.hxx> |
| #include "content.hxx" |
| #include <svtools/svmedit.hxx> |
| |
| |
| class ScTabViewShell; |
| class ScViewData; |
| class ScArea; |
| class ScScenarioWindow; |
| class ScNavigatorControllerItem; |
| class ScNavigatorDialogWrapper; |
| class ScNavigatorDlg; |
| class ScNavigatorSettings; |
| class ScRange; |
| |
| //======================================================================== |
| |
| #define SC_DROPMODE_URL 0 |
| #define SC_DROPMODE_LINK 1 |
| #define SC_DROPMODE_COPY 2 |
| |
| enum NavListMode { NAV_LMODE_NONE = 0x4000, |
| NAV_LMODE_AREAS = 0x2000, |
| NAV_LMODE_DBAREAS = 0x1000, |
| NAV_LMODE_DOCS = 0x800, |
| NAV_LMODE_SCENARIOS = 0x400 }; |
| |
| //======================================================================== |
| // class ScScenarioListBox ----------------------------------------------- |
| //======================================================================== |
| |
| class ScScenarioListBox : public ListBox |
| { |
| public: |
| explicit ScScenarioListBox( ScScenarioWindow& rParent ); |
| virtual ~ScScenarioListBox(); |
| |
| void UpdateEntries( List* pNewEntryList ); |
| |
| protected: |
| virtual void Select(); |
| virtual void DoubleClick(); |
| virtual long Notify( NotifyEvent& rNEvt ); |
| |
| private: |
| struct ScenarioEntry |
| { |
| String maName; |
| String maComment; |
| bool mbProtected; |
| |
| inline explicit ScenarioEntry() : mbProtected( false ) {} |
| }; |
| typedef ::std::vector< ScenarioEntry > ScenarioList; |
| |
| private: |
| const ScenarioEntry* GetSelectedEntry() const; |
| |
| void ExecuteScenarioSlot( sal_uInt16 nSlotId ); |
| void SelectScenario(); |
| void EditScenario(); |
| void DeleteScenario( bool bQueryBox ); |
| |
| private: |
| ScScenarioWindow& mrParent; |
| ScenarioList maEntries; |
| }; |
| |
| //======================================================================== |
| // class ScScenarioWindow ------------------------------------------------ |
| //======================================================================== |
| class ScScenarioWindow : public Window |
| { |
| public: |
| ScScenarioWindow( Window* pParent,const String& aQH_List,const String& aQH_Comment); |
| ~ScScenarioWindow(); |
| |
| void NotifyState( const SfxPoolItem* pState ); |
| void SetComment( const String& rComment ) |
| { aEdComment.SetText( rComment ); } |
| |
| void SetSizePixel( const Size& rNewSize ); |
| |
| protected: |
| |
| virtual void Paint( const Rectangle& rRec ); |
| |
| private: |
| ScScenarioListBox aLbScenario; |
| MultiLineEdit aEdComment; |
| }; |
| |
| //================================================================== |
| // class ColumnEdit |
| //================================================================== |
| class ColumnEdit : public SpinField |
| { |
| public: |
| ColumnEdit( ScNavigatorDlg* pParent, const ResId& rResId ); |
| ~ColumnEdit(); |
| |
| SCCOL GetCol() { return nCol; } |
| void SetCol( SCCOL nColNo ); |
| |
| protected: |
| virtual long Notify( NotifyEvent& rNEvt ); |
| virtual void LoseFocus(); |
| virtual void Up(); |
| virtual void Down(); |
| virtual void First(); |
| virtual void Last(); |
| |
| private: |
| ScNavigatorDlg& rDlg; |
| SCCOL nCol; |
| sal_uInt16 nKeyGroup; |
| |
| void EvalText (); |
| void ExecuteCol (); |
| SCCOL AlphaToNum ( String& rStr ); |
| SCCOL NumStrToAlpha ( String& rStr ); |
| SCCOL NumToAlpha ( SCCOL nColNo, String& rStr ); |
| }; |
| |
| |
| //================================================================== |
| // class RowEdit |
| //================================================================== |
| class RowEdit : public NumericField |
| { |
| public: |
| RowEdit( ScNavigatorDlg* pParent, const ResId& rResId ); |
| ~RowEdit(); |
| |
| SCROW GetRow() { return (SCROW)GetValue(); } |
| void SetRow( SCROW nRow ){ SetValue( nRow ); } |
| |
| protected: |
| virtual long Notify( NotifyEvent& rNEvt ); |
| virtual void LoseFocus(); |
| |
| private: |
| ScNavigatorDlg& rDlg; |
| |
| void ExecuteRow(); |
| }; |
| |
| |
| //================================================================== |
| // class ScDocListBox |
| //================================================================== |
| class ScDocListBox : public ListBox |
| { |
| public: |
| ScDocListBox( ScNavigatorDlg* pParent, const ResId& rResId ); |
| ~ScDocListBox(); |
| |
| protected: |
| virtual void Select(); |
| |
| private: |
| ScNavigatorDlg& rDlg; |
| }; |
| |
| |
| //================================================================== |
| // class CommandToolBox |
| //================================================================== |
| class CommandToolBox : public ToolBox |
| { |
| public: |
| CommandToolBox( ScNavigatorDlg* pParent, const ResId& rResId ); |
| ~CommandToolBox(); |
| |
| void Select( sal_uInt16 nId ); |
| void UpdateButtons(); |
| void InitImageList(); |
| |
| virtual void DataChanged( const DataChangedEvent& rDCEvt ); |
| |
| DECL_LINK( ToolBoxDropdownClickHdl, ToolBox* ); |
| |
| protected: |
| virtual void Select(); |
| virtual void Click(); |
| |
| private: |
| ScNavigatorDlg& rDlg; |
| }; |
| |
| //================================================================== |
| // class ScNavigatorDlg |
| //================================================================== |
| |
| class ScNavigatorDlg : public Window, public SfxListener |
| { |
| friend class ScNavigatorControllerItem; |
| friend class ScNavigatorDialogWrapper; |
| friend class ColumnEdit; |
| friend class RowEdit; |
| friend class ScDocListBox; |
| friend class CommandToolBox; |
| friend class ScContentTree; |
| |
| private: |
| SfxBindings& rBindings; // must be first member |
| |
| ImageList aCmdImageList; // must be before aTbxCmd |
| ImageList aCmdImageListH; |
| FixedInfo aFtCol; |
| ColumnEdit aEdCol; |
| FixedInfo aFtRow; |
| RowEdit aEdRow; |
| CommandToolBox aTbxCmd; |
| ScContentTree aLbEntries; |
| ScScenarioWindow aWndScenarios; |
| ScDocListBox aLbDocuments; |
| |
| Timer aContentTimer; |
| |
| String aTitleBase; |
| String aStrDragMode; |
| String aStrDisplay; |
| String aStrActive; |
| String aStrNotActive; |
| String aStrHidden; |
| String aStrActiveWin; |
| |
| SfxChildWindowContext* pContextWin; |
| Size aInitSize; |
| ScArea* pMarkArea; |
| ScViewData* pViewData; |
| |
| long nBorderOffset; |
| long nListModeHeight; |
| long nInitListHeight; |
| NavListMode eListMode; |
| sal_uInt16 nDropMode; |
| SCCOL nCurCol; |
| SCROW nCurRow; |
| SCTAB nCurTab; |
| sal_Bool bFirstBig; |
| bool mbUseStyleSettingsBackground; |
| |
| ScNavigatorControllerItem** ppBoundItems; |
| |
| DECL_LINK( TimeHdl, Timer* ); |
| |
| void DoResize(); |
| |
| SfxBindings& GetBindings() |
| { return rBindings; } |
| |
| void SetCurrentCell( SCCOL nCol, SCROW Row ); |
| void SetCurrentCellStr( const String rName ); |
| void SetCurrentTable( SCTAB nTab ); |
| void SetCurrentTableStr( const String rName ); |
| void SetCurrentObject( const String rName ); |
| void SetCurrentDoc( const String& rDocName ); |
| |
| ScTabViewShell* GetTabViewShell() const; |
| ScNavigatorSettings* GetNavigatorSettings(); |
| sal_Bool GetViewData(); |
| |
| void UpdateColumn ( const SCCOL* pCol = NULL ); |
| void UpdateRow ( const SCROW* pRow = NULL ); |
| void UpdateTable ( const SCTAB* pTab = NULL ); |
| void UpdateAll (); |
| |
| void GetDocNames(const String* pSelEntry = NULL); |
| |
| void SetListMode ( NavListMode eMode, sal_Bool bSetSize = sal_True ); |
| void ShowList ( sal_Bool bShow, sal_Bool bSetSize ); |
| void ShowScenarios ( sal_Bool bShow, sal_Bool bSetSize ); |
| |
| void SetDropMode(sal_uInt16 nNew); |
| sal_uInt16 GetDropMode() const { return nDropMode; } |
| |
| const String& GetStrDragMode() const { return aStrDragMode; } |
| const String& GetStrDisplay() const { return aStrDisplay; } |
| |
| void CheckDataArea (); |
| void MarkDataArea (); |
| void UnmarkDataArea (); |
| void StartOfDataArea (); |
| void EndOfDataArea (); |
| |
| static void ReleaseFocus(); |
| |
| protected: |
| virtual void Resize(); |
| virtual void Paint( const Rectangle& rRec ); |
| virtual void Resizing( Size& rSize ); |
| |
| public: |
| ScNavigatorDlg( SfxBindings* pB, SfxChildWindowContext* pCW, Window* pParent, |
| const bool bUseStyleSettingsBackground); |
| ~ScNavigatorDlg(); |
| |
| using Window::Notify; |
| virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); |
| |
| void CursorPosChanged(); |
| |
| virtual SfxChildAlignment |
| CheckAlignment(SfxChildAlignment,SfxChildAlignment); |
| virtual void DataChanged( const DataChangedEvent& rDCEvt ); |
| }; |
| |
| //================================================================== |
| |
| class ScNavigatorDialogWrapper: public SfxChildWindowContext |
| { |
| public: |
| ScNavigatorDialogWrapper( Window* pParent, |
| sal_uInt16 nId, |
| SfxBindings* pBindings, |
| SfxChildWinInfo* pInfo ); |
| |
| SFX_DECL_CHILDWINDOWCONTEXT(ScNavigatorDialogWrapper) |
| |
| virtual void Resizing( Size& rSize ); |
| |
| private: |
| ScNavigatorDlg* pNavigator; |
| }; |
| |
| |
| |
| #endif // SC_NAVIPI_HXX |
| |