00001 /*************************************************************************** 00002 * Copyright (C) 2004 by Rick L. Vinyard, Jr. * 00003 * rvinyard@cs.nmsu.edu * 00004 * * 00005 * This file is part of the papyrus library. * 00006 * * 00007 * papyrus is free software; you can redistribute it and/or modify * 00008 * it under the terms of the GNU Lesser General Public License * 00009 * version 3.0 as published by the Free Software Foundation. * 00010 * * 00011 * papyrus is distributed in the hope that it will be useful, * 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00014 * GNU Lesser General Public License version 3.0 for more details. * 00015 * * 00016 * You should have received a copy of the GNU Lesser General Public * 00017 * License along with the papyrus library. If not, see * 00018 * <http://www.gnu.org/licenses/>. * 00019 ***************************************************************************/ 00020 #ifndef PAPYRUSGTKLINECAPBUTTONBOX_H 00021 #define PAPYRUSGTKLINECAPBUTTONBOX_H 00022 00023 #include <cairomm/cairomm.h> 00024 #include <gtkmm/buttonbox.h> 00025 #include <gtkmm/image.h> 00026 #include <gtkmm/togglebutton.h> 00027 #include <gtkmm/tooltips.h> 00028 00029 #include <papyrus-gtkmm/enums.h> 00030 00031 namespace Papyrus 00032 { 00033 namespace Gtk 00034 { 00035 00039 class LineCapButtonBox : public ::Gtk::HButtonBox 00040 { 00041 public: 00042 LineCapButtonBox ( Cairo::LineCap selected=Cairo::LINE_CAP_BUTT, SIZE size=SIZE_MEDIUM ); 00043 00044 ~LineCapButtonBox(); 00045 00046 sigc::signal<void, Cairo::LineCap> signal_selected(); 00047 00048 Cairo::LineCap selected(); 00049 void set_selected ( Cairo::LineCap selected ); 00050 00051 SIZE get_size(); 00052 void set_size ( SIZE size ); 00053 00054 protected: 00055 SIZE m_size; 00056 Cairo::LineCap m_selected; 00057 00058 ::Gtk::Tooltips m_tooltips; 00059 std::vector< ::Gtk::Image*> m_images; 00060 std::vector< ::Gtk::ToggleButton*> m_buttons; 00061 00062 sigc::signal<void, Cairo::LineCap> m_signal_selected; 00063 00064 void create_images ( SIZE size ); 00065 00066 }; 00067 00068 } 00069 00070 } 00071 00072 #endif