Eclipse SUMO - Simulation of Urban MObility
MFXCheckableButton.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2004-2024 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 /****************************************************************************/
18 // Checkable button similar to a FXButton but maintain the check
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
23 #include <string>
24 
25 #include "fxheader.h"
26 #include "MFXStaticToolTip.h"
27 
31 class MFXCheckableButton : public FXButton {
33  FXDECLARE(MFXCheckableButton)
34 
35 public:
37  MFXCheckableButton(bool amChecked, FXComposite* p, MFXStaticToolTip* staticToolTip, const std::string& text,
38  FXIcon* ic = NULL, FXObject* tgt = NULL, FXSelector sel = 0, FXuint opts = BUTTON_NORMAL,
39  FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0,
40  FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD);
41 
44 
46  bool amChecked() const;
47 
49  void setChecked(bool val, const bool inform = false);
50 
54  long onPaint(FXObject*, FXSelector, void*);
55 
57  long onUpdate(FXObject*, FXSelector, void*);
58 
60  long onEnter(FXObject*, FXSelector, void*);
61 
63  long onLeave(FXObject*, FXSelector, void*);
64 
66  long onMotion(FXObject*, FXSelector, void*);
67 
69 
70 protected:
72  FOX_CONSTRUCTOR(MFXCheckableButton)
73 
74 
76 
78  FXColor myBackColor,
82 
85 
88 
90  void buildColors();
91 
93  void setColors();
94 
95 private:
98 
100  MFXCheckableButton& operator=(const MFXCheckableButton&) = delete;
101 };
void buildColors()
build color of this MFXCheckableButton
long onUpdate(FXObject *, FXSelector, void *)
called when this MFXCheckableButton is updated
FXColor myBackColor
colors of this MFXCheckableButton
MFXCheckableButton(bool amChecked, FXComposite *p, MFXStaticToolTip *staticToolTip, const std::string &text, FXIcon *ic=NULL, FXObject *tgt=NULL, FXSelector sel=0, FXuint opts=BUTTON_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=DEFAULT_PAD, FXint pr=DEFAULT_PAD, FXint pt=DEFAULT_PAD, FXint pb=DEFAULT_PAD)
fox declaration
void setColors()
set colors of this MFXCheckableButton
long onLeave(FXObject *, FXSelector, void *)
called when mouse leaves in MFXCheckableButton
bool amChecked() const
check if this MFXCheckableButton is checked
~MFXCheckableButton()
destructor (Called automatically)
long onPaint(FXObject *, FXSelector, void *)
bool myAmInitialised
check if this MFXCheckableButton is initialised
bool myAmChecked
FOX need this.
void setChecked(bool val, const bool inform=false)
check or uncheck this MFXCheckableButton
long onMotion(FXObject *, FXSelector, void *)
called when mouse motion in MFXCheckableButton
MFXStaticToolTip * myStaticToolTip
static tool tip
long onEnter(FXObject *, FXSelector, void *)
called when mouse enter in MFXCheckableButton
MFXStaticToolTip (based on FXToolTip)