2015-03-30 14:50:10 -04:00
|
|
|
/***************************************************************
|
2015-04-01 10:11:56 -04:00
|
|
|
* Name: Main.cpp
|
2015-03-30 14:50:10 -04:00
|
|
|
* Purpose: Code for Application Frame
|
2015-03-31 22:52:12 -04:00
|
|
|
* Author: Timothy J Warren (tim@timshomepage.net)
|
2015-03-30 14:50:10 -04:00
|
|
|
* Created: 2015-03-30
|
|
|
|
* Copyright: Timothy J Warren (https://timshomepage.net)
|
|
|
|
* License:
|
|
|
|
**************************************************************/
|
|
|
|
|
|
|
|
#ifdef WX_PRECOMP
|
|
|
|
#include "wx_pch.h"
|
|
|
|
#endif
|
|
|
|
|
2015-04-01 10:11:56 -04:00
|
|
|
#include "Main.h"
|
2015-03-30 14:50:10 -04:00
|
|
|
|
|
|
|
|
|
|
|
BEGIN_EVENT_TABLE(TyroFrame, wxFrame)
|
2015-03-31 22:52:12 -04:00
|
|
|
EVT_CLOSE(TyroFrame::OnClose)
|
2015-04-01 10:11:56 -04:00
|
|
|
EVT_MENU(wxID_OPEN, TyroFrame::OnMenuFileOpen)
|
|
|
|
EVT_MENU(wxID_SAVE, TyroFrame::OnMenuFileSave)
|
2015-03-31 22:52:12 -04:00
|
|
|
EVT_MENU(wxID_EXIT, TyroFrame::OnQuit)
|
|
|
|
EVT_MENU(wxID_ABOUT, TyroFrame::OnAbout)
|
2015-03-30 14:50:10 -04:00
|
|
|
END_EVENT_TABLE()
|
|
|
|
|
|
|
|
TyroFrame::TyroFrame(wxFrame *frame, const wxString& title)
|
2015-03-31 22:52:12 -04:00
|
|
|
: wxFrame(frame, -1, title)
|
2015-04-01 10:11:56 -04:00
|
|
|
{
|
|
|
|
this->SetupMenu();
|
|
|
|
|
|
|
|
// create a status bar with some information about the used wxWidgets version
|
|
|
|
CreateStatusBar(2);
|
|
|
|
SetStatusText(_(""), 0);
|
|
|
|
SetStatusText(_(""), 1);
|
|
|
|
|
|
|
|
// Set up control layout
|
|
|
|
wxBoxSizer *base_sizer = new wxBoxSizer(wxVERTICAL);
|
|
|
|
|
|
|
|
base_sizer->Add(
|
|
|
|
CreateNotebook(),
|
|
|
|
1,
|
|
|
|
wxEXPAND | wxALL,
|
|
|
|
5
|
|
|
|
);
|
|
|
|
|
|
|
|
base_sizer->SetContainingWindow(this);
|
|
|
|
base_sizer->SetMinSize(800,600);
|
|
|
|
|
|
|
|
SetSizerAndFit(base_sizer);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TyroFrame::~TyroFrame() {}
|
|
|
|
|
|
|
|
void TyroFrame::SetupMenu()
|
2015-03-30 14:50:10 -04:00
|
|
|
{
|
2015-03-31 22:52:12 -04:00
|
|
|
// create a menu bar
|
|
|
|
wxMenuBar* mbar = new wxMenuBar();
|
|
|
|
|
|
|
|
// Create Base menus
|
|
|
|
wxMenu* fileMenu = new wxMenu(_T(""));
|
|
|
|
wxMenu* editMenu = new wxMenu(_T(""));
|
|
|
|
wxMenu* helpMenu = new wxMenu(_T(""));
|
|
|
|
|
|
|
|
// Add items to top-level menus
|
|
|
|
fileMenu->Append(wxID_NEW, _T("&New\tCtrl+N"), _T("Create a new file"));
|
|
|
|
fileMenu->AppendSeparator();
|
2015-04-01 10:11:56 -04:00
|
|
|
fileMenu->Append(wxID_OPEN, _T("&Open\tCtrl+O"), _T("Opens an existing file"));
|
2015-03-31 22:52:12 -04:00
|
|
|
fileMenu->Append(wxID_CLOSE, _T("&Close\tCtrl+W"), _T("Close the current document"));
|
|
|
|
fileMenu->Append(wxID_SAVE, _T("&Save\tCtrl+S"), _T("Save the content"));
|
|
|
|
fileMenu->AppendSeparator();
|
|
|
|
fileMenu->Append(wxID_EXIT, _T("&Quit\tCtrl+Q"), _T("Quit the application"));
|
|
|
|
|
|
|
|
editMenu->Append(wxID_UNDO, _T("&Undo\tCtrl+Z"), _T("Undo last action"));
|
|
|
|
editMenu->Append(wxID_REDO, _T("&Redo\tCtrl+Y"), _T("Redo last action"));
|
|
|
|
editMenu->AppendSeparator();
|
|
|
|
editMenu->Append(wxID_CUT, _T("Cu&t\tCtrl+X"), _T("Cut selected text"));
|
|
|
|
editMenu->Append(wxID_COPY, _T("&Copy\tCtrl+C"), _T("Copy selected text"));
|
|
|
|
editMenu->Append(wxID_PASTE, _T("&Paste\tCtrl+V"), _T("Paste contents of clipboard"));
|
|
|
|
|
|
|
|
helpMenu->Append(wxID_ABOUT, _T("&About...\tF1"), _T("Show info about this application"));
|
|
|
|
|
|
|
|
// Add the menus to the menubar
|
|
|
|
mbar->Append(fileMenu, _("&File"));
|
|
|
|
mbar->Append(editMenu, _("&Edit"));
|
|
|
|
mbar->Append(helpMenu, _("&Help"));
|
2015-03-30 14:50:10 -04:00
|
|
|
|
2015-03-30 16:01:24 -04:00
|
|
|
#ifdef __WXMAC__
|
2015-03-31 22:52:12 -04:00
|
|
|
wxMenuBar::MacSetCommonMenuBar(mbar);
|
2015-03-30 16:01:24 -04:00
|
|
|
#endif // __WXMAC__
|
2015-04-01 10:11:56 -04:00
|
|
|
SetMenuBar(mbar);
|
2015-03-30 14:50:10 -04:00
|
|
|
}
|
|
|
|
|
2015-03-31 10:19:34 -04:00
|
|
|
wxAuiNotebook *TyroFrame::CreateNotebook()
|
|
|
|
{
|
2015-03-31 14:22:10 -04:00
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
wxAuiNotebook *ctrl = new wxAuiNotebook(this);
|
2015-03-31 10:19:34 -04:00
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
//DocFrame *editor = new DocFrame(ctrl, wxID_ANY);
|
|
|
|
wxWindow *editor = new wxWindow(ctrl, wxID_ANY);
|
|
|
|
|
|
|
|
ctrl->AddPage(editor, "Untitled");
|
2015-03-31 22:52:12 -04:00
|
|
|
return ctrl;
|
2015-03-31 10:19:34 -04:00
|
|
|
}
|
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
void TyroFrame::OnClose(wxCloseEvent &WXUNUSED(event))
|
2015-03-30 14:50:10 -04:00
|
|
|
{
|
2015-03-31 22:52:12 -04:00
|
|
|
Destroy();
|
|
|
|
}
|
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
void TyroFrame::OnMenuFileOpen(wxCommandEvent &WXUNUSED(event))
|
2015-03-31 22:52:12 -04:00
|
|
|
{
|
2015-04-01 10:11:56 -04:00
|
|
|
wxFileDialog *OpenDialog = new wxFileDialog(this, _T("Choose a file"), _(""), _(""), _("*.*"), wxFD_OPEN);
|
|
|
|
|
|
|
|
if (OpenDialog->ShowModal() == wxID_OK)
|
|
|
|
{
|
|
|
|
// Load the file into a new notebook tab and styled text control
|
|
|
|
}
|
|
|
|
OpenDialog->Close();
|
2015-03-31 22:52:12 -04:00
|
|
|
}
|
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
void TyroFrame::OnMenuFileSave(wxCommandEvent &WXUNUSED(event))
|
2015-03-31 22:52:12 -04:00
|
|
|
{
|
2015-03-30 14:50:10 -04:00
|
|
|
}
|
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
void TyroFrame::OnQuit(wxCommandEvent &WXUNUSED(event))
|
2015-03-30 14:50:10 -04:00
|
|
|
{
|
2015-03-31 22:52:12 -04:00
|
|
|
Destroy();
|
2015-03-30 14:50:10 -04:00
|
|
|
}
|
|
|
|
|
2015-04-01 14:23:58 -04:00
|
|
|
void TyroFrame::OnAbout(wxCommandEvent &WXUNUSED(event))
|
2015-03-30 14:50:10 -04:00
|
|
|
{
|
2015-03-31 22:52:12 -04:00
|
|
|
wxMessageBox(_T("Tyro, a text editor for all development\n Copyright 2015, Timothy J. Warren"), wxT("About Tyro"), wxOK| wxICON_INFORMATION, this);
|
2015-03-30 14:50:10 -04:00
|
|
|
}
|