Commits

Andreas Tscharner  committed 82e372b

Discontinue GUI development

  • Participants
  • Parent commits f0ac90c
  • Tags (1.1)

Comments (0)

Files changed (18)

File configure.ac

                 src/compiler/Makefile         \
                 src/compiler/tinyxml/Makefile \
                 src/example/Makefile          \
-                src/gui/Makefile              \
                 src/lib/Makefile              \
                 src/pkgconfig/liblrc.pc       \
                 src/strategies/Makefile       \

File src/Makefile.am

 #      Makefile.am
 #
-#      Copyright 2011 Andreas Tscharner <andy@vis.ethz.ch>
+#      Copyright 2011, 2013 Andreas Tscharner <andy@vis.ethz.ch>
 #
 #      This program is free software; you can redistribute it and/or modify
 #      it under the terms of the GNU Lesser General Public License as
 # Define all subdirectories
 SUBDIRS = strategies compiler lib example
 
-if !NO_GUI
-SUBDIRS += gui
-endif
-
 #
 # Add header files for compression and encryption classes
 noinst_HEADERS = include/CompressDecompress.hxx include/EncryptDecrypt.hxx

File src/gui/ButtonHandlers.cxx

-/*
- * ButtonHandlers.cxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-#include <gtkmm/builder.h>
-#include <gtkmm/button.h>
-#include <gtkmm/stock.h>
-#include <gtkmm/treeview.h>
-#include "ButtonHandlers.hxx"
-#include "EditDialog.hxx"
-
-
-void ButtonHandlers::on_add_button_clicked(void)
-{
-	int dlgRet;
-
-
-	dlgRet = m_addFilesDlg->run();
-	if (dlgRet == Gtk::RESPONSE_OK) {
-		if (m_listHandler) {
-			m_listHandler->newFilesAdded(m_addFilesDlg->get_filenames());
-		};
-	};
-	m_addFilesDlg->hide();
-}
-
-void ButtonHandlers::on_remove_button_clicked(void)
-{
-	Gtk::TreeView *resFileView;
-	Glib::RefPtr<Gtk::TreeSelection> selectedRes;
-
-
-	m_refBuilder->get_widget("resTreeView", resFileView);
-	selectedRes = resFileView->get_selection();
-	m_listHandler->removeSelected(selectedRes);
-}
-
-void ButtonHandlers::on_edit_button_clicked(void)
-{
-	int dlgRet;
-	Gtk::TreeView *resFileView;
-	Glib::RefPtr<Gtk::TreeSelection> selectedRes;
-	std::vector<Gtk::TreeModel::Path> selectedRows;
-	Gtk::TreeModel::Row currentRow;
-
-
-	m_refBuilder->get_widget("resTreeView", resFileView);
-	selectedRes = resFileView->get_selection();
-	if (!selectedRes) {
-		return;
-	};
-
-	selectedRows = selectedRes->get_selected_rows();
-
-	for (auto eachPath : selectedRows) {
-		currentRow = m_listHandler->getResourceEntry(eachPath);
-		dlgRet = m_editDlg->show_dialog(currentRow);
-	};
-}
-
-ButtonHandlers::ButtonHandlers(Glib::RefPtr<Gtk::Builder> p_refBuilder, ResColumnModel *p_resColModel)
-{
-	Gtk::Window *mainWin;
-	Glib::RefPtr<Gtk::FileFilter> anyFile = Gtk::FileFilter::create();
-
-
-	m_refBuilder = p_refBuilder;
-
-	p_refBuilder->get_widget("bnAdd", m_addButton);
-	m_addButton->signal_clicked().connect(sigc::mem_fun(*this,
-	                                      &ButtonHandlers::on_add_button_clicked));
-	p_refBuilder->get_widget("bnRemove", m_removeButton);
-	m_removeButton->signal_clicked().connect(sigc::mem_fun(*this,
-	                                         &ButtonHandlers::on_remove_button_clicked));
-	p_refBuilder->get_widget("bnEdit", m_editButton);
-	m_editButton->signal_clicked().connect(sigc::mem_fun(*this,
-	                                       &ButtonHandlers::on_edit_button_clicked));
-
-	p_refBuilder->get_widget("MainWindow", mainWin);
-
-	m_addFilesDlg = new Gtk::FileChooserDialog(*mainWin, "Dateien für Resourcen auswählen",
-	                                           Gtk::FILE_CHOOSER_ACTION_OPEN);
-	m_addFilesDlg->set_select_multiple(true);
-	m_addFilesDlg->set_has_resize_grip(false);
-	m_addFilesDlg->set_create_folders(false);
-	m_addFilesDlg->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
-	m_addFilesDlg->add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK);
-	anyFile->set_name("Alle Dateien");
-	anyFile->add_pattern("*");
-	m_addFilesDlg->add_filter(anyFile);
-
-	m_listHandler = nullptr;
-
-	m_editDlg = new EditDialog(p_refBuilder, p_resColModel);
-}
-
-ButtonHandlers::~ButtonHandlers(void)
-{
-	delete m_editDlg;
-	delete m_addFilesDlg;
-	delete m_editButton;
-	delete m_removeButton;
-	delete m_addButton;
-}
-
-int ButtonHandlers::setListHandler(ListHandler *p_listHandler)
-{
-	m_listHandler = p_listHandler;
-}

File src/gui/ButtonHandlers.hxx

-/*
- * ButtonHandlers.hxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-/*! \file ButtonHandlers.hxx
- *
- * This file contains the ButtonHandlers class. This class is responsible
- * for the actions if the user clicks the "Add", "Remove" or "Edit" button
- * on the main window
- *
- * \author Andreas Tscharner
- * \date 2013-07-10
- */
-
-
-#ifndef __BUTTONHANDLERS_HXX__
-#define __BUTTONHANDLERS_HXX__
-
-
-#include <gtkmm/button.h>
-#include <gtkmm/builder.h>
-#include <gtkmm/filechooserdialog.h>
-#include "ListHandler.hxx"
-#include "ResColumnModel.hxx"
-#include "EditDialog.hxx"
-
-
-/*! \class ButtonHandlers
- *  \brief Class to handle the three main buttons
- *
- * Class that handles the clicks on the "Add", "Remove" and "Edit" button on
- * the main window
- */
-class ButtonHandlers
-{
-	private:
-		Glib::RefPtr<Gtk::Builder> m_refBuilder; //!< Reference to main builder
-		Gtk::Button *m_addButton;      //!< Reference to "Add" button
-		Gtk::Button *m_removeButton;   //!< Reference to "Remove" button
-		Gtk::Button *m_editButton;     //!< Reference to "Edit" button
-		Gtk::FileChooserDialog *m_addFilesDlg;   //!< Reference to "Add Files" dialog
-		ListHandler *m_listHandler;    //!< Reference to (global) list handler class
-		EditDialog *m_editDlg;         //!< Reference to edit dialog class
-
-	protected:
-		/*! \brief Signal handler for "Add" button
-		 *
-		 * This method is the actual signal handler for the "Add" button. It
-		 * shows the file selection window and adds all selected files to
-		 * the list of resource files
-		 */
-		void on_add_button_clicked(void);
-		/*! \brief Signal handler for "Remove" button
-		 *
-		 * This method is the actual sognal handler for the "Remove" button.
-		 * It removes all selected files from the list of resource files.
-		 */
-		void on_remove_button_clicked(void);
-		/*! \brief Signal handler for "Edit" button
-		 *
-		 * This method is the actual signal handler for the "Edit" button.
-		 * It allows editing the metadata of the selected resource
-		 */
-		void on_edit_button_clicked(void);
-
-	public:
-		/*! \brief Constructor
-		 *
-		 * The constructor connects the "clicked" signals of the "Add",
-		 * "Remove" and "Edit" buttons with the corresponding singnal
-		 * handler methods
-		 *
-		 * \param[in] p_refBuilder Reference to the builder that loaded the
-		 *                         glade GUI file
-		 * \param[in] p_resColModel Reference to instance of column model
-		 */
-		ButtonHandlers(Glib::RefPtr<Gtk::Builder>, ResColumnModel *);
-		/*! \brief Destructor
-		 *
-		 * Frees all the used memory
-		 */
-		~ButtonHandlers(void);
-
-		/*! \brief Set instance of list handler
-		 *
-		 * This method is used to provide a ListHandler instance for this
-		 * class. It should be used by the MainWindow constructor
-		 *
-		 * \retval NO_ERROR Instance successfully set
-		 */
-		int setListHandler(ListHandler *);
-};
-
-
-#endif /* __BUTTONHANDLERS_HXX__ */

