From 2bdabb720aebef9f8b3fbb029ac6b60ed5dcbddc Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Mon, 27 Apr 2015 13:54:26 +0300
Subject: Add incomplete mail edit window.

---
 src/CMakeLists.txt             |  2 +
 src/Makefile.am                |  2 +
 src/gui/windows/mailedit.cpp   | 97 ++++++++++++++++++++++++++++++++++++++++++
 src/gui/windows/mailedit.h     | 58 +++++++++++++++++++++++++
 src/gui/windows/mailwindow.cpp |  5 +++
 5 files changed, 164 insertions(+)
 create mode 100644 src/gui/windows/mailedit.cpp
 create mode 100644 src/gui/windows/mailedit.h

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 30d91da55..d7b8ff7cc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -383,6 +383,8 @@ SET(SRCS
     gui/windows/killstats.h
     gui/windows/logindialog.cpp
     gui/windows/logindialog.h
+    gui/windows/mailedit.cpp
+    gui/windows/mailedit.h
     gui/windows/mailwindow.cpp
     gui/windows/mailwindow.h
     gui/windows/minimap.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index 997f3ad15..c5a185705 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -521,6 +521,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \
 	      gui/windows/killstats.h \
 	      gui/windows/logindialog.cpp \
 	      gui/windows/logindialog.h \
+	      gui/windows/mailedit.cpp \
+	      gui/windows/mailedit.h \
 	      gui/windows/mailwindow.cpp \
 	      gui/windows/mailwindow.h \
 	      gui/windows/minimap.cpp \
diff --git a/src/gui/windows/mailedit.cpp b/src/gui/windows/mailedit.cpp
new file mode 100644
index 000000000..f78374b87
--- /dev/null
+++ b/src/gui/windows/mailedit.cpp
@@ -0,0 +1,97 @@
+/*
+ *  The ManaPlus Client
+ *  Copyright (C) 2011-2015  The ManaPlus Developers
+ *
+ *  This file is part of The ManaPlus Client.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "gui/windows/mailedit.h"
+
+#include "net/mailhandler.h"
+
+#include "gui/windows/setupwindow.h"
+
+#include "gui/widgets/button.h"
+#include "gui/widgets/containerplacer.h"
+#include "gui/widgets/label.h"
+#include "gui/widgets/layout.h"
+#include "gui/widgets/layouttype.h"
+#include "gui/widgets/textfield.h"
+
+#include "utils/gettext.h"
+#include "utils/stringutils.h"
+
+#include "debug.h"
+
+MailEdit::MailEdit() :
+    // TRANSLATORS: mail edit window name
+    Window(_("Edit mail"), true, nullptr, "mailedit.xml"),
+    ActionListener(),
+    // TRANSLATORS: mail edit window button
+    mSendButton(new Button(this, _("Send"), "send", this)),
+    // TRANSLATORS: mail edit window button
+    mCloseButton(new Button(this, _("Close"), "close", this)),
+    // TRANSLATORS: mail edit window label
+    mToLabel(new Label(this, _("To:"))),
+    mSubjectLabel(new Label(this, _("Subject:"))),
+    mMessageLabel(new Label(this, _("Message:"))),
+    mToField(new TextField(this)),
+    mSubjectField(new TextField(this)),
+    mMessageField(new TextField(this))
+{
+    setWindowName("MailEdit");
+    setCloseButton(true);
+    setResizable(true);
+    setCloseButton(true);
+    setSaveVisible(false);
+    setStickyButtonLock(true);
+    setVisible(true);
+
+    setDefaultSize(380, 150, ImageRect::CENTER);
+    setMinWidth(200);
+    setMinHeight(100);
+    center();
+
+    ContainerPlacer placer;
+    placer = getPlacer(0, 0);
+
+    mToField->setWidth(100);
+    mSubjectField->setWidth(100);
+    mMessageField->setWidth(100);
+
+    placer(0, 0, mToLabel);
+    placer(1, 0, mToField, 2);
+    placer(0, 1, mSubjectLabel);
+    placer(1, 1, mSubjectField, 2);
+    placer(0, 2, mMessageLabel);
+    placer(1, 2, mMessageField, 2);
+    placer(0, 3, mSendButton);
+    placer(2, 3, mCloseButton);
+
+    loadWindowState();
+    enableVisibleSound(true);
+}
+
+MailEdit::~MailEdit()
+{
+}
+
+void MailEdit::action(const ActionEvent &event)
+{
+    const std::string &eventId = event.getId();
+    if (eventId == "close")
+        scheduleDelete();
+}
diff --git a/src/gui/windows/mailedit.h b/src/gui/windows/mailedit.h
new file mode 100644
index 000000000..0be9c4317
--- /dev/null
+++ b/src/gui/windows/mailedit.h
@@ -0,0 +1,58 @@
+/*
+ *  The ManaPlus Client
+ *  Copyright (C) 2011-2015  The ManaPlus Developers
+ *
+ *  This file is part of The ManaPlus Client.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GUI_WINDOWS_MAILEDIT_H
+#define GUI_WINDOWS_MAILEDIT_H
+
+#ifdef EATHENA_SUPPORT
+
+#include "gui/widgets/window.h"
+
+#include "listeners/actionlistener.h"
+
+class Button;
+class Label;
+class TextField;
+
+class MailEdit final : public Window,
+                       public ActionListener
+{
+    public:
+        MailEdit();
+
+        A_DELETE_COPY(MailEdit)
+
+        ~MailEdit();
+
+        void action(const ActionEvent &event) override final;
+
+    private:
+        Button *mSendButton;
+        Button *mCloseButton;
+        Label *mToLabel;
+        Label *mSubjectLabel;
+        Label *mMessageLabel;
+        TextField *mToField;
+        TextField *mSubjectField;
+        TextField *mMessageField;
+};
+
+#endif  // EATHENA_SUPPORT
+#endif  // GUI_WINDOWS_MAILEDIT_H
diff --git a/src/gui/windows/mailwindow.cpp b/src/gui/windows/mailwindow.cpp
index 774ea655c..873242e5d 100644
--- a/src/gui/windows/mailwindow.cpp
+++ b/src/gui/windows/mailwindow.cpp
@@ -24,6 +24,7 @@
 
 #include "gui/models/extendednamesmodel.h"
 
+#include "gui/windows/mailedit.h"
 #include "gui/windows/setupwindow.h"
 
 #include "gui/widgets/button.h"
@@ -98,4 +99,8 @@ void MailWindow::action(const ActionEvent &event)
     {
         mailHandler->refresh();
     }
+    else if (eventId == "new")
+    {
+        new MailEdit();
+    }
 }
-- 
cgit v1.2.3-70-g09d2