mirror of https://github.com/KLayout/klayout.git
WIP
This commit is contained in:
parent
177290f680
commit
51e7c0a038
|
|
@ -26,6 +26,7 @@
|
|||
#define HDR_antConfigPage
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "antTemplate.h"
|
||||
|
||||
class QListWidgetItem;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ SUBDIRS = \
|
|||
unit_tests \
|
||||
buddies \
|
||||
lym \
|
||||
laybasic \
|
||||
|
||||
equals(HAVE_RUBY, "1") {
|
||||
SUBDIRS += drc lvs
|
||||
|
|
@ -23,7 +24,6 @@ equals(HAVE_RUBY, "1") {
|
|||
# TODO: make buddies able to build without Qt
|
||||
SUBDIRS += \
|
||||
klayout_main \
|
||||
laybasic \
|
||||
lay \
|
||||
ant \
|
||||
img \
|
||||
|
|
@ -66,6 +66,7 @@ plugins.depends += lib rdb db
|
|||
|
||||
buddies.depends += plugins lym $$LANG_DEPENDS
|
||||
lym.depends += gsi $$LANG_DEPENDS
|
||||
laybasic.depends += rdb lym
|
||||
|
||||
equals(HAVE_RUBY, "1") {
|
||||
MAIN_DEPENDS += drc lvs
|
||||
|
|
@ -94,7 +95,6 @@ equals(HAVE_RUBY, "1") {
|
|||
|
||||
plugins.depends += lay ant
|
||||
|
||||
laybasic.depends += rdb lym
|
||||
ant.depends += laybasic
|
||||
img.depends += laybasic
|
||||
edt.depends += laybasic
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#define HDR_layMacroEditorSetupPage
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "ui_MacroEditorSetupPage.h"
|
||||
|
||||
namespace lay
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include <QObject>
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#define HDR_laySearchReplaceConfigPage
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "laySearchReplaceDialog.h"
|
||||
|
||||
#include "ui_SearchReplaceConfigPage.h"
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include "layMainWindow.h"
|
||||
#include "layApplication.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "tlExceptions.h"
|
||||
#include "tlLog.h"
|
||||
#include "dbHershey.h"
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
|
||||
#include "gsiDecl.h"
|
||||
#include "layLayerProperties.h"
|
||||
#include "layLayoutView.h"
|
||||
|
||||
namespace gsi
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include <QApplication>
|
||||
#include <QMessageBox>
|
||||
#include <QHBoxLayout>
|
||||
#include <QFrame>
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "ui_BrowseInstancesConfigPage.h"
|
||||
|
||||
#include "layLayoutView.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "layBrowser.h"
|
||||
#include "layMarker.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "ui_BrowseShapesConfigPage.h"
|
||||
|
||||
#include "layLayoutView.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "layBrowser.h"
|
||||
#include "layMarker.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -30,8 +30,6 @@
|
|||
#include <vector>
|
||||
|
||||
#include "tlObject.h"
|
||||
#include "tlFileSystemWatcher.h"
|
||||
#include "layTechnology.h"
|
||||
#include "dbLayout.h"
|
||||
#include "dbMetaInfo.h"
|
||||
#include "dbReader.h"
|
||||
|
|
@ -40,6 +38,11 @@
|
|||
#include "dbInstElement.h"
|
||||
#include "gsi.h"
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
# include "layTechnology.h"
|
||||
# include "tlFileSystemWatcher.h"
|
||||
#endif
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
|
|
@ -287,10 +290,12 @@ public:
|
|||
*/
|
||||
void layout_changed ();
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Gets the file system watcher that delivers events when one of the layouts gets updated
|
||||
*/
|
||||
static tl::FileSystemWatcher &file_watcher ();
|
||||
#endif
|
||||
|
||||
private:
|
||||
db::Layout *mp_layout;
|
||||
|
|
@ -305,7 +310,9 @@ private:
|
|||
void on_technology_changed ();
|
||||
|
||||
static std::map <std::string, LayoutHandle *> ms_dict;
|
||||
#if defined(HAVE_QT)
|
||||
static tl::FileSystemWatcher *mp_file_watcher;
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,119 @@
|
|||
|
||||
/*
|
||||
|
||||
KLayout Layout Viewer
|
||||
Copyright (C) 2006-2022 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
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "layColor.h"
|
||||
#include "tlString.h"
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
Color::Color ()
|
||||
: m_color (0)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
Color::Color (color_t color)
|
||||
: m_color (color | 0xff000000)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
Color::Color (unsigned int r, unsigned int g, unsigned int b, unsigned int alpha)
|
||||
: m_color ((b & 0xff) | ((g & 0xff) << 8) | ((r & 0xff) << 16) | ((alpha & 0xff) << 24))
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
Color::Color (const std::string &name)
|
||||
{
|
||||
m_color = 0;
|
||||
|
||||
tl::Extractor ex (name.c_str ());
|
||||
|
||||
unsigned int n = 0;
|
||||
|
||||
ex.test ("#");
|
||||
while (! ex.at_end ()) {
|
||||
char c = tolower (*ex.get ());
|
||||
if (c >= '0' && c <= '9') {
|
||||
m_color <<= 4;
|
||||
m_color |= (c - '0');
|
||||
++n;
|
||||
} else if (c >= 'a' && c <= 'f') {
|
||||
m_color <<= 4;
|
||||
m_color |= (c - 'a') + 10;
|
||||
++n;
|
||||
}
|
||||
++ex;
|
||||
}
|
||||
|
||||
if (n == 0) {
|
||||
m_color = 0;
|
||||
} else if (n <= 3) {
|
||||
m_color = ((m_color & 0xf) * 0x11) | ((m_color & 0xf0) * 0x110) | ((m_color & 0xf00) * 0x1100) | 0xff000000;
|
||||
} else if (n <= 4) {
|
||||
m_color = ((m_color & 0xf) * 0x11) | ((m_color & 0xf0) * 0x110) | ((m_color & 0xf00) * 0x1100) | ((m_color & 0xf000) * 0x11000);
|
||||
} else if (n <= 6) {
|
||||
m_color |= 0xff000000;
|
||||
}
|
||||
}
|
||||
|
||||
std::string
|
||||
Color::to_string () const
|
||||
{
|
||||
if (! is_valid ()) {
|
||||
|
||||
return std::string ();
|
||||
|
||||
} else {
|
||||
|
||||
unsigned int n = 8;
|
||||
if ((m_color & 0xff000000) == 0xff000000) {
|
||||
n = 6;
|
||||
}
|
||||
|
||||
uint32_t c = m_color;
|
||||
char s [10];
|
||||
s[n + 1] = 0;
|
||||
s[0] = '#';
|
||||
while (n > 0) {
|
||||
s [n] = "0123456789abcdef" [c & 0xf];
|
||||
c >>= 4;
|
||||
--n;
|
||||
}
|
||||
|
||||
return std::string (s);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
Color::is_valid () const
|
||||
{
|
||||
return (m_color & 0xff000000) != 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
|
||||
/*
|
||||
|
||||
KLayout Layout Viewer
|
||||
Copyright (C) 2006-2022 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_layColor
|
||||
#define HDR_layColor
|
||||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string>
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief The basic color type for a RGB triplet
|
||||
*/
|
||||
typedef uint32_t color_t;
|
||||
|
||||
/**
|
||||
* @brief A wrapper for a color value
|
||||
*
|
||||
* This class is a replacement for QColor. It offers invalid color values and
|
||||
* string conversion.
|
||||
*/
|
||||
class LAYBASIC_PUBLIC Color
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @brief Default constructor - creates an invalid color
|
||||
*/
|
||||
Color ();
|
||||
|
||||
/**
|
||||
* @brief Creates a color from a RGB triplet
|
||||
*/
|
||||
Color (color_t color);
|
||||
|
||||
/**
|
||||
* @brief Creates a color from a RGB triplet and alpha value
|
||||
*
|
||||
* An alpha value of 0 generates an invalid color.
|
||||
*/
|
||||
Color (unsigned int r, unsigned int g, unsigned int b, unsigned int alpha = 0xff);
|
||||
|
||||
/**
|
||||
* @brief Creates a color value from a string
|
||||
*/
|
||||
Color (const std::string &name);
|
||||
|
||||
/**
|
||||
* @brief Gets the string value from a color
|
||||
*/
|
||||
std::string to_string () const;
|
||||
|
||||
/**
|
||||
* @brief Gets a value indicating whether the color is valid
|
||||
*/
|
||||
bool is_valid () const;
|
||||
|
||||
/**
|
||||
* @brief Gets the RGB triplet
|
||||
*/
|
||||
color_t rgb () const
|
||||
{
|
||||
return m_color;
|
||||
}
|
||||
|
||||
private:
|
||||
color_t m_color;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -232,16 +232,16 @@ ColorPalette::from_string (const std::string &s, bool simple)
|
|||
}
|
||||
|
||||
if (! x.at_end ()) {
|
||||
throw tl::Exception (tl::sprintf (tl::to_string (QObject::tr ("unexpected characters: %s")), x.skip ()));
|
||||
throw tl::Exception (tl::sprintf (tl::to_string (tr ("unexpected characters: %s")), x.skip ()));
|
||||
}
|
||||
|
||||
if (! simple && (colors () == 0 || luminous_colors () == 0)) {
|
||||
throw tl::Exception (tl::to_string (QObject::tr ("invalid palette - no colors and/or default colors")));
|
||||
throw tl::Exception (tl::to_string (tr ("invalid palette - no colors and/or default colors")));
|
||||
}
|
||||
|
||||
} catch (std::exception &ex) {
|
||||
// reformat error message
|
||||
throw tl::Exception (tl::sprintf (tl::to_string (QObject::tr ("Color palette string format error: %s")), ex.what ()));
|
||||
throw tl::Exception (tl::sprintf (tl::to_string (tr ("Color palette string format error: %s")), ex.what ()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "ui_ConfigurationDialog.h"
|
||||
#include "layConfigurationDialog.h"
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "layDispatcher.h"
|
||||
|
||||
#include "tlLog.h"
|
||||
|
|
|
|||
|
|
@ -36,7 +36,9 @@ static Dispatcher *ms_dispatcher_instance = 0;
|
|||
|
||||
Dispatcher::Dispatcher (Plugin *parent, bool standalone)
|
||||
: Plugin (parent, standalone),
|
||||
#if defined(HAVE_QT)
|
||||
mp_menu_parent_widget (0),
|
||||
#endif
|
||||
mp_delegate (0)
|
||||
{
|
||||
if (! parent && ! ms_dispatcher_instance) {
|
||||
|
|
@ -44,6 +46,7 @@ Dispatcher::Dispatcher (Plugin *parent, bool standalone)
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
Dispatcher::Dispatcher (QWidget *menu_parent_widget, Plugin *parent, bool standalone)
|
||||
: Plugin (parent, standalone),
|
||||
mp_menu_parent_widget (menu_parent_widget),
|
||||
|
|
@ -56,10 +59,13 @@ Dispatcher::Dispatcher (QWidget *menu_parent_widget, Plugin *parent, bool standa
|
|||
ms_dispatcher_instance = this;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Dispatcher::Dispatcher (DispatcherDelegate *delegate, Plugin *parent, bool standalone)
|
||||
: Plugin (parent, standalone),
|
||||
#if defined(HAVE_QT)
|
||||
mp_menu_parent_widget (0),
|
||||
#endif
|
||||
mp_delegate (delegate)
|
||||
{
|
||||
if (! parent && ! ms_dispatcher_instance) {
|
||||
|
|
@ -67,6 +73,7 @@ Dispatcher::Dispatcher (DispatcherDelegate *delegate, Plugin *parent, bool stand
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
Dispatcher::Dispatcher (QWidget *menu_parent_widget, DispatcherDelegate *delegate, Plugin *parent, bool standalone)
|
||||
: Plugin (parent, standalone),
|
||||
mp_menu_parent_widget (menu_parent_widget),
|
||||
|
|
@ -79,6 +86,7 @@ Dispatcher::Dispatcher (QWidget *menu_parent_widget, DispatcherDelegate *delegat
|
|||
ms_dispatcher_instance = this;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Dispatcher::~Dispatcher ()
|
||||
{
|
||||
|
|
@ -90,12 +98,14 @@ Dispatcher::~Dispatcher ()
|
|||
bool
|
||||
Dispatcher::configure (const std::string &name, const std::string &value)
|
||||
{
|
||||
#if defined(HAVE_QT)
|
||||
if (mp_menu) {
|
||||
std::vector<lay::ConfigureAction *> ca = mp_menu->configure_actions (name);
|
||||
for (std::vector<lay::ConfigureAction *>::const_iterator a = ca.begin (); a != ca.end (); ++a) {
|
||||
(*a)->configure (value);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (mp_delegate) {
|
||||
return mp_delegate->configure (name, value);
|
||||
|
|
@ -264,7 +274,7 @@ Dispatcher::read_config (const std::string &config_file)
|
|||
try {
|
||||
config_structure (this).parse (*file, *this);
|
||||
} catch (tl::Exception &ex) {
|
||||
std::string msg = tl::to_string (QObject::tr ("Problem reading config file ")) + config_file + ": " + ex.msg ();
|
||||
std::string msg = tl::to_string (tr ("Problem reading config file ")) + config_file + ": " + ex.msg ();
|
||||
throw tl::Exception (msg);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
class QWidget;
|
||||
#endif
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
|
|
@ -117,6 +121,7 @@ public:
|
|||
*/
|
||||
Dispatcher (Plugin *parent = 0, bool standalone = false);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief The constructor
|
||||
*
|
||||
|
|
@ -125,6 +130,7 @@ public:
|
|||
* @param standalone The standalone flag passed to the plugin constructor.
|
||||
*/
|
||||
Dispatcher (QWidget *menu_parent_widget, Plugin *parent = 0, bool standalone = false);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief The root constructor
|
||||
|
|
@ -133,6 +139,7 @@ public:
|
|||
*/
|
||||
Dispatcher (DispatcherDelegate *delegate, Plugin *parent = 0, bool standalone = false);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief The root constructor
|
||||
*
|
||||
|
|
@ -140,6 +147,7 @@ public:
|
|||
* @param delegate The notification receiver for dispatcher events
|
||||
*/
|
||||
Dispatcher (QWidget *menu_parent_widget, DispatcherDelegate *delegate, Plugin *parent = 0, bool standalone = false);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Destructor
|
||||
|
|
@ -216,6 +224,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Gets the parent widget
|
||||
*/
|
||||
|
|
@ -238,6 +247,14 @@ public:
|
|||
{
|
||||
return (dispatcher () == this) ? mp_menu.get () : dispatcher ()->menu ();
|
||||
}
|
||||
#else
|
||||
|
||||
/**
|
||||
* @brief Returns true, if the dispatcher supplies a user interface
|
||||
*/
|
||||
bool has_ui () { return false; }
|
||||
|
||||
#endif
|
||||
|
||||
protected:
|
||||
// capture the configuration events so we can change the value of the configuration actions
|
||||
|
|
@ -248,8 +265,10 @@ private:
|
|||
Dispatcher (const Dispatcher &);
|
||||
Dispatcher &operator= (const Dispatcher &);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
std::unique_ptr<lay::AbstractMenu> mp_menu;
|
||||
QWidget *mp_menu_parent_widget;
|
||||
#endif
|
||||
DispatcherDelegate *mp_delegate;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ DisplayState::cellview (unsigned int index, lay::LayoutHandle *layout_h) const
|
|||
cell_path.push_back (pci.second);
|
||||
valid_path = true;
|
||||
} else {
|
||||
tl::warn << tl::to_string (QObject::tr ("Cellname cannot be reconstructed: ")) << *cn;
|
||||
tl::warn << tl::to_string (tr ("Cellname cannot be reconstructed: ")) << *cn;
|
||||
valid_path = false;
|
||||
break;
|
||||
}
|
||||
|
|
@ -215,8 +215,8 @@ DisplayState::cellview (unsigned int index, lay::LayoutHandle *layout_h) const
|
|||
pc = &layout_h->layout ().cell (ie.second.inst_ptr.cell_index ());
|
||||
valid_path = true;
|
||||
} else {
|
||||
tl::warn << tl::to_string (QObject::tr ("Specific instance cannot be reconstructed: instantiated cell is ")) << ci->cell_name
|
||||
<< tl::to_string (QObject::tr (", parent cell is ")) << layout_h->layout ().cell_name (pc->cell_index ());
|
||||
tl::warn << tl::to_string (tr ("Specific instance cannot be reconstructed: instantiated cell is ")) << ci->cell_name
|
||||
<< tl::to_string (tr (", parent cell is ")) << layout_h->layout ().cell_name (pc->cell_index ());
|
||||
valid_path = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "tlAssert.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <algorithm>
|
||||
|
||||
namespace lay
|
||||
|
|
@ -555,6 +556,8 @@ DitherPatternInfo::operator< (const DitherPatternInfo &d) const
|
|||
return m_order_index < d.m_order_index;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
|
||||
// TODO including a scaling algorithm in this formula, or give more resolution to the dither
|
||||
QBitmap
|
||||
DitherPatternInfo::get_bitmap (int width, int height) const
|
||||
|
|
@ -593,6 +596,8 @@ DitherPatternInfo::get_bitmap (int width, int height) const
|
|||
return bitmap;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
DitherPatternInfo::set_pattern (const uint32_t *pt, unsigned int w, unsigned int h)
|
||||
{
|
||||
|
|
@ -771,8 +776,11 @@ struct ReplaceDitherPatternOp
|
|||
DitherPatternInfo m_old, m_new;
|
||||
};
|
||||
|
||||
DitherPattern::DitherPattern ()
|
||||
: QObject (), db::Object (0)
|
||||
DitherPattern::DitherPattern () :
|
||||
#if defined(HAVE_QT)
|
||||
QObject (),
|
||||
#endif
|
||||
db::Object (0)
|
||||
{
|
||||
for (unsigned int d = 0; d < sizeof (dither_strings) / sizeof (dither_strings [0]); d += 2) {
|
||||
m_pattern.push_back (DitherPatternInfo ());
|
||||
|
|
@ -786,8 +794,11 @@ DitherPattern::~DitherPattern ()
|
|||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
DitherPattern::DitherPattern (const DitherPattern &p)
|
||||
: QObject (), db::Object (0)
|
||||
DitherPattern::DitherPattern (const DitherPattern &p) :
|
||||
#if defined(HAVE_QT)
|
||||
QObject (),
|
||||
#endif
|
||||
db::Object (0)
|
||||
{
|
||||
m_pattern = p.m_pattern;
|
||||
}
|
||||
|
|
@ -807,6 +818,7 @@ DitherPattern::operator= (const DitherPattern &p)
|
|||
return *this;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
QBitmap
|
||||
DitherPattern::get_bitmap (unsigned int i, int width, int height) const
|
||||
{
|
||||
|
|
@ -816,6 +828,7 @@ DitherPattern::get_bitmap (unsigned int i, int width, int height) const
|
|||
return m_pattern [1].get_bitmap (width, height);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
const DitherPatternInfo &
|
||||
DitherPattern::pattern (unsigned int i) const
|
||||
|
|
@ -848,7 +861,9 @@ DitherPattern::replace_pattern (unsigned int i, const DitherPatternInfo &p)
|
|||
|
||||
// if something has changed emit the signal
|
||||
if (chg) {
|
||||
#if defined(HAVE_QT)
|
||||
emit changed ();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,10 @@
|
|||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QBitmap>
|
||||
#if defined(HAVE_QT)
|
||||
# include <QObject>
|
||||
# include <QBitmap>
|
||||
#endif
|
||||
|
||||
#include "dbObject.h"
|
||||
|
||||
|
|
@ -126,6 +128,7 @@ public:
|
|||
m_order_index = oi;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Get a monochrome bitmap object for this pattern
|
||||
*
|
||||
|
|
@ -133,6 +136,7 @@ public:
|
|||
* @param height The desired height (-1 for default)
|
||||
*/
|
||||
QBitmap get_bitmap (int width = -1, int height = -1) const;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Gets the the dither pattern
|
||||
|
|
@ -225,10 +229,15 @@ private:
|
|||
* replaced with a new pattern, except for the first pattern which
|
||||
* cannot be changed.
|
||||
*/
|
||||
class LAYBASIC_PUBLIC DitherPattern
|
||||
: public QObject, public db::Object
|
||||
class LAYBASIC_PUBLIC DitherPattern :
|
||||
#if defined(HAVE_QT)
|
||||
public QObject,
|
||||
#endif
|
||||
public db::Object
|
||||
{
|
||||
#if defined(HAVE_QT)
|
||||
Q_OBJECT
|
||||
#endif
|
||||
|
||||
public:
|
||||
typedef std::vector<DitherPatternInfo> pattern_vector;
|
||||
|
|
@ -272,8 +281,9 @@ public:
|
|||
return m_pattern != p.m_pattern;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Get a monochrome bitmap object for this pattern
|
||||
* @brief Gets a monochrome bitmap object for this pattern
|
||||
*
|
||||
* If the index is not valid, an empty bitmap is returned.
|
||||
*
|
||||
|
|
@ -282,6 +292,7 @@ public:
|
|||
* @param height The desired height (-1 for default)
|
||||
*/
|
||||
QBitmap get_bitmap (unsigned int i, int width = -1, int height = -1) const;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Deliver the pattern with the given index
|
||||
|
|
@ -373,12 +384,14 @@ public:
|
|||
*/
|
||||
static const DitherPattern &default_pattern ();
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
signals:
|
||||
/**
|
||||
* @brief This signal is emitted if a pattern is changed
|
||||
*/
|
||||
void changed ();
|
||||
|
||||
#endif
|
||||
|
||||
private:
|
||||
std::vector<DitherPatternInfo> m_pattern;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@
|
|||
#include "layViewOp.h"
|
||||
#include "dbTrans.h"
|
||||
|
||||
#include <QColor>
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,9 @@
|
|||
#include "dbClipboard.h"
|
||||
#include "tlAssert.h"
|
||||
|
||||
#include "layPropertiesDialog.h"
|
||||
#if defined(HAVE_QT)
|
||||
# include "layPropertiesDialog.h"
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
|
|
@ -72,25 +74,29 @@ Editable::~Editable ()
|
|||
// Editables implementation
|
||||
|
||||
Editables::Editables (db::Manager *manager)
|
||||
: db::Object (manager), mp_properties_dialog (0), m_move_selection (false), m_any_move_operation (false)
|
||||
: db::Object (manager), m_move_selection (false), m_any_move_operation (false)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
#if defined(HAVE_QT)
|
||||
mp_properties_dialog = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
Editables::~Editables ()
|
||||
{
|
||||
cancel_edits ();
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
if (mp_properties_dialog) {
|
||||
delete mp_properties_dialog;
|
||||
mp_properties_dialog = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
Editables::del (db::Transaction *transaction)
|
||||
{
|
||||
std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (QObject::tr ("Delete"))));
|
||||
std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (tr ("Delete"))));
|
||||
|
||||
if (has_selection ()) {
|
||||
|
||||
|
|
@ -169,9 +175,9 @@ Editables::selection_catch_bbox ()
|
|||
}
|
||||
|
||||
void
|
||||
Editables::transform (const db::DCplxTrans &tr, db::Transaction *transaction)
|
||||
Editables::transform (const db::DCplxTrans &t, db::Transaction *transaction)
|
||||
{
|
||||
std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (QObject::tr ("Transform"))));
|
||||
std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (tr ("Transform"))));
|
||||
|
||||
if (has_selection ()) {
|
||||
|
||||
|
|
@ -183,7 +189,7 @@ Editables::transform (const db::DCplxTrans &tr, db::Transaction *transaction)
|
|||
manager ()->queue (this, new db::Op ());
|
||||
|
||||
for (iterator e = begin (); e != end (); ++e) {
|
||||
e->transform (tr);
|
||||
e->transform (t);
|
||||
}
|
||||
|
||||
} catch (...) {
|
||||
|
|
@ -597,7 +603,7 @@ Editables::move_transform (const db::DPoint &p, db::DFTrans t, lay::angle_constr
|
|||
void
|
||||
Editables::end_move (const db::DPoint &p, lay::angle_constraint_type ac, db::Transaction *transaction)
|
||||
{
|
||||
std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (QObject::tr ("Move"))));
|
||||
std::unique_ptr<db::Transaction> trans_holder (transaction ? transaction : new db::Transaction (manager (), tl::to_string (tr ("Move"))));
|
||||
|
||||
if (m_any_move_operation) {
|
||||
|
||||
|
|
@ -660,10 +666,12 @@ Editables::edit_cancel ()
|
|||
void
|
||||
Editables::cancel_edits ()
|
||||
{
|
||||
#if defined(HAVE_QT)
|
||||
// close the property dialog
|
||||
if (mp_properties_dialog) {
|
||||
mp_properties_dialog->hide ();
|
||||
}
|
||||
#endif
|
||||
|
||||
// cancel any edit operations
|
||||
for (iterator e = begin (); e != end (); ++e) {
|
||||
|
|
@ -671,6 +679,7 @@ Editables::cancel_edits ()
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
void
|
||||
Editables::show_properties (QWidget *parent)
|
||||
{
|
||||
|
|
@ -686,6 +695,7 @@ Editables::show_properties (QWidget *parent)
|
|||
mp_properties_dialog = new lay::PropertiesDialog (parent, manager (), this);
|
||||
mp_properties_dialog->show ();
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,14 +37,18 @@
|
|||
#include <set>
|
||||
#include <limits>
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
class QWidget;
|
||||
#endif
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
class Editables;
|
||||
#if defined(HAVE_QT)
|
||||
class PropertiesPage;
|
||||
class PropertiesDialog;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief The "editable" interface
|
||||
|
|
@ -353,6 +357,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Create a "properties page" object
|
||||
*
|
||||
|
|
@ -368,6 +373,7 @@ public:
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Destruction callback by the properties page
|
||||
|
|
@ -584,10 +590,12 @@ public:
|
|||
return m_editables.end ();
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief The "show properties" operation
|
||||
*/
|
||||
void show_properties (QWidget *parent);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief An event triggered if the selection changed
|
||||
|
|
@ -643,7 +651,9 @@ private:
|
|||
|
||||
tl::shared_collection<lay::Editable> m_editables;
|
||||
std::set<lay::Editable *> m_enabled;
|
||||
#if defined(HAVE_QT)
|
||||
lay::PropertiesDialog *mp_properties_dialog;
|
||||
#endif
|
||||
bool m_move_selection;
|
||||
bool m_any_move_operation;
|
||||
db::DBox m_last_selected_point;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include "layViewObject.h"
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "dbTypes.h"
|
||||
#include "dbBox.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#define HDR_layLayoutViewConfigPages
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "layColorPalette.h"
|
||||
#include "layStipplePalette.h"
|
||||
#include "layLineStylePalette.h"
|
||||
|
|
|
|||
|
|
@ -27,8 +27,10 @@
|
|||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QBitmap>
|
||||
#if defined(HAVE_QT)
|
||||
# include <QObject>
|
||||
# include <QBitmap>
|
||||
#endif
|
||||
|
||||
#include "dbObject.h"
|
||||
|
||||
|
|
@ -141,6 +143,7 @@ public:
|
|||
return m_pattern;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Get a monochrome bitmap object for this pattern
|
||||
*
|
||||
|
|
@ -148,6 +151,7 @@ public:
|
|||
* @param height The desired height (-1 for default)
|
||||
*/
|
||||
QBitmap get_bitmap (int width = -1, int height = -1) const;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Replaces the pattern string
|
||||
|
|
@ -215,10 +219,15 @@ private:
|
|||
* replaced with a new pattern, except for the first styles which
|
||||
* cannot be changed.
|
||||
*/
|
||||
class LAYBASIC_PUBLIC LineStyles
|
||||
: public QObject, public db::Object
|
||||
class LAYBASIC_PUBLIC LineStyles :
|
||||
#if defined(HAVE_QT)
|
||||
public QObject,
|
||||
#endif
|
||||
public db::Object
|
||||
{
|
||||
#if defined(HAVE_QT)
|
||||
Q_OBJECT
|
||||
#endif
|
||||
|
||||
public:
|
||||
typedef std::vector<LineStyleInfo> pattern_vector;
|
||||
|
|
@ -352,12 +361,14 @@ public:
|
|||
*/
|
||||
static const LineStyles &default_style ();
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
signals:
|
||||
/**
|
||||
* @brief This signal is emitted if a style is changed
|
||||
*/
|
||||
void changed ();
|
||||
|
||||
#endif
|
||||
|
||||
private:
|
||||
std::vector<LineStyleInfo> m_styles;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#define HDR_layNetlistBrowser
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "layColorPalette.h"
|
||||
#include "ui_NetlistBrowserConfigPage.h"
|
||||
#include "ui_NetlistBrowserConfigPage2.h"
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@
|
|||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#include <QFrame>
|
||||
|
||||
#include "tlString.h"
|
||||
#include "tlClassRegistry.h"
|
||||
#include "tlDeferredExecution.h"
|
||||
#include "gsiObject.h"
|
||||
#include "layAbstractMenu.h"
|
||||
#if defined(HAVE_QT)
|
||||
# include "layAbstractMenu.h"
|
||||
#endif
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
|
@ -49,53 +49,15 @@ namespace lay
|
|||
class Plugin;
|
||||
class Dispatcher;
|
||||
class LayoutView;
|
||||
class Browser;
|
||||
class ViewService;
|
||||
class Editable;
|
||||
class Drawing;
|
||||
class TechnologyComponentProvider;
|
||||
#if defined(HAVE_QT)
|
||||
class Browser;
|
||||
class EditorOptionsPage;
|
||||
|
||||
/**
|
||||
* @brief The base class for configuration pages
|
||||
*
|
||||
* This interface defines some services the configuration page
|
||||
* must provide (i.e. setup, commit)
|
||||
*/
|
||||
class LAYBASIC_PUBLIC ConfigPage
|
||||
: public QFrame
|
||||
{
|
||||
public:
|
||||
ConfigPage (QWidget *parent)
|
||||
: QFrame (parent)
|
||||
{
|
||||
// .. nothing else ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Load the page
|
||||
*
|
||||
* The implementation is supposed to fetch the configuration from the
|
||||
* Plugin object provided and load the widgets accordingly.
|
||||
*/
|
||||
virtual void setup (Dispatcher * /*root*/)
|
||||
{
|
||||
// the default implementation does nothing.
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Commit the page
|
||||
*
|
||||
* The implementation is supposed to read the configuration (and
|
||||
* throw exceptions if the configuration something is invalid)
|
||||
* and commit the changes through
|
||||
*/
|
||||
virtual void commit (Dispatcher * /*root*/)
|
||||
{
|
||||
// the default implementation does nothing.
|
||||
}
|
||||
|
||||
};
|
||||
class ConfigPage;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief A menu entry declaration
|
||||
|
|
@ -184,11 +146,15 @@ LAYBASIC_PUBLIC MenuEntry config_menu_item (const std::string &menu_name, const
|
|||
* mechanism (instantiate a tl::Registrar<tl::Plugin>::Class<Y>
|
||||
* object).
|
||||
*/
|
||||
class LAYBASIC_PUBLIC PluginDeclaration
|
||||
: public QObject,
|
||||
class LAYBASIC_PUBLIC PluginDeclaration :
|
||||
#if defined(HAVE_QT)
|
||||
public QObject,
|
||||
#endif
|
||||
public gsi::ObjectBase
|
||||
{
|
||||
Q_OBJECT
|
||||
#if defined(HAVE_QT)
|
||||
Q_OBJECT
|
||||
#endif
|
||||
|
||||
public:
|
||||
/**
|
||||
|
|
@ -211,6 +177,7 @@ public:
|
|||
// the default implementation does not add any options
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Fetch the configuration page for the configuration dialog
|
||||
*
|
||||
|
|
@ -222,7 +189,7 @@ public:
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Fetch the configuration pages for the configuration dialog
|
||||
*
|
||||
|
|
@ -235,6 +202,7 @@ public:
|
|||
{
|
||||
return std::vector<std::pair <std::string, ConfigPage *> > ();
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief The global configuration
|
||||
|
|
@ -352,6 +320,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Gets the editor options pages
|
||||
*
|
||||
|
|
@ -364,6 +333,7 @@ public:
|
|||
{
|
||||
// .. no pages in the default implementation ..
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Tells if the plugin implements a "lay::ViewService" active mouse mode
|
||||
|
|
@ -483,14 +453,18 @@ public:
|
|||
*/
|
||||
tl::Event editable_enabled_changed_event;
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
private slots:
|
||||
void toggle_editable_enabled ();
|
||||
#endif
|
||||
|
||||
private:
|
||||
int m_id;
|
||||
#if defined(HAVE_QT)
|
||||
tl::weak_ptr<lay::Action> mp_editable_mode_action;
|
||||
tl::weak_ptr<lay::Action> mp_mouse_mode_action;
|
||||
tl::weak_collection<lay::Action> m_menu_actions;
|
||||
#endif
|
||||
bool m_editable_enabled;
|
||||
};
|
||||
|
||||
|
|
@ -730,6 +704,7 @@ public:
|
|||
// .. this implementation does nothing ..
|
||||
}
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief Return the lay::Browser interface if this object has one
|
||||
*
|
||||
|
|
@ -740,6 +715,7 @@ public:
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Return the lay::ViewService interface if this object has one
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
/*
|
||||
|
||||
KLayout Layout Viewer
|
||||
Copyright (C) 2006-2022 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
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#include "layPluginConfigPage.h"
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
// .. nothing yet ..
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
/*
|
||||
|
||||
KLayout Layout Viewer
|
||||
Copyright (C) 2006-2022 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_layPluginConfigPage
|
||||
#define HDR_layPluginConfigPage
|
||||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#include <QFrame>
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
class Dispatcher;
|
||||
class EditorOptionsPage;
|
||||
|
||||
/**
|
||||
* @brief The base class for configuration pages
|
||||
*
|
||||
* This interface defines some services the configuration page
|
||||
* must provide (i.e. setup, commit)
|
||||
*/
|
||||
class LAYBASIC_PUBLIC ConfigPage
|
||||
: public QFrame
|
||||
{
|
||||
public:
|
||||
ConfigPage (QWidget *parent)
|
||||
: QFrame (parent)
|
||||
{
|
||||
// .. nothing else ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Load the page
|
||||
*
|
||||
* The implementation is supposed to fetch the configuration from the
|
||||
* Plugin object provided and load the widgets accordingly.
|
||||
*/
|
||||
virtual void setup (Dispatcher * /*root*/)
|
||||
{
|
||||
// the default implementation does nothing.
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Commit the page
|
||||
*
|
||||
* The implementation is supposed to read the configuration (and
|
||||
* throw exceptions if the configuration something is invalid)
|
||||
* and commit the changes through
|
||||
*/
|
||||
virtual void commit (Dispatcher * /*root*/)
|
||||
{
|
||||
// the default implementation does nothing.
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
|
@ -27,7 +27,9 @@
|
|||
|
||||
#include "laybasicCommon.h"
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
#include <QPoint>
|
||||
#endif
|
||||
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
|
@ -244,6 +246,7 @@ namespace lay
|
|||
*/
|
||||
LAYBASIC_PUBLIC int draw_round (double x);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
/**
|
||||
* @brief rounding (and height-transformation) of a double point
|
||||
*/
|
||||
|
|
@ -253,6 +256,7 @@ namespace lay
|
|||
* @brief rounding (and height-transformation) of a two-point vector
|
||||
*/
|
||||
LAYBASIC_PUBLIC std::pair<QPoint, QPoint> draw_round (const db::DPoint &p1, const db::DPoint &p2, int h);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief rounding (and height-transformation) of a two-point vector
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@
|
|||
#include "tlXMLWriter.h"
|
||||
#include "dbLoadLayoutOptions.h"
|
||||
|
||||
#include <QFrame>
|
||||
|
||||
namespace db
|
||||
{
|
||||
class StreamFormatDeclaration;
|
||||
|
|
|
|||
|
|
@ -26,14 +26,13 @@
|
|||
#define HDR_layViewOp
|
||||
|
||||
#include "laybasicCommon.h"
|
||||
#include "layColor.h"
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
namespace lay
|
||||
{
|
||||
|
||||
typedef unsigned int color_t;
|
||||
|
||||
const unsigned int wordlen = 32;
|
||||
const unsigned int wordbits = 5;
|
||||
const unsigned int wordones = 0xffffffff;
|
||||
|
|
|
|||
|
|
@ -6,67 +6,69 @@ include($$PWD/../../lib.pri)
|
|||
|
||||
DEFINES += MAKE_LAYBASIC_LIBRARY
|
||||
|
||||
FORMS = \
|
||||
AlignCellOptionsDialog.ui \
|
||||
BookmarkManagementForm.ui \
|
||||
BrowseInstancesConfigPage.ui \
|
||||
BrowseInstancesForm.ui \
|
||||
BrowserDialog.ui \
|
||||
BrowserPanel.ui \
|
||||
BrowseShapesConfigPage.ui \
|
||||
BrowseShapesForm.ui \
|
||||
CellSelectionForm.ui \
|
||||
ClearLayerModeDialog.ui \
|
||||
ConfigurationDialog.ui \
|
||||
CopyCellModeDialog.ui \
|
||||
DeleteCellModeDialog.ui \
|
||||
DuplicateLayerDialog.ui \
|
||||
EditStipplesForm.ui \
|
||||
FlattenInstOptionsDialog.ui \
|
||||
GridNetConfigPage.ui \
|
||||
LayerMappingWidget.ui \
|
||||
LayerSourceDialog.ui \
|
||||
LayoutProperties.ui \
|
||||
LayoutViewConfigPage1.ui \
|
||||
LayoutViewConfigPage2a.ui \
|
||||
LayoutViewConfigPage2b.ui \
|
||||
LayoutViewConfigPage2c.ui \
|
||||
LayoutViewConfigPage2d.ui \
|
||||
LayoutViewConfigPage3a.ui \
|
||||
LayoutViewConfigPage3b.ui \
|
||||
LayoutViewConfigPage3c.ui \
|
||||
LayoutViewConfigPage3f.ui \
|
||||
LayoutViewConfigPage4.ui \
|
||||
LayoutViewConfigPage5.ui \
|
||||
LayoutViewConfigPage6.ui \
|
||||
LayoutViewConfigPage7.ui \
|
||||
LayoutViewConfigPage.ui \
|
||||
LibraryCellSelectionForm.ui \
|
||||
LoadLayoutOptionsDialog.ui \
|
||||
MarkerBrowserConfigPage2.ui \
|
||||
MarkerBrowserConfigPage.ui \
|
||||
MarkerBrowserDialog.ui \
|
||||
MarkerBrowserPage.ui \
|
||||
MarkerBrowserSnapshotView.ui \
|
||||
MoveOptionsDialog.ui \
|
||||
MoveToOptionsDialog.ui \
|
||||
NewCellPropertiesDialog.ui \
|
||||
NewLayerPropertiesDialog.ui \
|
||||
NewLayoutPropertiesDialog.ui \
|
||||
OpenLayoutModeDialog.ui \
|
||||
PropertiesDialog.ui \
|
||||
RenameCellDialog.ui \
|
||||
ReplaceCellOptionsDialog.ui \
|
||||
SaveLayoutOptionsDialog.ui \
|
||||
SaveLayoutAsOptionsDialog.ui \
|
||||
SelectStippleForm.ui \
|
||||
TipDialog.ui \
|
||||
UserPropertiesForm.ui \
|
||||
UserPropertiesEditForm.ui \
|
||||
SpecificLoadLayoutOptionsDialog.ui \
|
||||
SelectLineStyleForm.ui \
|
||||
LayoutViewConfigPage6a.ui \
|
||||
EditLineStylesForm.ui \
|
||||
!equals(HAVE_QT, "0") {
|
||||
|
||||
FORMS = \
|
||||
AlignCellOptionsDialog.ui \
|
||||
BookmarkManagementForm.ui \
|
||||
BrowseInstancesConfigPage.ui \
|
||||
BrowseInstancesForm.ui \
|
||||
BrowserDialog.ui \
|
||||
BrowserPanel.ui \
|
||||
BrowseShapesConfigPage.ui \
|
||||
BrowseShapesForm.ui \
|
||||
CellSelectionForm.ui \
|
||||
ClearLayerModeDialog.ui \
|
||||
ConfigurationDialog.ui \
|
||||
CopyCellModeDialog.ui \
|
||||
DeleteCellModeDialog.ui \
|
||||
DuplicateLayerDialog.ui \
|
||||
EditStipplesForm.ui \
|
||||
FlattenInstOptionsDialog.ui \
|
||||
GridNetConfigPage.ui \
|
||||
LayerMappingWidget.ui \
|
||||
LayerSourceDialog.ui \
|
||||
LayoutProperties.ui \
|
||||
LayoutViewConfigPage1.ui \
|
||||
LayoutViewConfigPage2a.ui \
|
||||
LayoutViewConfigPage2b.ui \
|
||||
LayoutViewConfigPage2c.ui \
|
||||
LayoutViewConfigPage2d.ui \
|
||||
LayoutViewConfigPage3a.ui \
|
||||
LayoutViewConfigPage3b.ui \
|
||||
LayoutViewConfigPage3c.ui \
|
||||
LayoutViewConfigPage3f.ui \
|
||||
LayoutViewConfigPage4.ui \
|
||||
LayoutViewConfigPage5.ui \
|
||||
LayoutViewConfigPage6.ui \
|
||||
LayoutViewConfigPage7.ui \
|
||||
LayoutViewConfigPage.ui \
|
||||
LibraryCellSelectionForm.ui \
|
||||
LoadLayoutOptionsDialog.ui \
|
||||
MarkerBrowserConfigPage2.ui \
|
||||
MarkerBrowserConfigPage.ui \
|
||||
MarkerBrowserDialog.ui \
|
||||
MarkerBrowserPage.ui \
|
||||
MarkerBrowserSnapshotView.ui \
|
||||
MoveOptionsDialog.ui \
|
||||
MoveToOptionsDialog.ui \
|
||||
NewCellPropertiesDialog.ui \
|
||||
NewLayerPropertiesDialog.ui \
|
||||
NewLayoutPropertiesDialog.ui \
|
||||
OpenLayoutModeDialog.ui \
|
||||
PropertiesDialog.ui \
|
||||
RenameCellDialog.ui \
|
||||
ReplaceCellOptionsDialog.ui \
|
||||
SaveLayoutOptionsDialog.ui \
|
||||
SaveLayoutAsOptionsDialog.ui \
|
||||
SelectStippleForm.ui \
|
||||
TipDialog.ui \
|
||||
UserPropertiesForm.ui \
|
||||
UserPropertiesEditForm.ui \
|
||||
SpecificLoadLayoutOptionsDialog.ui \
|
||||
SelectLineStyleForm.ui \
|
||||
LayoutViewConfigPage6a.ui \
|
||||
EditLineStylesForm.ui \
|
||||
NetlistBrowserPage.ui \
|
||||
NetlistBrowserConfigPage.ui \
|
||||
NetlistBrowserConfigPage2.ui \
|
||||
|
|
@ -74,231 +76,243 @@ FORMS = \
|
|||
NetInfoDialog.ui \
|
||||
NetExportDialog.ui \
|
||||
SelectCellViewForm.ui \
|
||||
LayoutStatistics.ui
|
||||
LayoutStatistics.ui \
|
||||
|
||||
RESOURCES = \
|
||||
RESOURCES = \
|
||||
laybasicResources.qrc \
|
||||
layLayoutStatistics.qrc
|
||||
layLayoutStatistics.qrc \
|
||||
|
||||
SOURCES = \
|
||||
gtf.cc \
|
||||
gsiDeclLayDialogs.cc \
|
||||
gsiDeclLayLayers.cc \
|
||||
gsiDeclLayLayoutView.cc \
|
||||
gsiDeclLayMarker.cc \
|
||||
gsiDeclLayMenu.cc \
|
||||
gsiDeclLayPlugin.cc \
|
||||
gsiDeclLayStream.cc \
|
||||
layAbstractMenu.cc \
|
||||
layAnnotationShapes.cc \
|
||||
layBitmap.cc \
|
||||
layBitmapRenderer.cc \
|
||||
layBitmapsToImage.cc \
|
||||
layBookmarkList.cc \
|
||||
layBookmarkManagementForm.cc \
|
||||
layBrowseInstancesForm.cc \
|
||||
layBrowser.cc \
|
||||
layBrowserDialog.cc \
|
||||
layBrowserPanel.cc \
|
||||
layBrowseShapesForm.cc \
|
||||
layBusy.cc \
|
||||
layCanvasPlane.cc \
|
||||
layCellSelectionForm.cc \
|
||||
layCellTreeModel.cc \
|
||||
layCellView.cc \
|
||||
layColorPalette.cc \
|
||||
layConfigurationDialog.cc \
|
||||
layConverters.cc \
|
||||
layCursor.cc \
|
||||
layDialogs.cc \
|
||||
layDisplayState.cc \
|
||||
layDitherPattern.cc \
|
||||
layDrawing.cc \
|
||||
layEditable.cc \
|
||||
layEditStipplesForm.cc \
|
||||
layEditStippleWidget.cc \
|
||||
layEditorOptionsFrame.cc \
|
||||
layEditorOptionsPage.cc \
|
||||
layEditorOptionsPages.cc \
|
||||
layEditorServiceBase.cc \
|
||||
layFileDialog.cc \
|
||||
layFinder.cc \
|
||||
layFixedFont.cc \
|
||||
layGridNet.cc \
|
||||
layHierarchyControlPanel.cc \
|
||||
layLayerControlPanel.cc \
|
||||
layLayerMappingWidget.cc \
|
||||
layLayerProperties.cc \
|
||||
layLayerToolbox.cc \
|
||||
layLayerTreeModel.cc \
|
||||
layLayoutCanvas.cc \
|
||||
layLayoutPropertiesForm.cc \
|
||||
layLayoutView.cc \
|
||||
layLayoutViewConfigPages.cc \
|
||||
layLoadLayoutOptionsDialog.cc \
|
||||
layMarker.cc \
|
||||
layMouseTracker.cc \
|
||||
layMove.cc \
|
||||
layObjectInstPath.cc \
|
||||
layParsedLayerSource.cc \
|
||||
layPlugin.cc \
|
||||
layProperties.cc \
|
||||
layPropertiesDialog.cc \
|
||||
layQtTools.cc \
|
||||
layRedrawLayerInfo.cc \
|
||||
layRedrawThreadCanvas.cc \
|
||||
layRedrawThread.cc \
|
||||
layRedrawThreadWorker.cc \
|
||||
layRenderer.cc \
|
||||
layRubberBox.cc \
|
||||
laySaveLayoutOptionsDialog.cc \
|
||||
laySelector.cc \
|
||||
laySelectStippleForm.cc \
|
||||
laySnap.cc \
|
||||
layStipplePalette.cc \
|
||||
layStream.cc \
|
||||
layTechnology.cc \
|
||||
layTipDialog.cc \
|
||||
layViewObject.cc \
|
||||
layViewOp.cc \
|
||||
layViewport.cc \
|
||||
layWidgets.cc \
|
||||
layZoomBox.cc \
|
||||
rdbInfoWidget.cc \
|
||||
rdbMarkerBrowser.cc \
|
||||
rdbMarkerBrowserDialog.cc \
|
||||
rdbMarkerBrowserPage.cc \
|
||||
layLineStyles.cc \
|
||||
laySelectLineStyleForm.cc \
|
||||
layLineStylePalette.cc \
|
||||
layEditLineStylesForm.cc \
|
||||
layEditLineStyleWidget.cc \
|
||||
layBackgroundAwareTreeStyle.cc \
|
||||
SOURCES = \
|
||||
gsiDeclLayDialogs.cc \
|
||||
gsiDeclLayLayoutView.cc \
|
||||
gsiDeclLayMarker.cc \
|
||||
gsiDeclLayMenu.cc \
|
||||
gsiDeclLayNetlistBrowserDialog.cc \
|
||||
gsiDeclLayPlugin.cc \
|
||||
gsiDeclLayStream.cc \
|
||||
gtf.cc \
|
||||
layAbstractMenu.cc \
|
||||
layBackgroundAwareTreeStyle.cc \
|
||||
layBitmapRenderer.cc \
|
||||
layBitmapsToImage.cc \
|
||||
layBookmarkList.cc \
|
||||
layBookmarkManagementForm.cc \
|
||||
layBookmarksView.cc \
|
||||
layBrowseInstancesForm.cc \
|
||||
layBrowseShapesForm.cc \
|
||||
layBrowser.cc \
|
||||
layBrowserDialog.cc \
|
||||
layBrowserPanel.cc \
|
||||
layBusy.cc \
|
||||
layCellSelectionForm.cc \
|
||||
layCellTreeModel.cc \
|
||||
layCellView.cc \
|
||||
layConfigurationDialog.cc \
|
||||
layConverters.cc \
|
||||
layCursor.cc \
|
||||
layDialogs.cc \
|
||||
layEditLineStyleWidget.cc \
|
||||
layEditLineStylesForm.cc \
|
||||
layEditStippleWidget.cc \
|
||||
layEditStipplesForm.cc \
|
||||
layEditorOptionsFrame.cc \
|
||||
layEditorOptionsPage.cc \
|
||||
layEditorOptionsPages.cc \
|
||||
layEditorServiceBase.cc \
|
||||
layFileDialog.cc \
|
||||
layGenericSyntaxHighlighter.cc \
|
||||
layGridNet.cc \
|
||||
layHierarchyControlPanel.cc \
|
||||
layIndexedNetlistModel.cc \
|
||||
layItemDelegates.cc \
|
||||
layLayerControlPanel.cc \
|
||||
layLayerMappingWidget.cc \
|
||||
layLayerToolbox.cc \
|
||||
layLayerTreeModel.cc \
|
||||
layLayoutCanvas.cc \
|
||||
layLayoutPropertiesForm.cc \
|
||||
layLayoutStatisticsForm.cc \
|
||||
layLayoutView.cc \
|
||||
layLayoutViewConfigPages.cc \
|
||||
layLayoutViewFunctions.cc \
|
||||
layLibrariesView.cc \
|
||||
layLoadLayoutOptionsDialog.cc \
|
||||
layNetExportDialog.cc \
|
||||
layNetInfoDialog.cc \
|
||||
layNetlistBrowser.cc \
|
||||
layNetlistBrowserDialog.cc \
|
||||
layNetlistBrowserPage.cc \
|
||||
layItemDelegates.cc \
|
||||
layNetInfoDialog.cc \
|
||||
layNetExportDialog.cc \
|
||||
layNetlistBrowserModel.cc \
|
||||
layIndexedNetlistModel.cc \
|
||||
layNetlistCrossReferenceModel.cc \
|
||||
layNetlistBrowserPage.cc \
|
||||
layNetlistBrowserTreeModel.cc \
|
||||
layLibrariesView.cc \
|
||||
layBookmarksView.cc \
|
||||
layGenericSyntaxHighlighter.cc \
|
||||
layDispatcher.cc \
|
||||
layNetlistCrossReferenceModel.cc \
|
||||
layPluginConfigPage.cc \
|
||||
layProperties.cc \
|
||||
layPropertiesDialog.cc \
|
||||
layQtTools.cc \
|
||||
laySaveLayoutOptionsDialog.cc \
|
||||
laySelectCellViewForm.cc \
|
||||
layLayoutStatisticsForm.cc \
|
||||
gsiDeclLayNetlistBrowserDialog.cc \
|
||||
layLayoutViewFunctions.cc
|
||||
laySelectLineStyleForm.cc \
|
||||
laySelectStippleForm.cc \
|
||||
laySelector.cc \
|
||||
layTechnology.cc \
|
||||
layTipDialog.cc \
|
||||
layWidgets.cc \
|
||||
layZoomBox.cc \
|
||||
rdbInfoWidget.cc \
|
||||
rdbMarkerBrowser.cc \
|
||||
rdbMarkerBrowserDialog.cc \
|
||||
rdbMarkerBrowserPage.cc \
|
||||
|
||||
HEADERS = \
|
||||
gtf.h \
|
||||
layAbstractMenu.h \
|
||||
layAnnotationShapes.h \
|
||||
layBitmap.h \
|
||||
layBitmapRenderer.h \
|
||||
layBitmapsToImage.h \
|
||||
layBookmarkList.h \
|
||||
layBookmarkManagementForm.h \
|
||||
layBrowseInstancesForm.h \
|
||||
layBrowserDialog.h \
|
||||
layBrowser.h \
|
||||
layBrowserPanel.h \
|
||||
layBrowseShapesForm.h \
|
||||
layBusy.h \
|
||||
layCanvasPlane.h \
|
||||
layCellSelectionForm.h \
|
||||
layCellTreeModel.h \
|
||||
layCellView.h \
|
||||
layColorPalette.h \
|
||||
layConfigurationDialog.h \
|
||||
layConverters.h \
|
||||
layCursor.h \
|
||||
layDialogs.h \
|
||||
layDisplayState.h \
|
||||
layDitherPattern.h \
|
||||
layDrawing.h \
|
||||
layEditable.h \
|
||||
layEditStipplesForm.h \
|
||||
layEditStippleWidget.h \
|
||||
layEditorOptionsFrame.h \
|
||||
layEditorOptionsPage.h \
|
||||
layEditorOptionsPages.h \
|
||||
layEditorServiceBase.h \
|
||||
layFileDialog.h \
|
||||
layFinder.h \
|
||||
layFixedFont.h \
|
||||
layGridNet.h \
|
||||
layHierarchyControlPanel.h \
|
||||
layLayerControlPanel.h \
|
||||
layLayerMappingWidget.h \
|
||||
layLayerProperties.h \
|
||||
layLayerToolbox.h \
|
||||
layLayerTreeModel.h \
|
||||
layLayoutCanvas.h \
|
||||
layLayoutPropertiesForm.h \
|
||||
layLayoutViewConfigPages.h \
|
||||
layLayoutView.h \
|
||||
layLoadLayoutOptionsDialog.h \
|
||||
layMarker.h \
|
||||
layMouseTracker.h \
|
||||
layMove.h \
|
||||
layObjectInstPath.h \
|
||||
layParsedLayerSource.h \
|
||||
layPlugin.h \
|
||||
layPropertiesDialog.h \
|
||||
layProperties.h \
|
||||
layQtTools.h \
|
||||
layRedrawLayerInfo.h \
|
||||
layRedrawThreadCanvas.h \
|
||||
layRedrawThread.h \
|
||||
layRedrawThreadWorker.h \
|
||||
layRenderer.h \
|
||||
layRubberBox.h \
|
||||
laySaveLayoutOptionsDialog.h \
|
||||
laySelector.h \
|
||||
laySelectStippleForm.h \
|
||||
laySnap.h \
|
||||
layStipplePalette.h \
|
||||
layStream.h \
|
||||
layTechnology.h \
|
||||
layTipDialog.h \
|
||||
layViewObject.h \
|
||||
layViewOp.h \
|
||||
layViewport.h \
|
||||
layWidgets.h \
|
||||
layZoomBox.h \
|
||||
rdbInfoWidget.h \
|
||||
rdbMarkerBrowserDialog.h \
|
||||
rdbMarkerBrowser.h \
|
||||
rdbMarkerBrowserPage.h \
|
||||
layLineStyles.h \
|
||||
laySelectLineStyleForm.h \
|
||||
layLineStylePalette.h \
|
||||
layEditLineStylesForm.h \
|
||||
layEditLineStyleWidget.h \
|
||||
laybasicCommon.h \
|
||||
laybasicConfig.h \
|
||||
layBackgroundAwareTreeStyle.h \
|
||||
HEADERS = \
|
||||
gtf.h \
|
||||
layAbstractMenu.h \
|
||||
layBackgroundAwareTreeStyle.h \
|
||||
layBitmap.h \
|
||||
layBitmapRenderer.h \
|
||||
layBitmapsToImage.h \
|
||||
layBookmarkList.h \
|
||||
layBookmarkManagementForm.h \
|
||||
layBookmarksView.h \
|
||||
layBrowseInstancesForm.h \
|
||||
layBrowseShapesForm.h \
|
||||
layBrowser.h \
|
||||
layBrowserDialog.h \
|
||||
layBrowserPanel.h \
|
||||
layBusy.h \
|
||||
layCellSelectionForm.h \
|
||||
layCellTreeModel.h \
|
||||
layCellView.h \
|
||||
layConfigurationDialog.h \
|
||||
layConverters.h \
|
||||
layColor.h \
|
||||
layCursor.h \
|
||||
layDialogs.h \
|
||||
layEditLineStyleWidget.h \
|
||||
layEditLineStylesForm.h \
|
||||
layEditStippleWidget.h \
|
||||
layEditStipplesForm.h \
|
||||
layEditorOptionsFrame.h \
|
||||
layEditorOptionsPage.h \
|
||||
layEditorOptionsPages.h \
|
||||
layEditorServiceBase.h \
|
||||
layFileDialog.h \
|
||||
layGenericSyntaxHighlighter.h \
|
||||
layGridNet.h \
|
||||
layHierarchyControlPanel.h \
|
||||
layIndexedNetlistModel.h \
|
||||
layItemDelegates.h \
|
||||
layLayerControlPanel.h \
|
||||
layLayerMappingWidget.h \
|
||||
layLayerToolbox.h \
|
||||
layLayerTreeModel.h \
|
||||
layLayoutCanvas.h \
|
||||
layLayoutPropertiesForm.h \
|
||||
layLayoutStatisticsForm.h \
|
||||
layLayoutView.h \
|
||||
layLayoutViewConfigPages.h \
|
||||
layLayoutViewFunctions.h \
|
||||
layLibrariesView.h \
|
||||
layLoadLayoutOptionsDialog.h \
|
||||
layNetExportDialog.h \
|
||||
layNetInfoDialog.h \
|
||||
layNetlistBrowser.h \
|
||||
layNetlistBrowserDialog.h \
|
||||
layNetlistBrowserPage.h \
|
||||
layItemDelegates.h \
|
||||
layNetInfoDialog.h \
|
||||
layNetExportDialog.h \
|
||||
layNetlistBrowserModel.h \
|
||||
layIndexedNetlistModel.h \
|
||||
layNetlistCrossReferenceModel.h \
|
||||
layNetlistBrowserPage.h \
|
||||
layNetlistBrowserTreeModel.h \
|
||||
layLibrariesView.h \
|
||||
layBookmarksView.h \
|
||||
layGenericSyntaxHighlighter.h \
|
||||
layDispatcher.h \
|
||||
layNetlistCrossReferenceModel.h \
|
||||
layPluginConfigPage.h \
|
||||
layProperties.h \
|
||||
layPropertiesDialog.h \
|
||||
layQtTools.h \
|
||||
laySaveLayoutOptionsDialog.h \
|
||||
laySelectCellViewForm.h \
|
||||
layLayoutStatisticsForm.h \
|
||||
layLayoutViewFunctions.h
|
||||
laySelectLineStyleForm.h \
|
||||
laySelectStippleForm.h \
|
||||
laySelector.h \
|
||||
layTechnology.h \
|
||||
layTipDialog.h \
|
||||
layWidgets.h \
|
||||
layZoomBox.h \
|
||||
laybasicConfig.h \
|
||||
rdbInfoWidget.h \
|
||||
rdbMarkerBrowser.h \
|
||||
rdbMarkerBrowserDialog.h \
|
||||
rdbMarkerBrowserPage.h \
|
||||
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
gsiDeclLayLayers.cc \
|
||||
layAnnotationShapes.cc \
|
||||
layBitmap.cc \
|
||||
layColor.cc \
|
||||
layColorPalette.cc \
|
||||
layDispatcher.cc \
|
||||
layDisplayState.cc \
|
||||
layDitherPattern.cc \
|
||||
layDrawing.cc \
|
||||
layEditable.cc \
|
||||
layFinder.cc \
|
||||
layFixedFont.cc \
|
||||
layLineStylePalette.cc \
|
||||
layLineStyles.cc \
|
||||
layMarker.cc \
|
||||
layMouseTracker.cc \
|
||||
layMove.cc \
|
||||
layObjectInstPath.cc \
|
||||
layParsedLayerSource.cc \
|
||||
layPlugin.cc \
|
||||
layRedrawLayerInfo.cc \
|
||||
layRedrawThread.cc \
|
||||
layRedrawThreadCanvas.cc \
|
||||
layRedrawThreadWorker.cc \
|
||||
layRenderer.cc \
|
||||
layRubberBox.cc \
|
||||
laySnap.cc \
|
||||
layStipplePalette.cc \
|
||||
layStream.cc \
|
||||
layCanvasPlane.cc \
|
||||
layLayerProperties.cc \
|
||||
layViewObject.cc \
|
||||
layViewOp.cc \
|
||||
layViewport.cc \
|
||||
|
||||
HEADERS += \
|
||||
layAnnotationShapes.h \
|
||||
layBitmap.h \
|
||||
layColorPalette.h \
|
||||
layDispatcher.h \
|
||||
layDisplayState.h \
|
||||
layDitherPattern.h \
|
||||
layDrawing.h \
|
||||
layEditable.h \
|
||||
layFinder.h \
|
||||
layFixedFont.h \
|
||||
layLineStylePalette.h \
|
||||
layLineStyles.h \
|
||||
layMarker.h \
|
||||
layMouseTracker.h \
|
||||
layMove.h \
|
||||
layObjectInstPath.h \
|
||||
layParsedLayerSource.h \
|
||||
layPlugin.h \
|
||||
layRedrawLayerInfo.h \
|
||||
layRedrawThread.h \
|
||||
layRedrawThreadCanvas.h \
|
||||
layRedrawThreadWorker.h \
|
||||
layRenderer.h \
|
||||
layRubberBox.h \
|
||||
laySnap.h \
|
||||
layStipplePalette.h \
|
||||
layStream.h \
|
||||
layLayerProperties.h \
|
||||
layCanvasPlane.h \
|
||||
layViewObject.h \
|
||||
layViewOp.h \
|
||||
layViewport.h \
|
||||
laybasicCommon.h \
|
||||
|
||||
|
||||
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC
|
||||
DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#define HDR_rdbMarkerBrowser
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "ui_MarkerBrowserConfigPage.h"
|
||||
#include "ui_MarkerBrowserConfigPage2.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,114 @@
|
|||
|
||||
/*
|
||||
|
||||
KLayout Layout Viewer
|
||||
Copyright (C) 2006-2022 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
|
||||
|
||||
*/
|
||||
|
||||
#include "layColor.h"
|
||||
|
||||
#include "tlUnitTest.h"
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
#include <QColor>
|
||||
#endif
|
||||
|
||||
TEST(1)
|
||||
{
|
||||
EXPECT_EQ (lay::Color ().is_valid (), false);
|
||||
EXPECT_EQ (lay::Color ().to_string (), "");
|
||||
EXPECT_EQ (lay::Color ().rgb (), 0x00000000);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
EXPECT_EQ (QColor ().isValid (), false);
|
||||
EXPECT_EQ (tl::to_string (QColor ().name ()), "#000000"); // why?
|
||||
EXPECT_EQ (QColor ().rgb (), 0xff000000);
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(2)
|
||||
{
|
||||
EXPECT_EQ (lay::Color (0x102030).is_valid (), true);
|
||||
EXPECT_EQ (lay::Color (0x102030).to_string (), "#102030");
|
||||
EXPECT_EQ (lay::Color (0x102030).rgb (), 0xff102030);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
EXPECT_EQ (QColor (0x102030).isValid (), true);
|
||||
EXPECT_EQ (tl::to_string (QColor (0x102030).name ()), "#102030");
|
||||
EXPECT_EQ (QColor (0x102030).rgb (), 0xff102030);
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(3)
|
||||
{
|
||||
EXPECT_EQ (lay::Color (std::string ()).is_valid (), false);
|
||||
EXPECT_EQ (lay::Color ("#102030").is_valid (), true);
|
||||
EXPECT_EQ (lay::Color ("#102030").to_string (), "#102030");
|
||||
EXPECT_EQ (lay::Color ("#102030").rgb (), 0xff102030);
|
||||
EXPECT_EQ (lay::Color ("102030").is_valid (), true);
|
||||
EXPECT_EQ (lay::Color ("102030").to_string (), "#102030");
|
||||
EXPECT_EQ (lay::Color ("102030").rgb (), 0xff102030);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
EXPECT_EQ (QColor (tl::to_qstring ("#102030")).isValid (), true);
|
||||
EXPECT_EQ (tl::to_string (QColor (tl::to_qstring ("#102030")).name ()), "#102030");
|
||||
EXPECT_EQ (QColor (tl::to_qstring ("#102030")).rgb (), 0xff102030);
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(4)
|
||||
{
|
||||
EXPECT_EQ (lay::Color ("#123").is_valid (), true);
|
||||
EXPECT_EQ (lay::Color ("#123").to_string (), "#112233");
|
||||
EXPECT_EQ (lay::Color ("#123").rgb (), 0xff112233);
|
||||
}
|
||||
|
||||
TEST(5)
|
||||
{
|
||||
EXPECT_EQ (lay::Color ("#80102030").is_valid (), true);
|
||||
EXPECT_EQ (lay::Color ("#80102030").to_string (), "#80102030");
|
||||
EXPECT_EQ (lay::Color ("#80102030").rgb (), 0x80102030);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
// no alpha support in Qt
|
||||
EXPECT_EQ (QColor (tl::to_qstring ("#80102030")).isValid (), true);
|
||||
EXPECT_EQ (tl::to_string (QColor (tl::to_qstring ("#80102030")).name ()), "#102030");
|
||||
EXPECT_EQ (QColor (tl::to_qstring ("#80102030")).rgb (), 0xff102030);
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(6)
|
||||
{
|
||||
EXPECT_EQ (lay::Color ("#8123").is_valid (), true);
|
||||
EXPECT_EQ (lay::Color ("#8123").to_string (), "#88112233");
|
||||
EXPECT_EQ (lay::Color ("#8123").rgb (), 0x88112233);
|
||||
}
|
||||
|
||||
TEST(7)
|
||||
{
|
||||
EXPECT_EQ (lay::Color (16, 32, 48, 128).is_valid (), true);
|
||||
EXPECT_EQ (lay::Color (16, 32, 48, 128).to_string (), "#80102030");
|
||||
EXPECT_EQ (lay::Color (16, 32, 48, 128).rgb (), 0x80102030);
|
||||
|
||||
#if defined(HAVE_QT)
|
||||
// no alpha support in Qt
|
||||
EXPECT_EQ (QColor (16, 32, 48, 128).isValid (), true);
|
||||
EXPECT_EQ (tl::to_string (QColor (16, 32, 48, 128).name ()), "#102030");
|
||||
EXPECT_EQ (QColor (16, 32, 48, 128).rgb (), 0xff102030);
|
||||
#endif
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ SOURCES = \
|
|||
layAnnotationShapes.cc \
|
||||
layBitmap.cc \
|
||||
layBitmapsToImage.cc \
|
||||
layColorTests.cc \
|
||||
layLayerProperties.cc \
|
||||
layParsedLayerSource.cc \
|
||||
layRenderer.cc \
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "ui_NetTracerConfigPage.h"
|
||||
|
||||
#include "layPlugin.h"
|
||||
#include "layPluginConfigPage.h"
|
||||
#include "layColorPalette.h"
|
||||
|
||||
namespace lay
|
||||
|
|
|
|||
Loading…
Reference in New Issue