#include "gtkmm2ext/utils.h"
using std::string;
+using std::vector;
using std::map;
using std::max;
using std::cerr;
CairoTextCell::set_size (Cairo::RefPtr<Cairo::Context>& context)
{
const uint32_t lim = (uint32_t) ceil (_width_chars);
- char buf[lim+1];
+ vector<char> buf(lim+1);
uint32_t n;
double max_width = 0.0;
double max_height = 0.0;
buf[n] = '0' + digit;
}
- context->get_text_extents (buf, ext);
+ context->get_text_extents (&buf[0], ext);
max_width = max (ext.width + ext.x_bearing, max_width);
max_height = max (ext.height, max_height);
set_flags (Gtk::CAN_FOCUS);
set_can_default (true);
- set_receives_default (true);
}
CairoEditableText::~CairoEditableText ()
}
bool
-CairoEditableText::on_focus_in_event (GdkEventFocus* ev)
+CairoEditableText::on_focus_in_event (GdkEventFocus*)
{
return false;
}
bool
-CairoEditableText::on_focus_out_event (GdkEventFocus* ev)
+CairoEditableText::on_focus_out_event (GdkEventFocus*)
{
if (editing_cell) {
queue_draw_cell (editing_cell);
bool
CairoEditableText::on_expose_event (GdkEventExpose* ev)
{
- Cairo::RefPtr<Cairo::Context> context = get_window()->create_cairo_context();
+ Glib::RefPtr<Gdk::Window> win = get_window ();
+
+ if (!win) {
+ std::cerr << "CET: no window to draw on\n";
+ return false;
+ }
+
+ Cairo::RefPtr<Cairo::Context> context = win->create_cairo_context();
if (cells.empty()) {
return true;