Files
klayout/src/laybasic/layBrowserDialog.h
T

146 lines
3.2 KiB
C++

/*
KLayout Layout Viewer
Copyright (C) 2006-2016 Matthias Koefferlein
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 St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef HDR_layBrowserDialog
#define HDR_layBrowserDialog
#include "tlTypeTraits.h"
#include "ui_BrowserDialog.h"
#include "gsi.h"
namespace lay
{
/**
* @brief The HTML browser dialog
*
* The HTML browser displays HTML code in a browser panel. It receives the code
* by retrieving it from a given URL.
* URL's with the special scheme "int" are retrieved from a BrowserSource object.
* This will act as a kind of "server" for these URL's.
*/
class LAYBASIC_PUBLIC BrowserDialog
: public QDialog,
private Ui::BrowserDialog
{
Q_OBJECT
public:
/**
* @brief Default constructor
*/
BrowserDialog ();
/**
* @brief Constructor with a parent
*/
BrowserDialog (QWidget *parent);
/**
* @brief Constructor with a static HTML page
*/
BrowserDialog (const std::string &html);
/**
* @brief Constructor with a static HTML page and a parent
*/
BrowserDialog (QWidget *parent, const std::string &html);
/**
* @brief Destructor
*/
virtual ~BrowserDialog ();
/**
* @brief Connect to a source object
*/
void set_source (BrowserSource *source);
/**
* @brief Load a certain URL
*/
void load (const std::string &s);
/**
* @brief Set the home URL
*
* Set the browser to the given URL. This will also be the URL that is navigated to
* when the "home" button is clicked.
*/
void set_home (const std::string &url);
/**
* @brief Sets the label text
*/
void set_label (const std::string &label);
/**
* @brief Sets the search URL
* Enables the search bx and sets the Url and query item name for the search
*/
void set_search_url (const std::string &url, const std::string &query_item);
/**
* @brief Navigates to the search entry with that subject
*/
void search (const std::string &s);
/**
* @brief Reload the current page
*/
void reload ();
/**
* @brief Callback when the dialog is closed
*
* Reimplement this callback to implement on-close functionality such as cleanup.
*/
virtual void closed ()
{
// by default, do nothing.
}
private:
virtual void accept ();
BrowserSource m_default_source;
};
}
namespace tl
{
template <> struct type_traits<lay::BrowserDialog> : public type_traits<void> {
typedef tl::false_tag has_copy_constructor;
};
template <> struct type_traits<lay::BrowserSource> : public type_traits<void> {
typedef tl::false_tag has_copy_constructor;
};
}
#endif