File src/gui/EditDialog.cxx

-/*
- * EditDialog.cxx
- *
- * Copyright 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-#include "EditDialog.hxx"
-#include "Utils.hxx"
-#include "../include/CompressDecompress.hxx"
-#include "../include/EncryptDecrypt.hxx"
-
-
-inline int EditDialog::compNameToIndex(const char *p_compName)
-{
-	if (strcmp("None", p_compName) == 0) {
-		return 0;
-	};
-
-	for (int iter = lrc::NoneCompression; iter < lrc::lastCompression; iter++) {
-		if (strcmp(lrc::CompressionTypeNames[iter], p_compName) == 0) {
-			return iter;
-		};
-	};
-
-	return 0;
-}
-
-inline int EditDialog::encNameToIndex(const char *p_encName)
-{
-	if (strcmp("None", p_encName) == 0) {
-		return 0;
-	};
-
-	for (int iter = lrc::NoneEncryption; iter < lrc::lastEncryption; iter++) {
-		if (strcmp(lrc::EncryptionTypeNames[iter], p_encName) == 0) {
-			return iter;
-		};
-	};
-
-	return 0;
-}
-
-void EditDialog::SetUpValues(Gtk::TreeModel::Row p_row)
-{
-	Gtk::Entry *edResID;
-	Gtk::Entry *edResFilename;
-	Gtk::Entry *edResPassword;
-	Glib::ustring compTypeName;
-	Glib::ustring encTypeName;
-
-
-	this->m_compSelect->set_active(0);
-	this->m_encSelect->set_active(0);
-
-	this->m_refBuilder->get_widget("edID", edResID);
-	edResID->set_text(p_row[this->m_resColModel->FUniqueResID]);
-
-	this->m_refBuilder->get_widget("edFilename", edResFilename);
-	edResFilename->set_text(p_row[this->m_resColModel->FResFilename]);
-
-	compTypeName = p_row[this->m_resColModel->FCompressTypeName];
-	this->m_compSelect->set_active(this->compNameToIndex(compTypeName.c_str()));
-
-	encTypeName = p_row[this->m_resColModel->FEncryptTypeName];
-	this->m_encSelect->set_active(this->encNameToIndex(encTypeName.c_str()));
-
-	this->m_refBuilder->get_widget("edPassword", edResPassword);
-	if (this->encNameToIndex(encTypeName.c_str()) > lrc::NoneEncryption) {
-		edResPassword->set_text(p_row[this->m_resColModel->FEncPassword]);
-	};
-	edResPassword->set_editable(this->encNameToIndex(encTypeName.c_str()) > lrc::NoneEncryption);
-}
-
-
-void EditDialog::on_enc_combo_changed(void)
-{
-	Gtk::TreeModel::iterator activeEncIter;
-	Gtk::TreeModel::Row activeEncRow;
-	Gtk::Entry *edResPassword;
-	Glib::ustring encTypeName;
-
-
-	DEBUG_PRINT(("on_enc_combo_changed starts\n"))
-	activeEncIter = this->m_encSelect->get_active();
-	if (!activeEncIter)
-		return;
-
-	DEBUG_PRINT(("We have an active encryption iterator..."))
-	activeEncRow = *activeEncIter;
-	if (!activeEncRow)
-		return;
-
-	DEBUG_PRINT((" and a corresponding row\n"))
-	DEBUG_PRINT(("this->m_resColModel->FEncryptTypeName: %s\n", this->m_resColModel->FEncryptTypeName))
-	encTypeName = activeEncRow[this->m_resColModel->FEncryptTypeName];
-	m_refBuilder->get_widget("edPassword", edResPassword);
-	edResPassword->set_editable(this->encNameToIndex(encTypeName.c_str()) > lrc::NoneEncryption);
-
-	DEBUG_PRINT(("on_enc_combo_changed ends. New encryption: %s\n", encTypeName.c_str()))
-}
-
-
-EditDialog::EditDialog(Glib::RefPtr<Gtk::Builder> p_refBuilder, ResColumnModel *p_resColModel)
-{
-	m_refBuilder = p_refBuilder;
-	m_resColModel = p_resColModel;
-
-	m_refBuilder->get_widget("dlgEdit", m_editDialog);
-
-	p_refBuilder->get_widget("cbxCompression", m_compSelect);
-	for (unsigned int iter = lrc::NoneCompression; iter < lrc::lastCompression; iter++) {
-		m_compSelect->append(lrc::CompressionTypeNames[iter]);
-	};
-
-	p_refBuilder->get_widget("cbxEncryption", m_encSelect);
-	for (unsigned int iter = lrc::NoneEncryption; iter < lrc::lastEncryption; iter++) {
-		m_encSelect->append(lrc::EncryptionTypeNames[iter]);
-	};
-	this->m_encSelect->signal_changed().connect(sigc::mem_fun(*this, &EditDialog::on_enc_combo_changed));
-}
-
-EditDialog::~EditDialog(void)
-{
-	delete m_encSelect;
-	delete m_compSelect;
-	delete m_editDialog;
-}
-
-int EditDialog::show_dialog(Gtk::TreeModel::Row p_row)
-{
-	int retVal;
-
-
-	if (!this->m_editDialog)
-		return -1;
-
-	this->SetUpValues(p_row);
-
-	retVal = this->m_editDialog->run();
-	this->m_editDialog->hide();
-
-	return retVal;
-}
-
-void EditDialog::GetEditedValues(Gtk::TreeModel::Row p_row)
-{
-}

File src/gui/EditDialog.hxx

-/*
- * EditDialog.hxx
- *
- * Copyright 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-/*! \file EditDialog.hxx
- *
- * This file contains the EditDialog class. It is responsible for the
- * logic for the edit dialog of one entry
- *
- * \author Andreas Tscharner
- * \date 2013-08-24
- */
-
-
-#ifndef __EDITDIALOG_HXX__
-#define __EDITDIALOG_HXX__
-
-
-#include <gtkmm/builder.h>
-#include <gtkmm/dialog.h>
-#include <gtkmm/comboboxtext.h>
-#include "ResColumnModel.hxx"
-
-
-/*! \class EditDialog
- *  \brief Class to handle the edit dialog for one entry
- *
- * Class that handles the logic for the edit dialog which is responsible
- * for one resource entry
- */
-class EditDialog
-{
-	private:
-		Glib::RefPtr<Gtk::Builder> m_refBuilder; //!< Reference to main builder
-		Gtk::Dialog *m_editDialog;               //!< Reference to dialog for editing the selected resource
-		Gtk::ComboBoxText *m_compSelect;         //!< Reference to compression combobox
-		Gtk::ComboBoxText *m_encSelect;          //!< Reference to encryption combobox
-		ResColumnModel *m_resColModel;           //!< Reference to instance of column model
-
-		/*! \brief Get integer index from compression name
-		 *
-		 * This method returns the index of the given compression name
-		 * within the static array of all compression names
-		 *
-		 * \param[in] p_compName Compression name
-		 *
-		 * \return Index within array
-		 */
-		inline int compNameToIndex(const char *);
-		/*! \brief Get integer index from encryption name
-		 *
-		 * This method returns the index of the given encryption name within
-		 * the static array of all encryption names
-		 *
-		 * \param[in] p_encName Encryption name
-		 *
-		 * \return Index within array
-		 */
-		inline int encNameToIndex(const char *);
-
-		/*! \brief Set the values for the dialog up
-		 *
-		 * This method sets up the dialog with the given values to edit
-		 *
-		 * \param[in] p_row Row containing the values to edit
-		 */
-		void SetUpValues(Gtk::TreeModel::Row);
-
-	protected:
-		/*! \brief Signal handler for changed encryption combo box
-		 *
-		 * This method is called whenever the encryption combo box changes its
-		 * value
-		 */
-		void on_enc_combo_changed(void);
-
-	public:
-		/*! \brief Constructor
-		 *
-		 * The constructor sets up the dialog fo editing with the
-		 * given values
-		 *
-		 * \param[in] p_refBuilder Reference to the builder that loaded the
-		 *                         glade GUI file
-		 * \param[in] p_resColModel Reference to instance of column model
-		 */
-		EditDialog(Glib::RefPtr<Gtk::Builder>, ResColumnModel *);
-		/*! \brief Destructor
-		 *
-		 * Frees all the used memory
-		 */
-		~EditDialog(void);
-
-		/*! \brief Shows the dialog with the given data
-		 *
-		 * This method shows the dialog with the given data and hides
-		 * it again after the user clicked [OK] or [ESC]
-		 *
-		 * \param[in] p_row Row containing the values
-		 *
-		 * \return Value of clicked button
-		 */
-		int show_dialog(Gtk::TreeModel::Row);
-
-		/*! \brief Gets the edited values from  the dialog
-		 *
-		 * This method gets the edited values from the dialog and uses
-		 * them to update the list model
-		 *
-		 * \param[in] p_row Row to put the edited values
-		 */
-		void GetEditedValues(Gtk::TreeModel::Row);
-};
-
-
-#endif /* __EDITDIALOG_HXX__ */

