view libgui/graphics/PushTool.h @ 33599:7f18c537e101

maint: Update Qt macros to avoid name collisions It is a known problem with Qt that terms like "signals", "slots", and "emit" can conflict with other libraries using those identifiers. So far, Octave has not had that problem, but to allow for potential future use of third-party libraries, especially the C++17 STL's parallelization functions, these terms are being updated to their Qt-specific collision-safe versions. Discussion: https://octave.discourse.group/t/updating-qt-macro-names-to-avoid-name-collisions/5627 and discussions linked therein. This patch makes the following changes through the part of the Octave codebase using Qt: * signals --> Q_SIGNALS * slots --> Q_SLOTS * emit --> Q_EMIT The above changes were guided and verified by passing "-DQT_NO_KEYWORDS" to CXXFLAGS when building Octave.
author Arun Giridhar <arungiridhar@gmail.com>
date Fri, 17 May 2024 19:49:10 -0400
parents 2e484f9f1f18
children
line wrap: on
line source

////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2011-2024 The Octave Project Developers
//
// See the file COPYRIGHT.md in the top-level directory of this
// distribution or <https://octave.org/copyright/>.
//
// This file is part of Octave.
//
// Octave is free software: you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Octave is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Octave; see the file COPYING.  If not, see
// <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////////////

#if ! defined (octave_PushTool_h)
#define octave_PushTool_h 1

#include "ToolBarButton.h"

OCTAVE_BEGIN_NAMESPACE(octave)

class interpreter;

class PushTool : public ToolBarButton<uipushtool>
{
  Q_OBJECT

public:
  PushTool (octave::interpreter& interp,
            const graphics_object& go, QAction *action);
  ~PushTool ();

  static PushTool *
  create (octave::interpreter& interp,
          const graphics_object& go);

protected:
  void update (int pId);

private Q_SLOTS:
  void clicked ();
};

OCTAVE_END_NAMESPACE(octave)

#endif