Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/utils/foxtools/MFXMenuButtonTooltip.h
169678 views
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.h
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
#pragma once
21
#include <config.h>
22
23
#include <string>
24
25
#include "fxheader.h"
26
27
// ===========================================================================
28
// class declaration
29
// ===========================================================================
30
31
class MFXStaticToolTip;
32
33
// ===========================================================================
34
// class definitions
35
// ===========================================================================
36
37
class MFXMenuButtonTooltip : public FXMenuButton {
38
/// @brief fox declaration
39
FXDECLARE(MFXMenuButtonTooltip)
40
41
public:
42
/// @brief constructor (Exactly like the FXMenuButton constructor)
43
MFXMenuButtonTooltip(FXComposite* p, MFXStaticToolTip* staticToolTip, const std::string& text, FXIcon* ic,
44
FXPopup* pup, FXObject* optionalTarget,
45
FXuint opts = JUSTIFY_NORMAL | ICON_BEFORE_TEXT | MENUBUTTON_DOWN,
46
FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0,
47
FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD);
48
49
/// @brief destructor (Called automatically)
50
~MFXMenuButtonTooltip();
51
52
/// @name FOX callbacks
53
/// @{
54
/// @brief called when mouse enter in MFXMenuButtonTooltip
55
long onEnter(FXObject*, FXSelector, void*);
56
57
/// @brief called when mouse leaves in MFXMenuButtonTooltip
58
long onLeave(FXObject*, FXSelector, void*);
59
60
/// @brief called when mouse motion in MFXMenuButtonTooltip
61
long onMotion(FXObject*, FXSelector, void*);
62
63
/// @brief called when left mouse button is press
64
long onLeftBtnPress(FXObject*, FXSelector, void*);
65
66
/// @brief called when key is press
67
long onKeyPress(FXObject*, FXSelector, void*);
68
69
/// @brief called when button is press
70
long onCmdPost(FXObject*, FXSelector, void*);
71
72
/// @}
73
74
protected:
75
/// @brief FOX needs this
76
FOX_CONSTRUCTOR(MFXMenuButtonTooltip)
77
78
/// @brief static tooltip
79
MFXStaticToolTip* myStaticToolTip = nullptr;
80
81
/// @brief optional target
82
FXObject* myOptionalTarget = nullptr;
83
84
private:
85
/// @brief Invalidated copy constructor.
86
MFXMenuButtonTooltip(const MFXMenuButtonTooltip&) = delete;
87
88
/// @brief Invalidated assignment operator.
89
MFXMenuButtonTooltip& operator=(const MFXMenuButtonTooltip&) = delete;
90
};
91
92