├── icons
├── icon.jpg
├── favicon.png
└── silk
│ ├── shading.xpm
│ ├── shape_triangle.xpm
│ ├── shape_final_triangle.xpm
│ ├── shape_post_triangle.xpm
│ ├── cross.xpm
│ ├── page_white.xpm
│ ├── color_swatch.xpm
│ ├── shape_move_forwards.xpm
│ ├── bullet_arrow_up.xpm
│ ├── bullet_arrow_down.xpm
│ ├── bullet_arrow_left.xpm
│ ├── bullet_arrow_right.xpm
│ ├── bullet_black.xpm
│ ├── arrow_redo.xpm
│ ├── arrow_inout.xpm
│ ├── shape_move_front.xpm
│ ├── star.xpm
│ ├── bullet_toggle_minus.xpm
│ ├── application.xpm
│ ├── arrow_out.xpm
│ └── arrow_rotate_clockwise.xpm
├── ts
├── qosmic_cs.qm
├── qosmic_de.qm
├── qosmic_fr.qm
└── qosmic_ru.qm
├── scripts
├── sheep-loop.lua
├── rotate-palette.lua
├── sheep-loop-to-png.lua
├── normalize-densities.lua
├── sierpinsky.lua
├── batch-render-files.lua
├── pseudorandom-walk.lua
├── example.lua
└── functions.lua
├── qosmic.desktop
├── dist
├── flam3-2.7.16.ebuild
├── qosmic-1.6.0.ebuild
├── qosmic-1.4.1.ebuild
└── qosmic.spec
├── ui
├── mainpreviewwidget.ui
├── mainviewer.ui
├── statuswidget.ui
├── chaoswidget.ui
├── genomevectorlistmodelitemeditor.ui
└── variationswidget.ui
└── src
├── wheelvalueeditor.cpp
├── wheelvalueeditor.h
├── checkersbrush.h
├── checkersbrush.cpp
├── posttriangle.h
├── flamfileiconprovider.h
├── lua
├── luatype.h
├── luatype.cpp
├── highlighter.h
├── frame.h
├── luaeditor.h
├── luathreadadapter.h
└── luathread.h
├── colorlabel.h
├── statuswidget.h
├── transformablegraphicsitem.cpp
├── coordinatemark.h
├── camerasettingswidget.h
├── flam3filestream.h
├── colorselector.h
├── snapslider.h
├── statuswidget.cpp
├── renderprogressdialog.h
├── adjustscenewidget.h
├── directorylistview.h
├── colorbalancewidget.h
├── gradientlistmodel.h
├── qosmicwidget.h
├── qosmicwidget.cpp
├── transformablegraphicsitem.h
├── selecttrianglewidget.h
├── renderdialog.h
├── colorselector.cpp
├── qosmic.h
├── genomecolorselector.h
├── intvalueeditor.h
├── basistriangle.h
├── doublevalueeditor.h
├── coordinatemark.cpp
├── imgsettingswidget.h
├── viewerpresetswidget.h
├── colorsettingswidget.h
├── nodeitem.h
├── colordialog.h
├── variationswidget.h
├── undoring.h
├── trianglecoordswidget.h
├── posttriangle.cpp
├── viewerpresetsmodel.h
├── colorlabel.cpp
├── mainpreviewwidget.h
├── triangleselection.h
├── selectgenomewidget.h
├── snapslider.cpp
├── chaoswidget.h
├── editmodeselectorwidget.h
├── transformablegraphicsguide.h
├── scripteditwidget.h
├── renderprogressdialog.cpp
└── gradientlistmodel.cpp
/icons/icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitsed/qosmic/HEAD/icons/icon.jpg
--------------------------------------------------------------------------------
/icons/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitsed/qosmic/HEAD/icons/favicon.png
--------------------------------------------------------------------------------
/ts/qosmic_cs.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitsed/qosmic/HEAD/ts/qosmic_cs.qm
--------------------------------------------------------------------------------
/ts/qosmic_de.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitsed/qosmic/HEAD/ts/qosmic_de.qm
--------------------------------------------------------------------------------
/ts/qosmic_fr.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitsed/qosmic/HEAD/ts/qosmic_fr.qm
--------------------------------------------------------------------------------
/ts/qosmic_ru.qm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bitsed/qosmic/HEAD/ts/qosmic_ru.qm
--------------------------------------------------------------------------------
/scripts/sheep-loop.lua:
--------------------------------------------------------------------------------
1 | --
2 | -- Electric sheep looping animation script.
3 | -- Rotate each non-symmetry transform around the origin and render a preview.
4 | --
5 |
6 | GENOME_IDX = 1 -- animate the genome at this index
7 |
8 | g = frame:get_genome(GENOME_IDX)
9 |
10 | while true do
11 | for i = 1, g:num_xforms() do
12 | local xf = g:get_xform(i)
13 | if xf:animate() > 0.0 then
14 | xf:rotate(-4.0, 0, 0);
15 | end
16 | end
17 | frame:render(GENOME_IDX)
18 | end
19 |
--------------------------------------------------------------------------------
/qosmic.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Type=Application
4 | Name=Qosmic
5 | GenericName=Flam3 Fractal Editor
6 | GenericName[ru]=Редактор фракталов Flam3
7 | GenericName[cs]=Editor fraktálů Flam3
8 | Comment=A cosmic recursive flame fractal editor written in Qt
9 | Comment[ru]=Рекурсивный фрактальный редактор
10 | Comment[cs]=Světový rekurzivní plamenný fraktálový editor napsaný v Qt
11 | Exec=qosmic
12 | Icon=qosmicicon
13 | Terminal=false
14 | Categories=Qt;KDE;Graphics;
15 |
--------------------------------------------------------------------------------
/scripts/rotate-palette.lua:
--------------------------------------------------------------------------------
1 | -- This script simply rotates the genome color palette.
2 |
3 | gid = 1 -- rotate the palette for this genome
4 | step = 4 -- step over this many palette entries each loop
5 |
6 | gen = frame:get_genome(gid)
7 | while true do
8 | r, g, b = gen:palette( (1 + step) % 255 )
9 |
10 | for n = 2, 256 do
11 | local r, g, b = gen:palette( (n + step) % 255 )
12 | gen:palette(n - 1, r, g, b)
13 | end
14 | gen:palette(256, r, g, b)
15 |
16 | frame:render(gid)
17 | end
18 |
--------------------------------------------------------------------------------
/scripts/sheep-loop-to-png.lua:
--------------------------------------------------------------------------------
1 | -- Rotate each transform around the origin and render to
2 | -- png files. The png files can be combined into a movie.
3 | g = frame:get_genome()
4 |
5 | n=10
6 |
7 | while true do
8 | local name = "/tmp/flam-img0" .. n .. ".png"
9 |
10 | for i = 0, g:num_xforms() - 1 do
11 | local xf = g:get_xform(i)
12 | if xf:symmetry() == 0.0 then
13 | xf:rotate(-4.0, 0, 0);
14 | end
15 | end
16 | print("rendering " .. name)
17 | frame:render(0, name)
18 | n = n+1
19 | end
20 |
21 |
--------------------------------------------------------------------------------
/scripts/normalize-densities.lua:
--------------------------------------------------------------------------------
1 | -- This script will normalize the xform densities to one.
2 | -- Running the script will have no effect on the flam3 image,
3 | -- since the densities are relative probabilities.
4 | sumq = 0
5 | g = frame:get_genome()
6 | for it = 0, g:num_xforms() - 1 do
7 | local xf = g:get_xform(it)
8 | sumq = sumq + xf:density()^2
9 | end
10 |
11 | sumq = math.sqrt(sumq)
12 |
13 | for it = 0, g:num_xforms() - 1 do
14 | local xf = g:get_xform(it)
15 | xf:density(xf:density() / sumq)
16 | end
17 |
--------------------------------------------------------------------------------
/scripts/sierpinsky.lua:
--------------------------------------------------------------------------------
1 | -- this script generates a sierpinski gasket
2 |
3 | g = frame:get_genome();
4 | g:clear_xforms();
5 |
6 | g:width(640);
7 | g:height(480);
8 | g:scale(240);
9 | g:center(1.80, -0.20);
10 |
11 | xf = g:add_xform();
12 | xf:scale(0.5);
13 | xf = g:add_xform();
14 | xf:translate(1.28, 0);
15 | xf:scale(0.5)
16 | xf = g:add_xform();
17 | xf:translate(0.64, -0.8);
18 | xf:scale(0.5);
19 |
20 | nxforms = g:num_xforms();
21 | for i = 0, nxforms - 1 do
22 | local xf = g:get_xform(i);
23 | xf:density(1 / nxforms);
24 | xf:color(i / (nxforms - 1));
25 | xf:var(LINEAR, 1.0)
26 | end
27 |
28 | frame:render()
29 |
--------------------------------------------------------------------------------
/dist/flam3-2.7.16.ebuild:
--------------------------------------------------------------------------------
1 | # Copyright 1999-2008 Gentoo Foundation
2 | # Distributed under the terms of the GNU General Public License v2
3 | # $Header: $
4 |
5 | inherit eutils
6 |
7 | DESCRIPTION="Tools and a library for creating flame fractal images"
8 | HOMEPAGE="http://flam3.com/"
9 | SRC_URI="${HOMEPAGE}/${P}.tar.gz"
10 |
11 | LICENSE="GPL-2"
12 | SLOT="0"
13 | KEYWORDS="~amd64"
14 | IUSE=""
15 |
16 | DEPEND="dev-libs/libxml2
17 | media-libs/libpng
18 | media-libs/jpeg
19 | !<=x11-misc/electricsheep-2.6.8-r1"
20 | RDEPEND="${DEPEND}"
21 |
22 | src_install() {
23 | emake install DESTDIR="${D}" || die "emake install failed"
24 | dodoc README.txt *.flam3 || die "dodoc failed"
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/dist/qosmic-1.6.0.ebuild:
--------------------------------------------------------------------------------
1 | # Copyright 1999-2016 Gentoo Foundation
2 | # Distributed under the terms of the GNU General Public License v2
3 | # $Id$
4 |
5 | EAPI=4
6 |
7 | inherit qmake-utils
8 |
9 | DESCRIPTION="A cosmic recursive flame fractal editor"
10 | HOMEPAGE="https://github.com/bitsed/qosmic"
11 | SRC_URI="https://github.com/bitsed/qosmic/archive/v${PV}.tar.gz -> ${P}.tar.gz"
12 |
13 | LICENSE="GPL-3"
14 | SLOT="0"
15 | KEYWORDS="~amd64"
16 | IUSE=""
17 |
18 | RDEPEND="dev-lang/lua:5.2
19 | dev-qt/qtgui:5
20 | >=media-gfx/flam3-3.1.1"
21 | DEPEND="${RDEPEND}
22 | virtual/pkgconfig"
23 |
24 | DOCS="changes.txt README README-LUA"
25 |
26 | src_prepare() {
27 | eqmake5 ROOT=${D}
28 | }
29 |
--------------------------------------------------------------------------------
/scripts/batch-render-files.lua:
--------------------------------------------------------------------------------
1 | -- This script scans the directory given by path for flam3 xml files without
2 | -- a cooresponding png image file, and then generates one. It requires
3 | -- luafilesystem (luaforge.net).
4 |
5 | require"lfs"
6 | path="/home/user/flam3 images"
7 | for file in lfs.dir(path) do
8 | if string.match(file, "\.flam3$") then
9 | local f = path..'/'..file
10 | local attr = lfs.attributes(f)
11 |
12 | if attr.mode == "file" then
13 | i = string.gsub(f, "\.flam3$", ".png")
14 | local imgattr = lfs.attributes(i)
15 | if (imgattr == nil) then
16 | print ('rendering ' .. i)
17 | frame:load(f)
18 | frame:render(0, i)
19 | end
20 |
21 | end
22 |
23 | end
24 | end
25 |
--------------------------------------------------------------------------------
/scripts/pseudorandom-walk.lua:
--------------------------------------------------------------------------------
1 | --
2 | -- Perform a random walk on the nodes of each non-symmetry transform.
3 | --
4 | PI=3.14159265434
5 | LENGTH_MULT=0.01
6 |
7 | g = frame:get_genome()
8 |
9 | while true do
10 | for i = 0, g:num_xforms() - 1 do
11 | local xf = g:get_xform(i)
12 | if xf:symmetry() == 0.0 then
13 | xf:rotate(-4.0, 0, 0);
14 | local x, y
15 | local a = math.random() * PI
16 | local l = math.random() * LENGTH_MULT
17 | dy = l*math.sin(a)
18 | dx = l*math.cos(a)
19 | x, y = xf:a()
20 | x, y = x+dx, y+dy
21 | xf:a(x, y)
22 |
23 | a = math.random() * PI
24 | l = math.random() * LENGTH_MULT
25 | dy = l*math.sin(a)
26 | dx = l*math.cos(a)
27 | x, y = xf:b()
28 | x, y = x+dx, y+dy
29 | xf:b(x, y)
30 |
31 | a = math.random() * PI
32 | l = math.random() * LENGTH_MULT
33 | dy = l*math.sin(a)
34 | dx = l*math.cos(a)
35 | x, y = xf:c()
36 | x, y = x+dx, y+dy
37 | xf:c(x, y)
38 | end
39 | end
40 | frame:render()
41 | end
42 |
43 |
--------------------------------------------------------------------------------
/dist/qosmic-1.4.1.ebuild:
--------------------------------------------------------------------------------
1 | # Copyright 1999-2008 Gentoo Foundation
2 | # Distributed under the terms of the GNU General Public License v2
3 | # $Header: $
4 |
5 | EAPI=1
6 |
7 | inherit eutils qt4
8 |
9 | DESCRIPTION="A cosmic recursive flame fractal editor written in Qt"
10 | HOMEPAGE="http://qosmic.googlecode.com"
11 | SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2"
12 |
13 | LICENSE="GPL-2"
14 | SLOT="0"
15 | KEYWORDS="~amd64"
16 | IUSE=""
17 |
18 | DEPEND="|| ( x11-libs/qt-gui:4 =x11-libs/qt-4.3* )
19 | >=media-gfx/flam3-2.7.16
20 | dev-libs/libxml2
21 | media-libs/libpng
22 | media-libs/jpeg
23 | dev-lang/lua"
24 | RDEPEND="${DEPEND}"
25 |
26 | S=${WORKDIR}/${PN}
27 |
28 | src_compile() {
29 | eqmake4 || die "qmake failed"
30 | emake || die "make failed"
31 | }
32 |
33 | src_install() {
34 | doicon icons/qosmicicon.xpm || die "doicon failed"
35 | dobin qosmic || die "dobin failed"
36 | dodoc README README-LUA || die "dodoc failed"
37 | make_desktop_entry qosmic "Qosmic" qosmicicon.xpm "KDE;Qt;Graphics"
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/ui/mainpreviewwidget.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainPreviewWidget
4 |
5 |
6 |
7 | 0
8 | 0
9 | 162
10 | 132
11 |
12 |
13 |
14 | Preview
15 |
16 |
17 |
18 | 1
19 |
20 | -
21 |
22 |
23 |
24 | 1
25 | 1
26 |
27 |
28 |
29 | Qt::LeftToRight
30 |
31 |
32 | QFrame::StyledPanel
33 |
34 |
35 | QFrame::Sunken
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/dist/qosmic.spec:
--------------------------------------------------------------------------------
1 | Name: qosmic
2 | Version: 1.6.0
3 | Release: 1%{?dist}
4 | Summary: A flam3 fractal editor
5 |
6 | Group: Applications/Multimedia
7 | License: GPLv3
8 | URL: http://github.com/bitsed/qosmic
9 | Source0: qosmic-%{version}.tar.bz2
10 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
11 |
12 | BuildRequires: flam3-devel >= 3.1.1
13 | BuildRequires: qt-devel >= 5.5
14 | BuildRequires: lua-devel >= 5.2
15 | Requires: flam3 >= 3.1.1
16 | Requires: qt >= 5.5
17 | Requires: lua >= 5.2
18 |
19 | %description
20 | A graphical interface to create, edit, and render flam3 fractal images.
21 |
22 | %prep
23 | %setup -q
24 |
25 |
26 | %build
27 | %{_qt4_qmake}
28 | make %{?_smp_mflags}
29 |
30 |
31 | %install
32 | rm -rf $RPM_BUILD_ROOT
33 | make install INSTALL_ROOT=$RPM_BUILD_ROOT
34 |
35 |
36 | %clean
37 | rm -rf $RPM_BUILD_ROOT
38 |
39 |
40 | %files
41 | %defattr(-,root,root,-)
42 | %doc README README-LUA changes.txt COPYING scripts/
43 | %{_bindir}/%{name}
44 | %{_pixmapsdir}/qosmicicon.xpm
45 | %{_desktopdir}/%{name}.desktop
46 |
47 |
48 | %changelog
49 | * Thu Mar 10 2011 Nathaniel Clark - 1.4.8-1
50 | - Initial Spec file
51 | * Thu Jul 21 2011 David Bitseff - 1.5.0-1
52 | - Version 1.5.0 Spec file
53 | * Thu Jun 23 2016 David Bitseff - 1.6.0-1
54 | - Version 1.6.0 Spec file
55 |
--------------------------------------------------------------------------------
/scripts/example.lua:
--------------------------------------------------------------------------------
1 | -- Here are some examples of how to use lua scripts with qosmic. Be sure to
2 | -- also examine the functions.lua script.
3 |
4 | -- load and save functions
5 | -- frame:load('sparkler.flam3')
6 | -- frame:save('sparkler.flam3')
7 |
8 | g = frame:get_genome() ; -- set g to refer to the first genome
9 | r = frame:get_genome(1) ; -- both g and r point to the same genome
10 | n = frame:get_genome(2) ; -- the second genome, create a new genome if necessary
11 |
12 | xf = g:get_xform(1) ; -- set xf to point at the first xform in r
13 | density = xf:density() -- get the density
14 | xf:density(1.0 + density) ; -- add one to the xform density
15 | xf:var(LINEAR, 2.0) ; -- set the linear variation to 2.0
16 | (a, b, c) = xf:a(), xf:b(), xf:c() ; -- coordinates
17 | (x,y) = xf:pos(-1.0,1.2) ; -- position the center of the triangle at (-1.0, 1.2)
18 |
19 | xf_2 = g:add_xform() ; -- set xf_2 to point at a new xform
20 | xf_2:translate(1.0, 0.0) ; -- move the xform
21 | xf_2:rotate(60) ; -- rotate (in degrees) the xform
22 |
23 | ngenomes = frame:num_genomes() ;
24 |
25 | frame:render() ; -- render the first genome, and update the preview image
26 | frame:render(2, "image.png") ; -- render the second genome, and save to a file
27 | frame:render(n) ; -- render the second genome
28 |
29 | frame:copy_genome(1, 2) ; -- copy genome 1 to genome 2
30 | frame:del_genome(2) ; -- delete genome 2
31 |
--------------------------------------------------------------------------------
/icons/silk/shading.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *shading[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 2 1",
5 | " c #6C6C9A9AC7C7",
6 | ". c None",
7 | /* pixels */
8 | ".... ... ... ... .... ...",
9 | "... ... ... ... ... ....",
10 | ".. ... ... ... .... ....",
11 | " .. .. .. .. ....",
12 | " ... ... ... ... .... ",
13 | " .. .. .. .. ... ",
14 | "... ... ... ... ... ..",
15 | ".. .. .. .. .. ..",
16 | ".. ... ... ... ... ....",
17 | " .. .. .. .. .. ",
18 | " ... ... ... ... .... ",
19 | " .. .. .. .. .. ",
20 | "... ... ... ... ... ..",
21 | ".. .. .. .. .. ..",
22 | ".. ... ... ... ... ....",
23 | " .. .. .. .. .. ",
24 | " ... ... ... ... .... ",
25 | " .. .. .. .. .. ",
26 | "... ... ... ... ... ..",
27 | ".. .. .. .. .. ..",
28 | ".. ... ... ... ... ....",
29 | " .. .. .. .. .. ",
30 | " ... ... ... ... .... ",
31 | " .. .. .. .. .. ",
32 | "... ... ... ... ... ..",
33 | "... .. .. .. .. ..",
34 | ".. ... ... ... ... ....",
35 | ". .. .. .. .. ... ",
36 | "...... ... ... ... ......",
37 | "..... ... ... ... ......",
38 | ".... ... ... .... ........",
39 | ".... ... ... ... ... ..."
40 | };
41 |
--------------------------------------------------------------------------------
/src/wheelvalueeditor.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #include "wheelvalueeditor.h"
19 |
20 | bool WheelValueEditor::WHEEL_EVENTS_ENABLED = true;
21 |
--------------------------------------------------------------------------------
/src/wheelvalueeditor.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef WHEELVALUEEDITOR_H
19 | #define WHEELVALUEEDITOR_H
20 |
21 | class WheelValueEditor
22 | {
23 | public:
24 | static bool WHEEL_EVENTS_ENABLED;
25 | };
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/src/checkersbrush.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef CHECKERSBRUSH_H
20 | #define CHECKERSBRUSH_H
21 |
22 | #include
23 |
24 | class CheckersBrush : public QBrush
25 | {
26 | public:
27 | explicit CheckersBrush(int);
28 | };
29 |
30 | #endif // CHECKERSBRUSH_H
31 |
--------------------------------------------------------------------------------
/src/checkersbrush.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #include
20 | #include
21 |
22 | #include "checkersbrush.h"
23 |
24 |
25 | CheckersBrush::CheckersBrush(int d) : QBrush()
26 | {
27 | QImage img(d, d, QImage::Format_RGB32);
28 | QPainter p(&img);
29 | p.fillRect(0, 0, d, d, Qt::white);
30 | p.fillRect(0, 0, d/2, d/2, Qt::black);
31 | p.fillRect(d/2, d/2, d, d, Qt::black);
32 | setTexture(QPixmap::fromImage(img));
33 | }
34 |
--------------------------------------------------------------------------------
/ui/mainviewer.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainViewer
4 |
5 |
6 |
7 | 0
8 | 0
9 | 250
10 | 200
11 |
12 |
13 |
14 | true
15 |
16 |
17 | flame viewer
18 |
19 |
20 |
21 | 4
22 |
23 | -
24 |
25 |
26 |
27 | 0
28 | 0
29 |
30 |
31 |
32 | true
33 |
34 |
35 | QFrame::StyledPanel
36 |
37 |
38 | QFrame::Sunken
39 |
40 |
41 | Qt::ScrollBarAlwaysOff
42 |
43 |
44 | Qt::ScrollBarAlwaysOff
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | MainViewerGraphicsView
53 | QGraphicsView
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/src/posttriangle.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef POSTTRIANGLE_H
19 | #define POSTTRIANGLE_H
20 |
21 |
22 | #include "triangle.h"
23 |
24 | class PostTriangle : public Triangle
25 | {
26 |
27 | public:
28 | PostTriangle(FigureEditor* c, flam3_xform* x, BasisTriangle* b);
29 | void resetPosition();
30 | int type() const;
31 | void basisScaledSlot();
32 | void coordsToXForm();
33 |
34 | enum { Type = UserType + 4 };
35 |
36 | };
37 |
38 | #endif
39 |
40 |
--------------------------------------------------------------------------------
/src/flamfileiconprovider.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef FLAMFILEICONPROVIDER_H
19 | #define FLAMFILEICONPROVIDER_H
20 |
21 | #include
22 |
23 | class FlamFileIconProvider : public QFileIconProvider
24 | {
25 | QDir icons_dir;
26 | bool has_icons;
27 |
28 | public:
29 | FlamFileIconProvider();
30 | ~FlamFileIconProvider();
31 |
32 | QIcon icon(const QFileInfo& info) const;
33 | QIcon icon(IconType type) const;
34 | QString type(const QFileInfo& info) const;
35 | };
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/src/lua/luatype.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef LUALUATYPE_H
19 | #define LUALUATYPE_H
20 |
21 | #include "genomevector.h"
22 |
23 | namespace Lua
24 | {
25 |
26 | class LuaThreadAdapter;
27 | class LuaType
28 | {
29 | protected:
30 | LuaThreadAdapter* m_adapter;
31 |
32 | public:
33 | LuaType();
34 | LuaType(LuaThreadAdapter*);
35 | ~LuaType();
36 | void setContext(LuaThreadAdapter*);
37 | LuaThreadAdapter* context() const;
38 | GenomeVector* genomes() const;
39 | };
40 |
41 | }
42 |
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/src/colorlabel.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef COLORLABEL_H
20 | #define COLORLABEL_H
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | class ColorLabel : public QLabel
27 | {
28 | Q_OBJECT
29 |
30 | public:
31 | ColorLabel(QWidget* parent=0);
32 | void setColor(QColor);
33 | void mousePressEvent (QMouseEvent*);
34 |
35 | signals:
36 | void colorSelected(QColor);
37 | void undoStateSignal();
38 |
39 | private:
40 | QColor lastcolor;
41 | };
42 |
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/ui/statuswidget.ui:
--------------------------------------------------------------------------------
1 |
2 | StatusWidget
3 |
4 |
5 |
6 | 0
7 | 0
8 | 272
9 | 22
10 |
11 |
12 |
13 | status
14 |
15 |
16 |
17 | 0
18 |
19 |
20 | 0
21 |
22 |
23 | 0
24 |
25 |
26 | 0
27 |
28 |
29 | 0
30 |
31 |
32 | 0
33 |
34 | -
35 |
36 |
37 |
38 | 2
39 | 22
40 |
41 |
42 |
43 |
44 | 300
45 | 22
46 |
47 |
48 |
49 | QFrame::NoFrame
50 |
51 |
52 | QFrame::Sunken
53 |
54 |
55 | Some status text. .. . . .
56 |
57 |
58 | Qt::PlainText
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/src/statuswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef STATUSWIDGET_H
19 | #define STATUSWIDGET_H
20 |
21 | #include
22 | #include
23 |
24 | #include "ui_statuswidget.h"
25 | #include "renderthread.h"
26 |
27 | class StatusWidget : public QWidget, private Ui::StatusWidget
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | StatusWidget(QWidget* parent);
33 | ~StatusWidget();
34 |
35 | public slots:
36 | void setRenderStatus(RenderStatus*);
37 |
38 |
39 | protected:
40 | void resizeEvent(QResizeEvent*);
41 | };
42 |
43 | #endif
44 |
--------------------------------------------------------------------------------
/icons/silk/shape_triangle.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * shape_triangle_xpm[] = {
3 | "32 32 27 1",
4 | " c None",
5 | ". c #7DA5E1",
6 | "+ c #8CB3E6",
7 | "@ c #7FA8E3",
8 | "# c #76A0DE",
9 | "$ c #9DBCE9",
10 | "% c #94B4E5",
11 | "& c #99B9E8",
12 | "* c #739BDD",
13 | "= c #98B7E7",
14 | "- c #8CACE2",
15 | "; c #7DA1DF",
16 | "> c #7A9DDD",
17 | ", c #6E98DC",
18 | "' c #6B93DA",
19 | ") c #85ABE3",
20 | "! c #85A6E0",
21 | "~ c #90AFE4",
22 | "{ c #7097DB",
23 | "] c #6690D8",
24 | "^ c #648ED8",
25 | "/ c #84A5DF",
26 | "( c #638CD7",
27 | "_ c #5F88D5",
28 | ": c #688FD7",
29 | "< c #5A84D4",
30 | "[ c #688FD8",
31 | " ",
32 | " ",
33 | " ",
34 | " ",
35 | " . ",
36 | " .. ",
37 | " +@# ",
38 | " $%@# ",
39 | " &&+.* ",
40 | " &==-;* ",
41 | " ===%-;* ",
42 | " ==%%%->, ",
43 | " =%%%%%-*' ",
44 | " =%%%%%%)*' ",
45 | " %%%%%%%%!*' ",
46 | " %%%%%%~--!{] ",
47 | " %%%%%~----!{^ ",
48 | " %%%%~~-----/'( ",
49 | " %%%%--------/'( ",
50 | " %%%%---------;'( ",
51 | " %%~--------!!!>]_ ",
52 | " %%~--------!!!/>:_ ",
53 | " %~--------!!!///>:< ",
54 | " %~-------!!!!!///>^< ",
55 | " %~-------!!!!!////>(< ",
56 | " ;!!!!//;;;;>>>>>>>>'(< ",
57 | " ,{{{,,'''''][:^^(((((<< ",
58 | " '']]]^^((((___<<<<<<<<<< ",
59 | " ",
60 | " ",
61 | " ",
62 | " "};
63 |
--------------------------------------------------------------------------------
/src/transformablegraphicsitem.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #include "transformablegraphicsitem.h"
20 | #include "transformablegraphicsguide.h"
21 |
22 | TransformableGraphicsItem::TransformableGraphicsItem() : m_guide(0)
23 | {
24 | }
25 |
26 | void TransformableGraphicsItem::setGraphicsGuide(TransformableGraphicsGuide* guide)
27 | {
28 | m_guide = guide;
29 | if (guide)
30 | guide->setParentItem(dynamic_cast(this));
31 | }
32 |
33 | TransformableGraphicsGuide* TransformableGraphicsItem::graphicsGuide() const
34 | {
35 | return m_guide;
36 | }
37 |
--------------------------------------------------------------------------------
/icons/silk/shape_final_triangle.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * shape_final_triangle_xpm[] = {
3 | "32 32 28 1",
4 | " c None",
5 | ". c #7DA5E1",
6 | "+ c #8CB3E6",
7 | "@ c #7FA8E3",
8 | "# c #76A0DE",
9 | "$ c #9DBCE9",
10 | "% c #94B4E5",
11 | "& c #99B9E8",
12 | "* c #739BDD",
13 | "= c #98B7E7",
14 | "- c #8CACE2",
15 | "; c #7DA1DF",
16 | "> c #000000",
17 | ", c #7A9DDD",
18 | "' c #6E98DC",
19 | ") c #6B93DA",
20 | "! c #85ABE3",
21 | "~ c #85A6E0",
22 | "{ c #90AFE4",
23 | "] c #7097DB",
24 | "^ c #6690D8",
25 | "/ c #648ED8",
26 | "( c #84A5DF",
27 | "_ c #638CD7",
28 | ": c #5F88D5",
29 | "< c #688FD7",
30 | "[ c #5A84D4",
31 | "} c #688FD8",
32 | " ",
33 | " ",
34 | " ",
35 | " ",
36 | " . ",
37 | " .. ",
38 | " +@# ",
39 | " $%@# ",
40 | " &&+.* ",
41 | " &==-;* ",
42 | " >>>>>>>>=%-;* ",
43 | " >>>>>>>>%%-,' ",
44 | " >> =%%%%%-*) ",
45 | " >> =%%%%%%!*) ",
46 | " >>%%%%%%%%~*) ",
47 | " >>>>>>>{--~]^ ",
48 | " >>>>>>>---~]/ ",
49 | " %>>%{{-----()_ ",
50 | " %%>>--------()_ ",
51 | " %%%>>--------;)_ ",
52 | " %%{->>-----~~~,^: ",
53 | " %%{-->>----~~~(,<: ",
54 | " %{---->>--~~~(((,<[ ",
55 | " %{-------~~~~~(((,/[ ",
56 | " %{-------~~~~~((((,_[ ",
57 | " ;~~~~((;;;;,,,,,,,,)_[ ",
58 | " ']]]'')))))^}/_____[[ ",
59 | " ))^^^//____:::[[[[[[[[[[ ",
60 | " ",
61 | " ",
62 | " ",
63 | " "};
64 |
--------------------------------------------------------------------------------
/src/coordinatemark.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef COORDINATEMARK_H
19 | #define COORDINATEMARK_H
20 |
21 | #include
22 | #include
23 | #include
24 | #include
25 |
26 | class CoordinateMark : public QGraphicsPolygonItem
27 | {
28 | QPainterPath m_path;
29 |
30 | public:
31 | enum { Type = UserType + 6 };
32 |
33 | CoordinateMark(QGraphicsItem* parent =0);
34 | int type() const;
35 | QPointF center() const;
36 | void centerOn(const QPointF&);
37 |
38 | protected:
39 | void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget* =0);
40 | };
41 |
42 | #endif
43 |
--------------------------------------------------------------------------------
/src/lua/luatype.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #include "luatype.h"
19 | #include "luathreadadapter.h"
20 |
21 | namespace Lua
22 | {
23 |
24 | LuaType::LuaType()
25 | : m_adapter(0)
26 | {
27 | }
28 |
29 | LuaType::LuaType(LuaThreadAdapter* value)
30 | : m_adapter(value)
31 | {
32 | }
33 |
34 |
35 | LuaType::~LuaType()
36 | {
37 | }
38 |
39 |
40 | LuaThreadAdapter* LuaType::context() const
41 | {
42 | return m_adapter;
43 | }
44 |
45 |
46 | void LuaType::setContext(LuaThreadAdapter* value)
47 | {
48 | m_adapter = value;
49 | }
50 |
51 |
52 | GenomeVector* LuaType::genomes() const
53 | {
54 | return m_adapter->genomeVector();
55 | }
56 |
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/src/camerasettingswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef CAMERASETTINGSWIDGET_H
20 | #define CAMERASETTINGSWIDGET_H
21 |
22 | #include
23 |
24 | #include "ui_camerasettingswidget.h"
25 | #include "genomevector.h"
26 |
27 | class CameraSettingsWidget : public QWidget, private Ui::CameraSettingsWidget
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | CameraSettingsWidget(GenomeVector*, QWidget* parent=0);
33 | void reset();
34 |
35 | signals:
36 | void dataChanged();
37 | void undoStateSignal();
38 |
39 | public slots:
40 | void fieldEditedAction();
41 | void updateFormData();
42 |
43 | private:
44 | GenomeVector* genome;
45 | };
46 |
47 |
48 | #endif
49 |
--------------------------------------------------------------------------------
/src/flam3filestream.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef FLAM3FILESTREAM_H
19 | #define FLAM3FILESTREAM_H
20 |
21 | #include
22 |
23 | #include "genomevector.h"
24 |
25 | class Flam3FileStream
26 | {
27 | QFile* m_file;
28 |
29 | public:
30 | Flam3FileStream(QFile*);
31 | bool read(GenomeVector*);
32 | bool read(flam3_genome**, int*);
33 | bool write(GenomeVector*);
34 | bool write(flam3_genome*, int);
35 | void setFile(QFile*);
36 | QFile* file() const;
37 | Flam3FileStream& operator>>(GenomeVector*);
38 | Flam3FileStream& operator<<(GenomeVector*);
39 |
40 | static void autoSave(GenomeVector*, int =GenomeVector::AlwaysSave);
41 | };
42 |
43 | #endif // FLAM3FILESTREAM_H
44 |
--------------------------------------------------------------------------------
/src/colorselector.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef COLORSELECTOR_H
20 | #define COLORSELECTOR_H
21 |
22 | #include
23 | #include
24 | #include
25 |
26 |
27 | class ColorSelector : public QLabel
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | ColorSelector(QWidget* parent=0);
33 | void mousePressEvent(QMouseEvent*);
34 | void mouseMoveEvent(QMouseEvent*);
35 | void mouseReleaseEvent(QMouseEvent*);
36 | void setSelectedIndex(QPoint);
37 | QPoint selectedIndex();
38 |
39 | signals:
40 | void colorSelected(QPoint);
41 |
42 | protected:
43 | virtual void repaintLabel();
44 | QPoint last_pos;
45 | QImage background;
46 | };
47 |
48 |
49 |
50 | #endif
51 |
--------------------------------------------------------------------------------
/src/snapslider.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef SNAPSLIDER_H
19 | #define SNAPSLIDER_H
20 |
21 | #include
22 |
23 | class SnapSlider : public QSlider
24 | {
25 | Q_OBJECT
26 |
27 | public:
28 | SnapSlider(QWidget* parent=0);
29 | int selectedValue();
30 | void setSnap(int value);
31 | void setToSnap();
32 | int snap();
33 | int dx();
34 |
35 | signals:
36 | void valueSelected(int);
37 | void undoStateSignal();
38 |
39 | private slots:
40 | void sliderReleasedAction();
41 | void rangeChangedAction(int, int);
42 | void sliderChangedAction(int);
43 |
44 | private:
45 | int m_selected_value;
46 | int m_last_value;
47 | int m_dx;
48 | int m_snap;
49 | };
50 |
51 | #endif
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/statuswidget.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #include
19 |
20 | #include "statuswidget.h"
21 |
22 | StatusWidget::StatusWidget(QWidget* parent)
23 | : QWidget(parent)
24 | {
25 | setupUi(this);
26 | }
27 |
28 | StatusWidget::~StatusWidget()
29 | {
30 | }
31 |
32 | void StatusWidget::setRenderStatus(RenderStatus* state)
33 | {
34 | if (isVisible())
35 | m_statusLabel->setText(state->getMessage());
36 | }
37 |
38 | /*!
39 | \fn StatusWidget::resizeEvent(QResizeEvent* e)
40 | */
41 | void StatusWidget::resizeEvent(QResizeEvent* e)
42 | {
43 | if (parent()->inherits("QDockWidget")
44 | && qobject_cast(parent())->isFloating())
45 | m_statusLabel->setMaximumSize(e->size());
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/src/renderprogressdialog.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef RENDERPROGRESSDIALOG_H
19 | #define RENDERPROGRESSDIALOG_H
20 |
21 | #include "ui_renderprogressdialog.h"
22 | #include "renderthread.h"
23 | #include "mainviewer.h"
24 |
25 | class RenderProgressDialog : public QDialog, private Ui::RenderProgressDialog
26 | {
27 | Q_OBJECT
28 |
29 | QLabel m_finishedLabel;
30 | RenderThread* m_rthread;
31 | bool m_showMainViewer;
32 |
33 | public:
34 | RenderProgressDialog(QWidget*, RenderThread*);
35 | ~RenderProgressDialog();
36 | bool showMainViewer();
37 |
38 | public slots:
39 | void setRenderStatus(RenderStatus*);
40 |
41 | private slots:
42 | void yesButtonPressedSlot();
43 | };
44 |
45 |
46 |
47 | #endif
48 |
49 |
--------------------------------------------------------------------------------
/src/adjustscenewidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef ADJUSTSCENEWIDGET_H
20 | #define ADJUSTSCENEWIDGET_H
21 |
22 | #include "ui_adjustscenewidget.h"
23 | #include "xfedit.h"
24 |
25 | class AdjustSceneWidget : public QDialog, private Ui::AdjustSceneWidget
26 | {
27 | Q_OBJECT
28 |
29 | public:
30 | AdjustSceneWidget(FigureEditor*, QWidget* parent=0);
31 |
32 | protected slots:
33 | void toggleLabelsAction(bool);
34 | void toggleGridAction(bool);
35 | void gridColorSelectAction();
36 | void toggleGuideAction(bool);
37 | void guideColorSelectAction();
38 | void bgColorSelectAction();
39 | void togglePreviewAction(bool);
40 | void previewUpdatedAction();
41 |
42 | private:
43 | FigureEditor* editor;
44 | };
45 |
46 |
47 | #endif
48 |
49 |
--------------------------------------------------------------------------------
/src/directorylistview.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef DIRECTORYLISTVIEW_H
19 | #define DIRECTORYLISTVIEW_H
20 |
21 | #include
22 | #include
23 | #include
24 |
25 | #include "mainviewer.h"
26 |
27 | class DirectoryListView : public QListView
28 | {
29 | Q_OBJECT
30 |
31 | QModelIndex dragStartIndex;
32 |
33 | public:
34 | DirectoryListView(QWidget* parent=0);
35 | ~DirectoryListView();
36 |
37 | public slots:
38 | void viewerResizedAction(const QSize&);
39 |
40 | protected:
41 | void startDrag(Qt::DropActions);
42 | void mousePressEvent(QMouseEvent*);
43 | void wheelEvent(QWheelEvent*);
44 |
45 | private:
46 | MainViewer* viewer;
47 | QImage viewerImage;
48 | QSize viewerSize;
49 | };
50 |
51 |
52 | #endif
53 |
--------------------------------------------------------------------------------
/src/colorbalancewidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef COLORBALANCEWIDGET_H
20 | #define COLORBALANCEWIDGET_H
21 |
22 | #include
23 |
24 | #include "ui_colorbalancewidget.h"
25 | #include "genomevector.h"
26 |
27 | class ColorBalanceWidget : public QWidget, private Ui::ColorBalanceWidget
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | ColorBalanceWidget(GenomeVector*, QWidget* parent=0);
33 | void updateFormData();
34 | void reset();
35 |
36 | signals:
37 | void dataChanged();
38 | void paletteChanged();
39 |
40 | protected slots:
41 | void fieldEditedAction();
42 | void hueEditedAction();
43 | void setImageFormat(int format);
44 | void setEarlyClip(bool);
45 |
46 | private:
47 | GenomeVector* genome;
48 | QList palette;
49 | };
50 |
51 |
52 | #endif
53 |
--------------------------------------------------------------------------------
/src/gradientlistmodel.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef GRADIENTLISTMODEL_H
20 | #define GRADIENTLISTMODEL_H
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | class GradientListModel : public QAbstractListModel
27 | {
28 | Q_OBJECT
29 |
30 | public:
31 | GradientListModel ( QObject *parent = 0 );
32 |
33 | QVariant data ( const QModelIndex &index, int role = Qt::DisplayRole ) const;
34 | Qt::ItemFlags flags ( const QModelIndex &index ) const;
35 | bool removeRows ( int row, int count, const QModelIndex &parent=QModelIndex() );
36 | int rowCount ( const QModelIndex &parent ) const;
37 | void addGradient ( const QPixmap &pixmap );
38 | void clear();
39 |
40 | private:
41 | QList pixmaps;
42 | };
43 |
44 |
45 |
46 | #endif
47 |
--------------------------------------------------------------------------------
/src/qosmicwidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef QOSMICWIDGET_H
20 | #define QOSMICWIDGET_H
21 |
22 | #include
23 | #include
24 |
25 | /**
26 | * This here is some magik to help subclassed objects find each other. It's
27 | * main use is to allow each xxxxWidget object instance access to the others.
28 | * Each subclassed instance needs to have a unique name or it will be clobbered.
29 | */
30 | class QosmicWidget
31 | {
32 | static QMap widgets;
33 | QString myName;
34 | QosmicWidget();
35 |
36 | public:
37 | QosmicWidget(QosmicWidget*, QString);
38 | virtual ~QosmicWidget();
39 | template T* getWidget() const;
40 | void setWidget(const QString&, QosmicWidget*);
41 | QString qosmicWidgetName();
42 | };
43 |
44 |
45 | #endif
46 |
--------------------------------------------------------------------------------
/src/qosmicwidget.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #include "qosmicwidget.h"
20 | #include "logger.h"
21 |
22 | QMap QosmicWidget::widgets;
23 |
24 | QosmicWidget::QosmicWidget()
25 | {
26 | }
27 |
28 | QosmicWidget::~QosmicWidget()
29 | {
30 | }
31 |
32 | QosmicWidget::QosmicWidget(QosmicWidget* parent, QString name)
33 | : myName(name)
34 | {
35 | logFine(QString("QosmicWidget::QosmicWidget : adding instance %1").arg(name));
36 | setWidget(name, parent);
37 | }
38 |
39 |
40 | void QosmicWidget::setWidget(const QString& name, QosmicWidget* widget)
41 | {
42 | if (widgets.contains(name))
43 | logWarn(QString("QosmicWidget::setWidget : clobbering widget '%1'").arg(name));
44 | widgets[name] = widget;
45 | }
46 |
47 | QString QosmicWidget::qosmicWidgetName()
48 | {
49 | return myName;
50 | }
51 |
52 |
--------------------------------------------------------------------------------
/src/transformablegraphicsitem.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef TRANSFORMABLE_H
19 | #define TRANSFORMABLE_H
20 |
21 | class TransformableGraphicsGuide;
22 |
23 | /**
24 | * An interface that accepts a GraphicsGuide decorator.
25 | *
26 | * It's also necessary for the child class to extend the QGraphicsItem
27 | * interface as well since the main purpose of this class is to handle
28 | * reparenting of the GraphicsGuide instance.
29 | *
30 | */
31 | class TransformableGraphicsItem
32 | {
33 | protected:
34 | TransformableGraphicsGuide* m_guide;
35 |
36 | public:
37 | TransformableGraphicsItem();
38 | virtual void setGraphicsGuide(TransformableGraphicsGuide*);
39 | TransformableGraphicsGuide* graphicsGuide() const;
40 | };
41 |
42 | //--------------------------------------------------------------------------
43 |
44 | #endif // TRANSFORMABLE_H
45 |
--------------------------------------------------------------------------------
/icons/silk/shape_post_triangle.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * shape_post_triangle_xpm[] = {
3 | "32 32 43 1",
4 | " c None",
5 | ". c #7DA5E1",
6 | "+ c #8CB3E6",
7 | "@ c #7FA8E3",
8 | "# c #76A0DE",
9 | "$ c #9DBCE9",
10 | "% c #94B4E5",
11 | "& c #99B9E8",
12 | "* c #739BDD",
13 | "= c #98B7E7",
14 | "- c #8CACE2",
15 | "; c #7DA1DF",
16 | "> c #000000",
17 | ", c #576884",
18 | "' c #667C9E",
19 | ") c #7A9DDD",
20 | "! c #6E98DC",
21 | "~ c #829DC6",
22 | "{ c #354052",
23 | "] c #1F2631",
24 | "^ c #6B93DA",
25 | "/ c #89A7D4",
26 | "( c #050608",
27 | "_ c #85ABE3",
28 | ": c #8AA8D5",
29 | "< c #85A6E0",
30 | "[ c #87A5D2",
31 | "} c #374355",
32 | "| c #1F2531",
33 | "1 c #7097DB",
34 | "2 c #6690D8",
35 | "3 c #60769B",
36 | "4 c #648ED8",
37 | "5 c #060709",
38 | "6 c #202835",
39 | "7 c #62789E",
40 | "8 c #84A5DF",
41 | "9 c #638CD7",
42 | "0 c #90AFE4",
43 | "a c #5F88D5",
44 | "b c #688FD7",
45 | "c c #5A84D4",
46 | "d c #688FD8",
47 | " ",
48 | " ",
49 | " ",
50 | " ",
51 | " . ",
52 | " .. ",
53 | " +@# ",
54 | " $%@# ",
55 | " &&+.* ",
56 | " &==-;* ",
57 | " >>>>>>,==%-;* ",
58 | " >>>>>>>'%%-)! ",
59 | " >> ~{>]%%-*^ ",
60 | " >> =%/>(%%_*^ ",
61 | " >>%%%:>(%%<*^ ",
62 | " >>%%[}>|--<12 ",
63 | " >>>>>>>3--<14 ",
64 | " %>>>>567---8^9 ",
65 | " %%>>--------8^9 ",
66 | " %%%>>--------;^9 ",
67 | " %%0->>-----<<<)2a ",
68 | " %%0-->>----<<<8)ba ",
69 | " %0---->>--<<<888)bc ",
70 | " %0-------<<<<<888)4c ",
71 | " %0-------<<<<<8888)9c ",
72 | " ;<<<<88;;;;))))))))^9c ",
73 | " !111!!^^^^^2db4499999cc ",
74 | " ^^222449999aaacccccccccc ",
75 | " ",
76 | " ",
77 | " ",
78 | " "};
79 |
--------------------------------------------------------------------------------
/icons/silk/cross.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *cross[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 33 1",
5 | " c #E51B228B248D",
6 | ". c #E6D428692A6D",
7 | "X c #E9592C102E14",
8 | "o c #E9312F6F318C",
9 | "O c #EBFC33303563",
10 | "+ c #EC8A36B9390E",
11 | "@ c #EDBA3B753D83",
12 | "# c #EEDE3E324072",
13 | "$ c #F10D3ED240D2",
14 | "% c #EF9F42D34534",
15 | "& c #F21743314561",
16 | "* c #F1984718497B",
17 | "= c #F33F4AB64D1D",
18 | "- c #F4C24EB4513A",
19 | "; c #F4FB52085488",
20 | ": c #FCAD53F15634",
21 | "> c #F69F56DC596C",
22 | ", c #FE9756E1595C",
23 | "< c #F7665A455CB1",
24 | "1 c #FC495B1A5D11",
25 | "2 c #F8155E5B6102",
26 | "3 c #FA4F5EC8617E",
27 | "4 c #F83E60306269",
28 | "5 c #FB1762B2654D",
29 | "6 c #FB3D666468FB",
30 | "7 c #FD2D6B0A6D83",
31 | "8 c #FD066E9A7152",
32 | "9 c #FE7272DD75A4",
33 | "0 c #FF04768F797E",
34 | "q c #FF437A4F7D41",
35 | "w c #FF2D7E41818D",
36 | "e c #FF74820A8510",
37 | "r c None",
38 | /* pixels */
39 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
40 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
41 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
42 | "rrrrrrrrrrrrrrrrrrrrrrrr42rrrrrr",
43 | "rrrrrr0000rrrrrrrrrrrr4565>rrrrr",
44 | "rrrrr0qqq09rrrrrrrrrr456772;rrrr",
45 | "rrrr0qqqqq99rrrrrrrr2568096<;rrr",
46 | "rrrr00qwew098rrrrrr24679084>-rrr",
47 | "rrrr90qweeq976rrrr24670974;=rrrr",
48 | "rrrr990qeew0876rr24679982;=&rrrr",
49 | "rrrrrr890qww0862<2679972;=rrrrrr",
50 | "rrrrrr7789qwq9766678972;=%rrrrrr",
51 | "rrrrrrrr6780qq0099996<;*rrrrrrrr",
52 | "rrrrrrrr5568qq0999082;*%rrrrrrrr",
53 | "rrrrrrrrrr2690755697;*rrrrrrrrrr",
54 | "rrrrrrrrrr<5995,,376-%rrrrrrrrrr",
55 | "rrrrrrrrrr<5993,:176;%rrrrrrrrrr",
56 | "rrrrrrrrr<<599511576;*%rrrrrrrrr",
57 | "rrrrrrrr<<3689877776<=&@rrrrrrrr",
58 | "rrrrrrr<<267776555651;*#+rrrrrrr",
59 | "rrrrrr><26775<;=*=;<51;&@Orrrrrr",
60 | "rrrrr<<25776>=%@@@&=11>=$+Orrrrr",
61 | "rrrr><25775>=%rrrr+#*;1,=$OXrrrr",
62 | "rrrr><3675>=%#rrrrOO@&:,-&OXrrrr",
63 | "rrrr><353>=%rrrrrrrro+&==&+Xrrrr",
64 | "rrrr;><<;=%@rrrrrrrr.XO@&$OXrrrr",
65 | "rrrrr;;-*%rrrrrrrrrrrr.XOOXrrrrr",
66 | "rrrrrr=*%@rrrrrrrrrrrr XXrrrrrr",
67 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
68 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
69 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
70 | "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
71 | };
72 |
--------------------------------------------------------------------------------
/src/lua/highlighter.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef LUAHIGHLIGHTER_H
19 | #define LUAHIGHLIGHTER_H
20 |
21 | #include
22 |
23 | namespace Lua {
24 |
25 | class Highlighter : public QSyntaxHighlighter
26 | {
27 | public:
28 | Highlighter(QTextDocument *parent = 0);
29 |
30 | protected:
31 | void highlightBlock(const QString &text);
32 |
33 | private:
34 | struct HighlightingRule
35 | {
36 | QRegExp pattern;
37 | QTextCharFormat format;
38 | };
39 | QVector highlightingRules;
40 |
41 | QTextCharFormat keywordFormat;
42 | QTextCharFormat classFormat;
43 | QTextCharFormat singleLineCommentFormat;
44 | QTextCharFormat multiLineCommentFormat;
45 | QTextCharFormat quotationFormat;
46 | QTextCharFormat functionFormat;
47 | QTextCharFormat constantFormat;
48 |
49 | QRegExp multiLineStringExpression;
50 | QRegExp multiLineCommentExpression;
51 | };
52 |
53 | }
54 |
55 | #endif
56 |
--------------------------------------------------------------------------------
/src/selecttrianglewidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef SELECTTRIANGLEWIDGET_H
19 | #define SELECTTRIANGLEWIDGET_H
20 |
21 | #include "ui_selecttrianglewidget.h"
22 | #include "qosmicwidget.h"
23 | #include "xfedit.h"
24 |
25 |
26 | class SelectTriangleWidget
27 | : public QWidget, public QosmicWidget, private Ui::SelectTriangleWidget
28 | {
29 | Q_OBJECT
30 |
31 | Triangle* selectedTriangle;
32 | FigureEditor* triangleScene;
33 | GenomeVector* genome;
34 |
35 | public:
36 | SelectTriangleWidget(GenomeVector*, QWidget* =0);
37 | ~SelectTriangleWidget();
38 |
39 | signals:
40 | void dataChanged();
41 | void undoStateSignal();
42 |
43 | public slots:
44 | void triangleSelectedSlot(Triangle* t);
45 | void reset();
46 |
47 | protected slots:
48 | void fieldEditedAction();
49 | void triangleSelectedSlot(int);
50 | void addTriangleAction();
51 | void delTriangleAction();
52 | void finalStateChangedSlot(bool);
53 | };
54 |
55 |
56 | #endif
57 |
--------------------------------------------------------------------------------
/src/renderdialog.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef RENDERDIALOG_H
19 | #define RENDERDIALOG_H
20 |
21 | #include "ui_renderdialog.h"
22 |
23 |
24 |
25 | class RenderDialog : public QDialog, private Ui::RenderDialog
26 | {
27 | Q_OBJECT
28 |
29 | public:
30 | RenderDialog(QWidget*, QString name, QString path,
31 | QSize size, QStringList list);
32 | ~RenderDialog();
33 | QString absoluteFilePath();
34 | QString selectedPreset();
35 | bool presetSelected();
36 | QSize selectedSize();
37 | bool sizeSelected();
38 |
39 |
40 | public slots:
41 | void filePathButtonSlot();
42 | void accept();
43 | void addSizeButtonSlot();
44 | void delSizeButtonSlot();
45 |
46 | private:
47 | QString fileName;
48 | QString lastDir;
49 | QSize imgSize;
50 | QString sizeText;
51 | QStringList presets;
52 | QString size;
53 | QString preset;
54 | QString nopreset;
55 |
56 | QRegExpValidator sizeValidator;
57 | };
58 |
59 |
60 |
61 | #endif
62 |
63 |
--------------------------------------------------------------------------------
/src/colorselector.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #include "colorselector.h"
19 |
20 |
21 | ColorSelector::ColorSelector(QWidget* parent)
22 | : QLabel(parent), last_pos(0,0)
23 | {
24 | repaintLabel();
25 | }
26 |
27 | void ColorSelector::repaintLabel()
28 | {
29 | }
30 |
31 |
32 | void ColorSelector::mousePressEvent(QMouseEvent* e)
33 | {
34 | last_pos = e->pos();
35 | repaintLabel();
36 | emit colorSelected(last_pos);
37 | }
38 |
39 | void ColorSelector::mouseMoveEvent(QMouseEvent* e)
40 | {
41 | if (e->buttons() & Qt::LeftButton)
42 | {
43 | last_pos = e->pos();
44 | repaintLabel();
45 | emit colorSelected(last_pos);
46 | }
47 | }
48 |
49 | void ColorSelector::mouseReleaseEvent(QMouseEvent* e)
50 | {
51 | last_pos = e->pos();
52 | repaintLabel();
53 | }
54 |
55 | void ColorSelector::setSelectedIndex(QPoint p)
56 | {
57 | last_pos = p;
58 | repaintLabel();
59 | }
60 |
61 |
62 | QPoint ColorSelector::selectedIndex()
63 | {
64 | return last_pos;
65 | }
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/src/qosmic.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef QOSMIC_H
19 | #define QOSMIC_H
20 |
21 | #include
22 | #include
23 |
24 | #ifndef VERSION
25 | #define VERSION "unknown"
26 | #endif
27 |
28 | #ifndef SCRIPTSDIR
29 | #define SCRIPTSDIR ":/unknown"
30 | #endif
31 |
32 | static const QString QOSMIC_VERSION( VERSION );
33 | static const QString QOSMIC_SCRIPTSDIR( SCRIPTSDIR );
34 | static const QString QOSMIC_USERDIR( QDir::home().absoluteFilePath(".qosmic") );
35 | static const QString QOSMIC_AUTOSAVE( QOSMIC_USERDIR + "/autosave.flam3" );
36 |
37 | static const QString DEFAULT_FLAME_XML(
38 | "\n"
42 | "\n"
43 | "");
44 |
45 | #endif
46 |
--------------------------------------------------------------------------------
/src/lua/frame.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef FRAME_LUA_H
19 | #define FRAME_LUA_H
20 |
21 | #include "genomevector.h"
22 | #include "luatype.h"
23 | #include "lunar.h"
24 |
25 |
26 | namespace Lua
27 | {
28 | class LuaThreadAdapter;
29 | class Frame : public LuaType
30 | {
31 | GenomeVector* genome_vec;
32 |
33 | public:
34 | Frame(lua_State*);
35 | ~Frame();
36 |
37 | // lua interface
38 | int get_genome(lua_State*);
39 | int selected(lua_State*);
40 | int bitdepth(lua_State*);
41 | int earlyclip(lua_State*);
42 | int num_genomes(lua_State*);
43 | int update(lua_State*);
44 | int render(lua_State*);
45 | int load(lua_State*);
46 | int save(lua_State*);
47 | int copy_genome(lua_State*);
48 | int del_genome(lua_State*);
49 | int add_genome(lua_State*);
50 | int genomes(lua_State*);
51 | int genome(lua_State*);
52 |
53 | void setContext(LuaThreadAdapter*);
54 | static const char className[];
55 | static Lunar::RegType methods[];
56 | };
57 | }
58 |
59 | #endif
60 |
--------------------------------------------------------------------------------
/src/genomecolorselector.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef GENOMECOLORSELECTOR_H
20 | #define GENOMECOLORSELECTOR_H
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | #include "genomevector.h"
27 |
28 | class GenomeColorSelector : public QLabel
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | GenomeColorSelector(QWidget* parent=0, GenomeVector* g=0);
34 | void setGenome(int);
35 | void setGenomeVector(GenomeVector*);
36 | void mousePressEvent (QMouseEvent*);
37 | void mouseMoveEvent (QMouseEvent*);
38 | void mouseReleaseEvent (QMouseEvent*);
39 | void setSelectedIndex(int);
40 | int selectedIndex();
41 |
42 | signals:
43 | void colorSelected(double);
44 | void undoStateSignal();
45 |
46 | public slots:
47 | void repaintLabel();
48 | void toggleShowHistAction(bool);
49 |
50 | private:
51 | GenomeVector* genome;
52 | QMenu* popupMenu;
53 | QAction* histMenuAction;
54 | int selected_y;
55 | int last_y;
56 | bool show_histogram;
57 | };
58 |
59 |
60 | #endif
61 |
--------------------------------------------------------------------------------
/ui/chaoswidget.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | ChaosWidget
4 |
5 |
6 |
7 | 0
8 | 0
9 | 200
10 | 371
11 |
12 |
13 |
14 | Chaos
15 |
16 |
17 | -
18 |
19 |
20 |
21 | 0
22 | 0
23 |
24 |
25 |
26 | QFrame::NoFrame
27 |
28 |
29 | Qt::ScrollBarAlwaysOn
30 |
31 |
32 | Qt::ScrollBarAlwaysOff
33 |
34 |
35 | false
36 |
37 |
38 | QAbstractItemView::SingleSelection
39 |
40 |
41 | QAbstractItemView::SelectRows
42 |
43 |
44 | false
45 |
46 |
47 | false
48 |
49 |
50 | false
51 |
52 |
53 | true
54 |
55 |
56 | true
57 |
58 |
59 | false
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | ChaosTableView
68 | QTableView
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/src/intvalueeditor.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef INTVALUEEDITOR_H
20 | #define INTVALUEEDITOR_H
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | #include "wheelvalueeditor.h"
27 |
28 | class IntValueEditor : public QSpinBox
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | IntValueEditor(QWidget* parent=0);
34 | void updateValue(int);
35 | void setWheelEventUpdate(bool);
36 | bool wheelEventUpdate() const;
37 | void restoreSettings();
38 | void stepUp();
39 | void stepDown();
40 |
41 | signals:
42 | void valueUpdated();
43 | void undoStateSignal();
44 |
45 | protected:
46 | void keyPressEvent(QKeyEvent*);
47 | void wheelEvent(QWheelEvent*);
48 | void mousePressEvent(QMouseEvent*);
49 | void mouseMoveEvent(QMouseEvent*);
50 | void mouseReleaseEvent(QMouseEvent*);
51 |
52 | private:
53 | bool wheelEventSignal;
54 | int start_value;
55 | int default_step;
56 | QPointF start_pos;
57 | QPointF last_pos;
58 | QMouseEvent* last_press;
59 | };
60 |
61 |
62 | #endif
63 |
--------------------------------------------------------------------------------
/ui/genomevectorlistmodelitemeditor.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | GenomeVectorListModelItemEditor
4 |
5 |
6 |
7 | 0
8 | 0
9 | 126
10 | 36
11 |
12 |
13 |
14 | Form
15 |
16 |
17 | true
18 |
19 |
20 | -
21 |
22 |
23 | temporal position of this genome in the animation sequence
24 |
25 |
26 | time
27 |
28 |
29 | Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
30 |
31 |
32 |
33 | -
34 |
35 |
36 | 2000000000
37 |
38 |
39 |
40 | -
41 |
42 |
43 |
44 | 0
45 | 0
46 |
47 |
48 |
49 |
50 | 4
51 | 4
52 |
53 |
54 |
55 | x
56 |
57 |
58 |
59 | :/icons/silk/bullet_black.xpm:/icons/silk/bullet_black.xpm
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | IntValueEditor
68 | QSpinBox
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/icons/silk/page_white.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *page_white[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 38 1",
5 | " c #A58AA58AA58A",
6 | ". c #A95BA95BA95B",
7 | "X c #AB33AB33AB33",
8 | "o c #ACE2ACE2ACE2",
9 | "O c #ADAFADAFADAF",
10 | "+ c #C8ACC8ACC8AC",
11 | "@ c #C9DBC9DBC9DB",
12 | "# c #CD97CD97CD97",
13 | "$ c #D0AED0AED0AE",
14 | "% c #D700D700D700",
15 | "& c #D809D809D809",
16 | "* c #D8A9D8A9D8A9",
17 | "= c #DCFEDCFEDCFE",
18 | "- c #E2BCE2BCE2BC",
19 | "; c #E487E487E487",
20 | ": c #E85BE85BE85B",
21 | "> c #EA46EA46EA46",
22 | ", c #EB16EB16EB16",
23 | "< c #EC26EC26EC26",
24 | "1 c #ECCDECCDECCD",
25 | "2 c #EE0BEE0BEE0B",
26 | "3 c #EEEDEEEDEEED",
27 | "4 c #F019F019F019",
28 | "5 c #F0E6F0E6F0E6",
29 | "6 c #F1DBF1DBF1DB",
30 | "7 c #F2EDF2EDF2ED",
31 | "8 c #F400F400F400",
32 | "9 c #F51AF51AF51A",
33 | "0 c #F604F604F604",
34 | "q c #F708F708F708",
35 | "w c #F7F6F7F6F7F6",
36 | "e c #F8FFF8FFF8FF",
37 | "r c #FA08FA08FA08",
38 | "t c #FB00FB00FB00",
39 | "y c #FC05FC05FC05",
40 | "u c #FCECFCECFCEC",
41 | "i c #FE00FE00FE00",
42 | "p c None",
43 | /* pixels */
44 | "pppppppppppppppppppppppppppppppp",
45 | "pppppppppppppppppppppppppppppppp",
46 | "pppp%>,,<<<<<<<1111<>*.ppppppppp",
47 | "pppp>yyyyuuuuyytttrty2@ pppppppp",
48 | "pppp,yewwwweew098747r0;# ppppppp",
49 | "pppp,yw00q00097652,2er6-+Xpppppp",
50 | "pppp*oppppp",
51 | "pppp:2e1pppp",
56 | "pppp. *
17 | ***************************************************************************/
18 | #ifndef BASISTRIANGLE_H
19 | #define BASISTRIANGLE_H
20 |
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 |
27 | typedef QPolygonF TriangleCoords;
28 | typedef QList::iterator TriangleCoordsIterator;
29 |
30 | class FigureEditor;
31 |
32 | class BasisTriangle : public QGraphicsPolygonItem
33 | {
34 | protected:
35 | QTransform coordinateTransform;
36 | FigureEditor* canvas;
37 |
38 | public:
39 | QPointF A, B, C;
40 | enum { Type = UserType + 1 };
41 |
42 | BasisTriangle(FigureEditor* xfedit, QTransform& m);
43 | ~BasisTriangle();
44 | int type() const;
45 | void setPoints(QPolygonF);
46 | void setPoints(QPointF, QPointF, QPointF);
47 | const QTransform& coordTransform() const;
48 | void setCoordTransform(QTransform);
49 | void scale(double, double);
50 | TriangleCoords getCoords(double c[3][2]);
51 | void applyTransform(TriangleCoords&, double[3][2]);
52 | };
53 |
54 |
55 | #endif
56 |
--------------------------------------------------------------------------------
/src/doublevalueeditor.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef DOUBLEVALUEEDITOR_H
20 | #define DOUBLEVALUEEDITOR_H
21 |
22 | #include
23 | #include
24 | #include
25 |
26 | #include "wheelvalueeditor.h"
27 |
28 | class DoubleValueEditor : public QDoubleSpinBox
29 | {
30 | Q_OBJECT
31 |
32 | public:
33 | DoubleValueEditor(QWidget* parent=0);
34 | void updateValue(double);
35 | void setWheelEventUpdate(bool);
36 | bool wheelEventUpdate() const;
37 | void restoreSettings();
38 | void stepUp();
39 | void stepDown();
40 |
41 | signals:
42 | void valueUpdated();
43 | void undoStateSignal();
44 |
45 | protected:
46 | void keyPressEvent(QKeyEvent*);
47 | void wheelEvent(QWheelEvent*);
48 | void mousePressEvent(QMouseEvent*);
49 | void mouseMoveEvent(QMouseEvent*);
50 | void mouseReleaseEvent(QMouseEvent*);
51 |
52 | private:
53 | bool wheelEventSignal;
54 | double start_value;
55 | double default_step;
56 | QPointF start_pos;
57 | QPointF last_pos;
58 | QMouseEvent* last_press;
59 | };
60 |
61 |
62 | #endif
63 |
--------------------------------------------------------------------------------
/src/coordinatemark.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #include "coordinatemark.h"
19 |
20 |
21 | CoordinateMark::CoordinateMark(QGraphicsItem* parent)
22 | : QGraphicsPolygonItem(QRectF(0.,0.,10.,10.),parent)
23 | {
24 | m_path.moveTo(4.0, 0.0);
25 | m_path.lineTo(4.0, 4.0);
26 | m_path.lineTo(0.0, 4.0);
27 |
28 | m_path.moveTo(0.0, 6.0);
29 | m_path.lineTo(4.0, 6.0);
30 | m_path.lineTo(4.0, 10.0);
31 |
32 | m_path.moveTo(6.0, 10.0);
33 | m_path.lineTo(6.0, 6.0);
34 | m_path.lineTo(10.0, 6.0);
35 |
36 | m_path.moveTo(10.0, 4.0);
37 | m_path.lineTo(6.0, 4.0);
38 | m_path.lineTo(6.0, 0.0);
39 | }
40 |
41 | void CoordinateMark::paint(QPainter* painter,
42 | const QStyleOptionGraphicsItem* /*option*/,
43 | QWidget* /*widget*/)
44 | {
45 | painter->setPen(pen());
46 | painter->drawPath(m_path);
47 | }
48 |
49 | int CoordinateMark::type() const
50 | {
51 | return Type;
52 | }
53 |
54 | QPointF CoordinateMark::center() const
55 | {
56 | return pos() + QPointF(5.,5.);
57 | }
58 |
59 | void CoordinateMark::centerOn(const QPointF& p)
60 | {
61 | setPos(p + QPointF(-5.,-5.));
62 | }
63 |
64 |
--------------------------------------------------------------------------------
/src/imgsettingswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef IMGSETTINGSWIDGET_H
19 | #define IMGSETTINGSWIDGET_H
20 |
21 | #include
22 |
23 | #include "ui_imgsettingswidget.h"
24 | #include "viewerpresetswidget.h"
25 | #include "genomevector.h"
26 |
27 | class ImageSettingsWidget : public QWidget, private Ui::ImageSettingsWidget
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | ImageSettingsWidget(GenomeVector*, QWidget* parent=0);
33 | void updateFormData();
34 | void reset();
35 |
36 | signals:
37 | void dataChanged();
38 | void symmetryAdded();
39 | void presetSelected();
40 |
41 | protected slots:
42 | void fieldEditedAction();
43 | void applySymmetryAction();
44 | void moveStackLeftAction();
45 | void moveStackRightAction();
46 | void showPresetsDialog();
47 | void selectPresetAction(int);
48 | void presetsDataChangedAction();
49 | void resetPresetsComboBoxAction();
50 |
51 | protected:
52 | void hideEvent(QHideEvent*);
53 |
54 | private:
55 | GenomeVector* genome;
56 | ViewerPresetsWidget* presets;
57 | QTimer* timer;
58 | };
59 |
60 |
61 | #endif
62 |
--------------------------------------------------------------------------------
/src/viewerpresetswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef VIEWERPRESETSWIDGET_H
19 | #define VIEWERPRESETSWIDGET_H
20 |
21 | #include "ui_viewerpresetswidget.h"
22 |
23 | #include "genomevector.h"
24 | #include "qosmicwidget.h"
25 | #include "viewerpresetsmodel.h"
26 |
27 | class ViewerPresetsWidget : public QWidget, public QosmicWidget,
28 | private Ui::ViewerPresetsWidget
29 | {
30 | Q_OBJECT
31 |
32 | GenomeVector* genomes;
33 | ViewerPresetsModel* model;
34 |
35 | public:
36 | ViewerPresetsWidget(GenomeVector*, QWidget* =0);
37 | QStringList presetNames();
38 | QString current();
39 | void selectPreset(const QString&);
40 | void selectPreset(int);
41 | int selectedIndex() const;
42 | void reset();
43 |
44 | public slots:
45 | void addPresetSlot();
46 | void delPresetSlot();
47 | void updatePresetSlot();
48 | void moveUpSlot();
49 | void moveDownSlot();
50 | void presetSelectedSlot(const QModelIndex&);
51 |
52 | signals:
53 | void presetSelected();
54 | void dataChanged();
55 |
56 | protected:
57 | void keyPressEvent(QKeyEvent*);
58 | };
59 |
60 | #endif
61 |
--------------------------------------------------------------------------------
/src/colorsettingswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef COLORSETTINGSWIDGET_H
20 | #define COLORSETTINGSWIDGET_H
21 |
22 | #include
23 | #include
24 |
25 | #include "ui_colorsettingswidget.h"
26 | #include "genomevector.h"
27 | #include "triangle.h"
28 |
29 |
30 | class ColorSettingsWidget : public QWidget, private Ui::ColorSettingsWidget
31 | {
32 | Q_OBJECT
33 |
34 | public:
35 | ColorSettingsWidget(GenomeVector*, QWidget* parent=0);
36 | void updateFormData();
37 | void updateColorLabel();
38 |
39 | signals:
40 | void dataChanged();
41 | void colorChanged(double);
42 | void colorSelected(double);
43 | void undoStateSignal();
44 |
45 | public slots:
46 | void triangleSelectedSlot(Triangle*);
47 | void reset();
48 |
49 | protected slots:
50 | void fieldEditedAction();
51 | void colorChangedAction();
52 | void colorSelectedAction(double);
53 | void changeBackground(QColor);
54 |
55 | protected:
56 | void showEvent(QShowEvent*);
57 |
58 | private:
59 | GenomeVector* genome;
60 | Triangle* selectedTriangle;
61 | };
62 |
63 |
64 | #endif
65 |
--------------------------------------------------------------------------------
/src/nodeitem.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef NODEITEM_H
19 | #define NODEITEM_H
20 |
21 | #include
22 | #include
23 |
24 | #include "triangle.h"
25 |
26 | class NodeItem : public QGraphicsEllipseItem
27 | {
28 | QGraphicsScene* canvas;
29 | Triangle* edges;
30 | QString m_name;
31 | QRectF m_boundingRect;
32 | QGraphicsSimpleTextItem* label;
33 | QPen std_pen;
34 | int m_index;
35 |
36 | public:
37 | NodeItem( QGraphicsScene*, Triangle*, int, const char* n = "" );
38 | ~NodeItem();
39 | Triangle* triangle();
40 | void setTriangle(Triangle*);
41 | void moveBy(double, double);
42 | void movePoint(double, double);
43 | int type() const;
44 | void setPos(const QPointF&);
45 | void setPen(const QPen&, const QPen&);
46 | QRectF boundingRect();
47 | QString name() const;
48 | int id() const;
49 | void setVisible(bool);
50 |
51 | protected:
52 | void hoverEnterEvent(QGraphicsSceneHoverEvent*);
53 | void hoverLeaveEvent(QGraphicsSceneHoverEvent*);
54 |
55 | public:
56 | enum { Type = UserType + 3 };
57 | };
58 |
59 |
60 |
61 | #endif
62 |
--------------------------------------------------------------------------------
/src/colordialog.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef COLORDIALOG_H
19 | #define COLORDIALOG_H
20 |
21 | #include "colorselector.h"
22 |
23 | class HueSatSelector : public ColorSelector
24 | {
25 | int value;
26 |
27 | public:
28 | HueSatSelector(QWidget* parent=0);
29 | void setSelectedIndex(QColor);
30 | void repaintLabel();
31 | };
32 |
33 | class ValSelector : public ColorSelector
34 | {
35 | public:
36 | ValSelector(QWidget* parent=0);
37 | void setSelectedIndex(QColor);
38 | void repaintLabel();
39 | };
40 |
41 |
42 |
43 | #include "ui_colordialog.h"
44 |
45 |
46 | class ColorDialog : public QDialog, private Ui::ColorDialog
47 | {
48 | Q_OBJECT
49 |
50 | public:
51 | ColorDialog(QWidget* parent=0);
52 | ~ColorDialog();
53 | QColor getSelectedColor();
54 | void setSelectedColor(QColor);
55 | void setAlphaEnabled(bool);
56 |
57 | private slots:
58 | void indexSelected(QPoint);
59 | void rgbSpinValueChanged();
60 | void hsvSpinValueChanged();
61 |
62 | signals:
63 | void colorSelected(QColor);
64 |
65 | private:
66 | QColor selectedColor;
67 |
68 | };
69 |
70 |
71 |
72 | #endif
73 |
--------------------------------------------------------------------------------
/src/variationswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef VARIATIONSWIDGET_H
19 | #define VARIATIONSWIDGET_H
20 |
21 | #include
22 | #include
23 |
24 | #include "ui_variationswidget.h"
25 | #include "genomevector.h"
26 | #include "triangle.h"
27 | #include "varstablewidget.h"
28 |
29 |
30 | class VariationsWidget : public QWidget, private Ui::VariationsWidget
31 | {
32 | Q_OBJECT
33 |
34 | public:
35 | VariationsWidget(GenomeVector*, QWidget* parent=0);
36 | ~VariationsWidget();
37 |
38 | public slots:
39 | void triangleSelectedSlot(Triangle* t);
40 | void updateFormData();
41 |
42 | signals:
43 | void dataChanged();
44 | void undoStateSignal();
45 |
46 | protected:
47 | void wheelEvent(QWheelEvent*);
48 | void resetVariationSelector();
49 |
50 | protected slots:
51 | void variationEditedSlot(int);
52 | void valueEditorUpdatedSlot();
53 | void variationSelectedSlot(int);
54 | void addVariationValueSlot();
55 |
56 | private:
57 | GenomeVector* genome;
58 | Triangle* selectedTriangle;
59 | VarsTableModel* model;
60 | QString lastVariation;
61 | };
62 |
63 |
64 | #endif
65 |
--------------------------------------------------------------------------------
/ui/variationswidget.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | VariationsWidget
4 |
5 |
6 |
7 | 0
8 | 0
9 | 182
10 | 241
11 |
12 |
13 |
14 | Variations
15 |
16 |
17 | -
18 |
19 |
-
20 |
21 |
22 | -
23 |
24 |
25 | -99.000000000000000
26 |
27 |
28 | 99.000000000000000
29 |
30 |
31 |
32 | -
33 |
34 |
35 | apply value
36 |
37 |
38 | +
39 |
40 |
41 |
42 |
43 |
44 | -
45 |
46 |
47 |
48 | 0
49 | 0
50 |
51 |
52 |
53 | QFrame::NoFrame
54 |
55 |
56 | Qt::ScrollBarAlwaysOn
57 |
58 |
59 | Qt::ScrollBarAlwaysOff
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | DoubleValueEditor
68 | QDoubleSpinBox
69 |
70 |
71 |
72 | VarsTableWidget
73 | QTreeView
74 |
75 |
76 |
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/scripts/functions.lua:
--------------------------------------------------------------------------------
1 | function dump_xform(xf)
2 | print(xf)
3 | print('index=',xf:index())
4 | print('pos=',xf:pos())
5 | print('color=',xf:color())
6 | print('density=',xf:density())
7 | print('color_speed=',xf:color_speed())
8 | print('opacity=',xf:opacity())
9 | print('a=',xf:a())
10 | print('b=',xf:b())
11 | print('c=',xf:c())
12 | for _, v in ipairs(VARIATIONS) do
13 | val, vars = xf:var(_)
14 | if val ~= 0 then
15 | print(v .. '=', val)
16 | for _, v in pairs(vars) do
17 | print(' ' .. _ .. '=', v)
18 | end
19 | end
20 | end
21 | end
22 |
23 | function dump_genome(g)
24 | print(g)
25 | nxf = g:num_xforms()
26 | print('num_xforms=',nxf)
27 | print('size=',g:width(),g:height())
28 | print('time=',g:time())
29 | print('final_xform_index=',g:final_xform_index())
30 | print('center=',g:center())
31 | print('rotate=',g:rotate())
32 | print('zoom=',g:zoom())
33 | print('nbatches=',g:nbatches())
34 | print('estimator=',g:estimator())
35 | print('estimator_curve=',g:estimator_curve())
36 | print('estimator_minimum=',g:estimator_minimum())
37 | print('sample_density=',g:sample_density())
38 | print('scale=',g:pixels_per_unit())
39 | print('background=', g:background())
40 | print()
41 | if (nxf > 0) then
42 | for n = 1, nxf do
43 | dump_xform(g:get_xform(n))
44 | print()
45 | end
46 | end
47 | end
48 |
49 | function set_low_quality(g)
50 | g:spatial_filter_radius(0)
51 | g:sample_density(40) -- quality
52 | g:ntemporal_samples(1)
53 | g:estimator(0)
54 | g:nbatches(1) -- passes
55 | end
56 |
57 | function modify_xf_test(xf,d)
58 | for n=1,100 do
59 | xf:translate(d*0.05,0)
60 | xf:rotate(3.6)
61 | xf:scale(0.95)
62 | frame:render()
63 | end
64 | end
65 |
66 | function rotate_xf_test(xf)
67 | for n=1,360 do
68 | xf:rotate(1)
69 | frame:update() -- update the widgets' data
70 | end
71 | end
72 |
73 | function spread_colors(g)
74 | -- Spreads the color parameters evenly over all
75 | -- xforms in genome
76 | local num_xf = g:num_xforms()
77 | for i = 1, num_xf do
78 | g:get_xform(i):color(i / num_xf);
79 | end
80 | end
81 |
82 | function spread_density(g)
83 | -- Spreads the xform density parameters evenly over 1.0
84 | local num_xf = g:num_xforms()
85 | for i = 1, num_xf do
86 | g:get_xform(i):density(1.0 / num_xf);
87 | end
88 | end
89 |
90 | function bw_palette(g)
91 | -- Creates a white to black gradient in the palette for genome g
92 | for i = 1,256 do
93 | v = (256-i)/256
94 | g:palette(i, v,v,v)
95 | end
96 | end
97 |
98 |
--------------------------------------------------------------------------------
/src/undoring.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef UNDORING_H
19 | #define UNDORING_H
20 |
21 | #include
22 |
23 | #include "flam3util.h"
24 |
25 | #define UNDORING_SIZE 50
26 |
27 | class UndoState
28 | {
29 | public:
30 | flam3_genome Genome;
31 | QPolygonF SelectionRect;
32 | int SelectedType;
33 | QList NodesO;
34 | QList NodesX;
35 | QList NodesY;
36 | QList Triangles;
37 | QPointF MarkPos;
38 |
39 | UndoState();
40 | UndoState(const UndoState&);
41 | UndoState& operator=(const UndoState&);
42 | void clear();
43 | };
44 |
45 | class UndoStateProvider
46 | {
47 | public:
48 | virtual void provideState(UndoState*) =0;
49 | virtual void restoreState(UndoState*) =0;
50 | };
51 |
52 | class UndoRing
53 | {
54 | qint64 head;
55 | qint64 current;
56 |
57 | UndoState ring[UNDORING_SIZE];
58 |
59 | public:
60 | UndoRing();
61 | UndoRing(const UndoRing&);
62 | UndoRing& operator=(const UndoRing&);
63 | ~UndoRing();
64 | UndoState* prev();
65 | UndoState* next();
66 | UndoState* advance();
67 | UndoState* currentState();
68 | void clear();
69 | int index();
70 | int size();
71 | bool atHead();
72 | bool atTail();
73 | };
74 |
75 | #endif
76 |
--------------------------------------------------------------------------------
/src/trianglecoordswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef TRIANGLECOORDSWIDGET_H
20 | #define TRIANGLECOORDSWIDGET_H
21 |
22 | #include
23 |
24 | #include "ui_trianglecoordswidget.h"
25 |
26 | class Triangle;
27 | class GenomeVector;
28 |
29 | class TriangleCoordsWidget : public QWidget, private Ui::TriangleCoordsWidget
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | enum CoordType { Rect, Degree, Radian };
35 |
36 | private:
37 | int genome_offset;
38 | GenomeVector* genome;
39 | Triangle* selectedTriangle;
40 | QButtonGroup* coordsButtonGroup;
41 | CoordType coords;
42 |
43 | public:
44 | TriangleCoordsWidget(GenomeVector*, QWidget* parent=0);
45 | void setGenome(int);
46 | void updateFormData();
47 | CoordType coordType();
48 |
49 | signals:
50 | void dataChanged();
51 | void undoStateSignal();
52 |
53 | public slots:
54 | void triangleSelectedSlot(Triangle*);
55 | void triangleModifiedSlot(Triangle*);
56 |
57 | protected slots:
58 | void fieldCoordsEditedAction();
59 | void fieldVariablesEditedAction();
60 | void coordsButtonGroupClickedAction();
61 |
62 | protected:
63 | void showEvent(QShowEvent*);
64 |
65 | private:
66 | void updateCoordsFormData();
67 | void updateVariablesFormData();
68 | };
69 |
70 | #endif
71 |
--------------------------------------------------------------------------------
/icons/silk/color_swatch.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *color_swatch[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 47 1",
5 | " c #FFE96BC169D0",
6 | ". c #FFE96CF76A01",
7 | "X c #FEF96E426B42",
8 | "o c #FEFE6F6F6B6B",
9 | "O c #4AEFCD2169C7",
10 | "+ c #4A3ACCD26BE6",
11 | "@ c #4D47CE54689E",
12 | "# c #4C7FCE0F6ABE",
13 | "$ c #4D96CDC66B32",
14 | "% c #4DC3CC2E6C0D",
15 | "& c #4CD4CD796D4E",
16 | "* c #4FFECD5B6AEB",
17 | "= c #5050CCCC6D6D",
18 | "- c #FFFFA91B73DD",
19 | "; c #FFFFA9E373A3",
20 | ": c #FFFFAAAA7373",
21 | "> c #FFFFABBC73A3",
22 | ", c #F3CED69264C6",
23 | "< c #F390D774647B",
24 | "1 c #F0F0D5D56767",
25 | "2 c #F0A4D6B0672A",
26 | "3 c #5348778BAFB5",
27 | "4 c #55C679D2AFCB",
28 | "5 c #55F4783AB0A6",
29 | "6 c #58587A7AB0B0",
30 | "7 c #FFFF759CAF97",
31 | "8 c #FFFF768AB0AD",
32 | "9 c #FFFF7777B1B1",
33 | "0 c #5D82AFF3EE8C",
34 | "q c #5D35B1D3ED13",
35 | "w c #5D84B145EFA7",
36 | "e c #5DD7AF5DF11C",
37 | "r c #60B2B021EE6D",
38 | "t c #6060B0B0EBEB",
39 | "y c #CFE5EE63B41C",
40 | "u c #D0D0EBEBB2B2",
41 | "i c #D334EE2BB2BC",
42 | "p c #D35DEC89B412",
43 | "a c #D5DBEED0B427",
44 | "s c #D27FEF0AB584",
45 | "d c #D9D99B9BDDDD",
46 | "f c #DC939AA1E018",
47 | "g c #D9179C53DEBD",
48 | "h c #DC6B9C43DEC2",
49 | "j c #DBDF9B59E10A",
50 | "k c #DF3F9B50E109",
51 | "l c None",
52 | /* pixels */
53 | "llllllllllllllllllllllllllllllll",
54 | "llllllllllllllllllllllllllllllll",
55 | "llllllllllllllllllllllllllllllll",
56 | "llllllllllllllllllllllllllllllll",
57 | "lllloooooXll>::::;ll211111llllll",
58 | "lllloooooXll>::::;ll211111llllll",
59 | "lllloooooXll>::::;ll211111llllll",
60 | "lllloooooXll>::::;ll211111llllll",
61 | "lllloooooXll>::::;ll211111llllll",
62 | "llll..... ll>;;;;-ll<,,,,,llllll",
63 | "llllllllllllllllllllllllllllllll",
64 | "llllllllllllllllllllllllllllllll",
65 | "llllyyyyysll+&&&lle00000llllll",
66 | "lllluuuuupll%====*llrtttttllllll",
67 | "lllluuuuupll%====*llrtttttllllll",
68 | "lllluuuuupll%====*llrtttttllllll",
69 | "lllluuuuupll%====*llrtttttllllll",
70 | "lllliiiiiallO$$$$@llwqqqqqllllll",
71 | "llllllllllllllllllllllllllllllll",
72 | "llllllllllllllllllllllllllllllll",
73 | "llll555553llkffffjll788888llllll",
74 | "llll666664llhddddgll899999llllll",
75 | "llll666664llhddddgll899999llllll",
76 | "llll666664llhddddgll899999llllll",
77 | "llll666664llhddddgll899999llllll",
78 | "llll666664llhddddgll899999llllll",
79 | "llllllllllllllllllllllllllllllll",
80 | "llllllllllllllllllllllllllllllll",
81 | "llllllllllllllllllllllllllllllll",
82 | "llllllllllllllllllllllllllllllll",
83 | "llllllllllllllllllllllllllllllll",
84 | "llllllllllllllllllllllllllllllll"
85 | };
86 |
--------------------------------------------------------------------------------
/src/posttriangle.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ****************************************************************************/
18 | #include
19 | #include "posttriangle.h"
20 | #include "logger.h"
21 |
22 |
23 | PostTriangle::PostTriangle(FigureEditor* c, flam3_xform* x, BasisTriangle* b)
24 | : Triangle(c, x, b, -1)
25 | {
26 | logFiner("PostTriangle::PostTriangle : constr");
27 | TriangleCoords tc = basisTriangle->getCoords(m_xform->post);
28 | setPoints(tc);
29 | }
30 |
31 | void PostTriangle::resetPosition()
32 | {
33 | m_xform->post[0][0] = 1.0;
34 | m_xform->post[0][1] = 0.0;
35 | m_xform->post[1][0] = 0.0;
36 | m_xform->post[1][1] = 1.0;
37 | m_xform->post[2][0] = 0.0;
38 | m_xform->post[2][1] = 0.0;
39 |
40 | TriangleCoords tc = basisTriangle->getCoords(m_xform->post);
41 | setPoints(tc);
42 | }
43 |
44 | void PostTriangle::coordsToXForm()
45 | {
46 | logFiner("PostTriangle::coordsToXForm : enter");
47 | basisTriangle->applyTransform(cList, m_xform->post);
48 | }
49 |
50 | int PostTriangle::type() const
51 | {
52 | return Type;
53 | }
54 |
55 | void PostTriangle::basisScaledSlot()
56 | {
57 | const QTransform basis(basisTriangle->coordTransform());
58 | setTransform(basis);
59 | TriangleCoords tc = basisTriangle->getCoords(m_xform->post);
60 | setPoints(tc);
61 | QBrush b(brush());
62 | b.setTransform(basis);
63 | setBrush(b);
64 | }
65 |
66 |
67 |
--------------------------------------------------------------------------------
/icons/silk/shape_move_forwards.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *shape_move_forwards[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 50 1",
5 | " c #53A27FD5D199",
6 | ". c #5AB984E2D36F",
7 | "X c #63238B76D6EA",
8 | "o c #68158FA2D88F",
9 | "O c #67AC906DD856",
10 | "+ c #66F091BAD97E",
11 | "@ c #6C739492DA40",
12 | "# c #6FA09960DC42",
13 | "$ c #713097DCDBED",
14 | "% c #749A9BDFDD3D",
15 | "& c #7B739DC1DC60",
16 | "* c #7C42A126DF15",
17 | "= c #7C97A4DDE19E",
18 | "- c #7EE3A865E26E",
19 | "; c #838EA39CDE80",
20 | ": c #859AA6C6E0F6",
21 | "> c #88A8A7FCE0F3",
22 | ", c #84D8ABE3E3EE",
23 | "< c #8C37AC7FE2F1",
24 | "1 c #90B2AFEDE41E",
25 | "2 c #87EFB180E5B9",
26 | "3 c #8C52B323E69C",
27 | "4 c #9433B471E622",
28 | "5 c #9936B775E714",
29 | "6 c #9766B8BDE81F",
30 | "7 c #99DFB8E4E7FA",
31 | "8 c #9CC4BC4CE96D",
32 | "9 c #A117BF77EAC2",
33 | "0 c #B6DFC360D976",
34 | "q c #B8D2C57BDB91",
35 | "w c #A009C064EB4B",
36 | "e c #A3AAC232EBC5",
37 | "r c #C64AC64AC64A",
38 | "t c #CBFDCBFDCBFD",
39 | "y c #D4E3D4E3D4E3",
40 | "u c #DA7FD9AED83E",
41 | "i c #DBA1DB85DB54",
42 | "p c #C3DACE0FE067",
43 | "a c #C638D060E249",
44 | "s c #D1E4DC47EF60",
45 | "d c #D413DE5EF1A0",
46 | "f c #D792E1A9F444",
47 | "g c #DC3EE429F2AE",
48 | "h c #E5ABE519E403",
49 | "j c #EDAEEDAEEDAE",
50 | "k c #F067F2ECF78A",
51 | "l c #F23CF231F212",
52 | "z c #F8C7F7D4F60D",
53 | "x c #FF52FEC9FDA5",
54 | "c c None",
55 | /* pixels */
56 | "cccccccccccccccccccccccccccccccc",
57 | "cccccccccccccccccccccccccccccccc",
58 | "cccccccccccccccccccccccccccccccc",
59 | "cccccccccccccccccccccccccccccccc",
60 | "cc33333322,,,,,,,-====*%cccccccc",
61 | "cc3344444333332<,,,,,=*%cccccccc",
62 | "cc348e888888876664444<*%cccccccc",
63 | "cc34weeeeee9988887755<*$cccccccc",
64 | "cc248eeeee98888775544<cccccccc",
65 | "cc238eee9888877554444>%@cccccccc",
66 | "cc,38e998888775544444>%@cccccccc",
67 | "cc,38998887755444444<:$@cccccccc",
68 | "cc,378888775544441<<<;@&0iuuyycc",
69 | "cc,<6887755444441<<<<*+;phhiuycc",
70 | "cc-,68775544444<<<<<<*o;szzjiycc",
71 | "cc=,477544444<<<<<<>>&o;fxxliycc",
72 | "cc=,45544441<<<<<>>>>&X;dxxliycc",
73 | "cc=:3544441<<<<<>>>>;&X;dxxlitcc",
74 | "cc%=<44441<<<<<>>>:;;%X;dxxlitcc",
75 | "cc%*:<>>:::;**&&&&%%%@.&dxxlutcc",
76 | "cc%%%%%%$#@@OOoXXXXXX. &sxxlutcc",
77 | "cc$#@@@++@&;;;;;;;;*&&&5gxxlutcc",
78 | "ccccccccccqasfdddddddssgkxxlytcc",
79 | "ccccccccccihzxxxxxxxxxxxxxxlyrcc",
80 | "ccccccccccihzxxxxxxxxxxxxxxlyrcc",
81 | "ccccccccccuijllllllllllljllhyrcc",
82 | "ccccccccccuiiiiiiiiuuuuyyyyytrcc",
83 | "ccccccccccuuyyyyytttttttrrrrrrcc",
84 | "cccccccccccccccccccccccccccccccc",
85 | "cccccccccccccccccccccccccccccccc",
86 | "cccccccccccccccccccccccccccccccc",
87 | "cccccccccccccccccccccccccccccccc"
88 | };
89 |
--------------------------------------------------------------------------------
/src/lua/luaeditor.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef LUALUAEDITOR_H
19 | #define LUALUAEDITOR_H
20 |
21 | #include
22 | #include "highlighter.h"
23 |
24 | namespace Lua {
25 |
26 |
27 | class LuaEditor : public QTextEdit
28 | {
29 | Q_OBJECT
30 |
31 | public:
32 | LuaEditor(QWidget* pa=0);
33 | ~LuaEditor();
34 | void lineWidgetPaintEvent(QPaintEvent*);
35 | int lineWidgetWidth();
36 |
37 | public slots:
38 | bool save();
39 | bool load(QString filename=QString());
40 | bool saveAs(QString filename=QString());
41 | QString scriptFile() const;
42 | void setCurrentFont(const QFont&);
43 |
44 | signals:
45 | void scriptLoaded();
46 | void scriptSaved();
47 |
48 | protected:
49 | void resizeEvent(QResizeEvent*);
50 | void keyPressEvent(QKeyEvent*);
51 | void scrollContentsBy(int dx, int dy);
52 | QTextBlock getFirstVisibleBlock();
53 | QString script_filename;
54 | QWidget* parent;
55 | QWidget* lineWidget;
56 | Highlighter* highlighter;
57 |
58 | private slots:
59 | void highlightCurrentLine();
60 | void updateLineWidgetWidth(int);
61 | };
62 |
63 |
64 | class LineWidget : public QWidget
65 | {
66 | Q_OBJECT
67 |
68 | public:
69 | LineWidget(LuaEditor* editor);
70 | QSize sizeHint() const;
71 |
72 | protected:
73 | void paintEvent(QPaintEvent *event);
74 |
75 | private:
76 | LuaEditor* luaEditor;
77 | };
78 |
79 |
80 |
81 | }
82 |
83 | #endif
84 |
--------------------------------------------------------------------------------
/src/viewerpresetsmodel.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef VIEWERPRESETSMODEL_H
19 | #define VIEWERPRESETSMODEL_H
20 |
21 | #include
22 | #include
23 |
24 | #include "flam3util.h"
25 |
26 | class ViewerPresetsModel : public QAbstractListModel
27 | {
28 | Q_OBJECT
29 |
30 | QMap presets;
31 | QStringList names;
32 | ViewerPresetsModel();
33 | static ViewerPresetsModel* singleInstance;
34 |
35 | public:
36 | static ViewerPresetsModel* getInstance();
37 | QVariant data(const QModelIndex& index, int role=Qt::DisplayRole) const;
38 | int rowCount(const QModelIndex& parent=QModelIndex() ) const;
39 | Qt::ItemFlags flags(const QModelIndex& index) const;
40 | QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const;
41 | bool setData(const QModelIndex& index, const QVariant& value, int role);
42 | QStringList presetNames();
43 | void applyPreset(const QString&, flam3_genome*);
44 | flam3_genome preset(const QString&);
45 |
46 | public slots:
47 | void addPresetSlot(const QString& name, flam3_genome* genome);
48 | void delPresetSlot(int idx);
49 | void updatePresetSlot(int idx, const QString& name, flam3_genome* genome);
50 | void moveUpSlot(int idx);
51 | void moveDownSlot(int idx);
52 |
53 |
54 | protected:
55 | void loadPresets();
56 | void savePresets();
57 | void loadDefaultPresets();
58 | };
59 |
60 |
61 | #endif
62 |
--------------------------------------------------------------------------------
/src/lua/luathreadadapter.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef LUATHREADADAPTER_H
19 | #define LUATHREADADAPTER_H
20 |
21 | #include
22 | #include
23 |
24 | #include "luathread.h"
25 |
26 |
27 | class BasisTriangle;
28 | class MainWindow;
29 |
30 | namespace Lua
31 | {
32 |
33 | class LuaThreadAdapter : public QObject
34 | {
35 | Q_OBJECT
36 |
37 | MainWindow* m_win;
38 | LuaThread* m_thread;
39 | QList m_modified;
40 | QMutex m_mutex;
41 |
42 | public:
43 | static const char RegKey;
44 |
45 | LuaThreadAdapter(MainWindow*, LuaThread*, QObject* =0);
46 | ~LuaThreadAdapter();
47 |
48 | GenomeVector* genomeVector();
49 | BasisTriangle* basisTriangle();
50 | LuaThread* thread() const;
51 | MainWindow* window() const;
52 | QList& modifiedList();
53 | void setModified(int, bool =true);
54 | void insertModified(int, bool =true);
55 | void removeModified(int);
56 | void resetModified(bool =false);
57 | void renderPreview(int =0);
58 | void update(int =0);
59 | bool loadFile(const QString&);
60 | bool saveFile(const QString&);
61 | bool saveImage(const QString&, int =0);
62 | void listen(bool);
63 |
64 | public slots:
65 | void flameRenderedSlot(RenderEvent* e);
66 | void mainWindowChangedSlot();
67 |
68 | signals:
69 | void loadFileSignal(const QString&);
70 | void updateSignal();
71 |
72 | private:
73 | void waitForEvent();
74 | };
75 |
76 | }
77 |
78 | #endif
79 |
--------------------------------------------------------------------------------
/src/colorlabel.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 |
25 | #include "colorlabel.h"
26 | #include "colordialog.h"
27 | #include "checkersbrush.h"
28 |
29 | ColorLabel::ColorLabel(QWidget* parent)
30 | : QLabel(parent), lastcolor(Qt::black)
31 | {
32 | }
33 |
34 | void ColorLabel::mousePressEvent(QMouseEvent* /*e*/)
35 | {
36 | static QColor c;
37 | if (objectName() == "m_backgroundLabel")
38 | {
39 | ColorDialog d(this);
40 | d.setSelectedColor(lastcolor);
41 | d.setAlphaEnabled(false);
42 | connect(&d, SIGNAL(colorSelected(QColor)),
43 | this, SIGNAL(colorSelected(QColor)));
44 | if (d.exec() == QDialog::Accepted)
45 | {
46 | c = d.getSelectedColor();
47 | if (c.isValid() && lastcolor != c)
48 | setColor(c);
49 | emit undoStateSignal();
50 | }
51 | else if (d.getSelectedColor() != lastcolor)
52 | emit colorSelected(lastcolor);
53 | disconnect(&d);
54 | }
55 | else if (objectName() == "m_colorLabel")
56 | {
57 |
58 | }
59 | }
60 |
61 |
62 | void ColorLabel::setColor(QColor c)
63 | {
64 | QSize s = maximumSize();
65 | QImage label(s.width(), s.height(), QImage::Format_RGB32);
66 | QPainter p(&label);
67 | if (c.alpha() < 255)
68 | p.fillRect(label.rect(), CheckersBrush(15));
69 | p.fillRect(label.rect(), QBrush(c));
70 | setPixmap(QPixmap::fromImage( label ));
71 | lastcolor = c;
72 | }
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/src/mainpreviewwidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef MAINPREVIEWWIDGET_H
20 | #define MAINPREVIEWWIDGET_H
21 |
22 | #include
23 | #include
24 | #include
25 | #include
26 |
27 | #include "ui_mainpreviewwidget.h"
28 | #include "genomevector.h"
29 | #include "qosmicwidget.h"
30 |
31 | class MainPreviewWidget
32 | : public QWidget, public QosmicWidget, private Ui::MainPreviewWidget
33 | {
34 | Q_OBJECT
35 |
36 | GenomeVector* genome;
37 | QMenu* popupMenu;
38 | QTimer* wheel_stopped_timer;
39 | bool wheel_moved;
40 | QPointF last_pos;
41 | QPointF start_pos;
42 | QSize last_size;
43 | QString null_preset;
44 | QString selected_preset;
45 |
46 | public:
47 | MainPreviewWidget(GenomeVector* g, QWidget* parent=0);
48 | void setPixmap(const QPixmap&);
49 | QSize getPreviewSize() const;
50 | void setPreviewMaximumSize(QSize);
51 | bool isPresetSelected() const;
52 | QString presetName() const;
53 | flam3_genome preset() const;
54 |
55 | signals:
56 | void previewResized(const QSize&);
57 | void previewMoved();
58 | void undoStateSignal();
59 |
60 | public slots:
61 | void popupMenuTriggeredSlot(QAction*);
62 |
63 | protected:
64 | void resizeEvent(QResizeEvent*);
65 | void showEvent(QShowEvent*);
66 | void mousePressEvent(QMouseEvent*);
67 | void mouseReleaseEvent(QMouseEvent*);
68 | void mouseMoveEvent(QMouseEvent*);
69 | void wheelEvent(QWheelEvent*);
70 | void closeEvent(QCloseEvent*);
71 | };
72 |
73 |
74 | #endif
75 |
--------------------------------------------------------------------------------
/icons/silk/bullet_arrow_up.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *bullet_arrow_up[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 56 1",
5 | " c #5BF65BF65BF6",
6 | ". c #5D915D915D91",
7 | "X c #5FDA5FDA5FDA",
8 | "o c #618961896189",
9 | "O c #62CD62CD62CD",
10 | "+ c #65FC65FC65FC",
11 | "@ c #67AC67AC67AC",
12 | "# c #698469846984",
13 | "$ c #6DA36DA36DA3",
14 | "% c #6E256E256E25",
15 | "& c #6F796F796F79",
16 | "* c #71F071F071F0",
17 | "= c #742674267426",
18 | "- c #768076807680",
19 | "; c #76FE76FE76FE",
20 | ": c #792A792A792A",
21 | "> c #7B567B567B56",
22 | ", c #7CBC7CBC7CBC",
23 | "< c #7E467E467E46",
24 | "1 c #80C680C680C6",
25 | "2 c #82B982B982B9",
26 | "3 c #839983998399",
27 | "4 c #851585158515",
28 | "5 c #866C866C866C",
29 | "6 c #888288828882",
30 | "7 c #8B898B898B89",
31 | "8 c #8DF48DF48DF4",
32 | "9 c #8E708E708E70",
33 | "0 c #8F138F138F13",
34 | "q c #90D990D990D9",
35 | "w c #91A691A691A6",
36 | "e c #929892989298",
37 | "r c #94BC94BC94BC",
38 | "t c #967E967E967E",
39 | "y c #99B799B799B7",
40 | "u c #9AC39AC39AC3",
41 | "i c #9C559C559C55",
42 | "p c #9D3F9D3F9D3F",
43 | "a c #9E799E799E79",
44 | "s c #A0ADA0ADA0AD",
45 | "d c #A16BA16BA16B",
46 | "f c #A2BBA2BBA2BB",
47 | "g c #A3B5A3B5A3B5",
48 | "h c #A441A441A441",
49 | "j c #A560A560A560",
50 | "k c #A6DBA6DBA6DB",
51 | "l c #A7CBA7CBA7CB",
52 | "z c #A8BBA8BBA8BB",
53 | "x c #A96BA96BA96B",
54 | "c c #AACAAACAAACA",
55 | "v c #ABB2ABB2ABB2",
56 | "b c #ACB1ACB1ACB1",
57 | "n c #ADF3ADF3ADF3",
58 | "m c #AF0CAF0CAF0C",
59 | "M c #AFF6AFF6AFF6",
60 | "N c None",
61 | /* pixels */
62 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
63 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
64 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
65 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
66 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
67 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
68 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
69 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
70 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
71 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
72 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
73 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
74 | "NNNNNNNNNNNNNNvvNNNNNNNNNNNNNNNN",
75 | "NNNNNNNNNNNNNNvxNNNNNNNNNNNNNNNN",
76 | "NNNNNNNNNNNNkzckueNNNNNNNNNNNNNN",
77 | "NNNNNNNNNNNNkzbluwNNNNNNNNNNNNNN",
78 | "NNNNNNNNNNfhkcmcaw2:NNNNNNNNNNNN",
79 | "NNNNNNNNNNgjxbMbfr4>NNNNNNNNNNNN",
80 | "NNNNNNNNasglbmncju7<&NNNNNNNNNNN",
81 | "NNNNNNNNyuiadspyt03;#oNNNNNNNNNN",
82 | "NNNNNNNNeq87641,:=%@o.NNNNNNNNNN",
83 | "NNNNNNNN9751>-*$#+OX. NNNNNNNNNN",
84 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
85 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
86 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
87 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
88 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
89 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
90 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
91 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
92 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
93 | "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
94 | };
95 |
--------------------------------------------------------------------------------
/src/triangleselection.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef TRIANGLESELECTION_H
19 | #define TRIANGLESELECTION_H
20 |
21 | #include
22 |
23 | #include "transformablegraphicsitem.h"
24 |
25 | class Triangle;
26 | class FigureEditor;
27 | class BasisTriangle;
28 | class NodeItem;
29 |
30 | class TriangleSelection : public QGraphicsPolygonItem, public TransformableGraphicsItem
31 | {
32 | private:
33 | FigureEditor* m_editor;
34 | BasisTriangle* m_basis;
35 | QList m_triangles;
36 | QList m_nodes;
37 | int m_selectType;
38 |
39 | public:
40 | TriangleSelection(FigureEditor*, BasisTriangle*);
41 | ~TriangleSelection();
42 | int type() const;
43 | BasisTriangle* basis() const;
44 | FigureEditor* editor() const;
45 | void moveBy(double, double);
46 | void flipHorizontally(QPointF);
47 | void flipVertically(QPointF);
48 | void scale(double, double, QPointF);
49 | void rotate(double, QPointF);
50 | int selectedType() const;
51 | void setSelectedType(int);
52 | void selectCoveredItems();
53 | bool hasItems() const;
54 | void clear();
55 | QList triangles() const;
56 | QList nodes() const;
57 | Triangle* first();
58 | void addItem(QGraphicsItem*);
59 | QList allItems() const;
60 | bool contains(QGraphicsItem* item) const;
61 | bool containsAnyOf(Triangle*) const;
62 | void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget =0);
63 |
64 | enum { Type = UserType + 5 };
65 | };
66 |
67 |
68 | #endif
69 |
--------------------------------------------------------------------------------
/icons/silk/bullet_arrow_down.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *bullet_arrow_down[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 58 1",
5 | " c #6FE76FE76FE7",
6 | ". c #706070607060",
7 | "X c #739D739D739D",
8 | "o c #779A779A779A",
9 | "O c #78DB78DB78DB",
10 | "+ c #7AE77AE77AE7",
11 | "@ c #7B887B887B88",
12 | "# c #7CE47CE47CE4",
13 | "$ c #7F447F447F44",
14 | "% c #813481348134",
15 | "& c #82E982E982E9",
16 | "* c #84E584E584E5",
17 | "= c #85F485F485F4",
18 | "- c #870587058705",
19 | "; c #881188118811",
20 | ": c #89B189B189B1",
21 | "> c #8AF18AF18AF1",
22 | ", c #8B468B468B46",
23 | "< c #8EAF8EAF8EAF",
24 | "1 c #8FC58FC58FC5",
25 | "2 c #916191619161",
26 | "3 c #93D493D493D4",
27 | "4 c #958F958F958F",
28 | "5 c #963296329632",
29 | "6 c #975B975B975B",
30 | "7 c #991299129912",
31 | "8 c #9A029A029A02",
32 | "9 c #9AD29AD29AD2",
33 | "0 c #9D5E9D5E9D5E",
34 | "q c #9FB39FB39FB3",
35 | "w c #A0AEA0AEA0AE",
36 | "e c #A184A184A184",
37 | "r c #A3A4A3A4A3A4",
38 | "t c #A4B1A4B1A4B1",
39 | "y c #A671A671A671",
40 | "u c #A7E8A7E8A7E8",
41 | "i c #A8FDA8FDA8FD",
42 | "p c #A98AA98AA98A",
43 | "a c #AB66AB66AB66",
44 | "s c #AD29AD29AD29",
45 | "d c #AD4EAD4EAD4E",
46 | "f c #B0C6B0C6B0C6",
47 | "g c #B185B185B185",
48 | "h c #B3C4B3C4B3C4",
49 | "j c #B50DB50DB50D",
50 | "k c #B536B536B536",
51 | "l c #B68BB68BB68B",
52 | "z c #B81BB81BB81B",
53 | "x c #B8EAB8EAB8EA",
54 | "c c #B9BFB9BFB9BF",
55 | "v c #BA9CBA9CBA9C",
56 | "b c #BBE1BBE1BBE1",
57 | "n c #BCB7BCB7BCB7",
58 | "m c #BDD6BDD6BDD6",
59 | "M c #BEB9BEB9BEB9",
60 | "N c #BFA5BFA5BFA5",
61 | "B c #C137C137C137",
62 | "V c None",
63 | /* pixels */
64 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
65 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
66 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
67 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
68 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
69 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
70 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
71 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
72 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
73 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
74 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
75 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
76 | "VVVVVVVVBNnxkgditq952VVVVVVVVVV",
78 | "VVVVVVVVcvvbnbzjgae5:&VVVVVVVVVV",
79 | "VVVVVVVVllklcvclgu91*VVVVVVVVVVV",
80 | "VVVVVVVVVVppdfhfy7:%VVVVVVVVVVVV",
81 | "VVVVVVVVVVewwrit6>$oVVVVVVVVVVVV",
82 | "VVVVVVVVVVVV2384=#VVVVVVVVVVVVVV",
83 | "VVVVVVVVVVVV;:,-@XVVVVVVVVVVVVVV",
84 | "VVVVVVVVVVVVVV+OVVVVVVVVVVVVVVVV",
85 | "VVVVVVVVVVVVVV. VVVVVVVVVVVVVVVV",
86 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
87 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
88 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
89 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
90 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
91 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
92 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
93 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
94 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
95 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
96 | };
97 |
--------------------------------------------------------------------------------
/icons/silk/bullet_arrow_left.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *bullet_arrow_left[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 58 1",
5 | " c #6FE76FE76FE7",
6 | ". c #706070607060",
7 | "X c #739D739D739D",
8 | "o c #779A779A779A",
9 | "O c #78DB78DB78DB",
10 | "+ c #7AE77AE77AE7",
11 | "@ c #7B887B887B88",
12 | "# c #7CE47CE47CE4",
13 | "$ c #7F447F447F44",
14 | "% c #813481348134",
15 | "& c #82E982E982E9",
16 | "* c #84E584E584E5",
17 | "= c #85F485F485F4",
18 | "- c #870587058705",
19 | "; c #881188118811",
20 | ": c #89B189B189B1",
21 | "> c #8AF18AF18AF1",
22 | ", c #8B468B468B46",
23 | "< c #8EAF8EAF8EAF",
24 | "1 c #8FC58FC58FC5",
25 | "2 c #916191619161",
26 | "3 c #93D493D493D4",
27 | "4 c #958F958F958F",
28 | "5 c #963296329632",
29 | "6 c #975B975B975B",
30 | "7 c #991299129912",
31 | "8 c #9A029A029A02",
32 | "9 c #9AD29AD29AD2",
33 | "0 c #9D5E9D5E9D5E",
34 | "q c #9FB39FB39FB3",
35 | "w c #A0AEA0AEA0AE",
36 | "e c #A184A184A184",
37 | "r c #A3A4A3A4A3A4",
38 | "t c #A4B1A4B1A4B1",
39 | "y c #A671A671A671",
40 | "u c #A7E8A7E8A7E8",
41 | "i c #A8FDA8FDA8FD",
42 | "p c #A98AA98AA98A",
43 | "a c #AB66AB66AB66",
44 | "s c #AD29AD29AD29",
45 | "d c #AD4EAD4EAD4E",
46 | "f c #B0C6B0C6B0C6",
47 | "g c #B185B185B185",
48 | "h c #B3C4B3C4B3C4",
49 | "j c #B50DB50DB50D",
50 | "k c #B536B536B536",
51 | "l c #B68BB68BB68B",
52 | "z c #B81BB81BB81B",
53 | "x c #B8EAB8EAB8EA",
54 | "c c #B9BFB9BFB9BF",
55 | "v c #BA9CBA9CBA9C",
56 | "b c #BBE1BBE1BBE1",
57 | "n c #BCB7BCB7BCB7",
58 | "m c #BDD6BDD6BDD6",
59 | "M c #BEB9BEB9BEB9",
60 | "N c #BFA5BFA5BFA5",
61 | "B c #C137C137C137",
62 | "V c None",
63 | /* pixels */
64 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
65 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
66 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
67 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
68 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
69 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
70 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
71 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
72 | "VVVVVVVVVVVVVVVVlcMBVVVVVVVVVVVV",
73 | "VVVVVVVVVVVVVVVVlvmNVVVVVVVVVVVV",
74 | "VVVVVVVVVVVVVVepkvbnVVVVVVVVVVVV",
75 | "VVVVVVVVVVVVVVwplbcxVVVVVVVVVVVV",
76 | "VVVVVVVVVVVV;2wdcnzkVVVVVVVVVVVV",
77 | "VVVVVVVVVVVV:3rfvbjgVVVVVVVVVVVV",
78 | "VVVVVVVVVV.+,8ihczfdVVVVVVVVVVVV",
79 | "VVVVVVVVVV O-4tfljsiVVVVVVVVVVVV",
80 | "VVVVVVVVVVVV@=6yggitVVVVVVVVVVVV",
81 | "VVVVVVVVVVVVX#>7uarqVVVVVVVVVVVV",
82 | "VVVVVVVVVVVVVV$:9e09VVVVVVVVVVVV",
83 | "VVVVVVVVVVVVVVo%1555VVVVVVVVVVVV",
84 | "VVVVVVVVVVVVVVVV*:<2VVVVVVVVVVVV",
85 | "VVVVVVVVVVVVVVVVV&> c #8AF18AF18AF1",
22 | ", c #8B468B468B46",
23 | "< c #8EAF8EAF8EAF",
24 | "1 c #8FC58FC58FC5",
25 | "2 c #916191619161",
26 | "3 c #93D493D493D4",
27 | "4 c #958F958F958F",
28 | "5 c #963296329632",
29 | "6 c #975B975B975B",
30 | "7 c #991299129912",
31 | "8 c #9A029A029A02",
32 | "9 c #9AD29AD29AD2",
33 | "0 c #9D5E9D5E9D5E",
34 | "q c #9FB39FB39FB3",
35 | "w c #A0AEA0AEA0AE",
36 | "e c #A184A184A184",
37 | "r c #A3A4A3A4A3A4",
38 | "t c #A4B1A4B1A4B1",
39 | "y c #A671A671A671",
40 | "u c #A7E8A7E8A7E8",
41 | "i c #A8FDA8FDA8FD",
42 | "p c #A98AA98AA98A",
43 | "a c #AB66AB66AB66",
44 | "s c #AD29AD29AD29",
45 | "d c #AD4EAD4EAD4E",
46 | "f c #B0C6B0C6B0C6",
47 | "g c #B185B185B185",
48 | "h c #B3C4B3C4B3C4",
49 | "j c #B50DB50DB50D",
50 | "k c #B536B536B536",
51 | "l c #B68BB68BB68B",
52 | "z c #B81BB81BB81B",
53 | "x c #B8EAB8EAB8EA",
54 | "c c #B9BFB9BFB9BF",
55 | "v c #BA9CBA9CBA9C",
56 | "b c #BBE1BBE1BBE1",
57 | "n c #BCB7BCB7BCB7",
58 | "m c #BDD6BDD6BDD6",
59 | "M c #BEB9BEB9BEB9",
60 | "N c #BFA5BFA5BFA5",
61 | "B c #C137C137C137",
62 | "V c None",
63 | /* pixels */
64 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
65 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
66 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
67 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
68 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
69 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
70 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
71 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
72 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
73 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
74 | "VVVVVVVVVVVV<>&VVVVVVVVVVVVVVVVV",
75 | "VVVVVVVVVVVV2<:*VVVVVVVVVVVVVVVV",
76 | "VVVVVVVVVVVV5551%oVVVVVVVVVVVVVV",
77 | "VVVVVVVVVVVV90e9:$VVVVVVVVVVVVVV",
78 | "VVVVVVVVVVVVqrau7>#XVVVVVVVVVVVV",
79 | "VVVVVVVVVVVVtiggy6=@VVVVVVVVVVVV",
80 | "VVVVVVVVVVVVisjlft4-O VVVVVVVVVV",
81 | "VVVVVVVVVVVVdfzchi8,+.VVVVVVVVVV",
82 | "VVVVVVVVVVVVgjbvfr3:VVVVVVVVVVVV",
83 | "VVVVVVVVVVVVkzncdw2;VVVVVVVVVVVV",
84 | "VVVVVVVVVVVVxcblpwVVVVVVVVVVVVVV",
85 | "VVVVVVVVVVVVnbvkpeVVVVVVVVVVVVVV",
86 | "VVVVVVVVVVVVNmvlVVVVVVVVVVVVVVVV",
87 | "VVVVVVVVVVVVBMclVVVVVVVVVVVVVVVV",
88 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
89 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
90 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
91 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
92 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
93 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
94 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
95 | "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
96 | };
97 |
--------------------------------------------------------------------------------
/src/selectgenomewidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef SELECTGENOMEWIDGET_H
19 | #define SELECTGENOMEWIDGET_H
20 |
21 | #include
22 |
23 | #include "ui_selectgenomewidget.h"
24 |
25 | #include "genomevector.h"
26 | #include "qosmicwidget.h"
27 |
28 | class SelectGenomeWidget : public QWidget, public QosmicWidget,
29 | private Ui::SelectGenomeWidget
30 | {
31 | Q_OBJECT
32 |
33 | public:
34 | SelectGenomeWidget(GenomeVector*, QWidget* parent=0);
35 | void setSelectedGenome(int);
36 | void reset();
37 |
38 | signals:
39 | void genomeSelected(int);
40 | void genomesModified();
41 |
42 | protected slots:
43 | void addButtonPressedSlot();
44 | void delButtonPressedSlot();
45 | void configButtonPressedSlot();
46 | void clearTrianglesButtonPressedSlot();
47 | void listViewClickedAction(const QModelIndex& idx);
48 |
49 | protected:
50 | void showEvent(QShowEvent*);
51 | void hideEvent(QHideEvent*);
52 |
53 | private:
54 | GenomeVector* genomes;
55 | };
56 |
57 |
58 | #include "ui_selectgenomeconfigdialog.h"
59 |
60 | class SelectGenomeConfigDialog : public QDialog, private Ui::SelectGenomeConfigDialog
61 | {
62 | Q_OBJECT
63 |
64 | public:
65 | SelectGenomeConfigDialog(QWidget* parent=0);
66 | void setPreviewSize(const QSize& size);
67 | QSize previewSize() const;
68 | void setPreset(const QString &s);
69 | QString preset() const;
70 | void setAutoSave(const GenomeVector::AutoSave);
71 | void setTimeStep(const double);
72 | double timeStep() const;
73 | GenomeVector::AutoSave autoSave() const;
74 | };
75 |
76 | #endif
77 |
--------------------------------------------------------------------------------
/src/snapslider.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #include "snapslider.h"
20 |
21 | SnapSlider::SnapSlider(QWidget* parent)
22 | : QSlider(Qt::Horizontal, parent)
23 | {
24 | m_selected_value = 0;
25 | m_last_value = 0;
26 | m_snap = 0;
27 | connect(this, SIGNAL(rangeChanged(int,int)),
28 | this, SLOT(rangeChangedAction(int,int)));
29 | connect(this, SIGNAL(sliderReleased()),
30 | this, SLOT(sliderReleasedAction()));
31 | connect(this, SIGNAL(valueChanged(int)),
32 | this, SLOT(sliderChangedAction(int)));
33 | }
34 |
35 | int SnapSlider::dx()
36 | {
37 | return m_dx;
38 | }
39 |
40 | void SnapSlider::setSnap(int value)
41 | {
42 | m_snap = value;
43 | }
44 |
45 | int SnapSlider::snap()
46 | {
47 | return m_snap;
48 | }
49 |
50 | int SnapSlider::selectedValue()
51 | {
52 | return m_selected_value;
53 | }
54 |
55 | void SnapSlider::rangeChangedAction(int min, int max)
56 | {
57 | if (m_snap < min || m_snap > max)
58 | m_snap = (int)((double)(max - min) / 2.0);
59 | setValue(m_snap);
60 | }
61 |
62 | void SnapSlider::sliderReleasedAction()
63 | {
64 | m_selected_value = value();
65 | if (signalsBlocked())
66 | setValue(m_snap);
67 | else
68 | {
69 | blockSignals(true);
70 | setValue(m_snap);
71 | blockSignals(false);
72 | }
73 | m_last_value = m_snap;
74 | emit valueSelected(m_selected_value);
75 | emit undoStateSignal();
76 | }
77 |
78 | void SnapSlider::sliderChangedAction(int value)
79 | {
80 | m_dx = value - m_last_value;
81 | m_last_value = value;
82 | }
83 |
84 | void SnapSlider::setToSnap()
85 | {
86 | blockSignals(true);
87 | sliderReleasedAction();
88 | blockSignals(false);
89 | }
90 |
--------------------------------------------------------------------------------
/src/chaoswidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef CHAOSWIDGET_H
20 | #define CHAOSWIDGET_H
21 |
22 | #include
23 | #include
24 | #include
25 | #include
26 |
27 | #include "genomevector.h"
28 | #include "triangle.h"
29 |
30 | class ChaosTableView : public QTableView
31 | {
32 | Q_OBJECT
33 |
34 | public:
35 | ChaosTableView(QWidget* =0);
36 | void setPrecision(int);
37 | int precision();
38 | void restoreSettings();
39 |
40 | signals:
41 | void valueUpdated();
42 | void undoStateSignal();
43 | void precisionChanged();
44 |
45 | protected:
46 | void mousePressEvent(QMouseEvent*);
47 | void mouseMoveEvent(QMouseEvent*);
48 | void mouseReleaseEvent(QMouseEvent*);
49 | void keyPressEvent(QKeyEvent*);
50 | void resetChaosValue(QModelIndex&);
51 |
52 | protected slots:
53 | void commitData(QWidget*);
54 |
55 | private:
56 | double step;
57 | double start_value;
58 | QModelIndex start_item;
59 | QPointF last_pos;
60 | int vars_precision;
61 | };
62 |
63 | #include "ui_chaoswidget.h"
64 |
65 | class ChaosWidget : public QWidget, private Ui::ChaosWidget
66 | {
67 | Q_OBJECT
68 |
69 | public:
70 | ChaosWidget(GenomeVector*, QWidget* parent=0);
71 | ~ChaosWidget();
72 |
73 | public slots:
74 | void triangleSelectedSlot(Triangle* t);
75 | void updateFormData();
76 |
77 | signals:
78 | void dataChanged();
79 | void undoStateSignal();
80 |
81 | protected:
82 | void wheelEvent(QWheelEvent*);
83 |
84 | private:
85 | GenomeVector* genomes;
86 | Triangle* selectedTriangle;
87 | QStandardItemModel* model;
88 | };
89 |
90 | #endif
91 |
--------------------------------------------------------------------------------
/src/editmodeselectorwidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef EDITMODESELECTORWIDGET_H
19 | #define EDITMODESELECTORWIDGET_H
20 |
21 | #include
22 |
23 | #include "ui_editmodeselectorwidget.h"
24 | #include "xfedit.h"
25 |
26 | class EditModeSelectorWidget : public QWidget, private Ui::EditModeSelectorWidget
27 | {
28 | Q_OBJECT
29 |
30 | FigureEditor* m_xfeditor;
31 | Triangle* selectedTriangle;
32 | QButtonGroup m_buttonGroup;
33 | double lastRotateValue;
34 |
35 | public:
36 | EditModeSelectorWidget(FigureEditor*, QWidget* parent=0);
37 | void setFigureEditor(FigureEditor*);
38 | int selectedButton();
39 | void reset();
40 |
41 | public slots:
42 | void setSelectedButton(FigureEditor::EditMode);
43 | void triangleSelectedSlot(Triangle*);
44 |
45 | signals:
46 | void buttonPressed(FigureEditor::EditMode);
47 | void undoStateSignal();
48 |
49 | private slots:
50 | void groupButtonPressedSlot(int);
51 | void triangleRotateAction();
52 | void triangleRotateCWAction();
53 | void triangleRotateCCWAction();
54 | void moveTriangleLeftAction();
55 | void moveTriangleRightAction();
56 | void moveTriangleUpAction();
57 | void moveTriangleDownAction();
58 | void rotateTextEditedSlot();
59 | void toggleMarkAction(bool);
60 | void triangleScaleUpAction();
61 | void triangleScaleDownAction();
62 | void sceneAxesSelected(int);
63 | void selectionItemsChangedAction(int);
64 | void sceneScaledSlot();
65 | void sceneCenteredSlot(int);
66 | void sceneConfigSlot();
67 | void buttonReleasedSlot();
68 |
69 | protected:
70 | void closeEvent(QCloseEvent*);
71 |
72 | };
73 |
74 |
75 | #endif
76 |
--------------------------------------------------------------------------------
/src/transformablegraphicsguide.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #ifndef TRANSFORMABLEGRAPHICSGUIDE_H
20 | #define TRANSFORMABLEGRAPHICSGUIDE_H
21 |
22 | #include
23 | #include
24 |
25 | #include "xfedit.h"
26 |
27 | class GraphicsGuideScaleButton : public QGraphicsRectItem
28 | {
29 | public:
30 | enum { Type = UserType + 7 };
31 |
32 | enum Location { TopRight, TopLeft, BottomRight, BottomLeft };
33 |
34 | Location location;
35 | QPen std_pen;
36 |
37 | GraphicsGuideScaleButton(QGraphicsItem* =0);
38 | int type() const;
39 |
40 | protected:
41 | void hoverEnterEvent(QGraphicsSceneHoverEvent*);
42 | void hoverLeaveEvent(QGraphicsSceneHoverEvent*);
43 | };
44 |
45 |
46 | class TransformableGraphicsGuide : public QGraphicsObject
47 | {
48 | Q_OBJECT
49 |
50 | FigureEditor* editor;
51 | QRectF outerRect;
52 | QPolygonF hFlipPoly;
53 | QPolygonF vFlipPoly;
54 | GraphicsGuideScaleButton topLeftRect;
55 | GraphicsGuideScaleButton topRightRect;
56 | GraphicsGuideScaleButton bottomLeftRect;
57 | GraphicsGuideScaleButton bottomRightRect;
58 | GraphicsGuideScaleButton bottomRect;
59 | GraphicsGuideScaleButton topRect;
60 | GraphicsGuideScaleButton leftRect;
61 | GraphicsGuideScaleButton rightRect;
62 |
63 | public:
64 | explicit TransformableGraphicsGuide(FigureEditor*, QGraphicsItem* =0);
65 | QRectF boundingRect() const;
66 | void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget* =0);
67 | void setParentItem(QGraphicsItem*);
68 | void setVisible(bool);
69 | void update();
70 | QPainterPath shape() const;
71 | };
72 |
73 |
74 | #endif // TRANSFORMABLEGRAPHICSGUIDE_H
75 |
--------------------------------------------------------------------------------
/src/scripteditwidget.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef SCRIPTEDITWIDGET_H
19 | #define SCRIPTEDITWIDGET_H
20 |
21 | #include "ui_scripteditwidget.h"
22 | #include "lua/luathread.h"
23 |
24 | class MainWindow;
25 |
26 | class ScriptEditWidget : public QWidget, private Ui::ScriptEditWidget
27 | {
28 | Q_OBJECT
29 |
30 | QString script_filename;
31 | Lua::LuaThread lua_thread;
32 | MainWindow* mw;
33 |
34 | public:
35 | ScriptEditWidget(MainWindow* m, QWidget *parent = 0);
36 | ~ScriptEditWidget();
37 | bool isScriptRunning() const;
38 |
39 | public slots:
40 | void startScript();
41 | void stopScript();
42 | void scriptFinishedAction();
43 | void scriptLoadedAction();
44 | void scriptSavedAction();
45 | void loadScript(const QString&);
46 | void scriptInputDialog(const QString&, const QString&);
47 |
48 | protected slots:
49 | void runButtonPressedAction();
50 | void updateCursorLabel();
51 | void appendScriptOutput(const QString&);
52 | void configPressedAction();
53 |
54 | protected:
55 | void closeEvent(QCloseEvent*);
56 | };
57 |
58 |
59 | #include "ui_scripteditconfigdialog.h"
60 |
61 | class ScriptEditConfigDialog : public QDialog, private Ui::ScriptEditConfigDialog
62 | {
63 | Q_OBJECT
64 |
65 | QFontDatabase fonts;
66 | QString cur_size;
67 |
68 | public:
69 | explicit ScriptEditConfigDialog(QWidget* =0);
70 | void setFont(const QFont&);
71 | QFont getFont() const;
72 | void setLuaEnvText(const QString&);
73 | QString getLuaEnvText() const;
74 |
75 | protected slots:
76 | void fontSelectBoxChanged(const QFont&);
77 |
78 | protected:
79 | void changeEvent(QEvent*);
80 | };
81 |
82 |
83 | #endif
84 |
--------------------------------------------------------------------------------
/src/lua/luathread.h:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #ifndef LUATHREAD_H
19 | #define LUATHREAD_H
20 |
21 | #include
22 |
23 | #include "flam3util.h"
24 | #include "lunar.h"
25 | #include "frame.h"
26 | #include "renderthread.h"
27 |
28 | class MainWindow;
29 | class LuaThreadAdapter;
30 | namespace Lua
31 | {
32 |
33 | class LuaThread : public QThread
34 | {
35 | Q_OBJECT
36 |
37 | LuaThreadAdapter* thread_adapter;
38 | QString lua_text;
39 | QString lua_errstr;
40 | QString lua_paths;
41 | bool lua_stopluathread_script;
42 | randctx ctx;
43 | bool input_response;
44 | bool input_response_ok;
45 | QString input_response_text;
46 |
47 | public:
48 | LuaThread(MainWindow* m, QObject* parent=0);
49 | ~LuaThread();
50 | void msleep(unsigned long msecs);
51 | virtual void run();
52 | void setLuaText(QString);
53 | const QString& luaText();
54 | void setLuaPaths(const QString&);
55 | QString luaPaths() const;
56 | void stopScript();
57 | bool stopping() const;
58 | QString getMessage();
59 | void emitScriptOutput(const QString&);
60 | void emitScriptInputRequest(const QString&, const QString&);
61 | static int lua_stopluathread(lua_State*);
62 | static int lua_irand(lua_State*);
63 | static int lua_msleep(lua_State*);
64 | static int lua_print(lua_State*);
65 | static int lua_dialog(lua_State*);
66 | void scriptInputResponse(bool, QString&);
67 |
68 | signals:
69 | void scriptFinished();
70 | void scriptStopped();
71 | void scriptHasOutput(const QString&);
72 | void scriptInputRequest(const QString&, const QString&);
73 |
74 | protected:
75 | void lua_load_environment(lua_State*);
76 |
77 | };
78 | }
79 |
80 |
81 | #endif
82 |
--------------------------------------------------------------------------------
/src/renderprogressdialog.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 | #include
19 |
20 | #include "renderprogressdialog.h"
21 |
22 | RenderProgressDialog::RenderProgressDialog(QWidget* parent, RenderThread* thread)
23 | : QDialog(parent, Qt::Dialog), m_rthread(thread), m_showMainViewer(false)
24 | {
25 | setupUi(this);
26 | setModal(true);
27 |
28 | m_yesButton->setVisible(false);
29 | m_noButton->setVisible(false);
30 | m_dialogLabel->setVisible(false);
31 | m_finishedLabel.setText(tr("View rendered image?"));
32 |
33 | connect(m_yesButton, SIGNAL(pressed()), this, SLOT(yesButtonPressedSlot()));
34 | connect(m_rthread, SIGNAL(statusUpdated(RenderStatus*)),
35 | this, SLOT(setRenderStatus(RenderStatus*)));
36 | }
37 |
38 |
39 | RenderProgressDialog::~RenderProgressDialog()
40 | {
41 | }
42 |
43 | void RenderProgressDialog::yesButtonPressedSlot()
44 | {
45 | m_showMainViewer = true;
46 | accept();
47 | }
48 |
49 | void RenderProgressDialog::setRenderStatus(RenderStatus* status)
50 | {
51 | if (status->Type == RenderRequest::File)
52 | {
53 | if (status->State == RenderStatus::Busy)
54 | m_progressBar->setValue(status->Percent);
55 | else
56 | {
57 | m_dialogLabel->setVisible(true);
58 | m_dialogLabel->setText(status->getMessage());
59 | m_progressBar->setVisible(false);
60 | m_verticalLayout->removeWidget(m_progressBar);
61 | m_verticalLayout->insertWidget(1, &m_finishedLabel);
62 | m_yesButton->setVisible(true);
63 | m_noButton->setVisible(true);
64 | m_stopButton->setVisible(false);
65 | m_verticalLayout->invalidate();
66 | }
67 | }
68 | }
69 |
70 | bool RenderProgressDialog::showMainViewer()
71 | {
72 | return m_showMainViewer;
73 | }
74 |
--------------------------------------------------------------------------------
/icons/silk/bullet_black.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *bullet_black[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 63 1",
5 | " c #000100010001",
6 | ". c #139113911391",
7 | "X c #164916491649",
8 | "o c #171B171B171B",
9 | "O c #18E818E818E8",
10 | "+ c #1A6F1A6F1A6F",
11 | "@ c #1B061B061B06",
12 | "# c #1D261D261D26",
13 | "$ c #212521252125",
14 | "% c #225022502250",
15 | "& c #235223522352",
16 | "* c #248F248F248F",
17 | "= c #251C251C251C",
18 | "- c #268526852685",
19 | "; c #26BE26BE26BE",
20 | ": c #296029602960",
21 | "> c #2B0B2B0B2B0B",
22 | ", c #2F8D2F8D2F8D",
23 | "< c #31AE31AE31AE",
24 | "1 c #357935793579",
25 | "2 c #35FF35FF35FF",
26 | "3 c #386438643864",
27 | "4 c #397239723972",
28 | "5 c #3A5E3A5E3A5E",
29 | "6 c #3B043B043B04",
30 | "7 c #3C373C373C37",
31 | "8 c #3CC63CC63CC6",
32 | "9 c #3F273F273F27",
33 | "0 c #490A490A490A",
34 | "q c #4CAE4CAE4CAE",
35 | "w c #50EA50EA50EA",
36 | "e c #562F562F562F",
37 | "r c #57C357C357C3",
38 | "t c #582058205820",
39 | "y c #5A625A625A62",
40 | "u c #5B355B355B35",
41 | "i c #5C175C175C17",
42 | "p c #5E185E185E18",
43 | "a c #60CD60CD60CD",
44 | "s c #623262326232",
45 | "d c #631163116311",
46 | "f c #64BC64BC64BC",
47 | "g c #651B651B651B",
48 | "h c #669B669B669B",
49 | "j c #676D676D676D",
50 | "k c #684468446844",
51 | "l c #6A8B6A8B6A8B",
52 | "z c #6DBF6DBF6DBF",
53 | "x c #6E7C6E7C6E7C",
54 | "c c #6F796F796F79",
55 | "v c #70A070A070A0",
56 | "b c #71AF71AF71AF",
57 | "n c #728B728B728B",
58 | "m c #73B273B273B2",
59 | "M c #770D770D770D",
60 | "N c #788178817881",
61 | "B c #798C798C798C",
62 | "V c #7AD17AD17AD1",
63 | "C c #7C897C897C89",
64 | "Z c #80D680D680D6",
65 | "A c #836883688368",
66 | "S c #847D847D847D",
67 | "D c None",
68 | /* pixels */
69 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
70 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
71 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
72 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
73 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
74 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
75 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
76 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
77 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
78 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
79 | "DDDDDDDDDDDDDD@+OoDDDDDDDDDDDDDD",
80 | "DDDDDDDDDDDD4887531,DDDDDDDDDDDD",
81 | "DDDDDDDDDDD4egcmblpq:DDDDDDDDDDD",
82 | "DDDDDDDDDDD7fNZAZVby:DDDDDDDDDDD",
83 | "DDDDDDDDDD+7cZMxlxNd; DDDDDDDDDD",
84 | "DDDDDDDDDDO6mScaugVh= DDDDDDDDDD",
85 | "DDDDDDDDDDX4nAzprsNg& DDDDDDDDDD",
86 | "DDDDDDDDDD.2lCbkdjnp% DDDDDDDDDD",
87 | "DDDDDDDDDDD0tshgpw9#DDDDDDDDDDD",
89 | "DDDDDDDDDDDD=-*&&%$#DDDDDDDDDDDD",
90 | "DDDDDDDDDDDDDD DDDDDDDDDDDDDD",
91 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
92 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
93 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
94 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
95 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
96 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
97 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
98 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
99 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
100 | "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
101 | };
102 |
--------------------------------------------------------------------------------
/icons/silk/arrow_redo.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *arrow_redo[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 64 1",
5 | " c #210E5F621DE5",
6 | ". c #223560F21E91",
7 | "X c #25C2652821D6",
8 | "o c #2A3F6B1525D9",
9 | "O c #2D6F6EF728EE",
10 | "+ c #2F1271E02A14",
11 | "@ c #316C739C2C92",
12 | "# c #34C978512EE6",
13 | "$ c #35E976EE31BD",
14 | "% c #36A179DB315A",
15 | "& c #39787B9234C6",
16 | "* c #3DA47EEE38C4",
17 | "= c #3C6F829735B2",
18 | "- c #3F4D83C139E0",
19 | "; c #42B9854B3D8A",
20 | ": c #45638CF13E1A",
21 | "> c #47B291A73F9D",
22 | ", c #465089314094",
23 | "< c #49398D8042DD",
24 | "1 c #4BBD92E24467",
25 | "2 c #4ED09AB346AC",
26 | "3 c #4F6894E947F0",
27 | "4 c #521E956A4D61",
28 | "5 c #54629B6C4C98",
29 | "6 c #57199B205068",
30 | "7 c #5BB49EF754B3",
31 | "8 c #55C0A27C4C71",
32 | "9 c #584DA4354F11",
33 | "0 c #5CD2A48F543C",
34 | "q c #5D67AC98532D",
35 | "w c #6221A6025BB7",
36 | "e c #6511AAD45C98",
37 | "r c #6852AED25F23",
38 | "t c #61A7B18D56CB",
39 | "y c #644BB4EA5944",
40 | "u c #670CA7AD6029",
41 | "i c #6693AA2060CB",
42 | "p c #6AE9AD33642C",
43 | "a c #6F0CAEDA67F7",
44 | "s c #7018AF2968E4",
45 | "d c #6CC1B2FE63A5",
46 | "f c #6F9AB1C568F0",
47 | "g c #70ECBBAD6678",
48 | "h c #731AB3A06B80",
49 | "j c #748ABCE36A43",
50 | "k c #7BAABC8B74B2",
51 | "l c #7F00BD5977F8",
52 | "z c #7C16C17B747A",
53 | "x c #7F06C1AE78EE",
54 | "c c #82ADBF5B7B01",
55 | "v c #83DDC2ED7C52",
56 | "b c #887EC6F07EFC",
57 | "n c #87E4C2CE80B0",
58 | "m c #8B4AC59E8365",
59 | "M c #8E37C94C85A1",
60 | "N c #90C3CB708713",
61 | "B c #93B2CBDD8B29",
62 | "V c #98F5CED38FD2",
63 | "C c #97BBCEF4903D",
64 | "Z c #9A04CFBA91CA",
65 | "A c #9DA6D1C694B7",
66 | "S c #A0A4D370975D",
67 | "D c #A4A2D5859BEC",
68 | "F c None",
69 | /* pixels */
70 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
71 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
72 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
73 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
74 | "FFFFFFFFFFFFFFFFFFFFFF998FFFFFFF",
75 | "FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF",
76 | "FFFFFFFFFFFyyttqqq0980rppe5FFFFF",
77 | "FFFFFFFFjjjjjjggddddrdhkkhw5FFFF",
78 | "FFFFFFFgzvmMNBBBNNMMmmMMMca03FFF",
79 | "FFFFFFjzbNVASDDDDDSSAAAZCmhw3FFF",
80 | "FFFFFjvNASASDDDDDSAAAAZCVns71FFF",
81 | "FFFFgzNADDDAZBNmmmnvcvnnnku6:FFFFFFFFFFFFFFFFFFF",
91 | "FFFrkvMNNci541FFFFFFFFFFFFFFFFFF",
92 | "FFFehkmBBmlhw5:=&&%##@@OOoooFFFF",
93 | "FFF0ehvMNMnlhw531<<,,;;;-&OoFFFF",
94 | "FFFF5whcmmvvlkhhffappiiii4$XFFFF",
95 | "FFFFF5ehkcllvbvvvvvxxzzzzw&XFFFF",
96 | "FFFFFF47eahklvvvvxxxkkkkkw%.FFFF",
97 | "FFFFFFF160wupppppiiiewwww4@ FFFF",
98 | "FFFFFFFF<<<<<,;;;;-**&&&$@X FFFF",
99 | "FFFFFFFFFFF%#@@+OoooXXX.. FFFF",
100 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
101 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
102 | };
103 |
--------------------------------------------------------------------------------
/icons/silk/arrow_inout.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *arrow_inout[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 64 1",
5 | " c #41B58B7B3E9C",
6 | ". c #44F28E7C413C",
7 | "X c #46A890D84287",
8 | "o c #4A19946545B5",
9 | "O c #4C9D98DF471E",
10 | "+ c #4D8395A74947",
11 | "@ c #4E8A9A994922",
12 | "# c #519E97C94D67",
13 | "$ c #52569D7C4CED",
14 | "% c #55139ACE50D6",
15 | "& c #582A9D39542F",
16 | "* c #552AA2B84E5E",
17 | "= c #5749A56D504B",
18 | "- c #59E6A52D537E",
19 | "; c #5CEBABAA551E",
20 | ": c #5E78A11A5A3F",
21 | "> c #5F4BA97A5860",
22 | ", c #5F3BB03C5736",
23 | "< c #60C2AFE157AA",
24 | "1 c #6133A3245D76",
25 | "2 c #6356ADD45BFE",
26 | "3 c #6463B3BF5B51",
27 | "4 c #6728B8E75D14",
28 | "5 c #6923BB335E9F",
29 | "6 c #6593A6E4612B",
30 | "7 c #66DDAF205FED",
31 | "8 c #6986AB4B6491",
32 | "9 c #6DA5AC1F6999",
33 | "0 c #71E3AF7A6CE6",
34 | "q c #67D1B26F6025",
35 | "w c #6C20B40C649B",
36 | "e c #6CB8BE78620D",
37 | "r c #6F88B2506957",
38 | "t c #7014C00F65F8",
39 | "y c #72B0B5616BEF",
40 | "u c #73E0BCA16AAA",
41 | "i c #7711B73D70D9",
42 | "p c #79BAB64473EA",
43 | "a c #7738B89B70E5",
44 | "s c #7B0FBAB67406",
45 | "d c #7E40B6D4796F",
46 | "f c #7F44BAEE79A6",
47 | "g c #6E9CC0B963D4",
48 | "h c #721FC5416640",
49 | "j c #75A5C4A66AC5",
50 | "k c #787EC6076DC4",
51 | "l c #795EC9146DC3",
52 | "z c #7D56C67273CE",
53 | "x c #7EF9C927744B",
54 | "c c #8225BDE97B55",
55 | "v c #81CFCA81773F",
56 | "b c #85C9C5717D1A",
57 | "n c #8653CC147C1D",
58 | "m c #88DCCB507F23",
59 | "M c #889BBF4382A9",
60 | "N c #87A5C1ED8101",
61 | "B c #8AA4C29B83D2",
62 | "V c #8CBACD21831D",
63 | "C c #9311C6E98C94",
64 | "Z c #947ECD678B88",
65 | "A c #940AD0FD8A4B",
66 | "S c #9D39D29793FD",
67 | "D c #A279D2459A47",
68 | "F c None",
69 | /* pixels */
70 | "jhhhhhhhhhFFFFFFFFFFFF443333<;;;",
71 | "hjllllhhhhFFFFFFFFFFFF43333333;;",
72 | "hlvnmvjhFFggFFFFFFFF44FF33wuyw2;",
73 | "hlnVAVxjFFggFFFFFFFF33FF3wscsy2;",
74 | "hlnASSVvkgeeFFFFFFFF3333wsNBcy2-",
75 | "hjxVSSZVvkteFFFFFFFF33wyacBNsw>=",
76 | "hhjxVZZZZVj5FFFFFFFF3wfbcccsq>-=",
77 | "hhhjzmZSDZk5FFFFFFFF,wNCBcaw>=**",
78 | "hhFFhzZDDZu4FFFFFFFF;wNCCcr2FF**",
79 | "hhFFejmZZbu4FFFFFFFF;qscci2-FF**",
80 | "FFeeeejjuue4FFFFFFFF;<2q72-=**FF",
81 | "FFeeee554444FFFFFFFF;;;====***FF",
82 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
83 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
84 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
85 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
86 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
87 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
88 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
89 | "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
90 | "FF3333;;;;;;FFFFFFFF$$@@OOOOooFF",
91 | "FF3333qqq2;;FFFFFFFF$$---%@oooFF",
92 | "33FF3wacci2=FFFFFFFF@-8y06$oFFXX",
93 | "33FF3ycBBf2=FFFFFFFF@-0dp9&+FFXX",
94 | "33;3ryscMd2*FFFFFFFFO-9p08:%+XXX",
95 | "<<3waspppy>*FFFFFFFFO$69866:#oX.",
96 | ";2waccir2>=*FFFFFFFFO@%:1898:#X.",
97 | ";2yscfr2-***FFFFFFFFoo+#&1991%o ",
98 | ";2wyyr2;FF**FFFFFFFFooFF+#16:%X ",
99 | ";>2772-*FF$$FFFFFFFFooFF.o%&%+. ",
100 | ";;;>--=**$FFFFFFFFFFFFX...ooX.. ",
101 | "--==****$$FFFFFFFFFFFFXX... "
102 | };
103 |
--------------------------------------------------------------------------------
/icons/silk/shape_move_front.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *shape_move_front[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 65 1",
5 | " c #539D7FFFD255",
6 | ". c #5AD58551D4BB",
7 | "X c #629B8B99D726",
8 | "o c #68939001D63F",
9 | "O c #66288F65D890",
10 | "+ c #676D91F0D9CF",
11 | "@ c #6BB59474DA86",
12 | "# c #6F0F9897DC42",
13 | "$ c #75C897FBD626",
14 | "% c #7C439CAED83B",
15 | "& c #70B496A7DA6B",
16 | "* c #73AF9BBDDD5E",
17 | "= c #7BAF9E04DCCD",
18 | "- c #77DAA085DF68",
19 | "; c #7C45A194DF00",
20 | ": c #7D2CA59CE197",
21 | "> c #7F68A8F7E33F",
22 | ", c #838AA420DEF2",
23 | "< c #85A9AA35E05D",
24 | "1 c #900BAFC3DE5D",
25 | "2 c #B37DC01ED718",
26 | "3 c #85D4A6D9E0CE",
27 | "4 c #8542AAAEE355",
28 | "5 c #8BE1AC95E318",
29 | "6 c #9098AFDFE43E",
30 | "7 c #8CEAB36EE6DF",
31 | "8 c #9464B431E5C3",
32 | "9 c #9943B755E709",
33 | "0 c #9771B85CE82A",
34 | "q c #9AFAB9AFE767",
35 | "w c #9783B915E86C",
36 | "e c #9CB4BC5EE98B",
37 | "r c #A0EEBF36EAA1",
38 | "t c #B4A9C05DD18E",
39 | "y c #BC2CC85DD81E",
40 | "u c #BBABC829DDDC",
41 | "i c #A459C2B5EB55",
42 | "p c #BBD3D25BEFD1",
43 | "a c #C565C565C565",
44 | "s c #CCE5CCD0CCB1",
45 | "d c #C21CCC00DC5B",
46 | "f c #C909D303DF7D",
47 | "g c #D4E5D4D5D4C1",
48 | "h c #D88BD7B8D639",
49 | "j c #DA5CD93FD764",
50 | "k c #DBACDB9CDB85",
51 | "l c #E26BE166DFB1",
52 | "z c #C85AD285E41C",
53 | "x c #CE7BD900EC56",
54 | "c c #D4DCDEB2EE78",
55 | "v c #D402DE75F207",
56 | "b c #D968E31EEFA0",
57 | "n c #D73DE190F428",
58 | "m c #DD4CE5F1F3F5",
59 | "M c #DFA2E969F62A",
60 | "N c #E463E457E442",
61 | "B c #E882E7F5E6E0",
62 | "V c #EA13E956E7C8",
63 | "C c #EC97EC97EC97",
64 | "Z c #E472ECDFF7E5",
65 | "A c #F4AAF49DF48A",
66 | "S c #F8C4F88AF747",
67 | "D c #F573F7BAFAB5",
68 | "F c #FDC2FD7AFCF5",
69 | "G c None",
70 | /* pixels */
71 | "VBBNNNNNNkkkkkjhggggGGGGGGGGGGGG",
72 | "BVCCCVVVBBNNNNNNNkggGGGGGGGGGGGG",
73 | "BCASSSSSSSAAAAAAACjgGGGGGGGGGGGG",
74 | "NCSFFFFFFFFFFFFFFAksGGGGGGGGGGGG",
75 | "NVSFFFFFFFFFFFFFFAjsGGGGGGGGGGGG",
76 | "NVSFFFFFFFFFFFFFFAjsGGGGGGGGGGGG",
77 | "NBSFFFFFFFFFFFFFFAjsGGGGGGGGGGGG",
78 | "kBSFFDZMMMMMMMMMMcdtGGGGGGGGGGGG",
79 | "kBAFFZpiiiiiiiiiie81<:::--GGGGGG",
80 | "kNAFFZi7788777775554444>;=GGGGGG",
81 | "kNAFFZi7weeeeeeww0008885;*GGGGGG",
82 | "kNCAAbi7eiiiiirreeeqq995;&GGGGGG",
83 | "jkkkkfq7eiiiireeeqq99885*#GGGGGG",
84 | "jhgggy87eiirreeeq9988884*@GGGGGG",
85 | "GGGGGG57eireeeqq90888883*+GGGGGG",
86 | "GGGGGG47weeeqq9988888653#OGGGGGG",
87 | "GGGGGG450eeq99088885555,@XGGGGGG",
88 | "GGGGGG>48eq998888655555;+oGGGGGG",
89 | "GGGGGG:4899988885555553=O$2jhggg",
90 | "GGGGGG:4898888855555333=X%dNNkgg",
91 | "GGGGGG-:78888655555333,=X=xSACjg",
92 | "GGGGGG*;354333,;;=====*@.;vFFAks",
93 | "GGGGGG******#@@+OOXXXXX. =vFFAjs",
94 | "GGGGGG@@+&=,<3,,,,,;===9mFFAjs",
95 | "GGGGGGGGGGGGuzcnnvvvvvvvvmAFFAhs",
96 | "GGGGGGGGGGGGlVSFFFFFFFFFFFSFFAhs",
97 | "GGGGGGGGGGGGkBSFFFFFFFFFFFSFFCga",
98 | "GGGGGGGGGGGGkNAFFFFFFFFFFFFFFCga",
99 | "GGGGGGGGGGGGkNAFFFFFFFFFFFFFFCga",
100 | "GGGGGGGGGGGGkNCAAAAAAAAACCCCCNsa",
101 | "GGGGGGGGGGGGjkkkkkkkkjjhhggggsaa",
102 | "GGGGGGGGGGGGjhggggssssssaaaaaaaa"
103 | };
104 |
--------------------------------------------------------------------------------
/icons/silk/star.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *star[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 66 1",
5 | " c #CDCF83B70D58",
6 | ". c #CF4A865D1039",
7 | "X c #CFCF88F910F4",
8 | "o c #D29B8D5A15E6",
9 | "O c #D2CB903B15ED",
10 | "+ c #D605945D1BD5",
11 | "@ c #D6D59A571C2B",
12 | "# c #D85F9B121E84",
13 | "$ c #D8BAA0371F9C",
14 | "% c #EA3FB6371D71",
15 | "& c #EADAB8AD1F0B",
16 | "* c #DA8E9D17241B",
17 | "= c #DC0AA5772539",
18 | "- c #DCE7A99326A6",
19 | "; c #DE69A5832AF7",
20 | ": c #DF10AC042ACD",
21 | "> c #E023B0BB2B9D",
22 | ", c #E0F5ADE82EC8",
23 | "< c #EA54B5D82381",
24 | "1 c #EC45BCBB22FF",
25 | "2 c #E10BB27A2D35",
26 | "3 c #EA3AB63F2BC3",
27 | "4 c #EC42BC122A68",
28 | "5 c #E1C3A789319D",
29 | "6 c #E34BAD143441",
30 | "7 c #E64DAFEE39EB",
31 | "8 c #E38BB33F33DB",
32 | "9 c #EA23B65E32A5",
33 | "0 c #E557BBFE35DD",
34 | "q c #EB3DB9FB3429",
35 | "w c #E6DAB5583AA4",
36 | "e c #E976B5F73D2D",
37 | "r c #E6C3BBD13A4C",
38 | "t c #EA76BB1D3DCC",
39 | "y c #EE1DC1F12613",
40 | "u c #EF22C5952A3D",
41 | "i c #F055C95B2CCA",
42 | "p c #F154CC3B2DCD",
43 | "a c #E661C0B535D1",
44 | "s c #EED5C5723328",
45 | "d c #F040CA8730D2",
46 | "f c #E7B9C1F73AF6",
47 | "g c #EADAC65B3BEB",
48 | "h c #EA69C9C13D4F",
49 | "j c #F149CC9733AB",
50 | "k c #F19CCE103B40",
51 | "l c #F347D12735B2",
52 | "z c #F33FD1AB3C01",
53 | "x c #EAC2BD73421D",
54 | "c c #EC02C4794367",
55 | "v c #EC47CC7D43C5",
56 | "b c #ED85C5A44990",
57 | "n c #EEADCCA24C13",
58 | "m c #F1AACDB3451E",
59 | "M c #F132CD334B51",
60 | "N c #ED74D0C64622",
61 | "B c #EF31D25E4C53",
62 | "V c #F416D4F5448B",
63 | "C c #F32BD38C4C6D",
64 | "Z c #F59DDA9A4EB7",
65 | "A c #F170CE45510E",
66 | "S c #F2D3D56F53C6",
67 | "D c #F2E0D97A554F",
68 | "F c #F3CBD79D5A09",
69 | "G c #F4F5DBEC5B31",
70 | "H c None",
71 | /* pixels */
72 | "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
73 | "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
74 | "HHHHHHHHHHHHHHhhggHHHHHHHHHHHHHH",
75 | "HHHHHHHHHHHHHHhhhhHHHHHHHHHHHHHH",
76 | "HHHHHHHHHHHHHHvvvvgHHHHHHHHHHHHH",
77 | "HHHHHHHHHHHHHvnBBngHHHHHHHHHHHHH",
78 | "HHHHHHHHHHHHgvBSSng0HHHHHHHHHHHH",
79 | "HHHHHHHHHHHHhvSFFSc0HHHHHHHHHHHH",
80 | "HHHHHHHHHHHhvnSGFSvf0HHHHHHHHHHH",
81 | "HHHHHHHHHHhvnSDFSCncr0HHHHHHHHHH",
82 | "HHHHHgggfgvnSDSCmmMncr822>:HHHHH",
83 | "HHHNvvvvvvBSDSVkjkMnbxr08888,:HH",
84 | "hvNBDDDDDFFFSVkdisgcbbbxxtww8,-=",
85 | "hvNBDGGGGGDSVkjuuuusccccxxtw8:-=",
86 | "HHhvBDGGZVVzjjiuyy14444qxxe8:-HH",
87 | "HHHhvBFGZVlppiuuy111&%<9tx8,-=HH",
88 | "HHHHgvBSDZzppiuyy11&%0bnnbbxtw88weeee6#oHHHHHH",
98 | "HHHHHH:0bncr8,:::;=;;675+XHHHHHH",
99 | "HHHHHH:8xcr8-==HHH@#*;;*o HHHHHH",
100 | "HHHHHH::28::HHHHHHHHH++o. HHHHHH",
101 | "HHHHHH:---HHHHHHHHHHHH HHHHHH",
102 | "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
103 | "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"
104 | };
105 |
--------------------------------------------------------------------------------
/src/gradientlistmodel.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************************
2 | * Copyright (C) 2007-2024 by David Bitseff *
3 | * bitsed@gmail.com *
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 3 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | * This program is distributed in the hope that it will be useful, *
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 | * GNU General Public License for more details. *
14 | * *
15 | * You should have received a copy of the GNU General Public License *
16 | * along with this program. If not, see . *
17 | ***************************************************************************/
18 |
19 | #include
20 |
21 | #include "gradientlistmodel.h"
22 |
23 | GradientListModel::GradientListModel(QObject *parent)
24 | : QAbstractListModel(parent)
25 | {
26 | }
27 |
28 | QVariant GradientListModel::data(const QModelIndex &index, int role) const
29 | {
30 | if (!index.isValid())
31 | return QVariant();
32 |
33 | if (role == Qt::DecorationRole)
34 | return QIcon(pixmaps.value(index.row()));
35 | else if (role == Qt::UserRole)
36 | return pixmaps.value(index.row());
37 |
38 | return QVariant();
39 | }
40 |
41 | void GradientListModel::addGradient(const QPixmap &pixmap)
42 | {
43 | int row = pixmaps.size();
44 | beginInsertRows(QModelIndex(), row, row);
45 | pixmaps.insert(row, pixmap);
46 | endInsertRows();
47 | }
48 |
49 | Qt::ItemFlags GradientListModel::flags(const QModelIndex &index) const
50 | {
51 | if (index.isValid()) {
52 | return (Qt::ItemIsEnabled | Qt::ItemIsSelectable);
53 | }
54 |
55 | return Qt::ItemIsDropEnabled;
56 | }
57 |
58 | bool GradientListModel::removeRows(int row, int count, const QModelIndex &parent)
59 | {
60 | if (parent.isValid())
61 | return false;
62 |
63 | if (row >= pixmaps.size() || row + count <= 0)
64 | return false;
65 |
66 | int beginRow = qMax(0, row);
67 | int endRow = qMin(row + count - 1, pixmaps.size() - 1);
68 |
69 | beginRemoveRows(parent, beginRow, endRow);
70 |
71 | while (beginRow <= endRow) {
72 | pixmaps.removeAt(beginRow);
73 | ++beginRow;
74 | }
75 |
76 | endRemoveRows();
77 | return true;
78 | }
79 |
80 | int GradientListModel::rowCount(const QModelIndex &parent) const
81 | {
82 | if (parent.isValid())
83 | return 0;
84 | else
85 | return pixmaps.size();
86 | }
87 |
88 |
89 | void GradientListModel::clear()
90 | {
91 | beginRemoveRows(QModelIndex(), 0, pixmaps.size());
92 | pixmaps.clear();
93 | endRemoveRows();
94 | }
95 |
--------------------------------------------------------------------------------
/icons/silk/bullet_toggle_minus.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *bullet_toggle_minus[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 69 1",
5 | " c #6FEE6FEE6FEE",
6 | ". c #709670967096",
7 | "X c #715D715D715D",
8 | "o c #731D731D731D",
9 | "O c #75D375D375D3",
10 | "+ c #764576457645",
11 | "@ c #777E777E777E",
12 | "# c #78C078C078C0",
13 | "$ c #7B6E7B6E7B6E",
14 | "% c #7EB97EB97EB9",
15 | "& c #7F7F7F7F7F7F",
16 | "* c #814A814A814A",
17 | "= c #825D825D825D",
18 | "- c #837883788378",
19 | "; c #842A842A842A",
20 | ": c #87A287A287A2",
21 | "> c #883B883B883B",
22 | ", c #8A608A608A60",
23 | "< c #8C6E8C6E8C6E",
24 | "1 c #8DED8DED8DED",
25 | "2 c #8E518E518E51",
26 | "3 c #90C490C490C4",
27 | "4 c #91A491A491A4",
28 | "5 c #928A928A928A",
29 | "6 c #935693569356",
30 | "7 c #94BF94BF94BF",
31 | "8 c #96D596D596D5",
32 | "9 c #979197919791",
33 | "0 c #9AA69AA69AA6",
34 | "q c #9B999B999B99",
35 | "w c #9EB49EB49EB4",
36 | "e c #9F7D9F7D9F7D",
37 | "r c #A0A3A0A3A0A3",
38 | "t c #A272A272A272",
39 | "y c #A4D2A4D2A4D2",
40 | "u c #A5BFA5BFA5BF",
41 | "i c #A7C4A7C4A7C4",
42 | "p c #A9ABA9ABA9AB",
43 | "a c #AA62AA62AA62",
44 | "s c #AC87AC87AC87",
45 | "d c #ADD0ADD0ADD0",
46 | "f c #AF8DAF8DAF8D",
47 | "g c #B0C9B0C9B0C9",
48 | "h c #B1A9B1A9B1A9",
49 | "j c #B293B293B293",
50 | "k c #B354B354B354",
51 | "l c #B49CB49CB49C",
52 | "z c #B5AEB5AEB5AE",
53 | "x c #B691B691B691",
54 | "c c #B75DB75DB75D",
55 | "v c #B8C4B8C4B8C4",
56 | "b c #B9C3B9C3B9C3",
57 | "n c #BA4EBA4EBA4E",
58 | "m c #BB92BB92BB92",
59 | "M c #BCABBCABBCAB",
60 | "N c #BDC9BDC9BDC9",
61 | "B c #BE9FBE9FBE9F",
62 | "V c #BFD9BFD9BFD9",
63 | "C c #C0FFC0FFC0FF",
64 | "Z c #C206C206C206",
65 | "A c #C2CEC2CEC2CE",
66 | "S c #C3A0C3A0C3A0",
67 | "D c #C4D4C4D4C4D4",
68 | "F c #CDA7CDA7CDA7",
69 | "G c #CE85CE85CE85",
70 | "H c #E3F9E3F9E3F9",
71 | "J c #EE62EE62EE62",
72 | "K c #EEC2EEC2EEC2",
73 | "L c None",
74 | /* pixels */
75 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
76 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
77 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
78 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
79 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
80 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
81 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
82 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
83 | "LLLLLLLLLSCBmvzkgdaiuLLLLLLLLLLL",
84 | "LLLLLLLLAZCVNmbczkgsyrLLLLLLLLLL",
85 | "LLLLLLLLVVCZCCVVBBNlyqLLLLLLLLLL",
86 | "LLLLLLLLmNCCBMMMMBAvt8LLLLLLLLLL",
87 | "LLLLLLLLxnVBzggggxVcw4LLLLLLLLLL",
88 | "LLLLLLLLjxBAAZZZZASz0=@.LLLLLLLLLL",
96 | "LLLLLLLLL1,:;*%$#OoX LLLLLLLLLLL",
97 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
98 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
99 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
100 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
101 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
102 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
103 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
104 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
105 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
106 | "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"
107 | };
108 |
--------------------------------------------------------------------------------
/icons/silk/application.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *application[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 70 1",
5 | " c #4D166E75A750",
6 | ". c #4E3A6F8EA87E",
7 | "X c #4F39709BA90C",
8 | "o c #5257753AAD2F",
9 | "O c #54B47827B00E",
10 | "+ c #5D287B56AF86",
11 | "@ c #56BA79A8B1DA",
12 | "# c #591D7D65B548",
13 | "$ c #5AEB807DB7F6",
14 | "% c #5D3182AABA5A",
15 | "& c #606E861DBD68",
16 | "* c #63E488C0BEE0",
17 | "= c #69E48A9CBCEA",
18 | "- c #71F28C6BB9CC",
19 | "; c #74CC947ABFFE",
20 | ": c #7C2D94FABEE4",
21 | "> c #63958A2AC18C",
22 | ", c #6A738D5EC079",
23 | "< c #6BD492A3C7DD",
24 | "1 c #6C5A9452CA85",
25 | "2 c #6EFC9895CEB0",
26 | "3 c #74C696CEC7A0",
27 | "4 c #7E1D9718C10D",
28 | "5 c #76809874C51F",
29 | "6 c #7F529970C298",
30 | "7 c #72189649C8C4",
31 | "8 c #73439959CD0D",
32 | "9 c #7B659CC9C976",
33 | "0 c #6FB09A22D13E",
34 | "q c #73D49DBCD406",
35 | "w c #78769F61D203",
36 | "e c #7E7CA1BECEEE",
37 | "r c #7726A0E2D6C7",
38 | "t c #7A65A2B4D655",
39 | "y c #761CA190D9C7",
40 | "u c #7B4BA58ADAD2",
41 | "i c #7E7AAA3ADF04",
42 | "p c #81F19C1BC5A2",
43 | "a c #830F9FA5CA65",
44 | "s c #862DA22FCBB9",
45 | "d c #896DA545CE73",
46 | "f c #8B96A81FD09A",
47 | "g c #85F1A933D696",
48 | "h c #8E4BAB58D43E",
49 | "j c #82C0AB86DE2C",
50 | "k c #8AA5AEF5DC4D",
51 | "l c #90C0AE15D76C",
52 | "z c #9151AF96D86E",
53 | "x c #9561B4E7DDCD",
54 | "c c #8BCBB402E4D8",
55 | "v c #9226B6DEE40F",
56 | "b c #9AF0BC34E4CD",
57 | "n c #B4BAC2C5DACD",
58 | "m c #BE7ACEA7E5E6",
59 | "M c #C076D1AEE8FE",
60 | "N c #D5D7DE39EBE7",
61 | "B c #C62AD8F9F079",
62 | "V c #D7FEE10AEE90",
63 | "C c #D8AEE1DBEF65",
64 | "Z c #DC48E648F3B6",
65 | "A c #DFB9EA57F751",
66 | "S c #E3D7EBA7F63B",
67 | "D c #EA00EF57F6F8",
68 | "F c #E2C3ECD8F8BF",
69 | "G c #EC7EF1B2F7DE",
70 | "H c #EE87F394F97C",
71 | "J c #F2B3F6C7FB39",
72 | "K c #F68AFA3AFC2C",
73 | "L c #FD30FEB2FECF",
74 | "P c None",
75 | /* pixels */
76 | "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP",
77 | "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP",
78 | "PPgkiuuuuutrrqqqqq882211115;PPPP",
79 | "*8kcjjjjjjiiuuuuuttttrwwwwe9=PPP",
80 | "tjcvcccccccccccccccccccccccg3=PP",
81 | "jjcccccccccccccccccccccccccj8,PP",
82 | "iiiiiiiiiiiiiiiiiiiiiiiiiiit<,PP",
83 | "ujvbbbbbbbbbbbbbbbbbbbbbbbbk7*PP",
84 | "yvBFFAAAAAAAAAAAAAAAAAAAFFFMa&PP",
85 | "ybALLLLLLLLLLLLLLLLLLLLLLLLCs%PP",
86 | "ybALLLLLLLKKKKKKJJJJHHGDDJLCs%PP",
87 | "ybALLKKKKKKJJJJJHHGDDDSSSDLVs$PP",
88 | "qbALLLLKKKKKKJJJJHHGGGDDSHLVs#PP",
89 | "qbALLLLLLKKKKKKJJJJHHHGGDJLNa#PP",
90 | "qxZLLLLLLLKKKKKKKJJJJJHHGJLNp@PP",
91 | "qxZLLLLLLLLLKKKKKKKJJJJHHKLNp@PP",
92 | "qxZLLLLLLLLLLKKKKKKKKJJJJKLNp@PP",
93 | "qxZLLLLLLLLLLLLKKKKKKKKJJKLNpOPP",
94 | "0xZLLLLLLLLLLLLLKKKKKKKKKKLNpOPP",
95 | "2xZLLLLLLLLLLLLLLLLKKKKKKLLN6oPP",
96 | "1xZLLLLLLLLLLLLLLLLLLLKKKLLN4oPP",
97 | "1zZLLLLLLLLLLLLLLLLLLLLKKLLN:XPP",
98 | "smZZCCCVVVNNNNNNNNNNNNNNNNn- PP",
102 | "@=affdddsssappppp66644:::::-+XPP",
103 | "P@&>*&&%%$$##@@OOoooooXX. XPPP",
104 | "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP",
105 | "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP",
106 | "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP",
107 | "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"
108 | };
109 |
--------------------------------------------------------------------------------
/icons/silk/arrow_out.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *arrow_out[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 71 1",
5 | " c #418F8B803E60",
6 | ". c #45028EDA4122",
7 | "X c #46C490DC42BE",
8 | "o c #49AA9298458B",
9 | "O c #4D6A99034761",
10 | "+ c #4DD094EF4A1E",
11 | "@ c #4E6599C94938",
12 | "# c #504897654B95",
13 | "$ c #52B79DA34D34",
14 | "% c #55BE9D9950F4",
15 | "& c #59E39E325561",
16 | "* c #5DC19F535997",
17 | "= c #5571A3444EA1",
18 | "- c #57A9A5C450A4",
19 | "; c #5ACEA5DE5451",
20 | ": c #5CB0AB9C54CD",
21 | "> c #5E6EA2C859F6",
22 | ", c #5F10A9D55832",
23 | "< c #609FAFD3578A",
24 | "1 c #6281A5095DCA",
25 | "2 c #621FACB65AE3",
26 | "3 c #606EB1145771",
27 | "4 c #64B0B30F5C07",
28 | "5 c #6804B4265F45",
29 | "6 c #67E2B9D85DCF",
30 | "7 c #6940BAE85EE9",
31 | "8 c #6683A6D96203",
32 | "9 c #681AA6D463B5",
33 | "0 c #6708A90D6247",
34 | "q c #695FABF163CC",
35 | "w c #6ED9ACD26AE0",
36 | "e c #7171AE6C6D12",
37 | "r c #6BD0B3866450",
38 | "t c #6D9FBDD063AC",
39 | "y c #7158BE696762",
40 | "u c #7385B5CB6CAF",
41 | "i c #7448B9B06C3C",
42 | "p c #74E4B01E7018",
43 | "a c #7671B80F7017",
44 | "s c #79E7B76D733E",
45 | "d c #77D0B8D7700F",
46 | "f c #7B9DBAC2747C",
47 | "g c #7F31BE317801",
48 | "h c #71C2C52D65D9",
49 | "j c #7423C4FD6901",
50 | "k c #79ABC6F16EF6",
51 | "l c #7774C8C36BA2",
52 | "z c #7D23C48E7399",
53 | "x c #7D15C9BE71F5",
54 | "c c #8269BD6D7BA8",
55 | "v c #8114C58C77D6",
56 | "b c #80F7CA90762F",
57 | "n c #863DC26D7E65",
58 | "m c #84C2CAE77B63",
59 | "M c #88A4CA7F7F36",
60 | "N c #89D4BFE78321",
61 | "B c #87BEC1EC80AE",
62 | "V c #8A9BC3468369",
63 | "C c #8C7DCBE58354",
64 | "Z c #9056CF2A85F1",
65 | "A c #935AC78F8CCA",
66 | "S c #954ACDFF8CAA",
67 | "D c #924ED1658885",
68 | "F c #9823D0BD8EF0",
69 | "G c #9774CA4B90A0",
70 | "H c #9991CFCF9088",
71 | "J c #9B86D3009276",
72 | "K c #A5AAD6349D4D",
73 | "L c #A931D76FA099",
74 | "P c #AB8ED8F6A386",
75 | "I c None",
76 | /* pixels */
77 | "jjhhhhhhhhIIIIIIIIIIII644433::::",
78 | "jlxbbxjhhhIIIIIIIIIIII6445rrrr<:",
79 | "hxDJJZkhIIIIIIIIIIIIIIII4rgVVg5:",
80 | "hbJPLJbjIIIIIIIIIIIIIIIIriBAGBr;",
81 | "hbJKKFMzjIIIIIIIIIIIII35ifnVAcr-",
82 | "hxCJJSZCzjIIIIIIIIIIII5rgncccd2-",
83 | "hjxmCSJSMzyIIIIIIIII35igVVgur2;-",
84 | "hhjkbCHHCzy7IIIIIIII35icVnar,===",
85 | "hhIIjzCCMzy6IIIIIIII:5iffur,II==",
86 | "hhIItjzvzzyIIIIIIIIII4rurr2III==",
87 | "IIIIIIyyytIIIIIIIIIIII2222IIIIII",
88 | "IIIIII776IIIIIIIIIIIIII--IIIIIII",
89 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
90 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
91 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
92 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
93 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
94 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
95 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
96 | "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII",
97 | "IIIIIII::IIIIIIIIIIIIII@OOIIIIII",
98 | "IIIIII4422IIIIIIIIIIII%%$$IIIIII",
99 | "44III4rrrr2IIIIIIIIII%>11>#oIIXX",
100 | "43II4ridur2-IIIIIIII@%>0q8%@IIXX",
101 | "33:2riccsr,=IIIIIIIIO$>0ee1oX.",
102 | "<35rusccuq,=IIIIIIIII$;1we91o.",
103 | ":5dgsssu2,IIIIIIIIIIII@%18188>+ ",
104 | ":rcNcsuq;=IIIIIIIIIIIII+%*1qe8+ ",
105 | ":rcVcsq,IIIIIIIIIIIIIIIIo%8ep9+ ",
106 | ":2ufsu2-IIIIIIIIIIIIIIII.+>99*o ",
107 | ";:222,-==$IIIIIIIIIIIIX..X+++o. ",
108 | ";;-=====$$IIIIIIIIIIIIXX.. "
109 | };
110 |
--------------------------------------------------------------------------------
/icons/silk/arrow_rotate_clockwise.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char *arrow_rotate_clockwise[] = {
3 | /* columns rows colors chars-per-pixel */
4 | "32 32 73 1",
5 | " c #31B575072C5D",
6 | ". c #34C178D52ECA",
7 | "X c #36AB7A6030A1",
8 | "o c #38FA7C38336B",
9 | "O c #3C41820435C2",
10 | "+ c #3F87862B38C8",
11 | "@ c #41EB85453C55",
12 | "# c #44018B113CE3",
13 | "$ c #4560878D3FE6",
14 | "% c #462788EE40A5",
15 | "& c #49AC8C6843BC",
16 | "* c #4CD1936545A9",
17 | "= c #4EB499A34677",
18 | "- c #4FC393604995",
19 | "; c #528C96964C27",
20 | ": c #53E29C074BEA",
21 | "> c #55E397D94FF2",
22 | ", c #569E98D750FB",
23 | "< c #5A779E7F538E",
24 | "1 c #56DAA14F4E3B",
25 | "2 c #588AA4C44F74",
26 | "3 c #5C36A3BD53D4",
27 | "4 c #5E26AB5654B3",
28 | "5 c #5FD0A2B05A5F",
29 | "6 c #60C1AFF255C3",
30 | "7 c #6293A6385B35",
31 | "8 c #6574AA8D5D15",
32 | "9 c #6175B12E56DA",
33 | "0 c #6599B5185B36",
34 | "q c #68CBB3305F43",
35 | "w c #691FBA8A5DB6",
36 | "e c #667CA8246066",
37 | "r c #6B0DAD086406",
38 | "t c #6E6AAF826878",
39 | "y c #6DC3B2B4650F",
40 | "u c #6EE9B9926501",
41 | "i c #7041B83165FA",
42 | "p c #717DB92F67AF",
43 | "a c #736BB39C6C60",
44 | "s c #74FBBC026AB5",
45 | "d c #7915BAE26F60",
46 | "f c #76F7B56A7001",
47 | "g c #7869B72A7163",
48 | "h c #7B93BBAA742C",
49 | "j c #7EDFBE6878A0",
50 | "k c #730BC17567BC",
51 | "l c #7566C2076A61",
52 | "z c #7939C20D6E11",
53 | "x c #7D2FC51C7251",
54 | "c c #7FDCC0F978D6",
55 | "v c #8046BF717717",
56 | "b c #815CBF3079FF",
57 | "n c #8038C641759B",
58 | "m c #84BBC3577D45",
59 | "M c #894AC4C37F75",
60 | "N c #86EEC8657CF2",
61 | "B c #8913C9B87E5D",
62 | "V c #8772C54180BE",
63 | "C c #8ACBC655832E",
64 | "Z c #8D0DC99D857B",
65 | "A c #8F9BCA9B8884",
66 | "S c #90E2CAD186AF",
67 | "D c #94BBCC7D8BCE",
68 | "F c #9846CF508E91",
69 | "G c #99A9D09E8F57",
70 | "H c #9AEECF7E923D",
71 | "J c #9D68D1C09414",
72 | "K c #A088D27A97A9",
73 | "L c #A542D59F9BEA",
74 | "P c #A8DED7579F6D",
75 | "I c #AA4BD823A10E",
76 | "U c #AB85D8F9A1C4",
77 | "Y c None",
78 | /* pixels */
79 | "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
80 | "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
81 | "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
82 | "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
83 | "YYYYYYYYYYYYwww00096YYYYYYYYYYYY",
84 | "YYYYYYYYYYYzzzzzsspiyYYYYYYYYYYY",
85 | "YYYYYYYYYkxBSFGGFDSMhy4YYYYYYYYY",
86 | "YYYYYYYYlxBDJLPUILJDVhr3YYYYYYYY",
87 | "YYYYYYYknZJLLLPPPLJHFChr3YYYYYYY",
88 | "YYYYYYkxZJLILKJHHHHJJHVd7:YYYYYY",
89 | "YYYYYYxBJLPPLHSMMCDHJHDmt5YYYYYY",
90 | "YYYYYzNDLIPKDCvddhbCDHHZge:YYYYY",
91 | "YYYYwzAJLPLDgyq8877yVDDCba;@YYYY",
92 | "YYYYwsNSDDZvq2YYYY=3hCZZCf;+YYYY",
93 | "YYYY0wuppuyq4YYYYYY3yhCAZg;OYYYY",
94 | "YYYY009944432YYYYYY<8amAAg-OYYYY",
95 | "YYYYYYYYYYYY11YYYYY:8amZZa*oYYYY",
96 | "YYYYYYYYYYYY::YYYY#:edmVVa&XYYYY",
97 | "YYYYYYYYYY::::YYY##;avmmjr&.YYYY",
98 | "YYYYYYYYYY33::YY*;;7gmmha7% YYYY",
99 | "YYYYYYYY:17873**:7ahmmmhe>@YYYYY",
100 | "YYYYYYYY15yaar3<8abVMmjt,&YYYYYY",
101 | "YYYYYY:17yjMmbhhhjcmmjt<$oYYYYYY",
102 | "YYYYYY::7aMAZZZCCmjhgt<&oYYYYYYY",
103 | "YYYYYY=:7amZZCCVVmha8,#oYYYYYYYY",
104 | "YYYYYY=:<8gbjhaaate7;%oYYYYYYYYY",
105 | "YYYYYYYY*:7re5;&&&%@@YYYYYYYYYYY",
106 | "YYYYYYYY#*;;;*@X.. YYYYYYYYYYYY",
107 | "YYYYYYYYYY##@@YYYYYYYYYYYYYYYYYY",
108 | "YYYYYYYYYYOOooYYYYYYYYYYYYYYYYYY",
109 | "YYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYY",
110 | "YYYYYYYYYYYYXXYYYYYYYYYYYYYYYYYY"
111 | };
112 |
--------------------------------------------------------------------------------