Line data Source code
1 : /****************************************************************************/
2 : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 : // Copyright (C) 2001-2026 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 MFXToggleButtonTooltip.cpp
15 : /// @author Pablo Alvarez Lopez
16 : /// @date Sep 2022
17 : ///
18 : // Button similar to FXToggleButton but with the possibility of showing tooltips
19 : /****************************************************************************/
20 :
21 : #include "MFXStaticToolTip.h"
22 : #include "MFXToggleButtonTooltip.h"
23 :
24 : // ===========================================================================
25 : // FOX callback mapping
26 : // ===========================================================================
27 :
28 : FXDEFMAP(MFXToggleButtonTooltip) MFXToggleButtonTooltipMap[] = {
29 : FXMAPFUNC(SEL_ENTER, 0, MFXToggleButtonTooltip::onEnter),
30 : FXMAPFUNC(SEL_LEAVE, 0, MFXToggleButtonTooltip::onLeave),
31 : FXMAPFUNC(SEL_MOTION, 0, MFXToggleButtonTooltip::onMotion),
32 : };
33 :
34 : // Object implementation
35 0 : FXIMPLEMENT(MFXToggleButtonTooltip, FXToggleButton, MFXToggleButtonTooltipMap, ARRAYNUMBER(MFXToggleButtonTooltipMap))
36 :
37 : // ===========================================================================
38 : // method definitions
39 : // ===========================================================================
40 :
41 0 : MFXToggleButtonTooltip::MFXToggleButtonTooltip(FXComposite* p, MFXStaticToolTip* staticToolTip,
42 : const std::string& text1, const std::string& text2, FXIcon* ic1, FXIcon* ic2, FXObject* tgt,
43 0 : FXSelector sel, FXuint opts, FXint x, FXint y, FXint w, FXint h, FXint pl, FXint pr, FXint pt, FXint pb) :
44 : FXToggleButton(p, text1.c_str(), text2.c_str(), ic1, ic2, tgt, sel, opts, x, y, w, h, pl, pr, pt, pb),
45 0 : myStaticToolTip(staticToolTip) {
46 0 : }
47 :
48 :
49 0 : MFXToggleButtonTooltip::~MFXToggleButtonTooltip() {}
50 :
51 :
52 : long
53 0 : MFXToggleButtonTooltip::onEnter(FXObject* sender, FXSelector sel, void* ptr) {
54 : // show tip show
55 0 : myStaticToolTip->showStaticToolTip(getTipText());
56 0 : return FXToggleButton::onEnter(sender, sel, ptr);
57 : }
58 :
59 :
60 : long
61 0 : MFXToggleButtonTooltip::onLeave(FXObject* sender, FXSelector sel, void* ptr) {
62 : // hide static toolTip
63 0 : myStaticToolTip->hideStaticToolTip();
64 0 : return FXToggleButton::onLeave(sender, sel, ptr);
65 : }
66 :
67 :
68 : long
69 0 : MFXToggleButtonTooltip::onMotion(FXObject* sender, FXSelector sel, void* ptr) {
70 : // update static tooltip
71 0 : myStaticToolTip->onUpdate(sender, sel, ptr);
72 0 : return FXToggleButton::onMotion(sender, sel, ptr);
73 : }
74 :
75 : /****************************************************************************/
|