Line data Source code
1 : /****************************************************************************/ 2 : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo 3 : // Copyright (C) 2006-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 : /****************************************************************************/ 14 : /// @file MFXTextFieldSearch.h 15 : /// @author Pablo Alvarez Lopez 16 : /// @date May 2023 17 : /// 18 : // TextField for search elements 19 : /****************************************************************************/ 20 : 21 : #pragma once 22 : #include <config.h> 23 : 24 : #include "MFXTextFieldIcon.h" 25 : 26 : 27 : /// @brief FXTextFieldIcon (based on FXTextFieldIcon) 28 : class MFXTextFieldSearch : public MFXTextFieldIcon { 29 : /// @brief FOX declaration 30 0 : FXDECLARE(MFXTextFieldSearch) 31 : 32 : public: 33 : /// @brief constructor 34 : MFXTextFieldSearch(FXComposite* p, FXint ncols, FXObject* tgt = NULL, FXSelector sel = 0, 35 : FXuint opts = TEXTFIELD_NORMAL, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0, 36 : FXint pl = DEFAULT_PAD, FXint pr = DEFAULT_PAD, FXint pt = DEFAULT_PAD, FXint pb = DEFAULT_PAD); 37 : 38 : /// @brief key press 39 : long onKeyPress(FXObject* obj, FXSelector sel, void* ptr); 40 : 41 : /// @brief paint 42 : long onPaint(FXObject* obj, FXSelector sel, void* ptr); 43 : 44 : /// @brief focus in 45 : long onFocusIn(FXObject* sender, FXSelector sel, void* ptr); 46 : 47 : /// @brief focus out 48 : long onFocusOut(FXObject* sender, FXSelector sel, void* ptr); 49 : 50 : /// @brief focus self 51 : long onFocusSelf(FXObject* sender, FXSelector sel, void* ptr); 52 : 53 : protected: 54 : /// @brief FOX need this 55 : MFXTextFieldSearch(); 56 : 57 : private: 58 : /// @brief target 59 : FXObject* myTarget = nullptr; 60 : 61 : /// @brief draw search text range 62 : void drawSearchTextRange(FXDCWindow& dc, FXint fm, const FXString& searchString); 63 : };