switch (fd.get_style()) {
case Pango::STYLE_NORMAL:
- slant = Cairo::FONT_SLANT_NORMAL;
+ _slant = Cairo::FONT_SLANT_NORMAL;
break;
case Pango::STYLE_OBLIQUE:
- slant = Cairo::FONT_SLANT_OBLIQUE;
+ _slant = Cairo::FONT_SLANT_OBLIQUE;
break;
case Pango::STYLE_ITALIC:
- slant = Cairo::FONT_SLANT_ITALIC;
+ _slant = Cairo::FONT_SLANT_ITALIC;
break;
}
switch (fd.get_weight()) {
case Pango::WEIGHT_ULTRALIGHT:
- weight = Cairo::FONT_WEIGHT_NORMAL;
+ _weight = Cairo::FONT_WEIGHT_NORMAL;
break;
case Pango::WEIGHT_LIGHT:
- weight = Cairo::FONT_WEIGHT_NORMAL;
+ _weight = Cairo::FONT_WEIGHT_NORMAL;
break;
case Pango::WEIGHT_NORMAL:
- weight = Cairo::FONT_WEIGHT_NORMAL;
+ _weight = Cairo::FONT_WEIGHT_NORMAL;
break;
case Pango::WEIGHT_SEMIBOLD:
- weight = Cairo::FONT_WEIGHT_BOLD;
+ _weight = Cairo::FONT_WEIGHT_BOLD;
break;
case Pango::WEIGHT_BOLD:
- weight = Cairo::FONT_WEIGHT_BOLD;
+ _weight = Cairo::FONT_WEIGHT_BOLD;
break;
case Pango::WEIGHT_ULTRABOLD:
- weight = Cairo::FONT_WEIGHT_BOLD;
+ _weight = Cairo::FONT_WEIGHT_BOLD;
break;
case Pango::WEIGHT_HEAVY:
- weight = Cairo::FONT_WEIGHT_BOLD;
+ _weight = Cairo::FONT_WEIGHT_BOLD;
break;
}
return;
}
+ context->save ();
+
+ context->rectangle (bbox.x, bbox.y, bbox.width, bbox.height);
+ context->clip ();
+
_font->apply (context);
context->move_to (bbox.x, bbox.y + bbox.height + y_offset);
context->show_text (_text);
+
+ context->restore ();
}
void
}
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;