LibreOffice Module sc (master)  1
autostyl.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SC_SOURCE_UI_INC_AUTOSTYL_HXX
21 #define INCLUDED_SC_SOURCE_UI_INC_AUTOSTYL_HXX
22 
23 #include <vector>
24 #include <rtl/ustring.hxx>
25 #include <tools/solar.h>
26 #include <vcl/timer.hxx>
27 #include <vcl/idle.hxx>
28 
29 class ScDocShell;
30 class ScRange;
31 
33 {
36  OUString aStyle;
37 
38  ScAutoStyleData( sal_uLong nT, const ScRange& rR, const OUString& rT ) :
39  nTimeout(nT), aRange(rR), aStyle(rT) {}
40 };
42 {
44  OUString aStyle1;
46  OUString aStyle2;
47 
48  ScAutoStyleInitData( const ScRange& rR, const OUString& rSt1, sal_uLong nT, const OUString& rSt2 ) :
49  aRange(rR), aStyle1(rSt1), nTimeout(nT), aStyle2(rSt2) {}
50 };
51 
52 
54 {
55 private:
56 
61  std::vector<ScAutoStyleData> aEntries;
62  std::vector<ScAutoStyleInitData> aInitials;
63 
64  void ExecuteEntries();
65  void AdjustEntries(sal_uLong nDiff);
66  void StartTimer(sal_uLong nNow);
67  DECL_LINK( TimerHdl, Timer*, void );
68  DECL_LINK( InitHdl, Timer*, void );
69 
70 public:
71  ScAutoStyleList(ScDocShell* pShell);
73 
74  void AddInitial( const ScRange& rRange, const OUString& rStyle1,
75  sal_uLong nTimeout, const OUString& rStyle2 );
76  void AddEntry( sal_uLong nTimeout, const ScRange& rRange, const OUString& rStyle );
77 
78  void ExecuteAllNow();
79 };
80 
81 #endif
82 
83 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
ScDocShell * pDocSh
Definition: autostyl.hxx:57
std::vector< ScAutoStyleInitData > aInitials
Definition: autostyl.hxx:62
sal_uIntPtr sal_uLong
DECL_LINK(TimerHdl, Timer *, void)
ScAutoStyleInitData(const ScRange &rR, const OUString &rSt1, sal_uLong nT, const OUString &rSt2)
Definition: autostyl.hxx:48
void ExecuteEntries()
Definition: autostyl.cxx:142
sal_uLong nTimerStart
Definition: autostyl.hxx:60
sal_uLong nTimeout
Definition: autostyl.hxx:34
ScAutoStyleData(sal_uLong nT, const ScRange &rR, const OUString &rT)
Definition: autostyl.hxx:38
std::vector< ScAutoStyleData > aEntries
Definition: autostyl.hxx:61
ScRange aRange
Definition: autostyl.hxx:35
void StartTimer(sal_uLong nNow)
Definition: autostyl.cxx:169
void AdjustEntries(sal_uLong nDiff)
Definition: autostyl.cxx:131
void ExecuteAllNow()
Definition: autostyl.cxx:159
OUString aStyle
Definition: autostyl.hxx:36
sal_uLong nTimeout
Definition: autostyl.hxx:45
void AddEntry(sal_uLong nTimeout, const ScRange &rRange, const OUString &rStyle)
Definition: autostyl.cxx:99
void AddInitial(const ScRange &rRange, const OUString &rStyle1, sal_uLong nTimeout, const OUString &rStyle2)
Definition: autostyl.cxx:77
ScAutoStyleList(ScDocShell *pShell)
Definition: autostyl.cxx:60