LCOV - code coverage report
Current view: top level - src/utils/foxtools - MFXMenuButtonTooltip.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 25.0 % 28 7
Test Date: 2025-12-06 15:35:27 Functions: 36.4 % 11 4

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
       4              : // This program and the accompanying materials are made available under the
       5              : // terms of the Eclipse Public License 2.0 which is available at
       6              : // https://www.eclipse.org/legal/epl-2.0/
       7              : // This Source Code may also be made available under the following Secondary
       8              : // Licenses when the conditions for such availability set forth in the Eclipse
       9              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10              : // or later which is available at
      11              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13              : /****************************************************************************/
      14              : /// @file    MFXMenuButtonTooltip.cpp
      15              : /// @author  Pablo Alvarez Lopez
      16              : /// @date    2022-07-27
      17              : ///
      18              : // MenuButton similar to FXMenuButton but with the possibility of showing tooltips
      19              : /****************************************************************************/
      20              : #include <config.h>
      21              : 
      22              : #include <utils/gui/windows/GUIAppEnum.h>
      23              : 
      24              : #include "MFXStaticToolTip.h"
      25              : #include "MFXMenuButtonTooltip.h"
      26              : 
      27              : // ===========================================================================
      28              : // FOX callback mapping
      29              : // ===========================================================================
      30              : 
      31              : FXDEFMAP(MFXMenuButtonTooltip) MFXMenuButtonTooltipMap[] = {
      32              :     FXMAPFUNC(SEL_ENTER,            0,                  MFXMenuButtonTooltip::onEnter),
      33              :     FXMAPFUNC(SEL_LEAVE,            0,                  MFXMenuButtonTooltip::onLeave),
      34              :     FXMAPFUNC(SEL_MOTION,           0,                  MFXMenuButtonTooltip::onMotion),
      35              :     FXMAPFUNC(SEL_LEFTBUTTONPRESS,  0,                  MFXMenuButtonTooltip::onLeftBtnPress),
      36              :     FXMAPFUNC(SEL_KEYPRESS,         0,                  MFXMenuButtonTooltip::onKeyPress),
      37              :     FXMAPFUNC(SEL_COMMAND,          FXWindow::ID_POST,  MFXMenuButtonTooltip::onCmdPost),
      38              : };
      39              : 
      40              : // Object implementation
      41       457699 : FXIMPLEMENT(MFXMenuButtonTooltip, FXMenuButton, MFXMenuButtonTooltipMap, ARRAYNUMBER(MFXMenuButtonTooltipMap))
      42              : 
      43              : // ===========================================================================
      44              : // method definitions
      45              : // ===========================================================================
      46              : 
      47         7582 : MFXMenuButtonTooltip::MFXMenuButtonTooltip(FXComposite* p, MFXStaticToolTip* staticToolTip, const std::string& text, FXIcon* ic,
      48              :         FXPopup* pup, FXObject* optionalTarget, FXuint opts,
      49         7582 :         FXint x, FXint y, FXint w, FXint h, FXint pl, FXint pr, FXint pt, FXint pb) :
      50              :     FXMenuButton(p, text.c_str(), ic, pup, opts, x, y, w, h, pl, pr, pt, pb),
      51         7582 :     myStaticToolTip(staticToolTip),
      52         7582 :     myOptionalTarget(optionalTarget) {
      53         7582 : }
      54              : 
      55              : 
      56        15112 : MFXMenuButtonTooltip::~MFXMenuButtonTooltip() {}
      57              : 
      58              : 
      59              : long
      60            0 : MFXMenuButtonTooltip::onEnter(FXObject* sender, FXSelector sel, void* ptr) {
      61              :     // show tip show
      62            0 :     myStaticToolTip->showStaticToolTip(getTipText());
      63            0 :     return FXMenuButton::onEnter(sender, sel, ptr);
      64              : }
      65              : 
      66              : 
      67              : long
      68            0 : MFXMenuButtonTooltip::onLeave(FXObject* sender, FXSelector sel, void* ptr) {
      69              :     // hide static toolTip
      70            0 :     myStaticToolTip->hideStaticToolTip();
      71            0 :     return FXMenuButton::onLeave(sender, sel, ptr);
      72              : }
      73              : 
      74              : 
      75              : long
      76            0 : MFXMenuButtonTooltip::onMotion(FXObject* sender, FXSelector sel, void* ptr) {
      77              :     // update static tooltip
      78            0 :     myStaticToolTip->onUpdate(sender, sel, ptr);
      79            0 :     return FXMenuButton::onMotion(sender, sel, ptr);
      80              : }
      81              : 
      82              : 
      83              : long
      84            0 : MFXMenuButtonTooltip::onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr) {
      85              :     // inform optional target
      86            0 :     if (myOptionalTarget) {
      87            0 :         myOptionalTarget->tryHandle(this, FXSEL(MID_MBTTIP_FOCUS, message), nullptr);
      88              :     }
      89              :     // continue handling onLeftBtnPress
      90            0 :     return FXMenuButton::onLeftBtnPress(sender, sel, ptr);
      91              : }
      92              : 
      93              : long
      94            0 : MFXMenuButtonTooltip::onKeyPress(FXObject* sender, FXSelector sel, void* ptr) {
      95              :     // inform optional target
      96            0 :     if (myOptionalTarget) {
      97            0 :         myOptionalTarget->tryHandle(this, FXSEL(MID_MBTTIP_FOCUS, message), nullptr);
      98              :     }
      99              :     // continue handling onKeyPress
     100            0 :     return FXMenuButton::onKeyPress(sender, sel, ptr);
     101              : }
     102              : 
     103              : 
     104              : long
     105            0 : MFXMenuButtonTooltip::onCmdPost(FXObject* sender, FXSelector sel, void* ptr) {
     106              :     // inform optional target
     107            0 :     if (myOptionalTarget) {
     108            0 :         myOptionalTarget->tryHandle(this, FXSEL(MID_MBTTIP_SELECTED, message), nullptr);
     109              :     }
     110              :     // continue handling onCheck
     111            0 :     return FXMenuButton::onCmdPost(sender, sel, ptr);
     112              : }
     113              : 
     114              : /****************************************************************************/
        

Generated by: LCOV version 2.0-1