X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fttedit.cpp;h=54617e944e4ec6d47f485cb2c05d741814bb44db;hb=29b571499a38273c6c693334512e44f4162171a5;hp=c8123773ce2bfd885d23197e36a42ae2f99c9c74;hpb=3599953dec39d0ae662b039378a0b3eda39424e8;p=ttedit diff --git a/src/ttedit.cpp b/src/ttedit.cpp index c812377..54617e9 100755 --- a/src/ttedit.cpp +++ b/src/ttedit.cpp @@ -31,323 +31,36 @@ // // Uncomment this for debugging... -#define DEBUG -#define DEBUGFOO // Various tool debugging... -#define DEBUGTP // Toolpalette debugging... +//#define DEBUG +//#define DEBUGFOO // Various tool debugging... +//#define DEBUGTP // Toolpalette debugging... -//#include #include "ttedit.h" #include -#include "editwindow.h" +#include "ttemainwindow.h" +//#include "charwindow.h" -// Here's the main application loop--short and simple... -int main(int argc, char * argv[]) -{ - Q_INIT_RESOURCE(ttedit); // This must the same name as the exe filename - - QApplication app(argc, argv); - TTEMainWindow TTEWin; - TTEWin.show(); - return app.exec(); -} - - -TTEMainWindow::TTEMainWindow() -{ - editWnd = new EditWindow(this); - setCentralWidget(editWnd); - setWindowIcon(QIcon(":/res/ttedit.png")); - setWindowTitle("TTEdit!"); - -#if 0 -// createActions(); - newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this); - newAct->setShortcuts(QKeySequence::New); - newAct->setStatusTip(tr("Create a new file")); - connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); - - openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); - openAct->setShortcuts(QKeySequence::Open); - openAct->setStatusTip(tr("Open an existing file")); - connect(openAct, SIGNAL(triggered()), this, SLOT(open())); - - aboutQtAct = new QAction(tr("About &Qt"), this); - aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); - connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); - -// createMenus(); - fileMenu = menuBar()->addMenu(tr("&File")); - fileMenu->addAction(newAct); - fileMenu->addAction(openAct); - fileMenu->addAction(saveAct); - fileMenu->addAction(saveAsAct); - fileMenu->addSeparator(); - fileMenu->addAction(exitAct); - - editMenu = menuBar()->addMenu(tr("&Edit")); - editMenu->addAction(cutAct); - editMenu->addAction(copyAct); - editMenu->addAction(pasteAct); - - menuBar()->addSeparator(); - - helpMenu = menuBar()->addMenu(tr("&Help")); - helpMenu->addAction(aboutAct); - helpMenu->addAction(aboutQtAct); - -// createToolBars(); - fileToolBar = addToolBar(tr("File")); - fileToolBar->addAction(newAct); - fileToolBar->addAction(openAct); - fileToolBar->addAction(saveAct); - - editToolBar = addToolBar(tr("Edit")); - editToolBar->addAction(cutAct); - editToolBar->addAction(copyAct); - editToolBar->addAction(pasteAct); -#endif - - // Create status bar - statusBar()->showMessage(tr("Ready")); - - ReadSettings(); - -// connect(textEdit->document(), SIGNAL(contentsChanged()), -// this, SLOT(documentWasModified())); - -// setCurrentFile(""); - setUnifiedTitleAndToolBarOnMac(true); -} - -void TTEMainWindow::closeEvent(QCloseEvent * event) -{ - WriteSettings(); - event->accept(); // ignore() if can't close for some reason -} - -void TTEMainWindow::Open(void) -{ -} - -void TTEMainWindow::ReadSettings(void) -{ - QSettings settings("Underground Software", "TTEdit"); - QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint(); - QSize size = settings.value("size", QSize(400, 400)).toSize(); - resize(size); - move(pos); -} - -void TTEMainWindow::WriteSettings(void) -{ - QSettings settings("Underground Software", "TTEdit"); - settings.setValue("pos", pos()); - settings.setValue("size", size()); -} - - -#if 0 -#include "ttedit.h" -#include "charwindow.h" -#include "toolwindow.h" -#include "editwindow.h" -#include "tte_res.h" // Resource IDs -#ifdef DEBUG -#include "debug.h" -#endif - -// Pixmap resouces - -#include "res/cur1.xpm" -#include "res/cur2.xpm" -#include "res/cur3.xpm" -#include "res/cur4.xpm" -#include "res/cur5.xpm" -#include "res/cur6.xpm" -#include "res/cur7.xpm" -#include "res/cur8.xpm" -#include "res/ttedit.xpm" // *nix only, but small enough to not matter -#include "res/tool1.xpm" -#include "res/tool2.xpm" -#include "res/tool3.xpm" - - -IMPLEMENT_APP(TTEditApp) // Run the main application loop - -bool TTEditApp::OnInit() -{ - wxLog * logTarget = new wxLogStderr();//fopen("!ttedit_log.txt", "wb")); - wxLog::SetActiveTarget(logTarget); -#ifdef DEBUG - OpenDebugLog(); -#endif - - // Initialize all the top-level window members to NULL. - mainFrame = NULL; - charWin = NULL; - toolPalette = NULL; - for(int i=0; i<8; i++) - cur[i] = NULL; +// Main app constructor--we stick globally accessible stuff here... -//Shouldn't we check to see if it was successful? This just assumes - CreateResources(); - - mainFrame = new TTEditFrame(NULL, _("TTEdit"), wxPoint(155, 165), wxSize(300, 300), - wxDEFAULT_FRAME_STYLE | wxFULL_REPAINT_ON_RESIZE); -// wxMINIMIZE_BOX | wxRESIZE_BOX | wxMAXIMIZE_BOX | | wxSYSTEM_MENU | wxCAPTION); - -// charWin = new CharWindow(NULL);//, _T("Own3d W1nd0w"), wxDefaultPosition, wxDefaultSize); - charWin = new CharWindow(mainFrame, _("Own3d W1nd0w"), wxDefaultPosition, wxDefaultSize, - wxCAPTION | wxRESIZE_BORDER | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT); - - toolPalette = new ToolWindow(mainFrame, _(""), wxDefaultPosition, wxDefaultSize, - wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT); - - return true; -} - -int TTEditApp::OnExit() -{ -#ifdef DEBUG - CloseDebugLog(); -#endif - for(int i=0; i<8; i++) - if (cur[i]) - delete cur[i]; - - return 0; -} - -// -// OS dependent method of creating cursor (works for Win32 and GTK+) -// -#define CREATE_CURSOR(storage, name, hsx, hsy) \ - wxBitmap name##_bitmap(name##_xpm); \ - wxImage name##_image = name##_bitmap.ConvertToImage(); \ - name##_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hsx); \ - name##_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hsy); \ - storage = new wxCursor(name##_image); - -void TTEditApp::CreateResources(void) -{ - // This is a sucky way to create cursors, but at least it's cross-platform... - // NOTE: Need to fix hotspots on a few... !!! FIX !!! [DONE] - - CREATE_CURSOR(cur[0], cur1, 1, 1); - CREATE_CURSOR(cur[1], cur2, 1, 1); - CREATE_CURSOR(cur[2], cur3, 11, 11); // Prolly won't need this soon (scroll)... - CREATE_CURSOR(cur[3], cur4, 15, 13); // Prolly won't need this soon (zoom)... - CREATE_CURSOR(cur[4], cur5, 1, 1); - CREATE_CURSOR(cur[5], cur6, 1, 1); - CREATE_CURSOR(cur[6], cur7, 1, 1); - CREATE_CURSOR(cur[7], cur8, 1, 1); -} - - -BEGIN_EVENT_TABLE(TTEditFrame, wxFrame) - EVT_MENU(IDM_OPEN, TTEditFrame::OnOpen) - EVT_MENU(IDM_EXIT, TTEditFrame::OnExit) - EVT_MENU(IDM_ABOUT, TTEditFrame::OnAbout) - EVT_MENU(ID_TBCHARWIN, TTEditFrame::OnCharWindow) - EVT_CLOSE(TTEditFrame::OnCloseWindow) -END_EVENT_TABLE() - -TTEditFrame::TTEditFrame(wxFrame * parent, const wxString &title, const wxPoint &pos, - const wxSize &size, long style): wxFrame(parent, -1, title, pos, size, style), app(wxGetApp()), mainWindow(NULL) -{ - // Initialize child subwindow members (and hopefully avoid subtle bugs) -// mainWindow = NULL; - - SetIcon(wxICON(ttedit)); -// CreateStatusBar(2); // Create 2 panes - int widths[2] = { -1, 120 }; - wxStatusBar * sb = CreateStatusBar(2, 0); // Create 2 panes - sb->SetStatusWidths(2, widths); - wxToolBar * tb = CreateToolBar(); - - if (tb != NULL) - { - // Create buttons - - wxBitmap tool1(tool1_xpm); - wxBitmap tool2(tool2_xpm); - wxBitmap tool3(tool3_xpm); - - tb->AddTool(ID_TBLEFT, _("Prev char"), tool1, _("Go to prev char"), wxITEM_NORMAL); - tb->AddTool(ID_TBRIGHT, _("Next char"), tool2, _("Go to next char"), wxITEM_NORMAL); - tb->AddTool(ID_TBCHARWIN, _("Char Wnd"), tool3, _("Toggle char window"), wxITEM_CHECK); - tb->Realize(); - } - - // Create a menu bar for the frame - menuBar = new wxMenuBar; - wxMenu * menu1 = new wxMenu; - menu1->Append(IDM_NEW, _("&New\tCtrl+N"), _("Create a new font.")); - menu1->Append(IDM_OPEN, _("&Open...\tCtrl+O"), _("Opens an existing font.")); - menu1->Append(IDM_SAVE, _("&Save\tCtrl+S"), _("Save the current font.")); - menu1->Append(IDM_SAVEAS, _("Save &As..."), _("Save the current font under a different name.")); - menu1->AppendSeparator(); - menu1->Append(IDM_EXIT, _("E&xit\tAlt+X"), _("Quits the TTEdit program.")); - menuBar->Append(menu1, _("&File")); - wxMenu * menu2 = new wxMenu; - menu2->Append(IDM_HELPTOPICS, _("&Help Topics"), _("Displays the Help contents and index.")); - menu2->AppendSeparator(); - menu2->Append(IDM_ABOUT, _("&About TTEdit"), _("Displays information about TTEdit.")); - menuBar->Append(menu2, _("&Help")); - SetMenuBar(menuBar); - - // Create child subwindows - mainWindow = new TTEditWindow(this); - - Centre(wxBOTH); // Centre frame on the screen - Show(true); // Show the frame -} - -TTEditFrame::~TTEditFrame() +TTEdit::TTEdit(int argc, char * argv[]): QApplication(argc, argv), charWnd(NULL) { } -void TTEditFrame::OnOpen(wxCommandEvent &e) -{ - wxFileDialog fd(this, _("Choose a font to load"), _(""), _(""), _("TTF files (*.ttf)|*.ttf|All files (*.*)|*.*"), wxOPEN); - - if (fd.ShowModal() != wxID_OK) - return; - -// Hmm. The font object is causing a massive crash... (gdb says it's in "Load") - if (app.font.Load((char *)fd.GetPath().c_str()) != true) - { - wxMessageDialog dlg(NULL, _("Load font failed!"), _("Houston, we have a problem..."), wxOK | wxICON_ERROR); - dlg.ShowModal(); - } -//Huzzah! It works! Now just need scaling, scrolling, etc... -// pts = app.font.GetGlyphPoints(45); -} - -void TTEditFrame::OnAbout(wxCommandEvent &e) -{ - wxMessageDialog dlg(NULL, _("TrueType Edit v1.0.1\n\nA handy tool for editing TrueType fonts!\nby James \"Shamus\" Hammons\n(C) 2006 Underground Software"), _("About TrueType Edit"), wxOK | wxICON_INFORMATION); - dlg.ShowModal(); -} - -void TTEditFrame::OnExit(wxCommandEvent &e) -{ - app.toolPalette->Destroy(); - this->Destroy(); -} - -void TTEditFrame::OnCharWindow(wxCommandEvent &e) +// Here's the main application loop--short and simple... +int main(int argc, char * argv[]) { - app.charWin->Show(e.IsChecked() ? true : false); + Q_INIT_RESOURCE(ttedit); // This must the same name as the exe filename - if (e.IsChecked()) - Raise(); +// QApplication app(argc, argv); +//printf("TTEdit app(argc, argv);\n"); + TTEdit app(argc, argv); +//printf("TTEMainWindow mainWindow;\n"); + TTEMainWindow mainWindow; +//printf("mainWindow.show();\n"); + mainWindow.show(); +//OK, it gets to here at least... +//printf("return app.exec();\n"); + return app.exec(); } -void TTEditFrame::OnCloseWindow(wxCloseEvent &e) -{ - app.toolPalette->Destroy(); - this->Destroy(); -} -#endif