1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// hdAttributeFigure.cpp - Base class for all figures with attributes (line size, fonts and others)
//
//////////////////////////////////////////////////////////////////////////
#include "pgAdmin3.h"
// wxWindows headers
#include <wx/wx.h>
#include <wx/dcbuffer.h>
#include <wx/pen.h>
// App headers
#include "hotdraw/figures/hdAttributeFigure.h"
#include "hotdraw/figures/hdAttribute.h"
#include "hotdraw/figures/defaultAttributes/hdFillAttribute.h"
#include "hotdraw/figures/defaultAttributes/hdFontAttribute.h"
#include "hotdraw/figures/defaultAttributes/hdFontColorAttribute.h"
#include "hotdraw/figures/defaultAttributes/hdLineAttribute.h"
hdAttributeFigure::hdAttributeFigure()
{
initializeDefaultAttributes();
}
hdAttributeFigure::~hdAttributeFigure()
{
delete fillAttribute;
delete lineAttribute;
delete fontAttribute;
delete fontColorAttribute;
delete fillSelAttribute;
delete lineSelAttribute;
delete fontSelAttribute;
delete fontSelColorAttribute;
}
void hdAttributeFigure::draw(wxBufferedDC &context, hdDrawingView *view)
{
//find a way to allow user to use custom attributes without affecting performance
fillAttribute->apply(context);
lineAttribute->apply(context);
fontAttribute->apply(context);
fontColorAttribute->apply(context);
hdAbstractFigure::draw(context, view);
}
void hdAttributeFigure::drawSelected(wxBufferedDC &context, hdDrawingView *view)
{
//find a way to allow user to use custom attributes without affecting performance
fillSelAttribute->apply(context);
lineSelAttribute->apply(context);
fontSelAttribute->apply(context);
fontSelColorAttribute->apply(context);
hdAbstractFigure::drawSelected(context, view);
}
void hdAttributeFigure::initializeDefaultAttributes()
{
fontAttribute = new hdFontAttribute();
fontColorAttribute = new hdFontColorAttribute();
fillAttribute = new hdFillAttribute();
lineAttribute = new hdLineAttribute();
fontSelAttribute = new hdFontAttribute();
fontSelColorAttribute = new hdFontColorAttribute();
fillSelAttribute = new hdFillAttribute();
lineSelAttribute = new hdLineAttribute();
}
void hdAttributeFigure::reapplyAttributes(wxBufferedDC &context, hdDrawingView *view)
{
fillAttribute->apply(context);
lineAttribute->apply(context);
fontAttribute->apply(context);
fontColorAttribute->apply(context);
}
void hdAttributeFigure::reapplySelAttributes(wxBufferedDC &context, hdDrawingView *view)
{
fillSelAttribute->apply(context);
lineSelAttribute->apply(context);
fontSelAttribute->apply(context);
fontSelColorAttribute->apply(context);
}
|