File src/gui/ListHandler.cxx

-/*
- * ListHandler.cxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-#include "../StatusCodes.hxx"
-#include "ListHandler.hxx"
-
-
-ListHandler::ListHandler(Glib::RefPtr<Gtk::ListStore> p_listResEntries, ResColumnModel *p_resColModel)
-{
-	m_listResEntries = p_listResEntries;
-	m_resColModel = p_resColModel;
-}
-
-ListHandler::~ListHandler()
-{
-}
-
-int ListHandler::newFilesAdded(std::vector<std::string> p_newFiles)
-{
-	std::string fileEntry;
-	Glib::ustring rowEntry;
-	Gtk::TreeModel::Children modelEntries = m_listResEntries->children();
-	Gtk::TreeModel::Children::iterator modelIter;
-	Gtk::TreeModel::Row singleRow;
-
-
-	for (int i=0; i<p_newFiles.size(); i++) {
-		fileEntry = p_newFiles.at(i);
-		for (modelIter = modelEntries.begin(); modelIter != modelEntries.end(); ++modelIter) {
-			singleRow = *modelIter;
-			rowEntry = singleRow[m_resColModel->FResFilename];
-
-			if (fileEntry.compare(rowEntry) == 0) {
-				p_newFiles.erase(p_newFiles.begin()+i);
-			};
-		};
-	};
-
-	for (auto singleEntry : p_newFiles) {
-		modelIter = m_listResEntries->append();
-		singleRow = *modelIter;
-
-		singleRow[m_resColModel->FUniqueResID] = "";
-		singleRow[m_resColModel->FResFilename] = singleEntry;
-		singleRow[m_resColModel->FCompressTypeName] = "Keine";
-#ifndef NO_ENCRYPTION
-		singleRow[m_resColModel->FEncryptTypeName] = "Keine";
-		singleRow[m_resColModel->FEncPassword] = "";
-#endif
-	};
-
-	return NO_ERROR;
-}
-
-int ListHandler::removeSelected(Glib::RefPtr<Gtk::TreeSelection> p_selection)
-{
-	std::vector<Gtk::TreeModel::Path> selectedRes;
-	Gtk::TreeModel::iterator selectedIter;
-
-
-	selectedRes = p_selection->get_selected_rows();
-	for (auto oneResPath : selectedRes) {
-		selectedIter = m_listResEntries->get_iter(oneResPath);
-		m_listResEntries->erase(selectedIter);
-	};
-
-	return NO_ERROR;
-}
-
-Gtk::TreeModel::Row ListHandler::getResourceEntry(Gtk::TreeModel::Path p_treemodelPath)
-{
-	Gtk::TreeModel::iterator iter;
-
-
-	iter = m_listResEntries->get_iter(p_treemodelPath);
-	return *iter;
-}

File src/gui/ListHandler.hxx

-/*
- * ListHandler.hxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-/*! \file ListHandler.hxx
- *
- * This file contains the definition of the ListHandler class. This class is
- * responsible to manage the list in the TreeView, especially for adding and
- * removing new entries
- *
- * \author Andreas Tscharner
- * \date 2013-03-10
- */
-
-
-#ifndef __LISTHANDLER_HXX__
-#define __LISTHANDLER_HXX__
-
-
-#include <gtkmm/liststore.h>
-#include <gtkmm/treeselection.h>
-#include "ResColumnModel.hxx"
-
-
-/*! \class ListHandler
- *  \brief Class to handle the list in the Gtk::TreeView
- *
- * This class handles the list in the Gtk::TreeView. It is especially
- * responsible to add new entries to the list and remove the ones that are
- * no longer used. Finally it provides the data as resource entries if the
- * user selects "Save (as)"
- */
-class ListHandler
-{
-	private:
-		Glib::RefPtr<Gtk::ListStore> m_listResEntries; //!< Reference to list store for the main list view
-		ResColumnModel *m_resColModel;                 //!< Class that defines the column model for the list store
-
-	public:
-		/*! \brief Constructor
-		 *
-		 * The constructor expects a reference to the list store and a
-		 * pointer to the instance of the column model
-		 *
-		 * \param[in] p_listResEntries Reference to TreeView ListStore
-		 * \param[in] p_resColModel Pointer to single instance of
-		 *            ResColumnModel
-		 */
-		ListHandler(Glib::RefPtr<Gtk::ListStore>, ResColumnModel *);
-		~ListHandler();
-
-		/*! \brief Add new files to TreeView
-		 *
-		 * This method adds the new (given) files into the TreeView. It
-		 * checks for duplicates and removes them if any
-		 *
-		 * \param[in] p_newFiles List of (new) files
-		 *
-		 * \retval NO_ERROR Files successfully added
-		 */
-		int newFilesAdded(std::vector<std::string>);
-
-		/*! \brief Remove the selected resource
-		 *
-		 * This method removes the currently selected resources from the list
-		 * without confirmation
-		 *
-		 * \param[in] p_selection Selection in view
-		 *
-		 * \retval NO_ERROR Resource successfully removed
-		 */
-		int removeSelected(Glib::RefPtr<Gtk::TreeSelection>);
-
-		/*! \brief Return desired resource entry
-		 *
-		 * This method returns the desired resource entry from the list
-		 *
-		 * \param[in] p_treemodelPath Path to entry within the tree model
-		 *
-		 * \return Resource entry as row of the tree model
-		 */
-		Gtk::TreeModel::Row getResourceEntry(Gtk::TreeModel::Path);
-};
-
-
-#endif /* __LISTHANDLER_HXX__ */

