00001 /*************************************************************************** 00002 * Copyright (C) 2001 by Rick L. Vinyard, Jr. * 00003 * rvinyard@cs.nmsu.edu * 00004 * * 00005 * This file is part of the conexus library. * 00006 * * 00007 * The conexus library is free software; you can redistribute it and/or * 00008 * modify it under the terms of the GNU General Public License * 00009 * version 3 as published by the Free Software Foundation. * 00010 * * 00011 * The conexus library is distributed in the hope that it will be * 00012 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * 00013 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00014 * General Public License for more details. * 00015 * * 00016 * You should have received a copy of the GNU General Public License * 00017 * along with this software. If not see <http://www.gnu.org/licenses/>. * 00018 ***************************************************************************/ 00019 #ifndef CONEXUSGTKMMDOTTEDDECIMALENTRY_H 00020 #define CONEXUSGTKMMDOTTEDDECIMALENTRY_H 00021 00022 #include <gtkmm.h> 00023 #include <conexus.h> 00024 00025 namespace Conexus 00026 { 00027 namespace Gtk 00028 { 00029 00033 class DottedDecimalEntry : public ::Gtk::HBox 00034 { 00035 public: 00036 DottedDecimalEntry( ); 00037 // DottedDecimalEntry( IPAddressInterface* addr ); 00038 // DottedDecimalEntry( IPAddressInterface::pointer addr ); 00039 // DottedDecimalEntry( IPv4::Address& addr ); 00040 00041 ~DottedDecimalEntry(); 00042 00043 // IPAddressInterface* address(); 00044 00045 // void set_address( IPAddressInterface* addr ); 00046 // void set_address( IPAddressInterface::pointer addr ); 00047 // void set_address( Conexus::IPv4::Address& addr ); 00048 00049 // void unset_address(); 00050 00051 std::string host_string() const; 00052 00053 ::Gtk::Button& apply_button(); 00054 00055 bool is_immediate_apply_enabled(); 00056 00057 void enable_immediate_apply( bool enable=true ); 00058 00059 void apply(); 00060 00061 protected: 00062 IPAddressInterface* m_address; 00063 bool m_immediate_apply; 00064 00065 sigc::connection m_address_host_connection; 00066 00067 ::Gtk::Entry m_entry[4]; 00068 00069 void on_entry_insert_text ( const Glib::ustring& text, int* position, int n ); 00070 00071 private: 00072 00073 void setup_widget(); 00074 00075 }; 00076 00077 } 00078 00079 } 00080 00081 #endif