Browse Source

make tooltips class safety

merge-requests/365/head
Vadim 10 years ago
parent
commit
7a75c8f90f
  1. 6
      src/tooltips.cc
  2. 14
      src/tooltips.h

6
src/tooltips.cc

@ -138,7 +138,7 @@ void Tooltip::wrap_lines(Glib::RefPtr<Gtk::TextBuffer> text_buffer) {
}
void Tooltips::show(const Gdk::Rectangle& rectangle, bool disregard_drawn) {
for(auto& tooltip: *this) {
for(auto &tooltip : tooltip_list) {
tooltip.update();
if(rectangle.intersects(tooltip.activation_rectangle)) {
tooltip.adjust(disregard_drawn);
@ -150,7 +150,7 @@ void Tooltips::show(const Gdk::Rectangle& rectangle, bool disregard_drawn) {
}
void Tooltips::show(bool disregard_drawn) {
for(auto& tooltip: *this) {
for(auto &tooltip : tooltip_list) {
tooltip.update();
tooltip.adjust(disregard_drawn);
tooltip.window->show_all();
@ -158,7 +158,7 @@ void Tooltips::show(bool disregard_drawn) {
}
void Tooltips::hide() {
for(auto& tooltip: *this) {
for(auto &tooltip : tooltip_list) {
if(tooltip.window)
tooltip.window->hide();
}

14
src/tooltips.h

@ -25,14 +25,26 @@ private:
int tooltip_width, tooltip_height;
};
class Tooltips : public std::list<Tooltip> {
class Tooltips {
public:
using iterator = typename std::list<Tooltip>::iterator;
static void init() {drawn_tooltips_rectangle=Gdk::Rectangle();}
void show(const Gdk::Rectangle& rectangle, bool disregard_drawn=false);
void show(bool disregard_drawn=false);
void hide();
void clear() {tooltip_list.clear();};
template<typename... Ts>
void emplace_back(Ts&&... params)
{
tooltip_list.emplace_back(std::forward<Ts>(params)...);
}
static Gdk::Rectangle drawn_tooltips_rectangle;
private:
std::list<Tooltip> tooltip_list;
};
#endif // JUCI_TOOLTIPS_H_

Loading…
Cancel
Save