https://github.com/jrincayc/ucblogo-code
Revision b993749d30906d0bb3068293cdaed537d8b13459 authored by Joshua J. Cogliati on 02 February 2020, 22:36:58 UTC, committed by Joshua J. Cogliati on 02 February 2020, 22:36:58 UTC
From Brian Harvey:
I admit it's been a long time since I've worked on this, so maybe I'm missing something, but the reason for using valid_pointer() is that if a node is of type other than pair, the car/cdr/obj of that node may be something other than a pointer to a node, e.g., a pointer to a character string, or the address of the continuation of a special form.
1 parent d127321
Raw File
Tip revision: b993749d30906d0bb3068293cdaed537d8b13459 authored by Joshua J. Cogliati on 02 February 2020, 22:36:58 UTC
We are not sure if this optimization is correct.
Tip revision: b993749
LogoFrame.h
#ifndef BASIC_H
#define BASIC_H
#include <wx/wx.h>
#include <wx/evtloop.h>
#include "logo.h"

// This is the Top level Application Class
class LogoApplication : public wxApp
{
  public:
	virtual bool OnInit();
	virtual int OnExit();
        virtual int OnRun();	
};

// This is the Event Manager for the logo application
// allows us to process events while waiting (single-thread wxLogo)

class LogoEventManager {
  public:
    LogoEventManager(LogoApplication *logoApp);
    void ProcessEvents(int force_yield = 0);
  private:
    LogoApplication *m_logoApp;
};

// This is the Top level frame for logo
class LogoFrame : public wxFrame
{
  public:
	LogoFrame( const wxChar *title,
                int xpos=50, int ypos=50,
                int width=900, int height=500);

        void AdjustSize();
	void SetUpEditMenu();
	void SetUpMenu();
	void OnPrintText(wxCommandEvent&);
	void OnPrintTextPrev(wxCommandEvent&);
        void OnSelectFont(wxCommandEvent&);
	void OnIncreaseFont(wxCommandEvent&);
	void OnDecreaseFont(wxCommandEvent&);
private:
	void OnQuit(wxCommandEvent& WXUNUSED(event));
	void OnSave(wxCommandEvent& WXUNUSED(event));
	void OnSaveAs(wxCommandEvent& WXUNUSED(event));
	void OnLoad(wxCommandEvent& WXUNUSED(event));
	void OnTurtlePrintPreview(wxCommandEvent& WXUNUSED(event));
	void DoStop(wxCommandEvent& WXUNUSED(event));
	void DoPause(wxCommandEvent& WXUNUSED(event));
	void DoPaste(wxCommandEvent&);
	void DoCopy(wxCommandEvent&);
	void OnPrintTurtle(wxCommandEvent&);
	
	void OnEditCloseAccept(wxCommandEvent& WXUNUSED(event));
	void OnEditCloseReject(wxCommandEvent& WXUNUSED(event));
	void OnEditPrint(wxCommandEvent& WXUNUSED(event));
	void OnEditCopy(wxCommandEvent& WXUNUSED(event));
	void OnEditCut(wxCommandEvent& WXUNUSED(event));
	void OnEditFind(wxCommandEvent& WXUNUSED(event));
	void OnEditFindNext(wxCommandEvent& WXUNUSED(event));
	void OnEditPaste(wxCommandEvent& WXUNUSED(event));
	void OnEditSave(wxCommandEvent& WXUNUSED(event));
	void OnEditLoad(wxCommandEvent& WXUNUSED(event));

        void OnCloseWindow(wxCloseEvent& event);
	
	DECLARE_EVENT_TABLE()
};


#endif
back to top