gecko-dev/dom/events/CommandEvent.cpp
Masayuki Nakano 6da4b51b7b Bug 971462 - Hide event type from constructor of WidgetCommandEvent r=smaug
The constructor of WidgetCommandEvent takes 2 nsAtom pointers.  One is for
specifying event type, the other is for specifying the command.  The
difference of these arguments are pretty unclear for other developers and
the former argument is always nsGkAtoms::onAppCommand unless nullptr in
C++ code.  So, we can hide the former argument.

Then, we should create another constructor for creating empty command event
from constructor of dom::CommandEvent.

Differential Revision: https://phabricator.services.mozilla.com/D2506

--HG--
extra : moz-landing-system : lando
2018-07-30 12:20:47 +00:00

54 lines
1.4 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/dom/CommandEvent.h"
#include "mozilla/MiscEvents.h"
#include "prtime.h"
namespace mozilla {
namespace dom {
CommandEvent::CommandEvent(EventTarget* aOwner,
nsPresContext* aPresContext,
WidgetCommandEvent* aEvent)
: Event(aOwner, aPresContext,
aEvent ? aEvent : new WidgetCommandEvent())
{
mEvent->mTime = PR_Now();
if (aEvent) {
mEventIsInternal = false;
} else {
mEventIsInternal = true;
}
}
void
CommandEvent::GetCommand(nsAString& aCommand)
{
nsAtom* command = mEvent->AsCommandEvent()->mCommand;
if (command) {
command->ToString(aCommand);
} else {
aCommand.Truncate();
}
}
} // namespace dom
} // namespace mozilla
using namespace mozilla;
using namespace mozilla::dom;
already_AddRefed<CommandEvent>
NS_NewDOMCommandEvent(EventTarget* aOwner,
nsPresContext* aPresContext,
WidgetCommandEvent* aEvent)
{
RefPtr<CommandEvent> it =
new CommandEvent(aOwner, aPresContext, aEvent);
return it.forget();
}