ultimatepp/examples/GeoFun/GeoFun.h
cxl d34313b049 examples: GeoFun updated
git-svn-id: svn://ultimatepp.org/upp/trunk@7744 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2014-09-29 10:39:33 +00:00

118 lines
2.3 KiB
C++

#ifndef _GeoFun_GeoFun_h
#define _GeoFun_GeoFun_h
#include <CtrlLib/CtrlLib.h>
#include <Painter/Painter.h>
#include <plugin/jpg/jpg.h>
#include <Report/Report.h>
#include <RichText/RichText.h>
using namespace Upp;
#define IMAGECLASS GFImg
#define IMAGEFILE <GeoFun/GeoFun.iml>
#include <Draw/iml_header.h>
#define LAYOUTFILE <GeoFun/GeoFun.lay>
#include <CtrlCore/lay.h>
#define TOPICFILE <GeoFun/app.tpp/all.i>
#include <Core/topic_group.h>
bool cfgAvailable ;
class DrawCanvas : public ParentCtrl {
typedef DrawCanvas CLASSNAME ;
public:
virtual void Paint ( Draw& drw );
DrawCanvas();
template<class T>
void DoPaint0 ( T& sw, int idraw = 0 );
void DoPaint ( Painter& sw );
struct ColorPolygon : Moveable<ColorPolygon> {
Vector<Pointf> point;
Vector<Pointf> CenR;
Color lcolor;
Color fcolorM1, fcolorM2;
int penwidth;
bool filled ;
};
Vector<ColorPolygon> data;
Color fcolorB1, fcolorB2;
bool ShowGradient, ColorFill, Zoomed, ShowAnimation;
double Radius1, BaseR, RollR;
int ShowTo, AnimSpeed ;
};
class GeoFun : public WithGeoFunLayout<TopWindow> {
public:
typedef GeoFun CLASSNAME;
GeoFun();
double ArmLen;
DrawCanvas dc1;
WithInputLayout<ParentCtrl> InputPane ;
Splitter sp1;
QtfRichObject qtfim;
int ValP, ValQ, PenW, CurvT, GradientY;
Color PenC, M1C, M2C, B1C, B2C;
bool First ;
bool EpiCyclo , HypoCyclo, EpiTroch, HypoTroch, AnimMn;
// Functions
void About();
void Exit();
void FirstDraw();
Image GetImage();
void Help();
virtual void Layout();
void OptionColorFill();
void OptionGradient();
void OptionZoom();
void PrepareData();
void PrepareData0();
void Print();
void SaveToImageFile ( String fileName );
void SaveToAutoCadScript ( String fileName );
void SaveToSVG ( String fileName );
void SetAnimation();
void SetAnimationSpeed();
void SetCurveType ( int CrvType );
void SetCurveTypeMenu1 ( );
void SetCurveTypeMenu ( int CrvType );
void Serialize ( Stream& s );
void ShowAnimated();
// Menu Functions
void MainMenu ( Bar& menu );
void CurvesMenu ( Bar& bar );
void FileMenu ( Bar& bar );
void HelpMenu ( Bar& bar );
void SettingsMenu ( Bar& bar );
};
#endif