File src/gui/MainWindow.cxx

-/*
- * MainWindow.cxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-#include <gtkmm/treeview.h>
-#include <gtkmm/cellrenderercombo.h>
-#include "../include/CompressDecompress.hxx"
-#include "../include/EncryptDecrypt.hxx"
-#include "MainWindow.hxx"
-#include "ButtonHandlers.hxx"
-#include "ResColumnModel.hxx"
-
-#ifdef HAVE_CONFIG_H
-#include "../lrc_config.h"
-#endif
-
-
-MainWindow::MainWindow(Gtk::Window *p_mainWin, Glib::RefPtr<Gtk::Builder> p_refBuilder)
-{
-	Gtk::TreeView *resFileView;
-
-
-	m_mainWindow = p_mainWin;
-	m_refBuilder = p_refBuilder;
-
-	m_resColModel = new ResColumnModel();
-	m_listResFiles = Gtk::ListStore::create(*m_resColModel);
-	m_buttonHandlers = new ButtonHandlers(m_refBuilder, m_resColModel);
-	m_listHandler = new ListHandler(m_listResFiles, m_resColModel);
-	m_buttonHandlers->setListHandler(m_listHandler);
-
-	m_refBuilder->get_widget("resTreeView", resFileView);
-	resFileView->set_model(m_listResFiles);
-
-	resFileView->append_column_editable("Resource ID", m_resColModel->FUniqueResID);
-	resFileView->append_column("Dateiname", m_resColModel->FResFilename);
-	resFileView->append_column("Komprimierung", m_resColModel->FCompressTypeName);
-#ifndef NO_ENCRYPTION
-	resFileView->append_column("Verschlüsselung", m_resColModel->FEncryptTypeName);
-	resFileView->append_column_editable("Passwort", m_resColModel->FEncPassword);
-#endif /* NO_ENCRYPTION */
-}
-
-MainWindow::~MainWindow()
-{
-	delete m_listHandler;
-	delete m_resColModel;
-	delete m_buttonHandlers;
-
-	//m_refBuilder = nullptr;
-	m_mainWindow = nullptr;
-}

