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
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.
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
Computing file changes ...