PEBL 2.2
Psychology Experiment Building Language - Cross-platform psychological experiment development system
validator/PlatformDrawObject.h
Go to the documentation of this file.
1//* -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*- */
3// Name: platforms/validator/PlatformDrawObject.h
4// Purpose: Validator Platform Drawing Primitives (no rendering stubs)
5// Author: Shane T. Mueller, Ph.D.
6// Copyright: (c) 2025 Shane T. Mueller <smueller@obereed.net>
7// License: GPL 2
8//
9// This file is part of the PEBL project.
10//
11// PEBL is free software; you can redistribute it and/or modify
12// it under the terms of the GNU General Public License as published by
13// the Free Software Foundation; either version 2 of the License, or
14// (at your option) any later version.
15//
16// PEBL is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with PEBL; if not, write to the Free Software
23// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25#ifndef __VALIDATOR_PLATFORMDRAWOBJECT_H__
26#define __VALIDATOR_PLATFORMDRAWOBJECT_H__
27
28#include "PlatformWidget.h"
29#include "../../objects/PDrawObject.h"
30
32
33class PlatformDrawObject : virtual public PlatformWidget {
34public:
37};
38
39class PlatformLine : virtual public PlatformDrawObject, virtual public PLine {
40public:
41 PlatformLine(int x1, int y1, int dx, int dy, Variant fg);
42 virtual ~PlatformLine();
43 virtual bool Draw();
44 virtual std::string ObjectName() const { return "PlatformLine (validator)"; }
45 virtual bool SetProperty(std::string name, Variant v) { return PLine::SetProperty(name, v); }
46 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PLine::ValidateProperty(name, v); }
47 virtual ObjectValidationError ValidateProperty(std::string name) const { return PLine::ValidateProperty(name); }
48 virtual void SetPosition(pInt x, pInt y) { PLine::SetPosition(x, y); }
49protected:
50 virtual std::ostream& SendToStream(std::ostream& out) const;
51};
52
53class PlatformThickLine : virtual public PlatformDrawObject, virtual public PThickLine {
54public:
55 PlatformThickLine(int x1, int y1, int x2, int y2, int width, Variant fg);
57 virtual bool Draw();
58 virtual std::string ObjectName() const { return "PlatformThickLine (validator)"; }
59 virtual bool SetProperty(std::string name, Variant v) { return PThickLine::SetProperty(name, v); }
60 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PThickLine::ValidateProperty(name, v); }
61 virtual ObjectValidationError ValidateProperty(std::string name) const { return PThickLine::ValidateProperty(name); }
62 virtual void SetPosition(pInt x, pInt y) { PThickLine::SetPosition(x, y); }
63protected:
64 virtual std::ostream& SendToStream(std::ostream& out) const;
65};
66
67class PlatformRectangle : virtual public PlatformDrawObject, virtual public PRectangle {
68public:
69 PlatformRectangle(int x1, int y1, int dx, int dy, Variant fg, bool filled);
71 virtual bool Draw();
72 virtual std::string ObjectName() const { return "PlatformRectangle (validator)"; }
73 virtual bool SetProperty(std::string name, Variant v) { return PRectangle::SetProperty(name, v); }
74 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PRectangle::ValidateProperty(name, v); }
75 virtual ObjectValidationError ValidateProperty(std::string name) const { return PRectangle::ValidateProperty(name); }
76 virtual void SetPosition(pInt x, pInt y) { PRectangle::SetPosition(x, y); }
77protected:
78 virtual std::ostream& SendToStream(std::ostream& out) const;
79};
80
81class PlatformSquare : virtual public PlatformDrawObject, virtual public PSquare {
82public:
83 PlatformSquare(int x, int y, int size, Variant fg, bool filled);
84 virtual ~PlatformSquare();
85 virtual bool Draw();
86 virtual std::string ObjectName() const { return "PlatformSquare (validator)"; }
87 virtual bool SetProperty(std::string name, Variant v) { return PSquare::SetProperty(name, v); }
88 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PSquare::ValidateProperty(name, v); }
89 virtual ObjectValidationError ValidateProperty(std::string name) const { return PSquare::ValidateProperty(name); }
90 virtual void SetPosition(pInt x, pInt y) { PSquare::SetPosition(x, y); }
91protected:
92 virtual std::ostream& SendToStream(std::ostream& out) const;
93};
94
95class PlatformEllipse : virtual public PlatformDrawObject, virtual public PEllipse {
96public:
97 PlatformEllipse(int x1, int y1, int rx, int ry, Variant fg, bool filled);
99 virtual bool Draw();
100 virtual std::string ObjectName() const { return "PlatformEllipse (validator)"; }
101 virtual bool SetProperty(std::string name, Variant v) { return PEllipse::SetProperty(name, v); }
102 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PEllipse::ValidateProperty(name, v); }
103 virtual ObjectValidationError ValidateProperty(std::string name) const { return PEllipse::ValidateProperty(name); }
104 virtual void SetPosition(pInt x, pInt y) { PEllipse::SetPosition(x, y); }
105protected:
106 virtual std::ostream& SendToStream(std::ostream& out) const;
107};
108
109class PlatformCircle : virtual public PlatformDrawObject, virtual public PCircle {
110public:
111 PlatformCircle(int x1, int y1, int r, Variant fg, bool filled);
113 virtual bool Draw();
114 virtual std::string ObjectName() const { return "PlatformCircle (validator)"; }
115 virtual bool SetProperty(std::string name, Variant v) { return PCircle::SetProperty(name, v); }
116 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PCircle::ValidateProperty(name, v); }
117 virtual ObjectValidationError ValidateProperty(std::string name) const { return PCircle::ValidateProperty(name); }
118 virtual void SetPosition(pInt x, pInt y) { PCircle::SetPosition(x, y); }
119protected:
120 virtual std::ostream& SendToStream(std::ostream& out) const;
121};
122
123class PlatformPolygon : virtual public PlatformDrawObject, virtual public PPolygon {
124public:
125 PlatformPolygon(int x, int y, Variant xpoints, Variant ypoints, Variant fg, bool filled);
127 virtual bool Draw();
128 virtual std::string ObjectName() const { return "PlatformPolygon (validator)"; }
129 virtual bool SetProperty(std::string name, Variant v) { return PPolygon::SetProperty(name, v); }
130 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PPolygon::ValidateProperty(name, v); }
131 virtual ObjectValidationError ValidateProperty(std::string name) const { return PPolygon::ValidateProperty(name); }
132 virtual void SetPosition(pInt x, pInt y) { PPolygon::SetPosition(x, y); }
133protected:
134 virtual std::ostream& SendToStream(std::ostream& out) const;
135};
136
137class PlatformBezier : virtual public PlatformDrawObject, virtual public PBezier {
138public:
139 PlatformBezier(int x, int y, Variant xpoints, Variant ypoints, int steps, Variant fg);
141 virtual bool Draw();
142 virtual std::string ObjectName() const { return "PlatformBezier (validator)"; }
143 virtual bool SetProperty(std::string name, Variant v) { return PBezier::SetProperty(name, v); }
144 virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const { return PBezier::ValidateProperty(name, v); }
145 virtual ObjectValidationError ValidateProperty(std::string name) const { return PBezier::ValidateProperty(name); }
146 virtual void SetPosition(pInt x, pInt y) { PBezier::SetPosition(x, y); }
147protected:
148 virtual std::ostream& SendToStream(std::ostream& out) const;
149};
150
151#endif
#define pInt
Definition Defs.h:8
ObjectValidationError
Definition PEBLObject.h:37
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual bool SetProperty(std::string, Variant v)
virtual bool SetProperty(std::string, Variant v)
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual bool SetProperty(std::string, Variant v)
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual bool SetProperty(std::string, Variant v)
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual bool SetProperty(std::string, Variant v)
virtual bool SetProperty(std::string, Variant v)
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual bool SetProperty(std::string, Variant v)
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual bool SetProperty(std::string, Variant v)
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
Definition PWidget.cpp:220
virtual std::string ObjectName() const
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual bool SetProperty(std::string name, Variant v)
virtual bool Draw()
This method initiates everything needed to display the main window
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
PlatformBezier(int x, int y, Variant xpoints, Variant ypoints, int steps, Variant fg)
virtual ~PlatformBezier()
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
PlatformCircle(int x1, int y1, int r, Variant fg, bool filled)
virtual std::string ObjectName() const
virtual ~PlatformCircle()
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
virtual bool Draw()
This method initiates everything needed to display the main window
virtual bool SetProperty(std::string name, Variant v)
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
Validator platform drawing primitives - no rendering, used only for compilation.
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
virtual ~PlatformEllipse()
virtual std::string ObjectName() const
virtual bool Draw()
This method initiates everything needed to display the main window
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual bool SetProperty(std::string name, Variant v)
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
PlatformEllipse(int x1, int y1, int rx, int ry, Variant fg, bool filled)
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual bool SetProperty(std::string name, Variant v)
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
PlatformLine(int x1, int y1, int dx, int dy, Variant fg)
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
virtual ~PlatformLine()
virtual std::string ObjectName() const
virtual bool Draw()
This method initiates everything needed to display the main window
PlatformPolygon(int x, int y, Variant xpoints, Variant ypoints, Variant fg, bool filled)
virtual bool SetProperty(std::string name, Variant v)
virtual ~PlatformPolygon()
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual std::string ObjectName() const
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
virtual bool Draw()
This method initiates everything needed to display the main window
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual bool Draw()
This method initiates everything needed to display the main window
virtual std::string ObjectName() const
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
virtual ~PlatformRectangle()
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
PlatformRectangle(int x1, int y1, int dx, int dy, Variant fg, bool filled)
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual bool SetProperty(std::string name, Variant v)
virtual ~PlatformSquare()
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
PlatformSquare(int x, int y, int size, Variant fg, bool filled)
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual bool Draw()
This method initiates everything needed to display the main window
virtual std::string ObjectName() const
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
virtual bool SetProperty(std::string name, Variant v)
virtual ObjectValidationError ValidateProperty(std::string name, Variant v) const
virtual std::string ObjectName() const
virtual void SetPosition(pInt x, pInt y)
This sets the widget's position on its parent widget.
virtual ~PlatformThickLine()
virtual bool Draw()
This method initiates everything needed to display the main window
virtual ObjectValidationError ValidateProperty(std::string name) const
virtual bool SetProperty(std::string name, Variant v)
PlatformThickLine(int x1, int y1, int x2, int y2, int width, Variant fg)
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.