File src/gui/MainWindow.hxx

-/*
- * MainWindow.hxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-/*! \file MainWindow.hxx
- *
- * This file contains the declaration of the MainWindow class. This class
- * is responsible for all stuff of the main window.
- * It may delegate some tasks (like the menu or the list view) to separate
- * classes
- *
- * \author Andreas Tscharner
- * \date 2013-03-09
- */
-
-
-#ifndef __MAINWINDOW_HXX__
-#define __MAINWINDOW_HXX__
-
-
-// Include files
-#include <gtkmm/builder.h>
-#include <gtkmm/window.h>
-#include <gtkmm/liststore.h>
-#include "ButtonHandlers.hxx"
-#include "ResColumnModel.hxx"
-#include "ListHandler.hxx"
-
-
-/*! \class MainWindow
- *  \brief Class to handle the main window
- *
- * This class handles all the stuff of the main window. It uses other
- * classes to handle some special tasks (like the menu or the list view)
- */
-class MainWindow
-{
-	private:
-		Gtk::Window *m_mainWindow;     //!< Reference to main window class
-		Glib::RefPtr<Gtk::Builder> m_refBuilder;      //!< Reference to builder that created the UI from XML
-		Glib::RefPtr<Gtk::ListStore> m_listResFiles;  //!< Reference to list store for the main list view
-
-		ButtonHandlers *m_buttonHandlers;   //!< Class instance to handle the "Add", "Remove" and "Edit" button
-		ResColumnModel *m_resColModel; //!< Class that defines the column model for the list store
-		ListHandler *m_listHandler;    //!< Class for handling the list in the view
-
-	public:
-		/*! \brief Constructor
-		 *
-		 * The constructor for the MainWindow class. It needs a pointer to
-		 * the window and a reference pointer to the glade file as parameters
-		 *
-		 * \param[in] p_mainWin Pointer to GTK window
-		 * \param[in] p_refBuilder Reference pointer to builder that loaded
-		 *                         the glade file
-		 */
-		MainWindow(Gtk::Window *, Glib::RefPtr<Gtk::Builder>);
-		/*! \brief Destructor
-		 *
-		 * The destructor cleans up any used memory from this class
-		 */
-		~MainWindow();
-};
-
-
-#endif /* __MAINWINDOW_HXX__ */

