diff options
Diffstat (limited to 'dw/bullet.cc')
-rw-r--r-- | dw/bullet.cc | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/dw/bullet.cc b/dw/bullet.cc new file mode 100644 index 00000000..cc13867c --- /dev/null +++ b/dw/bullet.cc @@ -0,0 +1,72 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken <sgeerken@dillo.org> + * + * 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 3 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. + */ + + + +#include "bullet.hh" + +#include <stdio.h> + +namespace dw { + +Bullet::Bullet () +{ +} + +void Bullet::sizeRequestImpl (core::Requisition *requisition) +{ + requisition->width = lout::misc::max (getStyle()->font->xHeight * 4 / 5, 1); + requisition->ascent = lout::misc::max (getStyle()->font->xHeight, 1); + requisition->descent = 0; +} + +void Bullet::draw (core::View *view, core::Rectangle *area) +{ + int x, y, l; + bool filled = true; + + l = lout::misc::min (allocation.width, allocation.ascent); + x = allocation.x; + y = allocation.y + allocation.ascent - getStyle()->font->xHeight; + + switch (getStyle()->listStyleType) { + case core::style::LIST_STYLE_TYPE_SQUARE: + view->drawRectangle (getStyle()->color, + core::style::Color::SHADING_NORMAL, + false, x, y, l, l); + break; + case core::style::LIST_STYLE_TYPE_CIRCLE: + filled = false; + // Fall Through + case core::style::LIST_STYLE_TYPE_DISC: + default: + view->drawArc (getStyle()->color, core::style::Color::SHADING_NORMAL, + filled, x, y, l, l, 0, 360); + } +} + +core::Iterator *Bullet::iterator (core::Content::Type mask, bool atEnd) +{ + //return new core::TextIterator (this, mask, atEnd, "*"); + /** \bug Not implemented. */ + return new core::EmptyIterator (this, mask, atEnd); +} + +} // namespace dw |