notebook.h revision 081364debe4793081bf3f50cb82ca7d0999a41d4
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#ifndef INK_EXTENSION_PARAMNOTEBOOK_H_SEEN
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#define INK_EXTENSION_PARAMNOTEBOOK_H_SEEN
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh/** \file
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Notebook parameter for extensions.
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh */
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh/*
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Author:
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Johan Engelen <johan@shouraizou.nl>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Jon A. Cruz <jon@joncruz.org>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh *
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Copyright (C) 2006 Author
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh *
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * Released under GNU GPL, read the file 'COPYING' for more information
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh */
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#include <gtkmm/widget.h>
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh#include "xml/document.h"
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh#include "parameter.h"
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshnamespace Inkscape {
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshnamespace Extension {
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshclass Extension;
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh/** A class to represent a notebookparameter of an extension. */
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshclass ParamNotebook : public Parameter {
7a7fa095a483e8b652af9f00e5169f62c84f09b9mikloshprivate:
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh /**
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh * Internal value. This should point to a string that has
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh * been allocated in memory. And should be free'd.
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh * It is the name of the current page.
fba63a357654d8b3e84c60007e40aa698cd45d19miklosh */
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh gchar * _value;
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh GSList * pages; /**< A table to store the pages with parameters for this notebook.
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh This only gets created if there are pages in this
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh notebook */
3711b3e25395437ee0a09dbbb2a76d999c4ef322mikloshpublic:
dc4f69a188c203f2fdc65f22d0d57904a8c52dd7miklosh ParamNotebook(const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh virtual ~ParamNotebook(void);
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh Gtk::Widget * get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh /**
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * A function to get the currentpage and the parameters in a string form.
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh * @return A string with the 'value' and all the parameters on all pages as command line arguments.
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh */
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh virtual void string (std::list <std::string> &list) const;
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh // Explicitly call superclass version to avoid method being hidden.
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh virtual void string(std::string &string) const {return Parameter::string(string);}
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh Parameter * get_param (const gchar * name);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh const gchar * get (const SPDocument * /*doc*/, const Inkscape::XML::Node * /*node*/) { return _value; }
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh const gchar * set (const int in, SPDocument * doc, Inkscape::XML::Node * node);
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh}; /* class ParamNotebook */
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh} // namespace Extension
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh} // namespace Inkscape
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh#endif /* INK_EXTENSION_PARAMNOTEBOOK_H_SEEN */
68664e00e2372534b4df2fdc5f54f836bafece18miklosh
1cda9431ef400135f5e1bd899a94b921bdad0eafmiklosh/*
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh Local Variables:
68664e00e2372534b4df2fdc5f54f836bafece18miklosh mode:c++
dc4f69a188c203f2fdc65f22d0d57904a8c52dd7miklosh c-file-style:"stroustrup"
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh indent-tabs-mode:nil
a4d12a5147f3d1d6b568a326e39ef5dca384248dmiklosh fill-column:99
3711b3e25395437ee0a09dbbb2a76d999c4ef322miklosh End:
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh*/
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
7a7fa095a483e8b652af9f00e5169f62c84f09b9miklosh