File src/gui/Makefile.am

-#      Makefile.am
-#
-#      Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
-#
-#      This program is free software; you can redistribute it and/or modify
-#      it under the terms of the GNU Lesser General Public License as
-#      published by the Free Software Foundation; either version 3 of the
-#      License, or (at your option) 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 Lesser General Public
-#      License along with this program; if not, write to the Free Software
-#      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-#      MA 02110-1301, USA.
-
-
-#
-# Check for DEBUG mode
-if DEBUG
-DEBUG_CFLAGS = -D__DEBUG__
-DEBUG_CXXFLAGS = -D__DEBUG__
-else
-DEBUG_CFLAGS = -O2
-DEBUG_CXXFLAGS = -O2
-endif
-
-#
-# Define C/C++ compiler flags for libraries
-
-
-#
-# Define compiler flags
-AM_CFLAGS = $(DEBUG_CFLAGS) $(GUI_DEPS_CFLAGS)
-AM_CXXFLAGS = $(DEBUG_CXXFLAGS) $(GUI_DEPS_CFLAGS) -std=c++0x
-
-#
-# Define main program
-bin_PROGRAMS = lrcResourceEditor
-
-#
-# Define source files for main program
-lrcResourceEditor_SOURCES = MainWindow.hxx MainWindow.cxx               \
-                            ButtonHandlers.hxx ButtonHandlers.cxx       \
-                            ResColumnModel.hxx ResColumnModel.cxx       \
-                            ListHandler.hxx ListHandler.cxx             \
-                            EditDialog.hxx EditDialog.cxx               \
-                            lrcResourceEditor.cxx
-
-#
-# Library flags for main program
-lrcResourceEditor_LDADD = $(GUI_DEPS_LIBS)
-lrcResourceEditor_LDFLAGS = -export-dynamic

File src/gui/README

