Kaydet (Commit) 857b4f53 authored tarafından Michael Meeks's avatar Michael Meeks

presenter console: add 'Switch monitors' button to help get setup

For years, we've been carefully detecting the laptop display, and choosing
it as the default display to project to - thus many of our users have
configured around this. Provide a way for them to undo the folly, and any
subsequent mis-detections easily.

Initial Artwork is clearly in need of some bug-fixing.

Cleanup hyper-pre-optimised madness in ProtocolHandler.cxx too, called
a few dozen times - and has nested switch statements on characters.
üst b35b7080
......@@ -109,6 +109,19 @@ namespace {
rtl::Reference<PresenterController> mpPresenterController;
};
class SwitchMonitorCommand : public Command
{
public:
SwitchMonitorCommand (
const rtl::Reference<PresenterController>& rpPresenterController);
virtual ~SwitchMonitorCommand (void) {}
virtual void Execute (void);
virtual bool IsEnabled (void) const;
virtual Any GetState (void) const;
private:
rtl::Reference<PresenterController> mpPresenterController;
};
class SetNotesViewCommand : public Command
{
public:
......@@ -426,76 +439,31 @@ Command* PresenterProtocolHandler::Dispatch::CreateCommand (
{
if (rsURLPath.getLength() <= 5)
return NULL;
switch (rsURLPath[0])
{
case sal_Char('C') :
switch (rsURLPath[5])
{
case sal_Char('N'):
if (rsURLPath == A2S("CloseNotes"))
return new SetNotesViewCommand(false, rpPresenterController);
break;
case sal_Char('S'):
if (rsURLPath == A2S("CloseSlideSorter"))
return new SetSlideSorterCommand(false, rpPresenterController);
break;
case sal_Char('H'):
if (rsURLPath == A2S("CloseHelp"))
return new SetHelpViewCommand(false, rpPresenterController);
break;
}
break;
case sal_Char('G') :
if (rsURLPath == A2S("GrowNotesFont"))
return new NotesFontSizeCommand(rpPresenterController, +1);
break;
case sal_Char('N') :
switch (rsURLPath[4])
{
case sal_Char('E'):
if (rsURLPath == A2S("NextEffect"))
return new GotoNextEffectCommand(rpPresenterController);
case sal_Char('S'):
if (rsURLPath == A2S("NextSlide"))
return new GotoNextSlideCommand(rpPresenterController);
break;
}
break;
case sal_Char('P') :
if (rsURLPath == A2S("PrevSlide"))
return new GotoPreviousSlideCommand(rpPresenterController);
break;
case sal_Char('S') :
switch (rsURLPath[4])
{
case sal_Char('N'):
if (rsURLPath == A2S("ShowNotes"))
return new SetNotesViewCommand(true, rpPresenterController);
break;
case sal_Char('S'):
if (rsURLPath == A2S("ShowSlideSorter"))
return new SetSlideSorterCommand(true, rpPresenterController);
break;
case sal_Char('H'):
if (rsURLPath == A2S("ShowHelp"))
return new SetHelpViewCommand(true, rpPresenterController);
break;
case sal_Char('n'):
if (rsURLPath == A2S("ShrinkNotesFont"))
return new NotesFontSizeCommand(rpPresenterController, -1);
break;
}
break;
default:
break;
}
if (rsURLPath == A2S("CloseNotes"))
return new SetNotesViewCommand(false, rpPresenterController);
if (rsURLPath == A2S("CloseSlideSorter"))
return new SetSlideSorterCommand(false, rpPresenterController);
if (rsURLPath == A2S("CloseHelp"))
return new SetHelpViewCommand(false, rpPresenterController);
if (rsURLPath == A2S("GrowNotesFont"))
return new NotesFontSizeCommand(rpPresenterController, +1);
if (rsURLPath == A2S("NextEffect"))
return new GotoNextEffectCommand(rpPresenterController);
if (rsURLPath == A2S("NextSlide"))
return new GotoNextSlideCommand(rpPresenterController);
if (rsURLPath == A2S("PrevSlide"))
return new GotoPreviousSlideCommand(rpPresenterController);
if (rsURLPath == A2S("SwitchMonitor"))
return new SwitchMonitorCommand(rpPresenterController);
if (rsURLPath == A2S("ShowNotes"))
return new SetNotesViewCommand(true, rpPresenterController);
if (rsURLPath == A2S("ShowSlideSorter"))
return new SetSlideSorterCommand(true, rpPresenterController);
if (rsURLPath == A2S("ShowHelp"))
return new SetHelpViewCommand(true, rpPresenterController);
if (rsURLPath == A2S("ShrinkNotesFont"))
return new NotesFontSizeCommand(rpPresenterController, -1);
return NULL;
}
......@@ -686,7 +654,6 @@ Any GotoPreviousSlideCommand::GetState (void) const
//===== GotoNextEffect ========================================================
GotoNextEffectCommand::GotoNextEffectCommand (
......@@ -771,6 +738,29 @@ Any GotoNextSlideCommand::GetState (void) const
}
//===== SwitchMonitorCommand ==============================================
SwitchMonitorCommand::SwitchMonitorCommand (
const rtl::Reference<PresenterController>& rpPresenterController)
: mpPresenterController(rpPresenterController)
{
}
void SwitchMonitorCommand::Execute (void)
{
fprintf (stderr, "Switch monitor !\n");
}
bool SwitchMonitorCommand::IsEnabled (void) const
{
fprintf (stderr, "FIXME - check me !\n");
return true;
}
Any SwitchMonitorCommand::GetState (void) const
{
return Any(sal_False);
}
//===== SetNotesViewCommand ===================================================
......
......@@ -190,6 +190,8 @@ COMPONENT_BITMAPS= \
$(ZIP1DIR)$/bitmaps$/ButtonNotesMouseOver.png \
$(ZIP1DIR)$/bitmaps$/ButtonNotesSelected.png \
$(ZIP1DIR)$/bitmaps$/ButtonNotesDisabled.png \
$(ZIP1DIR)$/bitmaps$/ButtonSwitchMonitorNormal.png \
$(ZIP1DIR)$/bitmaps$/ButtonSwitchMonitorMouseOver.png \
$(ZIP1DIR)$/bitmaps$/ButtonSlideSorterNormal.png \
$(ZIP1DIR)$/bitmaps$/ButtonSlideSorterMouseOver.png \
$(ZIP1DIR)$/bitmaps$/ButtonSlideSorterSelected.png \
......
......@@ -222,6 +222,44 @@
</node>
</node>
<node oor:name="l" oor:op="replace">
<prop oor:name="Name"><value>SwitchMonitor</value></prop>
<prop oor:name="Type"><value>Button</value></prop>
<node oor:name="Normal">
<prop oor:name="Text"><value xml:lang="en-US">Exchange</value></prop>
<node oor:name="Icon">
<prop oor:name="NormalFileName"><value>bitmaps/ButtonSwitchMonitorNormal.png</value></prop>
</node>
<prop oor:name="Action"><value>vnd.com.sun.star.comp.PresenterScreen:SwitchMonitor</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/ButtonSwitchMonitorMouseOver.png</value></prop>
</node>
<node oor:name="Font">
<prop oor:name="Color"><value>FFFFFF</value></prop>
</node>
</node>
<node oor:name="Disabled">
<node oor:name="Icon">
<prop oor:name="NormalFileName"><value>bitmaps/ButtonSwitchMonitorDisabled.png</value></prop>
</node>
</node>
</node>
<node oor:name="m" oor:op="replace">
<prop oor:name="Type"><value>VerticalSeparator</value></prop>
<node oor:name="Normal">
<node oor:name="Font">
<prop oor:name="Color"><value>76797C</value></prop>
</node>
</node>
</node>
<node oor:name="n" oor:op="replace">
<prop oor:name="Name"><value>Help</value></prop>
<prop oor:name="Type"><value>Button</value></prop>
<node oor:name="Normal">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment