summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerMouseOver.pngbin0 -> 262 bytes
-rw-r--r--icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerNormal.pngbin0 -> 328 bytes
-rw-r--r--officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu53
-rw-r--r--sd/source/ui/app/res_bmp.src10
-rw-r--r--sd/source/ui/inc/res_bmp.hrc2
-rw-r--r--sd/source/ui/presenter/PresenterHelper.cxx4
-rw-r--r--sdext/source/presenter/PresenterController.cxx14
-rw-r--r--sdext/source/presenter/PresenterController.hxx12
-rw-r--r--sdext/source/presenter/PresenterProtocolHandler.cxx28
-rw-r--r--sdext/source/presenter/PresenterToolBar.cxx10
10 files changed, 129 insertions, 4 deletions
diff --git a/icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerMouseOver.png b/icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerMouseOver.png
new file mode 100644
index 000000000000..d43a1d2c78b9
--- /dev/null
+++ b/icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerMouseOver.png
Binary files differ
diff --git a/icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerNormal.png b/icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerNormal.png
new file mode 100644
index 000000000000..651fe061a742
--- /dev/null
+++ b/icon-themes/galaxy/sd/res/presenterscreen-ButtonRestartTimerNormal.png
Binary files differ
diff --git a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
index 26d94836d214..513da5440bb0 100644
--- a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu
@@ -345,6 +345,53 @@
</prop>
</node>
<node oor:name="k" oor:op="replace">
+ <prop oor:name="Name">
+ <value>RestartTimer</value>
+ </prop>
+ <prop oor:name="Type">
+ <value>Button</value>
+ </prop>
+ <node oor:name="Normal">
+ <prop oor:name="Text">
+ <value xml:lang="en-US">Restart</value>
+ </prop>
+ <node oor:name="Icon">
+ <prop oor:name="NormalFileName">
+ <value>bitmaps/ButtonRestartTimerNormal.png</value>
+ </prop>
+ </node>
+ <prop oor:name="Action">
+ <value>vnd.org.libreoffice.presenterscreen:RestartTimer</value>
+ </prop>
+ <node oor:name="Font">
+ <prop oor:name="Size">
+ <value>12</value>
+ </prop>
+ <prop oor:name="Style">
+ <value>Bold</value>
+ </prop>
+ <prop oor:name="Color">
+ <value>B3B7BC</value>
+ </prop>
+ <prop oor:name="Anchor">
+ <value>Center</value>
+ </prop>
+ </node>
+ </node>
+ <node oor:name="MouseOver">
+ <node oor:name="Icon">
+ <prop oor:name="NormalFileName">
+ <value>bitmaps/ButtonRestartTimerMouseOver.png</value>
+ </prop>
+ </node>
+ <node oor:name="Font">
+ <prop oor:name="Color">
+ <value>FFFFFF</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+ <node oor:name="l" oor:op="replace">
<prop oor:name="Type">
<value>VerticalSeparator</value>
</prop>
@@ -356,7 +403,7 @@
</node>
</node>
</node>
- <node oor:name="l" oor:op="replace">
+ <node oor:name="m" oor:op="replace">
<prop oor:name="Name">
<value>SwitchMonitor</value>
</prop>
@@ -410,7 +457,7 @@
</node>
</node>
</node>
- <node oor:name="m" oor:op="replace">
+ <node oor:name="n" oor:op="replace">
<prop oor:name="Type">
<value>VerticalSeparator</value>
</prop>
@@ -422,7 +469,7 @@
</node>
</node>
</node>
- <node oor:name="n" oor:op="replace">
+ <node oor:name="o" oor:op="replace">
<prop oor:name="Name">
<value>Help</value>
</prop>
diff --git a/sd/source/ui/app/res_bmp.src b/sd/source/ui/app/res_bmp.src
index 6d8cc0444d0e..45fc2df62878 100644
--- a/sd/source/ui/app/res_bmp.src
+++ b/sd/source/ui/app/res_bmp.src
@@ -553,6 +553,11 @@ Bitmap BMP_PRESENTERSCREEN_BUTTON_SWITCH_MONITOR_NORMAL
File = "presenterscreen-ButtonSwitchMonitorNormal.png";
};
+Bitmap BMP_PRESENTERSCREEN_BUTTON_RESTART_TIMER_NORMAL
+{
+ File = "presenterscreen-ButtonRestartTimerNormal.png";
+};
+
Bitmap BMP_PRESENTERSCREEN_BORDER_TOOLBAR_RIGHT
{
File = "presenterscreen-BorderToolbarRight.png";
@@ -608,6 +613,11 @@ Bitmap BMP_PRESENTERSCREEN_BUTTON_SWITCH_MONITOR_MOUSE_OVER
File = "presenterscreen-ButtonSwitchMonitorMouseOver.png";
};
+Bitmap BMP_PRESENTERSCREEN_BUTTON_RESTART_TIMER_MOUSE_OVER
+{
+ File = "presenterscreen-ButtonRestartTimerMouseOver.png";
+};
+
Bitmap BMP_PRESENTERSCREEN_BUTTON_SLIDE_PREVIOUS_DISABLED
{
File = "presenterscreen-ButtonSlidePreviousDisabled.png";
diff --git a/sd/source/ui/inc/res_bmp.hrc b/sd/source/ui/inc/res_bmp.hrc
index 23a401474a7d..93ec74049e18 100644
--- a/sd/source/ui/inc/res_bmp.hrc
+++ b/sd/source/ui/inc/res_bmp.hrc
@@ -189,6 +189,8 @@
#define BMP_PRESENTERSCREEN_ANIMATION (RID_SD_START+591)
#define BMP_PRESENTERSCREEN_TRANSITION (RID_SD_START+592)
#define BMP_PRESENTATION_MINIMIZER (RID_SD_START+593)
+#define BMP_PRESENTERSCREEN_BUTTON_RESTART_TIMER_MOUSE_OVER (RID_SD_START+594)
+#define BMP_PRESENTERSCREEN_BUTTON_RESTART_TIMER_NORMAL (RID_SD_START+595)
// ResourceIDs for Popup-Menus do not need a dummy string!!!
diff --git a/sd/source/ui/presenter/PresenterHelper.cxx b/sd/source/ui/presenter/PresenterHelper.cxx
index 970c1b49fe06..8fc22bcafe25 100644
--- a/sd/source/ui/presenter/PresenterHelper.cxx
+++ b/sd/source/ui/presenter/PresenterHelper.cxx
@@ -344,6 +344,10 @@ Reference<rendering::XBitmap> SAL_CALL PresenterHelper::loadBitmap (
BMP_PRESENTERSCREEN_BUTTON_SWITCH_MONITOR_MOUSE_OVER },
{ "bitmaps/ButtonSwitchMonitorNormal.png",
BMP_PRESENTERSCREEN_BUTTON_SWITCH_MONITOR_NORMAL },
+ { "bitmaps/ButtonRestartTimerMouseOver.png",
+ BMP_PRESENTERSCREEN_BUTTON_SWITCH_MONITOR_MOUSE_OVER },
+ { "bitmaps/ButtonRestartTimerNormal.png",
+ BMP_PRESENTERSCREEN_BUTTON_SWITCH_MONITOR_NORMAL },
{ "bitmaps/LabelMouseOverCenter.png",
BMP_PRESENTERSCREEN_LABEL_MOUSE_OVER_CENTER },
{ "bitmaps/LabelMouseOverLeft.png",
diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx
index ce3e365952c2..d33db36ac460 100644
--- a/sdext/source/presenter/PresenterController.cxx
+++ b/sdext/source/presenter/PresenterController.cxx
@@ -70,6 +70,10 @@ namespace {
namespace sdext { namespace presenter {
+IPresentationTime::~IPresentationTime()
+{
+}
+
PresenterController::InstanceContainer PresenterController::maInstances;
::rtl::Reference<PresenterController> PresenterController::Instance (
@@ -704,6 +708,16 @@ void PresenterController::RequestViews (
}
}
+void PresenterController::SetPresentationTime(IPresentationTime* pPresentationTime)
+{
+ mpPresentationTime = pPresentationTime;
+}
+
+IPresentationTime* PresenterController::GetPresentationTime()
+{
+ return mpPresentationTime;
+}
+
//----- XConfigurationChangeListener ------------------------------------------
void SAL_CALL PresenterController::notifyConfigurationChange (
diff --git a/sdext/source/presenter/PresenterController.hxx b/sdext/source/presenter/PresenterController.hxx
index f7a7023a5f3f..06548f0b213c 100644
--- a/sdext/source/presenter/PresenterController.hxx
+++ b/sdext/source/presenter/PresenterController.hxx
@@ -68,6 +68,14 @@ namespace {
> PresenterControllerInterfaceBase;
}
+/// Represents an element in the toolbar that shows the time elapsed since the presentation started.
+class IPresentationTime
+{
+public:
+ virtual void restart() = 0;
+ virtual ~IPresentationTime();
+};
+
/** The controller of the presenter screen is responsible for telling the
individual views which slides to show. Additionally it provides access
to frequently used values of the current theme.
@@ -133,6 +141,9 @@ public:
const bool bIsNotesViewActive,
const bool bIsHelpViewActive);
+ void SetPresentationTime(IPresentationTime* pPresentationTime);
+ IPresentationTime* GetPresentationTime();
+
// XConfigurationChangeListener
virtual void SAL_CALL notifyConfigurationChange (
@@ -215,6 +226,7 @@ private:
css::uno::Reference<css::util::XURLTransformer> mxUrlTransformer;
::rtl::Reference<PresenterAccessible> mpAccessibleObject;
bool mbIsAccessibilityActive;
+ IPresentationTime* mpPresentationTime;
void GetSlides (const sal_Int32 nOffset);
void UpdateViews();
diff --git a/sdext/source/presenter/PresenterProtocolHandler.cxx b/sdext/source/presenter/PresenterProtocolHandler.cxx
index 9dbefb239ca3..709a22e66e2d 100644
--- a/sdext/source/presenter/PresenterProtocolHandler.cxx
+++ b/sdext/source/presenter/PresenterProtocolHandler.cxx
@@ -104,6 +104,17 @@ namespace {
rtl::Reference<PresenterController> mpPresenterController;
};
+ /// This command restarts the presentation timer.
+ class RestartTimerCommand : public Command
+ {
+ public:
+ explicit RestartTimerCommand(const rtl::Reference<PresenterController>& rpPresenterController);
+ virtual ~RestartTimerCommand();
+ virtual void Execute() SAL_OVERRIDE;
+ private:
+ rtl::Reference<PresenterController> mpPresenterController;
+ };
+
class SetNotesViewCommand : public Command
{
public:
@@ -408,6 +419,8 @@ Command* PresenterProtocolHandler::Dispatch::CreateCommand (
return new GotoPreviousSlideCommand(rpPresenterController);
if (rsURLPath == "SwitchMonitor")
return new SwitchMonitorCommand(rpPresenterController);
+ if (rsURLPath == "RestartTimer")
+ return new RestartTimerCommand(rpPresenterController);
if (rsURLPath == "ShowNotes")
return new SetNotesViewCommand(true, rpPresenterController);
if (rsURLPath == "ShowSlideSorter")
@@ -612,6 +625,21 @@ void SwitchMonitorCommand::Execute()
mpPresenterController->SwitchMonitors();
}
+RestartTimerCommand::RestartTimerCommand (const rtl::Reference<PresenterController>& rpPresenterController)
+: mpPresenterController(rpPresenterController)
+{
+}
+
+RestartTimerCommand::~RestartTimerCommand()
+{
+}
+
+void RestartTimerCommand::Execute()
+{
+ if (IPresentationTime* pPresentationTime = mpPresenterController->GetPresentationTime())
+ pPresentationTime->restart();
+}
+
//===== SetNotesViewCommand ===================================================
SetNotesViewCommand::SetNotesViewCommand (
diff --git a/sdext/source/presenter/PresenterToolBar.cxx b/sdext/source/presenter/PresenterToolBar.cxx
index 3b102475398d..0b514b3e3850 100644
--- a/sdext/source/presenter/PresenterToolBar.cxx
+++ b/sdext/source/presenter/PresenterToolBar.cxx
@@ -310,7 +310,7 @@ namespace {
virtual void TimeHasChanged (const oslDateTime& rCurrentTime) SAL_OVERRIDE;
};
- class PresentationTimeLabel : public TimeLabel
+ class PresentationTimeLabel : public TimeLabel, public IPresentationTime
{
public:
static ::rtl::Reference<Element> Create (
@@ -320,6 +320,7 @@ namespace {
const SharedElementMode& rpMouseOverMode,
const SharedElementMode& rpSelectedMode,
const SharedElementMode& rpDisabledMode) SAL_OVERRIDE;
+ virtual void restart() SAL_OVERRIDE;
private:
TimeFormatter maTimeFormatter;
TimeValue maStartTimeValue;
@@ -1909,6 +1910,7 @@ void CurrentTimeLabel::SetModes (
PresentationTimeLabel::~PresentationTimeLabel()
{
+ mpToolBar->GetPresenterController()->SetPresentationTime(0);
}
PresentationTimeLabel::PresentationTimeLabel (
@@ -1917,6 +1919,12 @@ PresentationTimeLabel::PresentationTimeLabel (
maTimeFormatter(),
maStartTimeValue()
{
+ restart();
+ mpToolBar->GetPresenterController()->SetPresentationTime(this);
+}
+
+void PresentationTimeLabel::restart()
+{
maStartTimeValue.Seconds = 0;
maStartTimeValue.Nanosec = 0;
}