MainWindow.cpp
author viric@mandarina
Thu, 03 Apr 2008 00:16:12 +0200
changeset 1 5b075fa903ae
parent 0 97dd4d2c08b6
permissions -rw-r--r--
Adding a Generate menu item.

#include <wx/wx.h>
#include "MainWindow.hpp"
#include "PageList.hpp"

BEGIN_EVENT_TABLE(MainWindow, wxFrame)
    EVT_MENU(ID_MENU_GENERATE, MainWindow::on_generate)
    EVT_MENU(wxID_OPEN, MainWindow::on_open)
    EVT_MENU(wxID_CLOSE, MainWindow::on_quit)
END_EVENT_TABLE()

MainWindow::MainWindow()
    :wxFrame(0, wxID_ANY, _("wxDjvuMaker"), wxDefaultPosition,
            wxSize(200,200))
{
    create_menus();

    wxBoxSizer *s = new wxBoxSizer(wxVERTICAL);

    _pagelist = new PageList(this);

    s->Add(_pagelist);
}


void
MainWindow::create_menus()
{
    _menubar = new wxMenuBar();
    _menufile = new wxMenu();

    _menufile->Append(wxID_OPEN, _("&Open"));
    _menufile->Append(wxID_CLOSE, _("&Quit"));

    wxMenu *menuplay = new wxMenu();
    menuplay->Append(ID_MENU_GENERATE, _("&Generate"));

    _menubar->Append(_menufile, _("&File"));
    _menubar->Append(menuplay, _("&Document"));

    SetMenuBar(_menubar);
}

void
MainWindow::on_open(wxCommandEvent &event)
{
    wxFileDialog fd(this, _("Add pages"), wxT(""),
            wxT(""), wxT("*.jpg"), wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST
            | wxFD_PREVIEW);

    if (fd.ShowModal() == wxID_OK)
    {
        wxArrayString files;
        fd.GetFilenames(files);
        _pagelist->add_files(files);
    }
}

void
MainWindow::on_quit(wxCommandEvent &event)
{
    Close();
}

void
MainWindow::on_generate(wxCommandEvent &event)
{
    _pagelist->generate(wxT("out.djvu"));
}