X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fgtkmm2ext%2Fgtkmm2ext%2Futils.h;h=e7c36d19e01f5f70f4df6f531dc1f21c754926a8;hb=11619a37bff79c050e39e434bc9899b516cbe4a1;hp=ca1b88abba48cca8f9e2fc0c8ec4855b8a37ca8d;hpb=45d3ec1437cf661533bc7750c623865def4424df;p=ardour.git diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h index ca1b88abba..e7c36d19e0 100644 --- a/libs/gtkmm2ext/gtkmm2ext/utils.h +++ b/libs/gtkmm2ext/gtkmm2ext/utils.h @@ -22,29 +22,57 @@ #include #include +#include +#include +#include + +#include #include #include /* for WMDecoration */ +#include + +namespace Cairo { + class Context; +} namespace Gtk { class ComboBoxText; class Widget; class Window; class Paned; + class Menu; } namespace Gtkmm2ext { - void init (); + void init (const char*); - void get_ink_pixel_size (Glib::RefPtr, int& width, int& height); + std::string fit_to_pixels (const std::string&, int pixel_width, Pango::FontDescription& font, int& actual_width, bool with_ellipses = false); + std::pair fit_to_pixels (cairo_t *, std::string, double); + int pixel_width (const std::string& str, Pango::FontDescription& font); + + 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_popdown_strings (Gtk::ComboBoxText&, const std::vector&); - + 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&); + template void deferred_delete (void *ptr) { delete static_cast (ptr); } @@ -53,6 +81,45 @@ namespace Gtkmm2ext { 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&); + + /* C++ API for rounded rectangles */ + + void rounded_rectangle (Cairo::RefPtr context, double x, double y, double w, double h, double r=10); + void rounded_top_rectangle (Cairo::RefPtr context, double x, double y, double w, double h, double r=10); + void rounded_top_left_rectangle (Cairo::RefPtr context, double x, double y, double w, double h, double r=10); + void rounded_top_right_rectangle (Cairo::RefPtr context, double x, double y, double w, double h, double r=10); + void rounded_top_half_rectangle (Cairo::RefPtr, double x, double y, double w, double h, double r=10); + void rounded_bottom_half_rectangle (Cairo::RefPtr, double x, double y, double w, double h, double r=10); + void rounded_right_half_rectangle (Cairo::RefPtr, double x, double y, double w, double h, double r=10); + + /* C API for rounded rectangles */ + + void rounded_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + void rounded_top_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + void rounded_top_left_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + void rounded_top_right_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + void rounded_top_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + void rounded_bottom_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + void rounded_right_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10); + + Gtk::Label* left_aligned_label (std::string const &); + + void set_no_tooltip_whatsoever (Gtk::Widget &); + void enable_tooltips (); + void disable_tooltips (); + + void convert_bgra_to_rgba (guint8 const *, guint8 * dst, int, int); }; #endif /* __gtkmm2ext_utils_h__ */