Tyro/src/TyroMain.cpp

127 lines
3.0 KiB
C++
Raw Normal View History

2015-03-30 14:50:10 -04:00
/***************************************************************
* Name: TyroMain.cpp
* Purpose: Code for Application Frame
* Author: Timothy J Warren (tim@timshomepage.net)
* Created: 2015-03-30
* Copyright: Timothy J Warren (https://timshomepage.net)
* License:
**************************************************************/
#ifdef WX_PRECOMP
#include "wx_pch.h"
#endif
#include "TyroMain.h"
//helper functions
enum wxbuildinfoformat {
short_f, long_f };
wxString wxbuildinfo(wxbuildinfoformat format)
{
wxString wxbuild(wxVERSION_STRING);
if (format == long_f )
{
#if defined(__WXMSW__)
wxbuild << _T("-Windows");
#elif defined(__WXMAC__)
wxbuild << _T("-Mac");
#elif defined(__UNIX__)
wxbuild << _T("-Linux");
#endif
#if wxUSE_UNICODE
wxbuild << _T("-Unicode build");
#else
wxbuild << _T("-ANSI build");
#endif // wxUSE_UNICODE
}
return wxbuild;
}
BEGIN_EVENT_TABLE(TyroFrame, wxFrame)
EVT_CLOSE(TyroFrame::OnClose)
2015-03-30 16:01:24 -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)
: wxFrame(frame, -1, title)
{
2015-03-30 16:38:52 -04:00
// create a menu bar
2015-03-30 14:50:10 -04:00
wxMenuBar* mbar = new wxMenuBar();
2015-03-31 14:22:10 -04:00
// Create Base menus
2015-03-30 14:50:10 -04:00
wxMenu* fileMenu = new wxMenu(_T(""));
2015-03-30 16:38:52 -04:00
wxMenu* editMenu = new wxMenu(_T(""));
2015-03-31 14:22:10 -04:00
wxMenu* helpMenu = new wxMenu(_T(""));
2015-03-30 16:38:52 -04:00
2015-03-31 14:22:10 -04:00
// Add items to top-level menus
fileMenu->Append(wxID_OPEN, _T("&Open"), _T("Opens an existing file"));
fileMenu->Append(wxID_SAVE, _T("&Save"), _T("Save the content"));
fileMenu->AppendSeparator();
2015-03-31 13:42:41 -04:00
fileMenu->Append(wxID_EXIT, _("&Quit"), _("Quit the application"));
2015-03-30 14:50:10 -04:00
2015-03-31 13:42:41 -04:00
helpMenu->Append(wxID_ABOUT, _("&About"), _("Show info about this application"));
2015-03-31 14:22:10 -04:00
// Add the menus to the menubar
mbar->Append(fileMenu, _("&File"));
2015-03-30 16:38:52 -04:00
mbar->Append(editMenu, _("&Edit"));
2015-03-30 14:50:10 -04:00
mbar->Append(helpMenu, _("&Help"));
2015-03-30 16:01:24 -04:00
#ifdef __WXMAC__
wxMenuBar::MacSetCommonMenuBar(mbar);
#endif // __WXMAC__
SetMenuBar(mbar);
2015-03-30 14:50:10 -04:00
// create a status bar with some information about the used wxWidgets version
CreateStatusBar(2);
2015-03-30 16:01:24 -04:00
SetStatusText(_(""),0);
2015-03-30 14:50:10 -04:00
SetStatusText(wxbuildinfo(short_f), 1);
2015-03-31 14:22:10 -04:00
// 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);
2015-03-30 14:50:10 -04:00
}
2015-03-31 13:42:41 -04:00
TyroFrame::~TyroFrame() {}
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
wxAuiNotebook *ctrl = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_DEFAULT_STYLE);
2015-03-31 10:19:34 -04:00
2015-03-31 14:22:10 -04:00
return ctrl;
2015-03-31 10:19:34 -04:00
}
2015-03-30 14:50:10 -04:00
void TyroFrame::OnClose(wxCloseEvent &event)
{
Destroy();
}
void TyroFrame::OnQuit(wxCommandEvent &event)
{
Destroy();
}
void TyroFrame::OnAbout(wxCommandEvent &event)
{
wxString msg = wxbuildinfo(long_f);
wxMessageBox(msg, _("Welcome to..."));
}