1 // Copyright (C) 2007 Ole Laursen 2 // Copyright (C) 2007, 2008, 2009 Ben Asselstine 3 // 4 // This program is free software; you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation; either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Library General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with this program; if not, write to the Free Software 16 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 17 // 02110-1301, USA. 18 19 #pragma once 20 #ifndef ARMY_INFO_TIP_H 21 #define ARMY_INFO_TIP_H 22 23 #include <memory> 24 #include <sigc++/trackable.h> 25 #include <gtkmm.h> 26 27 class Army; 28 class ArmyProto; 29 class ArmyProdBase; 30 class City; 31 32 // shows a tooltip like window with information about an army 33 class ArmyInfoTip: public sigc::trackable 34 { 35 public: 36 // the tip is shown above target, simply delete the object to hide it again 37 ArmyInfoTip(Gtk::Widget *target, const Army *army); 38 ArmyInfoTip(Gtk::Widget *target, const ArmyProdBase *army, City *city); 39 ArmyInfoTip(Gtk::Widget *target, const ArmyProto *army); ~ArmyInfoTip()40 ~ArmyInfoTip() {delete window;}; 41 42 private: 43 Gtk::Window* window; 44 void init (Gtk::Widget *target, Glib::RefPtr<Gdk::Pixbuf> image, guint32 move_bonus, Glib::ustring info); 45 }; 46 47 #endif 48