Ejemplo n.º 1
0
ButcherView::ButcherView(wxWindow* parent, wxWindowID id, const wxPoint& pos,
    const wxSize& size, long style,
    const wxString& name) :
    wxControl(parent, id, pos, size, style, wxDefaultValidator, name),
    selection_(NULL), filealternate_(false), filealternateid_(-1)
{
    dwindow_=new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
    dwindow_->SetScrollRate( 10, 10 );

    wxASSERT_MSG(wxEVT_SCROLLWIN_TOP<=wxEVT_SCROLLWIN_THUMBRELEASE, _("Logic error in scrollwin events"));
    for (int i=wxEVT_SCROLLWIN_TOP; i<=wxEVT_SCROLLWIN_THUMBRELEASE; i++) {
        dwindow_->Connect(wxID_ANY, i,
            wxScrollWinEventHandler(ButcherView::OnDWindowWinScroll), NULL, this);
    }
    //dwindow_->Connect(wxID_ANY, wxEVT_LEAVE_WINDOW, wxMouseEventHandler(ButcherViewEditor::OnDWindowLeave), NULL, this);

    ruler_left_=new ButcherRuler(this, ButcherRuler::BRK_LEFT);//, wxID_ANY, wxDefaultPosition, wxSize(rulersize_, -1));
    ruler_top_=new ButcherRuler(this, ButcherRuler::BRK_TOP);//, wxID_ANY, wxDefaultPosition, wxSize(-1, rulersize_));
    ruler_right_=new ButcherRuler(this, ButcherRuler::BRK_RIGHT);//, wxID_ANY, wxDefaultPosition, wxSize(rulersize_, -1));
    ruler_bottom_=new ButcherRuler(this, ButcherRuler::BRK_BOTTOM);//, wxID_ANY, wxDefaultPosition, wxSize(-1, rulersize_));

    designer_ = new ButcherDocument(this, dwindow_/*, wxID_ANY, wxPoint(rulersize_, rulersize_), wxSize(designwidth_, designheight_)*/);
    //designer_->SetBackgroundColour(*wxGREEN);

    RepositionView();

    SetCursor(*wxCROSS_CURSOR);
}
Ejemplo n.º 2
0
void ButcherView::OnSize(wxSizeEvent &event)
{
    RepositionView();
    event.Skip();
}
Ejemplo n.º 3
0
bool
ObjectView::SpinIt()
{
	bool changed = false;

	if (fGouraud != fLastGouraud) {
		LockGL();
		glShadeModel(fGouraud ? GL_SMOOTH : GL_FLAT);
		UnlockGL();
		fLastGouraud = fGouraud;
		changed = true;
	}

	if (fZbuf != fLastZbuf) {
		LockGL();
		if (fZbuf)
			glEnable(GL_DEPTH_TEST);
		else
			glDisable(GL_DEPTH_TEST);
		UnlockGL();
		fLastZbuf = fZbuf;
		changed = true;
	}

	if (fCulling != fLastCulling) {
		LockGL();
		if (fCulling)
			glEnable(GL_CULL_FACE);
		else
			glDisable(GL_CULL_FACE);
		UnlockGL();
		fLastCulling = fCulling;
		changed = true;
	}

	if (fLighting != fLastLighting) {
		LockGL();
		if (fLighting)
			glEnable(GL_LIGHTING);
		else
			glDisable(GL_LIGHTING);
		UnlockGL();
		fLastLighting = fLighting;
		changed = true;
	}

	if (fFilled != fLastFilled) {
		LockGL();
		if (fFilled) {
			glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
		} else {
			glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
		}
		UnlockGL();
		fLastFilled = fFilled;
		changed = true;
	}

	if (fFog != fLastFog) {
		if (fFog) {
			glFogf(GL_FOG_START, 1.0);
			glFogf(GL_FOG_DENSITY, 0.2);
			glFogf(GL_FOG_END, depthOfView);
			glFogfv(GL_FOG_COLOR, foggy);
			glEnable(GL_FOG);
			bgColor = foggy;
			glClearColor(bgColor[0], bgColor[1], bgColor[2], 1.0);
		} else {
			glDisable(GL_FOG);
			bgColor = black;
			glClearColor(bgColor[0], bgColor[1], bgColor[2], 1.0);
		}
		fLastFog = fFog;
		changed = true;
	}

	changed = changed || RepositionView();
	changed = changed || fForceRedraw;
	fForceRedraw = false;

	for (int i = 0; i < fObjects.CountItems(); i++) {
		bool hack = reinterpret_cast<GLObject*>(fObjects.ItemAt(i))->SpinIt();
		changed = changed || hack;
	}

	return changed;
}