+2013-09-08  Andreas Tscharner  <andy@vis.ethz.ch>
+
+        * lrcResourceEditor:
+
+        lrcResourceEditor development discontinued
+        ==========================================
+
+        The work on the GUI application lrcResourceEditor took a lot of time
+        and resources, but was still quite slow.
+
+        On the other hand I assume that a developer is quite able to handle
+        a very simple text or XML file.
+
+        Therefore I decided to stop the development of lrcResourceEditor.
+
+        If you are interested to continue: All the GUI code is in the file
+        lrcResourceEditor.tar.bz2. For changes in the build system please
+        consult the versioning system.

File src/gui/ResColumnModel.cxx

-/*
- * ResColumnModel.cxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include "../lrc_config.h"
-#endif
-#include "ResColumnModel.hxx"
-
-
-ResColumnModel::ResColumnModel()
-{
-	this->add(FUniqueResID);
-	this->add(FResFilename);
-	this->add(FCompressTypeName);
-#ifndef NO_ENCRYPTION
-	this->add(FEncryptTypeName);
-	this->add(FEncPassword);
-#endif
-}

File src/gui/ResColumnModel.hxx

-/*
- * ResColumnModel.hxx
- *
- * Copyright 2012, 2013 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-/*! \file ResColumnModel.hxx
- *
- * This file contains the declaration of the model for the list view (the
- * main part of the main window).
- *
- * \author Andreas Tscharner
- * \date 2013-03-09
- */
-
-
-#ifndef __RESCOLUMNMODEL_HXX__
-#define __RESCOLUMNMODEL_HXX__
-
-
-#include <gtkmm/treemodelcolumn.h>
-#include <gtkmm/combobox.h>
-
-
-/*! \class ResColumnModel
- *  \brief Column model for resources
- *
- * This class defines the column model for the list view of the main window.
- * It takes also care whether or not --disable-encryption was set during the
- * program configuration
- */
-class ResColumnModel : public Gtk::TreeModelColumnRecord
-{
-	public:
-		Gtk::TreeModelColumn<Glib::ustring> FUniqueResID;            //!< ID for resource
-		Gtk::TreeModelColumn<Glib::ustring> FResFilename;            //!< Filename for resource
-		Gtk::TreeModelColumn<Glib::ustring> FCompressTypeName;       //!< Compression type for resource
-		Gtk::TreeModelColumn<Glib::ustring> FEncryptTypeName;        //!< Encryption type for resource
-		Gtk::TreeModelColumn<Glib::ustring> FEncPassword;            //!< Password if resource is encrypted
-
-	public:
-		/*! \brief Constructor
-		 *
-		 * The constructor adds the columns to the column record
-		 */
-		ResColumnModel();
-};
-
-
-#endif /* __RESCOLUMNMODEL_HXX__ */

File src/gui/ResourceEditor.glade

