/* Copyright (C) 1999 Paul Barton-Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __gtkmm2ext_utils_h__ #define __gtkmm2ext_utils_h__ #include #include #include #include #include #include #include /* for WMDecoration */ #include #include namespace Cairo { class Context; } namespace Gtk { class ComboBoxText; class Widget; class Window; class Paned; class Menu; } namespace Gtkmm2ext { void init (); void get_ink_pixel_size (Glib::RefPtr, int& width, int& height); void set_size_request_to_display_given_text (Gtk::Widget &w, const gchar *text, gint hpadding, gint vpadding); void set_size_request_to_display_given_text (Gtk::Widget &w, const std::vector&, gint hpadding, gint vpadding); Glib::RefPtr pixbuf_from_string (const std::string& name, const Pango::FontDescription& font, int clip_width, int clip_height, Gdk::Color fg); void set_popdown_strings (Gtk::ComboBoxText&, const std::vector&, bool set_size = false, gint hpadding = 0, gint vpadding = 0); // Combo's are stupid - they steal space from the entry for the button #ifdef GTKOSX static const guint32 COMBO_FUDGE = 38; #else static const guint32 COMBO_FUDGE = 24; #endif template void deferred_delete (void *ptr) { delete static_cast (ptr); } GdkWindow* get_paned_handle (Gtk::Paned& paned); void set_decoration (Gtk::Window* win, Gdk::WMDecoration decor); void set_treeview_header_as_default_label(Gtk::TreeViewColumn *c); Glib::RefPtr get_bogus_drawable(); void detach_menu (Gtk::Menu&); Glib::RefPtr window_to_draw_on (Gtk::Widget& w, Gtk::Widget** parent); bool possibly_translate_keyval_to_make_legal_accelerator (uint32_t& keyval); uint32_t possibly_translate_legal_accelerator_to_real_key (uint32_t keyval); int physical_screen_height (Glib::RefPtr); int physical_screen_width (Glib::RefPtr); void container_clear (Gtk::Container&); void rounded_rectangle (Cairo::RefPtr context, double x, double y, double w, double h, double r=10); }; #endif /* __gtkmm2ext_utils_h__ */