/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /*************************************************************************** * macrowindow.h * * Fri Aug 31 12:27:45 CEST 2007 * Copyright 2007 Lars Bisballe Jensen and Bent Bisballe Nyeng * elsenator@gmail.com and deva@aasimon.org ****************************************************************************/ /* * This file is part of Pracro. * * Pracro 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. * * Pracro 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 Pracro; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #ifndef __PRACRO_MACROWINDOW_H__ #define __PRACRO_MACROWINDOW_H__ #include #include #include #include #include #include #include #include "collapser.h" #include "netcom.h" #include "resumewidget.h" class NetCom; class LUA; class Widget; class MacroWindow : public Collapser { Q_OBJECT public: MacroWindow(NetCom &netcom, QDomNode &xml_doc, QString templ, bool collapsed = true, bool compact = false); ~MacroWindow(); bool isClosed(); QMap< QString, QString > luaprograms; LUA *lua; Widget *getWidget(QString name); // Add a widget that can be seen from script, and will be committed, and validated. void addWidgets(QVector< Widget* >); // Add a widget that can only be seen from scripts, but will not be committed or validated. void addAuxWidgets(QVector< Widget* >); void update(QDomNode &xml_doc); void setActive(bool active); QString macrotitle; public slots: void commit(); void reset(); void cancel(); void cont(QString name); void cont_nocommit(QString name); void toggleMacro(); void macroChanged(); void collapseWrapper(); void expandWrapper(); signals: void updateOnCommit(); void macroHasChanged(); void activationChanged(bool); private: void initMacro(QDomNode &node); bool doCommit(); QVector< Widget* > widgets; QVector< Widget* > auxwidgets; QString macro; QString templ; QString version; QWidget *mainwidget; ResumeWidget *resumewidget; bool isclosed; void close(); NetCom &netcom; bool waschanged; bool active; }; #endif/*__PRACRO_MACROWINDOW_H__*/