The Gnome Chemistry Utils  0.14.0
line-item.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  * Gnome Chemistry Utils
5  * gccv/fill-item.h
6  *
7  * Copyright (C) 2008-2012 Jean Bréfort <jean.brefort@normalesup.org>
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 3 of the
12  * License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
22  * USA
23  */
24 
25 #ifndef GCCV_LINE_ITEM_H
26 #define GCCV_LINE_ITEM_H
27 
30 #include "item.h"
31 #include <gcu/macros.h>
32 
33 namespace gccv {
34 
40 class LineItem: public Item {
41 public:
47  LineItem (Canvas *canvas);
55  LineItem (Group *parent, ItemClient *client = NULL);
59  virtual ~LineItem ();
60 
64  GOColor GetEffectiveLineColor () const;
70  void ApplyLine (cairo_t *cr) const;
79  void SetDashes (double const *dashes, int num_dashes, double offset);
80 
81 private:
82  double *m_Dashes;
83  int m_DashesNb;
84  double m_DashOffset;
85 
94 GCCV_ITEM_POS_PROP (double, LineWidth)
103 GCCV_ITEM_PROP (GOColor, LineColor)
113 GCCV_ITEM_PROP (bool, AutoColor)
114 };
115 
116 }
117 
118 #endif // GCCV_LINE_ITEM_H