-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
-  <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkWindow" id="MainWindow">
-    <property name="can_focus">False</property>
-    <property name="title" translatable="yes">lrc Resource Editor</property>
-    <property name="window_position">mouse</property>
-    <property name="default_width">440</property>
-    <property name="default_height">250</property>
-    <property name="icon">icon/lrc.png</property>
-    <property name="has_resize_grip">False</property>
-    <child>
-      <object class="GtkBox" id="box1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <child>
-          <object class="GtkMenuBar" id="MainMenu">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <child>
-              <object class="GtkMenuItem" id="mainFile">
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_Datei</property>
-                <property name="use_underline">True</property>
-                <child type="submenu">
-                  <object class="GtkMenu" id="menu1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miNew">
-                        <property name="label">gtk-new</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miSave">
-                        <property name="label">gtk-save</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miSaveAs">
-                        <property name="label">gtk-save-as</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkSeparatorMenuItem" id="sep1">
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miExit">
-                        <property name="label">gtk-quit</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child>
-              <object class="GtkMenuItem" id="mainEdit">
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_Bearbeiten</property>
-                <property name="use_underline">True</property>
-                <child type="submenu">
-                  <object class="GtkMenu" id="menu2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miCut">
-                        <property name="label">gtk-cut</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miCopy">
-                        <property name="label">gtk-copy</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miPaste">
-                        <property name="label">gtk-paste</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miDelete">
-                        <property name="label">gtk-delete</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child>
-              <object class="GtkMenuItem" id="mainView">
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_Ansicht</property>
-                <property name="use_underline">True</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkMenuItem" id="mainHelp">
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_Hilfe</property>
-                <property name="use_underline">True</property>
-                <child type="submenu">
-                  <object class="GtkMenu" id="menu3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkImageMenuItem" id="miAbout">
-                        <property name="label">gtk-about</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkScrolledWindow" id="scrolledwindow1">
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="shadow_type">in</property>
-            <child>
-              <object class="GtkTreeView" id="resTreeView">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <child internal-child="selection">
-                  <object class="GtkTreeSelection" id="resTreeViewSelection">
-                    <property name="mode">multiple</property>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="box2">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="homogeneous">True</property>
-            <child>
-              <object class="GtkButton" id="bnAdd">
-                <property name="label">gtk-add</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="bnRemove">
-                <property name="label">gtk-remove</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="bnEdit">
-                <property name="label">gtk-edit</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">3</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-  </object>
-  <object class="GtkDialog" id="dlgEdit">
-    <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Resource bearbeiten</property>
-    <property name="modal">True</property>
-    <property name="window_position">mouse</property>
-    <property name="type_hint">dialog</property>
-    <property name="has_resize_grip">False</property>
-    <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox1">
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area1">
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="bnOK">
-                <property name="label">gtk-ok</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="bnCancel">
-                <property name="label">gtk-cancel</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_stock">True</property>
-                <property name="yalign">0.44999998807907104</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkGrid" id="grid1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="row_spacing">3</property>
-            <child>
-              <object class="GtkLabel" id="lbID">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">ID:</property>
-                <property name="justify">right</property>
-                <property name="ellipsize">start</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="lbFilename">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">Dateiname:</property>
-                <property name="justify">right</property>
-                <property name="ellipsize">start</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="lbCompression">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">Komprimierung:</property>
-                <property name="justify">right</property>
-                <property name="ellipsize">start</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">2</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="lbEncryption">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">Verschlüsselung:</property>
-                <property name="justify">right</property>
-                <property name="ellipsize">start</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">3</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="lbPassword">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="xalign">1</property>
-                <property name="label" translatable="yes">Passwort:</property>
-                <property name="justify">right</property>
-                <property name="ellipsize">start</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">4</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkEntry" id="edID">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="invisible_char">•</property>
-                <property name="primary_icon_tooltip_text" translatable="yes">Eindeutige ID der Resource</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-                <property name="width">2</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkEntry" id="edFilename">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="editable">False</property>
-                <property name="invisible_char">•</property>
-                <property name="primary_icon_tooltip_text" translatable="yes">Datei, die als Resource verwendet wird</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="bnSelectFilename">
-                <property name="label">...</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="yalign">0.52999997138977051</property>
-              </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkEntry" id="edPassword">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="visibility">False</property>
-                <property name="invisible_char">•</property>
-                <property name="primary_icon_tooltip_text" translatable="yes">Passwort, falls Verschlüsselung aktiv ist</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">4</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="bnSelectPasswordFile">
-                <property name="label">...</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-              </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">4</property>
-                <property name="width">1</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkComboBoxText" id="cbxCompression">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="entry_text_column">0</property>
-                <property name="id_column">1</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">2</property>
-                <property name="width">2</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkComboBoxText" id="cbxEncryption">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="entry_text_column">0</property>
-                <property name="id_column">1</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">3</property>
-                <property name="width">2</property>
-                <property name="height">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="0">bnOK</action-widget>
-      <action-widget response="0">bnCancel</action-widget>
-    </action-widgets>
-  </object>
-</interface>

File src/gui/icon/lrc.png

Removed
Old image

File src/gui/lrcResourceEditor.cxx

-/*
- * lrcResourceEditor.cxx
- *
- * Copyright 2012 Andreas Tscharner <andy@vis.ethz.ch>
- *
- * 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 3 of the License, or
- * (at your option) 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
-
-
-#include <gtkmm/application.h>
-#include <gtkmm/builder.h>
-#include <gtkmm/window.h>
-#include <glibmm/fileutils.h>
-#include <glibmm/markup.h>
-#include <iostream>
-#include "MainWindow.hxx"
-
-int main(int argc, char **argv)
-{
-	Glib::RefPtr<Gtk::Application> mainApp;
-	Glib::RefPtr<Gtk::Builder> builder;
-	Gtk::Window *mainWin = nullptr;
-	MainWindow *mainWinTasks;
-
-
-	mainApp = Gtk::Application::create(argc, argv, "ch.blackmoon.lrcResEdit");
-	try {
-		builder = Gtk::Builder::create_from_file("ResourceEditor.glade");
-	} catch (const Glib::FileError &fErr) {
-		std::cout << "Loading the ResourceEditor.glade failed with a FileError: " << fErr.what() << std::endl;
-		return -1;
-	} catch (const Glib::MarkupError &mErr) {
-		std::cout << "Loading the ResourceEditor.glade failed with a MarkupError: " << mErr.what() << std::endl;
-		return -1;
-	} catch (const Gtk::BuilderError &bErr) {
-		std::cout << "Loading the ResourceEditor.glade failed with a BuilderError: " << bErr.what() << std::endl;
-		return -1;
-	};
-
-	builder->get_widget("MainWindow", mainWin);
-	mainWinTasks = new MainWindow(mainWin, builder);
-
-	mainApp->run(*mainWin);
-
-	delete mainWinTasks;
-	delete mainWin;
-
-	return 0;
-}
-

File src/gui/lrcResourceEditor.tar.bz2

Binary file added.