Patch from issue 1012: Proposal of an icon theme for RT

This patch add multiple iconset capabilities, on a per theme basis. See comment #61 and #68 from issue 1012 to see how it works.
This commit is contained in:
natureh
2011-10-12 01:10:45 +02:00
parent cc437409aa
commit 81c988a852
81 changed files with 1257 additions and 322 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

BIN
rtdata/images/add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

View File

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 920 B

After

Width:  |  Height:  |  Size: 784 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 B

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Dark

View File

@@ -301,7 +301,7 @@ style "clearlooks-menu" {
xthickness = 0
ythickness = 0
bg[NORMAL] = @rt_base_color
bg[NORMAL] = shade (1.2, @rt_bg_color)
engine "clearlooks" {
radius = 0.0

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Light

View File

@@ -0,0 +1,3 @@
[General]
Iconset=Light
FallbackIconset=

View File

@@ -0,0 +1,2 @@
[General]
Iconset=Light

View File

@@ -29,44 +29,40 @@
#else
#include <stdio.h>
#endif
#include <rtimage.h>
#include <memory>
Glib::RefPtr<Gdk::Pixbuf> safe_create_from_file(const std::string& filename)
Glib::RefPtr<Gdk::Pixbuf> safe_create_from_file(const Glib::ustring& filename)
{
Glib::RefPtr<Gdk::Pixbuf> res;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
try {
res = Gdk::Pixbuf::create_from_file (filename);
}
catch (Glib::Exception& ex) {
printf ("%s\n", ex.what().c_str());
}
#else
std::auto_ptr<Glib::Error> error;
res = Gdk::Pixbuf::create_from_file (filename, error);
if (error.get())
printf ("%s\n", error->what().c_str());
#endif
Glib::RefPtr<Gdk::Pixbuf> res;
Glib::ustring path = RTImage::findIconAbsolutePath(filename);
if (path.length()) {
try {
res = Gdk::Pixbuf::create_from_file (path);
}
catch (Glib::Exception& ex) {
printf ("ERROR: (ustring) File \"%s\" not found.\n", ex.what().c_str());
}
}
return res;
}
Cairo::RefPtr<Cairo::ImageSurface> safe_create_from_png(const Glib::ustring& filename)
{
Cairo::RefPtr<Cairo::ImageSurface> res;
// files_test need a std::string which (as stated in its proto) but will only work if
// we use the Glib::ustring filename !?
if (!Glib::file_test (filename, Glib::FILE_TEST_EXISTS)) {
printf ("ERROR: (ustring) File \"%s\" not found.\n", filename.c_str());
} else {
try {
// create_from_png need a std::string converted from UTF8 with safe_locale_from_utf8
res = Cairo::ImageSurface::create_from_png (safe_locale_from_utf8(filename));
} catch (...) {}
}
return res;
Cairo::RefPtr<Cairo::ImageSurface> res;
Glib::ustring path = RTImage::findIconAbsolutePath(filename);
if (path.length()) {
// files_test need a std::string which (as stated in its proto) but will only work if
// we use the Glib::ustring filename !?
try {
// create_from_png need a std::string converted from UTF8 with safe_locale_from_utf8
res = Cairo::ImageSurface::create_from_png (safe_locale_from_utf8(path));
} catch (...) {
printf("ERROR: (ustring) File \"%s\" not found.\n", path.c_str());
}
}
return res;
}
Glib::RefPtr<Gio::FileInfo> safe_query_file_info (Glib::RefPtr<Gio::File> &file)
@@ -99,12 +95,12 @@ Glib::RefPtr<Gio::FileInfo> safe_query_file_info (Glib::RefPtr<Gio::File> &file)
void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<FileMTimeInfo> &flist)
{
Glib::RefPtr<Gio::FileEnumerator> dirList;
if (dir) {
SAFE_ENUMERATOR_CODE_START
flist.push_back (FileMTimeInfo (removeExtension(info->get_name()), info->modification_time()));
SAFE_ENUMERATOR_CODE_END;
}
Glib::RefPtr<Gio::FileEnumerator> dirList;
if (dir) {
SAFE_ENUMERATOR_CODE_START
flist.push_back (FileMTimeInfo (removeExtension(info->get_name()), info->modification_time()));
SAFE_ENUMERATOR_CODE_END;
}
}
/*
@@ -112,16 +108,16 @@ void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<FileMTimeIn
*/
void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustring> &names, const Glib::ustring &directory, const std::vector<Glib::ustring> *extensions)
{
Glib::RefPtr<Gio::FileEnumerator> dirList;
Glib::RefPtr<Gio::FileEnumerator> dirList;
if (dir) {
if (!extensions) {
if (dir) {
if (!extensions) {
SAFE_ENUMERATOR_CODE_START
names.push_back (Glib::build_filename (directory, info->get_name()));
SAFE_ENUMERATOR_CODE_END;
}
else {
// convert extensions to lowercase in a new vector list
}
else {
// convert extensions to lowercase in a new vector list
std::vector<Glib::ustring> lcExtensions;
for (unsigned int i=0; i<extensions->size(); i++)
lcExtensions.push_back ((*extensions)[i].lowercase());
@@ -145,24 +141,24 @@ void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustri
}
}
SAFE_ENUMERATOR_CODE_END;
}
}
}
}
}
void safe_build_subdir_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustring> &subDirs, bool add_hidden)
{
Glib::RefPtr<Gio::FileEnumerator> dirList;
if (dir)
{
// CD-ROMs with no drive inserted are reported, but do not exist, causing RT to crash
if (!safe_file_test(dir->get_path(),Glib::FILE_TEST_EXISTS)) return;
Glib::RefPtr<Gio::FileEnumerator> dirList;
if (dir)
{
// CD-ROMs with no drive inserted are reported, but do not exist, causing RT to crash
if (!safe_file_test(dir->get_path(),Glib::FILE_TEST_EXISTS)) return;
SAFE_ENUMERATOR_CODE_START
if (info->get_file_type() == Gio::FILE_TYPE_DIRECTORY && (!info->is_hidden() || add_hidden))
subDirs.push_back (info->get_name());
SAFE_ENUMERATOR_CODE_END;
}
}
}
/*
@@ -174,22 +170,22 @@ Glib::ustring safe_filename_to_utf8 (const std::string& src)
Glib::ustring utf8_str;
#ifdef WIN32
#ifdef GLIBMM_EXCEPTIONS_ENABLED
try {
utf8_str = Glib::locale_to_utf8(src);
}
catch (const Glib::ConvertError& e) {
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?");
}
try {
utf8_str = Glib::locale_to_utf8(src);
}
catch (const Glib::ConvertError& e) {
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?");
}
#else
{
std::auto_ptr<Glib::Error> error;
utf8_str = locale_to_utf8(src, error);
if (error.get())
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?", error);
}
{
std::auto_ptr<Glib::Error> error;
utf8_str = locale_to_utf8(src, error);
if (error.get())
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?", error);
}
#endif //GLIBMM_EXCEPTIONS_ENABLED
#else
utf8_str = Glib::filename_to_utf8(src);
utf8_str = Glib::filename_to_utf8(src);
#endif
return utf8_str;
}
@@ -198,40 +194,40 @@ Glib::ustring safe_locale_to_utf8 (const std::string& src)
{
Glib::ustring utf8_str;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
try {
utf8_str = Glib::locale_to_utf8(src);
}
catch (const Glib::ConvertError& e) {
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?");
}
try {
utf8_str = Glib::locale_to_utf8(src);
}
catch (const Glib::ConvertError& e) {
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?");
}
#else
{
std::auto_ptr<Glib::Error> error;
utf8_str = locale_to_utf8(src, error);
if (error.get())
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?", error);
}
{
std::auto_ptr<Glib::Error> error;
utf8_str = locale_to_utf8(src, error);
if (error.get())
utf8_str = Glib::convert_with_fallback(src, "UTF8", "LATIN1","?", error);
}
#endif //GLIBMM_EXCEPTIONS_ENABLED
return utf8_str;
}
std::string safe_locale_from_utf8 (const Glib::ustring& utf8_str)
{
std::string str;
std::string str;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
try {
str = Glib::locale_from_utf8(utf8_str);
}
catch (const Glib::ConvertError& e) {
//str = Glib::convert_with_fallback(utf8_str, "LATIN1", "UTF8", "?");
}
try {
str = Glib::locale_from_utf8(utf8_str);
}
catch (const Glib::ConvertError& e) {
//str = Glib::convert_with_fallback(utf8_str, "LATIN1", "UTF8", "?");
}
#else
{
std::auto_ptr<Glib::Error> error;
{
std::auto_ptr<Glib::Error> error;
str = Glib::locale_from_utf8(utf8_str, error);
/*if (error.get())
{str = Glib::convert_with_fallback(utf8_str, "LATIN1", "UTF8", "?", error);}*/
}
}
#endif //GLIBMM_EXCEPTIONS_ENABLED
return str;
}
@@ -266,46 +262,46 @@ bool safe_spawn_command_line_async (const Glib::ustring& cmd_utf8)
bool safe_spawn_command_line_sync (const Glib::ustring& cmd_utf8)
{
std::string cmd;
std::string stdOut;
std::string stdErr;
std::string cmd;
std::string stdOut;
std::string stdErr;
bool success = false;
//bool success = false; // unused
int exitStatus=-1;
try {
//cmd = Glib::filename_from_utf8(cmd_utf8);
printf ("command line: %s\n", cmd_utf8.c_str());
int exitStatus=-1;
try {
//cmd = Glib::filename_from_utf8(cmd_utf8);
printf ("command line: %s\n", cmd_utf8.c_str());
// if it crashes here on windows, make sure you have the GTK runtime files gspawn-win32-helper*.exe files in RT directory
Glib::spawn_command_line_sync (cmd_utf8, NULL, NULL, &exitStatus);
} catch (Glib::Exception& ex) {
printf ("%s\n", ex.what().c_str());
}
return (exitStatus==0);
// if it crashes here on windows, make sure you have the GTK runtime files gspawn-win32-helper*.exe files in RT directory
Glib::spawn_command_line_sync (cmd_utf8, NULL, NULL, &exitStatus);
} catch (Glib::Exception& ex) {
printf ("%s\n", ex.what().c_str());
}
return (exitStatus==0);
}
// Opens a file for binary writing and request exclusive lock (cases were you need "wb" mode plus locking)
// (Important on Windows to prevent Explorer to crash RT when parallel scanning e.g. a currently written image file)
FILE * safe_g_fopen_WriteBinLock(const Glib::ustring& fname) {
FILE* f=NULL;
FILE* f=NULL;
#ifdef WIN32
// g_fopen just uses _wfopen internally on Windows, does not lock access and has no options to set this
// so use a native function to work around this problem
wchar_t *wFname = (wchar_t*)g_utf8_to_utf16 (fname.c_str(), -1, NULL, NULL, NULL);
HANDLE hFile = CreateFileW(wFname, GENERIC_READ | GENERIC_WRITE, 0 /* no sharing allowed */, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
g_free(wFname);
// g_fopen just uses _wfopen internally on Windows, does not lock access and has no options to set this
// so use a native function to work around this problem
wchar_t *wFname = (wchar_t*)g_utf8_to_utf16 (fname.c_str(), -1, NULL, NULL, NULL);
HANDLE hFile = CreateFileW(wFname, GENERIC_READ | GENERIC_WRITE, 0 /* no sharing allowed */, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
g_free(wFname);
if (hFile==INVALID_HANDLE_VALUE)
f=NULL;
else
f=_fdopen( _open_osfhandle((intptr_t)hFile, 0) , "wb");
if (hFile==INVALID_HANDLE_VALUE)
f=NULL;
else
f=_fdopen( _open_osfhandle((intptr_t)hFile, 0) , "wb");
#else
f = safe_g_fopen(fname, "wb");
f = safe_g_fopen(fname, "wb");
#endif
return f;
return f;
}
// Covers old UNIX ::open, which expects ANSI instead of UTF8 on Windows
@@ -313,44 +309,44 @@ int safe_open_ReadOnly(const char *fname) {
int fd=-1;
#ifdef WIN32
// First convert UTF8 to UTF16, then use Windows function to open
// First convert UTF8 to UTF16, then use Windows function to open
wchar_t *wFname = (wchar_t*)g_utf8_to_utf16 (fname, -1, NULL, NULL, NULL);
HANDLE hFile = CreateFileW(wFname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
g_free(wFname);
HANDLE hFile = CreateFileW(wFname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
g_free(wFname);
// convert back to old file descriptor format
if (hFile!=INVALID_HANDLE_VALUE) fd = _open_osfhandle((intptr_t)hFile, 0);
if (hFile!=INVALID_HANDLE_VALUE) fd = _open_osfhandle((intptr_t)hFile, 0);
#else
fd = ::open(fname, O_RDONLY);
fd = ::open(fname, O_RDONLY);
#endif
return fd;
return fd;
}
FILE * safe_g_fopen(const Glib::ustring& src,const gchar *mode)
{
return g_fopen(src.c_str(),mode);
return g_fopen(src.c_str(),mode);
}
bool safe_file_test (const Glib::ustring& filename, Glib::FileTest test)
{
return Glib::file_test (filename, test);
return Glib::file_test (filename, test);
}
int safe_g_remove(const Glib::ustring& filename)
{
return ::g_remove(filename.c_str());
return ::g_remove(filename.c_str());
}
int safe_g_rename(const Glib::ustring& oldFilename, const Glib::ustring& newFilename)
{
return ::g_rename(oldFilename.c_str(), newFilename.c_str());
return ::g_rename(oldFilename.c_str(), newFilename.c_str());
}
int safe_g_mkdir_with_parents(const Glib::ustring& dirName, int mode)
{
return ::g_mkdir_with_parents(dirName.c_str(), mode);
return ::g_mkdir_with_parents(dirName.c_str(), mode);
}
Glib::ustring safe_get_user_picture_dir() {

View File

@@ -5,7 +5,7 @@
#include <glibmm.h>
#include <giomm.h>
Glib::RefPtr<Gdk::Pixbuf> safe_create_from_file(const std::string& filename);
Glib::RefPtr<Gdk::Pixbuf> safe_create_from_file(const Glib::ustring& filename);
Cairo::RefPtr<Cairo::ImageSurface> safe_create_from_png(const Glib::ustring& filename);
class FileMTimeInfo {

View File

@@ -14,7 +14,7 @@ set (BASESOURCEFILES
crophandler.cc dirbrowser.cc
curveeditor.cc curveeditorgroup.cc diagonalcurveeditorsubgroup.cc flatcurveeditorsubgroup.cc
filecatalog.cc
previewloader.cc
previewloader.cc rtimage.cc
histogrampanel.cc history.cc imagearea.cc
imageareapanel.cc iptcpanel.cc labcurve.cc main.cc
multilangmgr.cc mycurve.cc myflatcurve.cc mydiagonalcurve.cc options.cc

View File

@@ -23,6 +23,7 @@
#include <rtengine.h>
#include <options.h>
#include <guiutils.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -58,7 +59,7 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep
hbox->pack_start (*label);
reset = Gtk::manage (new Gtk::Button ());
reset->add (*Gtk::manage (new Gtk::Image (argv0+"/images/undo.png")));
reset->add (*Gtk::manage (new RTImage ("default-settings-ltr.png", "default-settings-rtl.png")));
reset->set_relief (Gtk::RELIEF_NONE);
reset->set_border_width (0);
reset->set_tooltip_text (M("ADJUSTER_RESET_TO_DEFAULT"));
@@ -121,7 +122,7 @@ Adjuster::Adjuster (Gtk::Image *imgIcon, double vmin, double vmax, double vstep,
reset = Gtk::manage (new Gtk::Button ());
reset->add (*Gtk::manage (new Gtk::Image (argv0+"/images/undo.png")));
reset->add (*Gtk::manage (new RTImage ("default-settings-ltr.png", "default-settings-rtl.png")));
reset->set_relief (Gtk::RELIEF_NONE);
reset->set_border_width (0);
reset->set_tooltip_text (M("ADJUSTER_RESET_TO_DEFAULT"));

View File

@@ -77,6 +77,7 @@ class Adjuster : public Gtk::VBox {
void setLimits (double vmin, double vmax, double vstep, double vdefault);
void setEnabled (bool enabled);
void setDefault (double def);
void setNbDisplayedChars (int nbr) { spin->set_width_chars(nbr); }
void setEditedState (EditedState eState);
EditedState getEditedState ();
void setDefaultEditedState (EditedState eState);

View File

@@ -24,6 +24,7 @@
#include <batchqueuebuttonset.h>
#include <guiutils.h>
#include <safegtk.h>
#include <rtimage.h>
#include <cstring>
@@ -37,15 +38,15 @@ BatchQueue::BatchQueue () : processing(NULL), listener(NULL) {
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(head = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPMOVEHEAD"))), 0, 1, p, p+1); p++;
head->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/toleftend.png")));
head->set_image(*Gtk::manage(new RTImage ("toleftend.png")));
pmenu->attach (*Gtk::manage(tail = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPMOVEEND"))), 0, 1, p, p+1); p++;
tail->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/torightend.png")));
tail->set_image(*Gtk::manage(new RTImage ("torightend.png")));
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(cancel = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPCANCELJOB"))), 0, 1, p, p+1); p++;
cancel->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/deltags.png")));
cancel->set_image(*Gtk::manage(new RTImage ("deltags.png")));
pmenu->show_all ();

View File

@@ -31,9 +31,9 @@ Cairo::RefPtr<Cairo::ImageSurface> BatchQueueButtonSet::tailIcon;
BatchQueueButtonSet::BatchQueueButtonSet (BatchQueueEntry* myEntry) {
if (!iconsLoaded) {
cancelIcon = safe_create_from_png (argv0+"/images/deltags.png");
headIcon = safe_create_from_png (argv0+"/images/toleftend.png");
tailIcon = safe_create_from_png (argv0+"/images/torightend.png");
cancelIcon = safe_create_from_png ("deltags.png");
headIcon = safe_create_from_png ("toleftend.png");
tailIcon = safe_create_from_png ("torightend.png");
iconsLoaded = true;
}

View File

@@ -23,6 +23,7 @@
#include <rtwindow.h>
#include <soundman.h>
#include <safegtk.h>
#include <rtimage.h>
BatchQueuePanel::BatchQueuePanel () {
@@ -114,13 +115,13 @@ BatchQueuePanel::BatchQueuePanel () {
zoomLabel->set_use_markup (true);
zoomBox->pack_start (*zoomLabel, Gtk::PACK_SHRINK, 4);
zoomInButton = Gtk::manage (new Gtk::Button ());
zoomInButton->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomInButton->set_image (*Gtk::manage (new RTImage ("gtk-zoom-in.png")));
zoomInButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomIn));
zoomInButton->set_relief (Gtk::RELIEF_NONE);
zoomInButton->set_tooltip_markup (M("FILEBROWSER_ZOOMINHINT"));
zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK);
zoomOutButton = Gtk::manage (new Gtk::Button ());
zoomOutButton->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomOutButton->set_image (*Gtk::manage (new RTImage ("gtk-zoom-out.png")));
zoomOutButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomOut));
zoomOutButton->set_relief (Gtk::RELIEF_NONE);
zoomOutButton->set_tooltip_markup (M("FILEBROWSER_ZOOMOUTHINT"));
@@ -144,13 +145,13 @@ void BatchQueuePanel::updateTab (int qsize)
Gtk::Label* l;
if(!qsize ){
vbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
vbb->pack_start (*Gtk::manage (new RTImage ("processing.png")));
l=Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")) );
} else if( start->get_active () ){
vbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
vbb->pack_start (*Gtk::manage (new RTImage ("processing-play.png")));
l=Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]"));
} else {
vbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
vbb->pack_start (*Gtk::manage (new RTImage ("processing-pause.png")));
l=Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" ));
}
l->set_angle (90);
@@ -162,13 +163,13 @@ void BatchQueuePanel::updateTab (int qsize)
} else {
Gtk::HBox* hbb = Gtk::manage (new Gtk::HBox ());
if (!qsize ) {
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
hbb->pack_start (*Gtk::manage (new RTImage ("processing.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )));
} else if ( start->get_active () ){
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
hbb->pack_start (*Gtk::manage (new RTImage ("processing-play.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
} else {
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
hbb->pack_start (*Gtk::manage (new RTImage ("processing-pause.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
}
hbb->set_spacing (2);

View File

@@ -17,6 +17,7 @@
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <chmixer.h>
#include <rtimage.h>
using namespace rtengine;
using namespace rtengine::procparams;
@@ -25,15 +26,15 @@ extern Glib::ustring argv0;
ChMixer::ChMixer (): Gtk::VBox(), FoldableToolPanel(this) {
imgIcon[0] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_RR.png"));
imgIcon[1] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_RG.png"));
imgIcon[2] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_RB.png"));
imgIcon[3] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_GR.png"));
imgIcon[4] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_GG.png"));
imgIcon[5] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_GB.png"));
imgIcon[6] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_BR.png"));
imgIcon[7] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_BG.png"));
imgIcon[8] = Gtk::manage (new Gtk::Image (argv0+"/images/Chanmixer_BB.png"));
imgIcon[0] = Gtk::manage (new RTImage ("Chanmixer_RR.png"));
imgIcon[1] = Gtk::manage (new RTImage ("Chanmixer_RG.png"));
imgIcon[2] = Gtk::manage (new RTImage ("Chanmixer_RB.png"));
imgIcon[3] = Gtk::manage (new RTImage ("Chanmixer_GR.png"));
imgIcon[4] = Gtk::manage (new RTImage ("Chanmixer_GG.png"));
imgIcon[5] = Gtk::manage (new RTImage ("Chanmixer_GB.png"));
imgIcon[6] = Gtk::manage (new RTImage ("Chanmixer_BR.png"));
imgIcon[7] = Gtk::manage (new RTImage ("Chanmixer_BG.png"));
imgIcon[8] = Gtk::manage (new RTImage ("Chanmixer_BB.png"));
Gtk::Label* rlabel = Gtk::manage (new Gtk::Label ());
rlabel->set_markup (Glib::ustring("\t<span foreground=\"#b00000\"><b>") + M("TP_CHMIXER_RED") + Glib::ustring(":</b></span>"));

View File

@@ -17,6 +17,7 @@
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <coarsepanel.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -27,25 +28,25 @@ CoarsePanel::CoarsePanel () : ToolPanel () {
degree = 0;
Gtk::Image* rotateli = Gtk::manage (new Gtk::Image (argv0+"/images/stock-rotate-270-16.png"));
Gtk::Image* rotateli = Gtk::manage (new RTImage ("stock-rotate-270-16.png"));
rotate_left = Gtk::manage (new Gtk::Button ());
rotate_left->add (*rotateli);
rotate_left->set_relief(Gtk::RELIEF_NONE);
pack_start (*rotate_left);
Gtk::Image* rotateri = Gtk::manage (new Gtk::Image (argv0+"/images/stock-rotate-90-16.png"));
Gtk::Image* rotateri = Gtk::manage (new RTImage ("stock-rotate-90-16.png"));
rotate_right = Gtk::manage (new Gtk::Button ());
rotate_right->add (*rotateri);
rotate_right->set_relief(Gtk::RELIEF_NONE);
pack_start (*rotate_right);
Gtk::Image* fliphi = Gtk::manage (new Gtk::Image (argv0+"/images/stock-flip-horizontal-16.png"));
Gtk::Image* fliphi = Gtk::manage (new RTImage ("stock-flip-horizontal-16.png"));
hflip = Gtk::manage (new Gtk::ToggleButton ());
hflip->add (*fliphi);
hflip->set_relief(Gtk::RELIEF_NONE);
pack_start (*hflip);
Gtk::Image* flipvi = Gtk::manage (new Gtk::Image (argv0+"/images/stock-flip-vertical-16.png"));
Gtk::Image* flipvi = Gtk::manage (new RTImage ("stock-flip-vertical-16.png"));
vflip = Gtk::manage (new Gtk::ToggleButton ());
vflip->add (*flipvi);
vflip->set_relief(Gtk::RELIEF_NONE);

View File

@@ -18,6 +18,8 @@
*/
#include <crop.h>
#include <options.h>
#include <rtimage.h>
using namespace rtengine;
using namespace rtengine::procparams;
@@ -75,7 +77,7 @@ Crop::Crop (): Gtk::VBox(), FoldableToolPanel(this) {
pack_start (*hb2, Gtk::PACK_SHRINK, 4);
selectCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_SELECTCROP")));
selectCrop->set_image (*Gtk::manage (new Gtk::Image (argv0+"/images/crop22.png")));
selectCrop->set_image (*Gtk::manage (new RTImage ("crop22.png")));
pack_start (*selectCrop, Gtk::PACK_SHRINK, 2);

View File

@@ -69,12 +69,12 @@ CropWindow::CropWindow (ImageArea* parent, rtengine::StagedImageProcessor* ipc_,
titleHeight = ih;
resizeSurface = safe_create_from_png (argv0+"/images/resize.png");
bZoomIn = new LWButton (safe_create_from_png (argv0+"/images/gtk-zoom-in.png"), 0, NULL, LWButton::Left, LWButton::Center, "Zoom In");
bZoomOut = new LWButton (safe_create_from_png (argv0+"/images/gtk-zoom-out.png"), 1, NULL, LWButton::Left, LWButton::Center, "Zoom Out");
bZoom100 = new LWButton (safe_create_from_png (argv0+"/images/gtk-zoom-100.png"), 2, NULL, LWButton::Left, LWButton::Center, "Zoom 100/%");
//bZoomFit = new LWButton (safe_create_from_png (argv0+"/images/gtk-zoom-fit.png"), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit");
bClose = new LWButton (safe_create_from_png (argv0+"/images/gtk-close.png"), 4, NULL, LWButton::Right, LWButton::Center, "Close");
resizeSurface = safe_create_from_png ("resize.png");
bZoomIn = new LWButton (safe_create_from_png ("gtk-zoom-in.png"), 0, NULL, LWButton::Left, LWButton::Center, "Zoom In");
bZoomOut = new LWButton (safe_create_from_png ("gtk-zoom-out.png"), 1, NULL, LWButton::Left, LWButton::Center, "Zoom Out");
bZoom100 = new LWButton (safe_create_from_png ("gtk-zoom-100.png"), 2, NULL, LWButton::Left, LWButton::Center, "Zoom 100/%");
//bZoomFit = new LWButton (safe_create_from_png ("gtk-zoom-fit.png"), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit");
bClose = new LWButton (safe_create_from_png ("gtk-close.png"), 4, NULL, LWButton::Right, LWButton::Center, "Close");
buttonSet.add (bZoomIn);
buttonSet.add (bZoomOut);

View File

@@ -19,6 +19,7 @@
#include <cursormanager.h>
#include <options.h>
#include <safegtk.h>
#include <rtimage.h>
CursorManager cursorManager;
@@ -35,10 +36,10 @@ void CursorManager::init (Glib::RefPtr<Gdk::Window> mainWin) {
cAdd = new Gdk::Cursor (Gdk::PLUS);
cWait = new Gdk::Cursor (Gdk::CLOCK);
Glib::RefPtr<Gdk::Pixbuf> hand = safe_create_from_file(argv0+"/images/cross22.png");
Glib::RefPtr<Gdk::Pixbuf> close_hand = safe_create_from_file(argv0+"/images/closedhand22.png");
Glib::RefPtr<Gdk::Pixbuf> wbpick = safe_create_from_file(argv0+"/images/wbpicker16.png");
Glib::RefPtr<Gdk::Pixbuf> empty = safe_create_from_file(argv0+"/images/empty.png");
Glib::RefPtr<Gdk::Pixbuf> hand = safe_create_from_file("cross22.png");
Glib::RefPtr<Gdk::Pixbuf> close_hand = safe_create_from_file("closedhand22.png");
Glib::RefPtr<Gdk::Pixbuf> wbpick = safe_create_from_file("wbpicker16.png");
Glib::RefPtr<Gdk::Pixbuf> empty = safe_create_from_file("empty.png");
cHand = hand ? new Gdk::Cursor (cAdd->get_display(), hand, 10, 10) : new Gdk::Cursor (Gdk::HAND2);
cClosedHand = close_hand ? new Gdk::Cursor (cAdd->get_display(), close_hand, 10, 10) : new Gdk::Cursor (Gdk::HAND2);

View File

@@ -31,10 +31,10 @@ extern Glib::ustring argv0;
DiagonalCurveEditor::DiagonalCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, CurveEditorSubGroup* ceSubGroup) : CurveEditor::CurveEditor(text, (CurveEditorGroup*) ceGroup, ceSubGroup) {
// Order set in the same order than "enum DiagonalCurveType". Shouldn't change, for compatibility reason
curveType->addEntry(argv0+"/images/curveType-linear.png", M("CURVEEDITOR_LINEAR")); // 0 Linear
curveType->addEntry(argv0+"/images/curveType-spline.png", M("CURVEEDITOR_CUSTOM")); // 1 Spline
curveType->addEntry(argv0+"/images/curveType-parametric.png", M("CURVEEDITOR_PARAMETRIC")); // 2 Parametric
curveType->addEntry(argv0+"/images/curveType-NURBS.png", M("CURVEEDITOR_NURBS")); // 3 NURBS
curveType->addEntry("curveType-linear.png", M("CURVEEDITOR_LINEAR")); // 0 Linear
curveType->addEntry("curveType-spline.png", M("CURVEEDITOR_CUSTOM")); // 1 Spline
curveType->addEntry("curveType-parametric.png", M("CURVEEDITOR_PARAMETRIC")); // 2 Parametric
curveType->addEntry("curveType-NURBS.png", M("CURVEEDITOR_NURBS")); // 3 NURBS
curveType->setSelected(DCT_Linear);
curveType->show();
}
@@ -61,8 +61,8 @@ FlatCurveEditor::FlatCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup,
periodic = isPeriodic;
// Order set in the same order than "enum FlatCurveType". Shouldn't change, for compatibility reason
curveType->addEntry(argv0+"/images/curveType-flatLinear.png", M("CURVEEDITOR_LINEAR")); // 0 Linear
curveType->addEntry(argv0+"/images/curveType-controlPoints.png", M("CURVEEDITOR_MINMAXCPOINTS")); // 1 Min/Max ControlPoints
curveType->addEntry("curveType-flatLinear.png", M("CURVEEDITOR_LINEAR")); // 0 Linear
curveType->addEntry("curveType-controlPoints.png", M("CURVEEDITOR_MINMAXCPOINTS")); // 1 Min/Max ControlPoints
curveType->setSelected(FCT_Linear);
curveType->show();
}

View File

@@ -25,6 +25,7 @@
#include <flatcurveeditorsubgroup.h>
#include <multilangmgr.h>
#include <safegtk.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -90,7 +91,7 @@ void CurveEditorGroup::newLine() {
headerBox->pack_start(*curveGroupLabel, Gtk::PACK_SHRINK, 2);
curve_reset = Gtk::manage (new Gtk::Button ());
curve_reset->add (*Gtk::manage (new Gtk::Image (argv0+"/images/undo.png")));
curve_reset->add (*Gtk::manage (new RTImage ("default-settings-ltr.png", "default-settings-rtl.png")));
curve_reset->set_relief (Gtk::RELIEF_NONE);
curve_reset->set_border_width (0);
curve_reset->set_tooltip_text (M("CURVEEDITOR_TOOLTIPLINEAR"));
@@ -268,7 +269,7 @@ void CurveEditorGroup::curveResetPressed () {
void CurveEditorGroup::setBatchMode (bool batchMode) {
for (std::vector<CurveEditor*>::iterator i = curveEditors.begin(); i != curveEditors.end(); ++i) {
(*i)->curveType->addEntry(argv0+"/images/curveType-unchanged.png", M("GENERAL_UNCHANGED"));
(*i)->curveType->addEntry("curveType-unchanged.png", M("GENERAL_UNCHANGED"));
(*i)->curveType->show();
}
}

View File

@@ -26,6 +26,7 @@
#include <cstring>
#include <guiutils.h>
#include <rtimage.h>
#define CHECKTIME 5000
extern Glib::ustring argv0;
@@ -54,13 +55,13 @@ DirBrowser::DirBrowser () {
void DirBrowser::fillDirTree () {
openfolder = safe_create_from_file (argv0+"/images/folder_open.png");
closedfolder = safe_create_from_file (argv0+"/images/folder.png");
icdrom = safe_create_from_file (argv0+"/images/cdrom.png");
ifloppy = safe_create_from_file (argv0+"/images/floppy.png");
ihdd = safe_create_from_file (argv0+"/images/hdd.png");
iremovable = safe_create_from_file (argv0+"/images/usbpendrive.png");
inetwork = safe_create_from_file (argv0+"/images/network.png");
openfolder = safe_create_from_file ("folder_open.png");
closedfolder = safe_create_from_file ("folder.png");
icdrom = safe_create_from_file ("cdrom.png");
ifloppy = safe_create_from_file ("floppy.png");
ihdd = safe_create_from_file ("hdd.png");
iremovable = safe_create_from_file ("usbpendrive.png");
inetwork = safe_create_from_file ("network.png");
//Create the Tree model:
dirTreeModel = Gtk::TreeStore::create(dtColumns);

View File

@@ -18,6 +18,7 @@
*/
#include <distortion.h>
#include <iomanip>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -28,7 +29,7 @@ Distortion::Distortion (): Gtk::VBox(), FoldableToolPanel(this) {
rlistener = NULL;
autoDistor = Gtk::manage (new Gtk::Button (M("TP_DISTORTION_AUTO")));
autoDistor->set_image (*Gtk::manage (new Gtk::Image (argv0+"/images/distortion_auto.png")));
autoDistor->set_image (*Gtk::manage (new RTImage ("distortion_auto.png")));
autoDistor->set_tooltip_text (M("TP_DISTORTION_AUTO_TIP"));
idConn = autoDistor->signal_pressed().connect( sigc::mem_fun(*this, &Distortion::idPressed) );
autoDistor->show();

View File

@@ -26,6 +26,7 @@
#include <safegtk.h>
#include <imagesource.h>
#include <soundman.h>
#include <rtimage.h>
using namespace rtengine::procparams;
@@ -71,19 +72,19 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
Gtk::VBox* editbox = Gtk::manage (new Gtk::VBox ());
info = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* infoimg = Gtk::manage (new Gtk::Image (argv0+"/images/info.png"));
Gtk::Image* infoimg = Gtk::manage (new RTImage ("info.png"));
info->add (*infoimg);
info->set_relief(Gtk::RELIEF_NONE);
info->set_tooltip_markup (M("MAIN_TOOLTIP_QINFO"));
beforeAfter = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* beforeAfterIcon = Gtk::manage (new Gtk::Image (argv0+"/images/beforeafter.png"));
Gtk::Image* beforeAfterIcon = Gtk::manage (new RTImage ("beforeafter.png"));
beforeAfter->add(*beforeAfterIcon);
beforeAfter->set_relief(Gtk::RELIEF_NONE);
beforeAfter->set_tooltip_markup (M("MAIN_TOOLTIP_TOGGLE"));
iBeforeLockON = new Gtk::Image(argv0+"/images/lock_on.png");
iBeforeLockOFF = new Gtk::Image(argv0+"/images/lock_off.png");
iBeforeLockON = new RTImage ("lock_on.png");
iBeforeLockOFF = new RTImage ("lock_off.png");
Gtk::VSeparator* vsept = Gtk::manage (new Gtk::VSeparator ());
Gtk::VSeparator* vsepz = Gtk::manage (new Gtk::VSeparator ());
@@ -93,8 +94,8 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
hidehp = Gtk::manage (new Gtk::ToggleButton ());
iHistoryShow = new Gtk::Image(argv0+"/images/panel_to_right.png");
iHistoryHide = new Gtk::Image(argv0+"/images/panel_to_left.png");
iHistoryShow = new RTImage ("panel_to_right.png");
iHistoryHide = new RTImage ("panel_to_left.png");
hidehp->set_relief(Gtk::RELIEF_NONE);
hidehp->set_active (options.showHistory);
@@ -107,16 +108,16 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
}
tbTopPanel_1 = new Gtk::ToggleButton ();
iTopPanel_1_Show = new Gtk::Image(argv0+"/images/panel_to_bottom.png");
iTopPanel_1_Hide = new Gtk::Image(argv0+"/images/panel_to_top.png");
iTopPanel_1_Show = new RTImage ("panel_to_bottom.png");
iTopPanel_1_Hide = new RTImage ("panel_to_top.png");
tbTopPanel_1->set_relief(Gtk::RELIEF_NONE);
tbTopPanel_1->set_active (true);
tbTopPanel_1->set_tooltip_markup (M("MAIN_TOOLTIP_SHOWHIDETP1"));
tbTopPanel_1->set_image (*iTopPanel_1_Hide);
tbRightPanel_1 = new Gtk::ToggleButton ();
iRightPanel_1_Show = new Gtk::Image(argv0+"/images/panel_to_left.png");
iRightPanel_1_Hide = new Gtk::Image(argv0+"/images/panel_to_right.png");
iRightPanel_1_Show = new RTImage ("panel_to_left.png");
iRightPanel_1_Hide = new RTImage ("panel_to_right.png");
tbRightPanel_1->set_relief(Gtk::RELIEF_NONE);
tbRightPanel_1->set_active (true);
tbRightPanel_1->set_tooltip_markup (M("MAIN_TOOLTIP_SHOWHIDERP1"));
@@ -167,7 +168,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
Gtk::HBox* iops = Gtk::manage (new Gtk::HBox ());
//Gtk::Image *saveButtonImage = Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-save"), Gtk::ICON_SIZE_BUTTON));
Gtk::Image *saveButtonImage = Gtk::manage (new Gtk::Image (argv0+"/images/save_hdd_01.png"));
Gtk::Image *saveButtonImage = Gtk::manage (new RTImage ("save_hdd_01.png"));
saveimgas = Gtk::manage (new Gtk::Button ());
saveimgas->add(*saveButtonImage);
saveimgas->set_tooltip_markup(M("MAIN_BUTTON_SAVE_TOOLTIP"));
@@ -177,7 +178,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
queueimg->add(*queueButtonImage);
queueimg->set_tooltip_markup(M("MAIN_BUTTON_PUTTOQUEUE_TOOLTIP"));
Gtk::Image *sendToEditorButtonImage = Gtk::manage (new Gtk::Image (argv0+"/images/gimp.png"));
Gtk::Image *sendToEditorButtonImage = Gtk::manage (new RTImage ("gimp.png"));
sendtogimp = Gtk::manage (new Gtk::Button ());
sendtogimp->add(*sendToEditorButtonImage);
sendtogimp->set_tooltip_markup(M("MAIN_BUTTON_SENDTOEDITOR_TOOLTIP"));
@@ -201,7 +202,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
// ShowHideSidePanels
tbShowHideSidePanels = new Gtk::ToggleButton ();
iShowHideSidePanels = new Gtk::Image(argv0+"/images/crossed_arrows_out_45_02.png");
iShowHideSidePanels = new RTImage ("crossed_arrows_out_45_02.png");
tbShowHideSidePanels->set_relief(Gtk::RELIEF_NONE);
tbShowHideSidePanels->set_active (false);
tbShowHideSidePanels->set_tooltip_markup (M("MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP"));

View File

@@ -19,6 +19,7 @@
#include <options.h>
#include <preferences.h>
#include <cursormanager.h>
#include <rtwindow.h>
#include <gtk/gtkwidget.h>
static EditWindow* editWnd = NULL;
@@ -59,12 +60,15 @@ EditWindow* EditWindow::getInstance(RTWindow* p)
EditWindow::EditWindow (RTWindow* p) : parent(p) , isFullscreen(false) {
Glib::ustring fName = "logoicon16.png";
Glib::ustring fullPath = RTImage::findIconAbsolutePath(fName);
#ifdef GLIBMM_EXCEPTIONS_ENABLED
try { set_default_icon_from_file (argv0+"/images/logoicon16.png");
try { set_default_icon_from_file (fullPath);
} catch(Glib::Exception& ex) { printf ("%s\n", ex.what().c_str()); }
#else
{ std::auto_ptr<Glib::Error> error;
set_default_icon_from_file (argv0+"/images/logoicon16.png", error);
set_default_icon_from_file (fullPath, error);
}
#endif //GLIBMM_EXCEPTIONS_ENABLED

View File

@@ -19,6 +19,7 @@
#include <exifpanel.h>
#include <safegtk.h>
#include <guiutils.h>
#include <rtimage.h>
using namespace rtengine;
using namespace rtengine::procparams;
@@ -46,9 +47,9 @@ ExifPanel::ExifPanel () : idata(NULL) {
exifTreeModel = Gtk::TreeStore::create(exifColumns);
exifTree->set_model (exifTreeModel);
delicon = safe_create_from_file (argv0+"/images/deltags.png");
keepicon = safe_create_from_file (argv0+"/images/addtags.png");
editicon = safe_create_from_file (argv0+"/images/logoicon16.png");
delicon = safe_create_from_file ("deltags.png");
keepicon = safe_create_from_file ("addtags.png");
editicon = safe_create_from_file ("logoicon16.png");
Gtk::TreeView::Column *viewcol = Gtk::manage(new Gtk::TreeView::Column ("Field Name"));
Gtk::CellRendererPixbuf* render_pb = Gtk::manage(new Gtk::CellRendererPixbuf ());
@@ -95,12 +96,12 @@ ExifPanel::ExifPanel () : idata(NULL) {
buttons1->pack_start (*add);
reset = Gtk::manage(new Gtk::Button (M("EXIFPANEL_RESET")));
reset->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID ("gtk-undo"), Gtk::IconSize (2))));
reset->set_image (*Gtk::manage(new RTImage ("gtk-undo-ltr.png", "gtk-undo-rtl.png")));
reset->set_tooltip_text (M("EXIFPANEL_RESETHINT"));
buttons2->pack_start (*reset);
resetAll = Gtk::manage(new Gtk::Button (M("EXIFPANEL_RESETALL")));
resetAll->set_image (*Gtk::manage(new Gtk::Image (argv0+"/images/gtk-undo-ltr.png")));
resetAll->set_image (*Gtk::manage(new RTImage ("gtk-undoall-ltr.png", "gtk-undoall-rtl.png")));
resetAll->set_tooltip_text (M("EXIFPANEL_RESETALLHINT"));
buttons2->pack_start (*resetAll);

View File

@@ -27,6 +27,7 @@
#include <procparamchangers.h>
#include <dfmanager.h>
#include <ffmanager.h>
#include <rtimage.h>
extern Options options;
@@ -46,7 +47,7 @@ FileBrowser::FileBrowser ()
pmenu = new Gtk::Menu ();
pmenu->attach (*Gtk::manage(open = new Gtk::MenuItem (M("FILEBROWSER_POPUPOPEN"))), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(develop = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPPROCESS"))), 0, 1, p, p+1); p++;
develop->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/processing.png")));
develop->set_image(*Gtk::manage(new RTImage ("processing.png")));
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
pmenu->attach (*Gtk::manage(selall = new Gtk::MenuItem (M("FILEBROWSER_POPUPSELECTALL"))), 0, 1, p, p+1); p++;
@@ -94,7 +95,7 @@ FileBrowser::FileBrowser ()
}
}
for (int i=1; i<=5; i++){//set color label images
colorlabel[i]->set_image(*Gtk::manage(new Gtk::Image (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",i,".png"))));
colorlabel[i]->set_image(*Gtk::manage(new RTImage (Glib::ustring::compose("%1%2%3","clabel",i,".png"))));
}
pmenu->attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p+1); p++;
@@ -138,7 +139,7 @@ FileBrowser::FileBrowser ()
* *********************/
if (options.menuGroupProfileOperations){
pmenu->attach (*Gtk::manage(menuProfileOperations = new Gtk::ImageMenuItem (M("FILEBROWSER_POPUPPROFILEOPERATIONS"))), 0, 1, p, p+1); p++;
menuProfileOperations->set_image(*Gtk::manage(new Gtk::Image (argv0+"/images/logoicon_wind_16.png")));
menuProfileOperations->set_image(*Gtk::manage(new RTImage ("logoicon_wind_16.png")));
Gtk::Menu* submenuProfileOperations = Gtk::manage (new Gtk::Menu ());

View File

@@ -48,9 +48,9 @@ FileBrowserEntry::FileBrowserEntry (Thumbnail* thm, const Glib::ustring& fname)
scale = 1;
if (!iconsLoaded) {
editedIcon = safe_create_from_file (argv0+"/images/edited.png");
recentlySavedIcon = safe_create_from_file (argv0+"/images/saved.png");
enqueuedIcon = safe_create_from_file (argv0+"/images/processing.png");
editedIcon = safe_create_from_file ("edited.png");
recentlySavedIcon = safe_create_from_file ("saved.png");
enqueuedIcon = safe_create_from_file ("processing.png");
iconsLoaded = true;
}

View File

@@ -30,6 +30,7 @@
#include <thumbimageupdater.h>
#include <safegtk.h>
#include <batchqueue.h>
#include <rtimage.h>
#define CHECKTIME 2000
@@ -73,8 +74,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
hbToolBar1 = Gtk::manage(new Gtk::HBox ());
//setup BrowsePath
iRefreshWhite = new Gtk::Image(argv0+"/images/refresh_white.png");
iRefreshRed = new Gtk::Image(argv0+"/images/refresh_red.png");
iRefreshWhite = new RTImage("refresh_white.png");
iRefreshRed = new RTImage("refresh_red.png");
BrowsePath = Gtk::manage(new Gtk::Entry ());
BrowsePath->set_width_chars (50);
@@ -92,7 +93,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
BrowsePath->signal_activate().connect (sigc::mem_fun(*this, &FileCatalog::buttonBrowsePathPressed)); //respond to the Enter key
//setup Query
iQueryClear = new Gtk::Image(argv0+"/images/x_10.png");
iQueryClear = new RTImage("x_10.png");
Gtk::Label* labelQuery = Gtk::manage(new Gtk::Label(M("FILEBROWSER_QUERYLABEL")));
Query = Gtk::manage(new Gtk::Entry ()); // cannot use Gtk::manage here as FileCatalog::getFilter will fail on Query->get_text()
Query->set_text("");
@@ -121,8 +122,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
buttonBar->pack_start (*Gtk::manage(new Gtk::VSeparator), Gtk::PACK_SHRINK);
tbLeftPanel_1 = new Gtk::ToggleButton ();
iLeftPanel_1_Show = new Gtk::Image(argv0+"/images/panel_to_right.png");
iLeftPanel_1_Hide = new Gtk::Image(argv0+"/images/panel_to_left.png");
iLeftPanel_1_Show = new RTImage("panel_to_right.png");
iLeftPanel_1_Hide = new RTImage("panel_to_left.png");
tbLeftPanel_1->set_relief(Gtk::RELIEF_NONE);
tbLeftPanel_1->set_active (true);
@@ -134,11 +135,11 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
buttonBar->pack_start (*(new Gtk::VSeparator), Gtk::PACK_SHRINK);
iFilterClear = new Gtk::Image (argv0+"/images/filterclear_18.png");
igFilterClear = new Gtk::Image (argv0+"/images/filterclearg_18.png");
iFilterClear = new RTImage ("filterclear_18.png");
igFilterClear = new RTImage ("filterclearg_18.png");
bFilterClear = Gtk::manage(new Gtk::ToggleButton ());
bFilterClear->set_active (true);
bFilterClear->set_image(*iFilterClear);//(*Gtk::manage(new Gtk::Image (argv0+"/images/filterclear.png")));
bFilterClear->set_image(*iFilterClear);//(*Gtk::manage(new RTImage ("filterclear.png")));
bFilterClear->set_relief (Gtk::RELIEF_NONE);
bFilterClear->set_tooltip_markup (M("FILEBROWSER_SHOWDIRHINT"));
bFilterClear->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false);
@@ -150,8 +151,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
fltrRankbox = Gtk::manage (new Gtk::HBox());
fltrLabelbox = Gtk::manage (new Gtk::HBox());
iUnRanked = new Gtk::Image (argv0+"/images/ratednot_10.png");
igUnRanked = new Gtk::Image (argv0+"/images/ratednotg_10.png");
iUnRanked = new RTImage ("ratednot_10.png");
igUnRanked = new RTImage ("ratednotg_10.png");
bUnRanked = Gtk::manage( new Gtk::ToggleButton () );
bUnRanked->set_active (false);
bUnRanked->set_image (*igUnRanked);
@@ -162,8 +163,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
bUnRanked->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false);
for (int i=0; i<5; i++) {
iranked[i] = new Gtk::Image (argv0+"/images/rated.png");
igranked[i] = new Gtk::Image (argv0+"/images/grayrated.png");
iranked[i] = new RTImage ("rated.png");
igranked[i] = new RTImage ("grayrated.png");
iranked[i]->show ();
igranked[i]->show ();
bRank[i] = Gtk::manage( new Gtk::ToggleButton () );
@@ -174,8 +175,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
bRank[i]->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false);
}
iUnCLabeled = new Gtk::Image (argv0+"/images/clabel0.png");
igUnCLabeled = new Gtk::Image (argv0+"/images/cglabel0.png");
iUnCLabeled = new RTImage ("clabel0.png");
igUnCLabeled = new RTImage ("cglabel0.png");
bUnCLabeled = Gtk::manage(new Gtk::ToggleButton ());
bUnCLabeled->set_active (false);
bUnCLabeled->set_image (*igUnCLabeled);
@@ -186,8 +187,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
bUnCLabeled->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false);
for (int i=0; i<5; i++) {
iCLabeled[i] = new Gtk::Image (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",i+1,".png"));
igCLabeled[i] = new Gtk::Image (Glib::ustring::compose("%1%2%3%4",argv0,"/images/cglabel",i+1,".png"));
iCLabeled[i] = new RTImage (Glib::ustring::compose("%1%2%3","clabel",i+1,".png"));
igCLabeled[i] = new RTImage (Glib::ustring::compose("%1%2%3","cglabel",i+1,".png"));
iCLabeled[i]->show ();
igCLabeled[i]->show ();
bCLabel[i] = Gtk::manage(new Gtk::ToggleButton ());
@@ -221,10 +222,10 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
fltrRecentlySavedBox = Gtk::manage (new Gtk::HBox());
// bEdited
iEdited[0] = new Gtk::Image (argv0+"/images/editednot_10.png");
igEdited[0] = new Gtk::Image (argv0+"/images/editednotg_10.png");
iEdited[1] = new Gtk::Image (argv0+"/images/edited_10.png");
igEdited[1] = new Gtk::Image (argv0+"/images/editedg_10.png");
iEdited[0] = new RTImage ("editednot_10.png");
igEdited[0] = new RTImage ("editednotg_10.png");
iEdited[1] = new RTImage ("edited_10.png");
igEdited[1] = new RTImage ("editedg_10.png");
for (int i=0; i<2; i++) {
iEdited[i]->show ();
bEdited[i] = Gtk::manage(new Gtk::ToggleButton ());
@@ -240,10 +241,10 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
bEdited[1]->set_tooltip_markup (M("FILEBROWSER_SHOWEDITEDHINT"));
// RecentlySaved
iRecentlySaved[0] = new Gtk::Image (argv0+"/images/savednot_10.png");
igRecentlySaved[0] = new Gtk::Image (argv0+"/images/savednotg_10.png");
iRecentlySaved[1] = new Gtk::Image (argv0+"/images/saved_10.png");
igRecentlySaved[1] = new Gtk::Image (argv0+"/images/savedg_10.png");
iRecentlySaved[0] = new RTImage ("savednot_10.png");
igRecentlySaved[0] = new RTImage ("savednotg_10.png");
iRecentlySaved[1] = new RTImage ("saved_10.png");
igRecentlySaved[1] = new RTImage ("savedg_10.png");
for (int i=0; i<2; i++) {
iRecentlySaved[i]->show ();
bRecentlySaved[i] = Gtk::manage(new Gtk::ToggleButton ());
@@ -265,8 +266,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
buttonBar->pack_start (*Gtk::manage(new Gtk::VSeparator), Gtk::PACK_SHRINK);
// Trash
iTrashEmpty = new Gtk::Image(argv0+"/images/trash-show-empty.png") ;
iTrashFull = new Gtk::Image(argv0+"/images/trash-show-full.png") ;
iTrashEmpty = new RTImage("trash-show-empty.png") ;
iTrashFull = new RTImage("trash-show-full.png") ;
bTrash = Gtk::manage( new Gtk::ToggleButton () );
bTrash->set_image (*iTrashEmpty);
@@ -307,7 +308,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
categoryButtons[17] = bTrash;
exifInfo = Gtk::manage(new Gtk::ToggleButton ());
exifInfo->set_image (*Gtk::manage(new Gtk::Image (argv0+"/images/info.png")));
exifInfo->set_image (*Gtk::manage(new RTImage ("info.png")));
exifInfo->set_relief (Gtk::RELIEF_NONE);
exifInfo->set_tooltip_markup (M("FILEBROWSER_SHOWEXIFINFO"));
exifInfo->set_active( options.showFileNames );
@@ -317,13 +318,13 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
// thumbnail zoom
Gtk::HBox* zoomBox = Gtk::manage( new Gtk::HBox () );
zoomInButton = Gtk::manage( new Gtk::Button () );
zoomInButton->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomInButton->set_image (*Gtk::manage(new RTImage ("gtk-zoom-in.png")));
zoomInButton->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::zoomIn));
zoomInButton->set_relief (Gtk::RELIEF_NONE);
zoomInButton->set_tooltip_markup (M("FILEBROWSER_ZOOMINHINT"));
zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK);
zoomOutButton = Gtk::manage( new Gtk::Button () );
zoomOutButton->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomOutButton->set_image (*Gtk::manage(new RTImage ("gtk-zoom-out.png")));
zoomOutButton->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::zoomOut));
zoomOutButton->set_relief (Gtk::RELIEF_NONE);
zoomOutButton->set_tooltip_markup (M("FILEBROWSER_ZOOMOUTHINT"));
@@ -332,15 +333,15 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
buttonBar->pack_start (*zoomBox, Gtk::PACK_SHRINK);
buttonBar->pack_start (*Gtk::manage(new Gtk::VSeparator), Gtk::PACK_SHRINK);
//iRightArrow = new Gtk::Image(argv0+"/images/right.png");
//iRightArrow_red = new Gtk::Image(argv0+"/images/right_red.png");
//iRightArrow = new RTImage("right.png");
//iRightArrow_red = new RTImage("right_red.png");
// if it IS a single row toolbar
if (options.FileBrowserToolbarSingleRow) buttonBar->pack_start (*hbToolBar1, Gtk::PACK_EXPAND_WIDGET,0);
tbRightPanel_1 = new Gtk::ToggleButton ();
iRightPanel_1_Show = new Gtk::Image(argv0+"/images/panel_to_left.png");
iRightPanel_1_Hide = new Gtk::Image(argv0+"/images/panel_to_right.png");
iRightPanel_1_Show = new RTImage("panel_to_left.png");
iRightPanel_1_Hide = new RTImage("panel_to_right.png");
tbRightPanel_1->set_relief(Gtk::RELIEF_NONE);
tbRightPanel_1->set_active (true);

View File

@@ -40,19 +40,19 @@ Cairo::RefPtr<Cairo::ImageSurface> FileThumbnailButtonSet::colorLabelIcon_5;
FileThumbnailButtonSet::FileThumbnailButtonSet (FileBrowserEntry* myEntry) {
if (!iconsLoaded) {
unRankIcon = safe_create_from_png (argv0+"/images/unrated.png");
rankIcon = safe_create_from_png (argv0+"/images/rated.png");
gRankIcon = safe_create_from_png (argv0+"/images/grayrated.png");
trashIcon = safe_create_from_png (argv0+"/images/trash.png");
unTrashIcon = safe_create_from_png (argv0+"/images/undelete.png");
processIcon = safe_create_from_png (argv0+"/images/processing.png");
unRankIcon = safe_create_from_png ("unrated.png");
rankIcon = safe_create_from_png ("rated.png");
gRankIcon = safe_create_from_png ("grayrated.png");
trashIcon = safe_create_from_png ("trash.png");
unTrashIcon = safe_create_from_png ("undelete.png");
processIcon = safe_create_from_png ("processing.png");
colorLabelIcon_0 = safe_create_from_png (argv0+"/images/nocolorlabel.png");
colorLabelIcon_1 = safe_create_from_png (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",1,".png"));
colorLabelIcon_2 = safe_create_from_png (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",2,".png"));
colorLabelIcon_3 = safe_create_from_png (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",3,".png"));
colorLabelIcon_4 = safe_create_from_png (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",4,".png"));
colorLabelIcon_5 = safe_create_from_png (Glib::ustring::compose("%1%2%3%4",argv0,"/images/clabel",5,".png"));
colorLabelIcon_0 = safe_create_from_png ("nocolorlabel.png");
colorLabelIcon_1 = safe_create_from_png ("clabel1.png");
colorLabelIcon_2 = safe_create_from_png ("clabel2.png");
colorLabelIcon_3 = safe_create_from_png ("clabel3.png");
colorLabelIcon_4 = safe_create_from_png ("clabel4.png");
colorLabelIcon_5 = safe_create_from_png ("clabel5.png");
iconsLoaded = true;
}

View File

@@ -18,6 +18,7 @@
#include <guiutils.h>
#include <options.h>
#include <utils.h>
#include <rtimage.h>
bool removeIfThere (Gtk::Container* cont, Gtk::Widget* w, bool increference) {
@@ -375,7 +376,7 @@ void TextOrIcon::switchTo(TOITypes type) {
removeIfThere(this, label, false);
delete label;
label = 0;
imgIcon = new Gtk::Image (filename);
imgIcon = new RTImage (filename);
pack_start(*imgIcon, Gtk::PACK_SHRINK, 0);
set_tooltip_markup ("<span font_size=\"large\" font_weight=\"bold\">" + labelText + "</span>\n" + tooltipText);
}

View File

@@ -22,6 +22,7 @@
#include <options.h>
#include <string.h>
#include <LUT.h>
#include <rtimage.h>
extern Glib::ustring argv0;
extern Options options;
@@ -42,12 +43,12 @@ HistogramPanel::HistogramPanel () {
if (options.histogramBar)
gfxVBox->pack_start (*histogramRGBArea, Gtk::PACK_SHRINK, 0);
Gtk::Image* redImage = Gtk::manage( new Gtk::Image (Glib::ustring::compose("%1%2",argv0,"/images/histRed.png")) );
Gtk::Image* greenImage = Gtk::manage( new Gtk::Image (Glib::ustring::compose("%1%2",argv0,"/images/histGreen.png")) );
Gtk::Image* blueImage = Gtk::manage( new Gtk::Image (Glib::ustring::compose("%1%2",argv0,"/images/histBlue.png")) );
Gtk::Image* valueImage = Gtk::manage( new Gtk::Image (Glib::ustring::compose("%1%2",argv0,"/images/histValue.png")) );
Gtk::Image* rawImage = Gtk::manage( new Gtk::Image (Glib::ustring::compose("%1%2",argv0,"/images/histRaw.png")) );
Gtk::Image* barImage = Gtk::manage( new Gtk::Image (Glib::ustring::compose("%1%2",argv0,"/images/histBar.png")) );
Gtk::Image* redImage = Gtk::manage( new RTImage ("histRed.png") );
Gtk::Image* greenImage = Gtk::manage( new RTImage ("histGreen.png") );
Gtk::Image* blueImage = Gtk::manage( new RTImage ("histBlue.png") );
Gtk::Image* valueImage = Gtk::manage( new RTImage ("histValue.png") );
Gtk::Image* rawImage = Gtk::manage( new RTImage ("histRaw.png") );
Gtk::Image* barImage = Gtk::manage( new RTImage ("histBar.png") );
showRed = Gtk::manage (new Gtk::ToggleButton ());
showGreen = Gtk::manage (new Gtk::ToggleButton ());

View File

@@ -18,6 +18,7 @@
*/
#include <history.h>
#include <multilangmgr.h>
#include <rtimage.h>
using namespace rtengine;
using namespace rtengine::procparams;
@@ -77,12 +78,12 @@ History::History (bool bookmarkSupport) : blistener(NULL), tpc (NULL), bmnum (1)
Gtk::HBox* ahbox = Gtk::manage (new Gtk::HBox ());
addBookmark = Gtk::manage (new Gtk::Button (M("HISTORY_NEWSNAPSHOT")));
Gtk::Image* addimg = Gtk::manage (new Gtk::Image (argv0+"/images/list-add.png"));
Gtk::Image* addimg = Gtk::manage (new RTImage ("list-add.png"));
addBookmark->set_image (*addimg);
ahbox->pack_start (*addBookmark);
delBookmark = Gtk::manage (new Gtk::Button (M("HISTORY_DELSNAPSHOT")));
Gtk::Image* delimg = Gtk::manage (new Gtk::Image (argv0+"/images/list-remove.png"));
Gtk::Image* delimg = Gtk::manage (new RTImage ("list-remove.png"));
delBookmark->set_image (*delimg);
ahbox->pack_start (*delBookmark);

View File

@@ -19,6 +19,7 @@
#include <options.h>
#include <multilangmgr.h>
#include <imagearea.h>
#include <rtimage.h>
IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) {
@@ -26,14 +27,14 @@ IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) {
indclippedh = Gtk::manage (new Gtk::ToggleButton ());
indclippedh->set_relief(Gtk::RELIEF_NONE);
indclippedh->add (*Gtk::manage (new Gtk::Image (argv0+"/images/warnhl.png")));
indclippedh->add (*Gtk::manage (new RTImage ("warnhl.png")));
tt = M("MAIN_TOOLTIP_INDCLIPPEDH");
if (tt.find("&lt;") == Glib::ustring::npos && tt.find("&gt;") == Glib::ustring::npos) indclippedh->set_tooltip_text (tt);
else indclippedh->set_tooltip_markup (tt);
indclippeds = Gtk::manage (new Gtk::ToggleButton ());
indclippeds->set_relief(Gtk::RELIEF_NONE);
indclippeds->add (*Gtk::manage (new Gtk::Image (argv0+"/images/warnsh.png")));
indclippeds->add (*Gtk::manage (new RTImage ("warnsh.png")));
tt = M("MAIN_TOOLTIP_INDCLIPPEDS");
if (tt.find("&lt;") == Glib::ustring::npos && tt.find("&gt;") == Glib::ustring::npos) indclippeds->set_tooltip_text (tt);
else indclippeds->set_tooltip_markup (tt);

View File

@@ -18,6 +18,7 @@
*/
#include <iptcpanel.h>
#include <clipboard.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -90,8 +91,8 @@ IPTCPanel::IPTCPanel () {
keyword->set_tooltip_text (M("IPTCPANEL_KEYWORDSHINT"));
addKW = Gtk::manage( new Gtk::Button () );
delKW = Gtk::manage( new Gtk::Button () );
Gtk::Image* addKWImg = Gtk::manage( new Gtk::Image (argv0+"/images/list-add12.png") );
Gtk::Image* delKWImg = Gtk::manage( new Gtk::Image (argv0+"/images/list-remove12r.png") );
Gtk::Image* addKWImg = Gtk::manage( new RTImage ("list-add12.png") );
Gtk::Image* delKWImg = Gtk::manage( new RTImage ("list-remove12r.png") );
addKW->add (*addKWImg);
delKW->add (*delKWImg);
Gtk::HBox* kwhb = Gtk::manage( new Gtk::HBox () );
@@ -126,8 +127,8 @@ IPTCPanel::IPTCPanel () {
suppCategory->set_tooltip_text (M("IPTCPANEL_SUPPCATEGORIESHINT"));
addSC = Gtk::manage( new Gtk::Button () );
delSC = Gtk::manage( new Gtk::Button () );
Gtk::Image* addSCImg = Gtk::manage( new Gtk::Image (argv0+"/images/list-add12.png") );
Gtk::Image* delSCImg = Gtk::manage( new Gtk::Image (argv0+"/images/list-remove12r.png") );
Gtk::Image* addSCImg = Gtk::manage( new RTImage ("list-add12.png") );
Gtk::Image* delSCImg = Gtk::manage( new RTImage ("list-remove12r.png") );
addSC->add (*addSCImg);
delSC->add (*delSCImg);
Gtk::HBox* schb = Gtk::manage( new Gtk::HBox () );

View File

@@ -18,6 +18,7 @@
*/
#include <lensgeom.h>
#include <guiutils.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -30,7 +31,7 @@ LensGeometry::LensGeometry () : Gtk::VBox(), FoldableToolPanel(this), rlistener(
pack_start (*fill);
autoCrop = Gtk::manage (new Gtk::Button (M("TP_LENSGEOM_AUTOCROP")));
autoCrop->set_image (*Gtk::manage (new Gtk::Image (argv0+"/images/crop_auto_22.png")));
autoCrop->set_image (*Gtk::manage (new RTImage ("crop_auto_22.png")));
pack_start (*autoCrop, Gtk::PACK_SHRINK, 2);
packBox = Gtk::manage (new Gtk::VBox ());

View File

@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <options.h>
#include <soundman.h>
#include <rtimage.h>
#include "version.h"
#ifndef WIN32
@@ -137,6 +138,8 @@ int main(int argc, char **argv)
}
Gtk::Main m(&argc, &argv);
RTImage::setPaths(options);
#ifndef WIN32
// For an unknown reason, gtkmm 2.22 don't know the gtk-button-images property, while it exists in the documentation...
// Anyway, the problem was Linux only

View File

@@ -22,6 +22,7 @@
#include <multilangmgr.h>
#include <popupcommon.h>
#include <safegtk.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -40,7 +41,7 @@ PopUpCommon::PopUpCommon (Gtk::Button* thisButton, const Glib::ustring& label) {
buttonGroup = Gtk::manage( new Gtk::HBox(false, 0));
buttonGroup->pack_start(*button, Gtk::PACK_EXPAND_WIDGET, 0);
// Create the list entry
imagePaths.clear();
imageFilenames.clear();
images.clear();
sItems.clear();
items.clear();
@@ -51,7 +52,7 @@ PopUpCommon::PopUpCommon (Gtk::Button* thisButton, const Glib::ustring& label) {
}
PopUpCommon::~PopUpCommon () {
for (std::vector<Gtk::Image*>::iterator i = images.begin(); i != images.end(); ++i)
for (std::vector<RTImage*>::iterator i = images.begin(); i != images.end(); ++i)
{
delete *i;
}
@@ -68,13 +69,13 @@ PopUpCommon::type_signal_changed PopUpCommon::signal_changed() {
return message;
}
bool PopUpCommon::addEntry (Glib::ustring imagePath, Glib::ustring label) {
bool PopUpCommon::addEntry (Glib::ustring fileName, Glib::ustring label) {
bool added = false;
if ( safe_file_test(imagePath, Glib::FILE_TEST_EXISTS) && label.size() ) {
imagePaths.push_back(imagePath);
if ( label.size() ) {
imageFilenames.push_back(fileName);
sItems.push_back(label);
// Create the image
Gtk::Image* newImage = new Gtk::Image(imagePath);
RTImage* newImage = new RTImage(fileName);
images.push_back(newImage);
int currPos = (int)images.size();
// Create the menu item
@@ -84,7 +85,7 @@ bool PopUpCommon::addEntry (Glib::ustring imagePath, Glib::ustring label) {
// Create the menu on the first item
menu = new Gtk::Menu ();
// Create the image for the button
buttonImage = new Gtk::Image(imagePath);
buttonImage = new RTImage(fileName);
// Use the first image by default
imageContainer->pack_start(*buttonImage,Gtk::PACK_EXPAND_WIDGET);
selected = 0;
@@ -124,7 +125,7 @@ bool PopUpCommon::setSelected (int entryNum) {
return false;
else {
// Maybe we could do something better than loading the image file each time the selection is changed !?
buttonImage->set(imagePaths.at(entryNum));
buttonImage->changeImage(imageFilenames.at(entryNum));
selected = entryNum;
setButtonHint();
return true;

View File

@@ -24,6 +24,7 @@
#include <gtkmm.h>
#include <sigc++/sigc++.h>
#include <rtimage.h>
class PopUpCommon {
@@ -35,7 +36,7 @@ public:
PopUpCommon (Gtk::Button* button, const Glib::ustring& label = "");
virtual ~PopUpCommon ();
bool addEntry (Glib::ustring imagePath, Glib::ustring label);
bool addEntry (Glib::ustring fileName, Glib::ustring label);
bool setSelected (int entryNum);
int getSelected () { return selected; }
void setButtonHint();
@@ -50,11 +51,11 @@ private:
That's why we store entries strings in sItems, but it would be nice to get ride of it...
*/
std::vector<Glib::ustring> sItems;
std::vector<Glib::ustring> imagePaths;
std::vector<Gtk::Image*> images;
std::vector<Glib::ustring> imageFilenames;
std::vector<RTImage*> images;
std::vector<Gtk::ImageMenuItem*> items;
Glib::ustring buttonHint;
Gtk::Image* buttonImage;
RTImage* buttonImage;
Gtk::HBox* imageContainer;
Gtk::Menu* menu;
Gtk::Button* button;

View File

@@ -26,6 +26,7 @@
#include <ffmanager.h>
#include <sstream>
#include <safegtk.h>
#include <rtimage.h>
extern Options options;
extern Glib::ustring argv0;
@@ -61,7 +62,7 @@ Preferences::Preferences (RTWindow *rtwindow):parent(rtwindow) {
Gtk::Button* ok = Gtk::manage (new Gtk::Button (M("GENERAL_OK")));
Gtk::Button* cancel = Gtk::manage (new Gtk::Button (M("GENERAL_CANCEL")));
about->set_image (*Gtk::manage(new Gtk::Image (argv0+"/images/logoicon16.png")));
about->set_image (*Gtk::manage(new RTImage ("logoicon16.png")));
ok->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-ok"), Gtk::ICON_SIZE_BUTTON)));
cancel->set_image (*Gtk::manage(new Gtk::Image (Gtk::StockID("gtk-cancel"), Gtk::ICON_SIZE_BUTTON)));
@@ -778,8 +779,8 @@ Gtk::Widget* Preferences::getFileBrowserPanel () {
delExt = Gtk::manage( new Gtk::Button () );
addExt->set_tooltip_text (M("PREFERENCES_PARSEDEXTADDHINT"));
delExt->set_tooltip_text (M("PREFERENCES_PARSEDEXTDELHINT"));
Gtk::Image* addExtImg = Gtk::manage( new Gtk::Image (argv0+"/images/list-add12.png") );
Gtk::Image* delExtImg = Gtk::manage( new Gtk::Image (argv0+"/images/list-remove12r.png") );
Gtk::Image* addExtImg = Gtk::manage( new RTImage ("list-add12.png") );
Gtk::Image* delExtImg = Gtk::manage( new RTImage ("list-remove12r.png") );
addExt->add (*addExtImg);
delExt->add (*delExtImg);
hb0->pack_end (*delExt, Gtk::PACK_SHRINK, 4);
@@ -1248,8 +1249,11 @@ void Preferences::okPressed () {
void Preferences::cancelPressed () {
// set the initial theme back
if (theme->get_active_text () != options.theme)
if (theme->get_active_text () != options.theme) {
RTImage::setPaths(options);
RTImage::updateImages();
switchThemeTo(options.theme, options.slimUI);
}
// set the initial font back
if (fontbutton->get_font_name() != options.font)
@@ -1282,6 +1286,10 @@ void Preferences::aboutPressed () {
void Preferences::themeChanged () {
moptions.theme = theme->get_active_text ();
moptions.useSystemTheme = chUseSystemTheme->get_active ();
RTImage::setPaths(moptions);
RTImage::updateImages();
switchThemeTo(theme->get_active_text (), slimUI->get_active());
}

View File

@@ -19,6 +19,7 @@
#include <renamedlg.h>
#include <multilangmgr.h>
#include <options.h>
#include <rtimage.h>
RenameDialog::RenameDialog (Gtk::Window* parent)
: Gtk::Dialog (M("FILEBROWSER_RENAMEDLGLABEL"), *parent, true, true), p(parent), imageData(NULL) {
@@ -157,8 +158,8 @@ RenameTemplateEditor::RenameTemplateEditor (Gtk::Window* parent)
templ = Gtk::manage (new Gtk::Entry ());
Gtk::Button* add = Gtk::manage (new Gtk::Button ());
Gtk::Button* del = Gtk::manage (new Gtk::Button ());
add->add (*Gtk::manage (new Gtk::Image (argv0+"/images/list-add12.png")));
del->add (*Gtk::manage (new Gtk::Image (argv0+"/images/list-remove12r.png")));
add->add (*Gtk::manage (new RTImage ("list-add12.png")));
del->add (*Gtk::manage (new RTImage ("list-remove12r.png")));
hb->pack_start (*templ);
hb->pack_start (*add, Gtk::PACK_SHRINK, 2);
hb->pack_start (*del, Gtk::PACK_SHRINK, 2);

View File

@@ -19,6 +19,7 @@
#include <rotate.h>
#include <iomanip>
#include <guiutils.h>
#include <rtimage.h>
extern Glib::ustring argv0;
@@ -34,7 +35,7 @@ Rotate::Rotate () : Gtk::VBox(), FoldableToolPanel(this) {
pack_start (*degree);
selectStraight = Gtk::manage (new Gtk::Button (M("TP_ROTATE_SELECTLINE")));
Gtk::Image* selimg = Gtk::manage (new Gtk::Image (argv0+"/images/straighten16.png"));
Gtk::Image* selimg = Gtk::manage (new RTImage ("straighten16.png"));
selectStraight->set_image (*selimg);
pack_start (*selectStraight, Gtk::PACK_SHRINK, 2);

128
rtgui/rtimage.cc Normal file
View File

@@ -0,0 +1,128 @@
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
* Copyright (c) 2011 Jean-Christophe FRISCH <natureh@free.fr>
*
* RawTherapee is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* RawTherapee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <rtimage.h>
#include <safegtk.h>
#include <safekeyfile.h>
extern Glib::ustring argv0;
extern Options options;
std::vector<Glib::ustring> imagesPaths;
std::vector<RTImage*> imagesList; // List of images in order to live update them on theme switch
/*
* RTImage is a derived class of Gtk::Image, in order to handle theme related iconsets
*/
RTImage::RTImage(Glib::ustring fileName, Glib::ustring rtlFileName) : Gtk::Image() {
Glib::ustring path;
if (rtlFileName.length()) {
const Gtk::TextDirection dir = get_direction();
if (dir == Gtk::TEXT_DIR_RTL)
path = findIconAbsolutePath(rtlFileName);
else
path = findIconAbsolutePath(fileName);
}
else
path = findIconAbsolutePath(fileName);
set(path);
imagesList.push_back(this);
}
RTImage::~RTImage() {
// Remove the image from the global images list
std::vector<RTImage*>::iterator i = std::find (imagesList.begin(), imagesList.end(), this);
if (i!=imagesList.end())
imagesList.erase(i);
}
void RTImage::updateImages() {
for (unsigned int i=0; i<imagesList.size(); i++) {
Glib::ustring oldPath = imagesList[i]->property_file();
Glib::ustring fileName = Glib::path_get_basename(oldPath);
imagesList[i]->clear();
Glib::ustring fullPath = findIconAbsolutePath(fileName);
imagesList[i]->set(fullPath);
}
}
// TODO: Maybe this could be optimized: in order to avoid looking up for an icon file in the filesystem on each popupmenu selection, maybe we could find a way to copy the image data from another RTImage
void RTImage::changeImage(Glib::ustring &newImage) {
clear();
Glib::ustring fullPath = findIconAbsolutePath(newImage);
set(fullPath);
}
Glib::ustring RTImage::findIconAbsolutePath(const Glib::ustring &iconFName) {
Glib::ustring path;
for (unsigned int i=0; i<imagesPaths.size(); i++) {
path = Glib::build_filename(imagesPaths[i], iconFName);
//printf("\"%s\" \n", path.c_str());
if (safe_file_test(path, Glib::FILE_TEST_EXISTS)) {
//printf("Found!\n");
return path;
}
}
printf("\"%s\" not found!\n", iconFName.c_str());
return "";
}
void RTImage::setPaths(Options &opt) {
Glib::ustring configFilename;
rtengine::SafeKeyFile keyFile;
bool hasKeyFile = true;
imagesPaths.clear();
// system theme will use the theme set in system.iconset
if (opt.useSystemTheme) {
configFilename = Glib::build_filename(argv0, Glib::build_filename("themes","system.iconset"));
}
// Gtk theme will use the theme set in it's *.iconset fiel, if it exists
else {
configFilename = Glib::build_filename(argv0, Glib::build_filename("themes", Glib::ustring::format(opt.theme, ".iconset")));
}
if (!safe_file_test(configFilename, Glib::FILE_TEST_EXISTS) || !keyFile.load_from_file (configFilename)) {
// ...otherwise fallback to the iconset set in default.iconset
configFilename = Glib::build_filename(argv0, Glib::build_filename("themes", "Default.iconset"));
if (!keyFile.load_from_file (configFilename)) {
hasKeyFile = false;
}
}
if (hasKeyFile && keyFile.has_group ("General")) {
Glib::ustring iSet;
if (keyFile.has_key ("General", "Iconset"))
iSet = keyFile.get_string ("General", "Iconset");
if (iSet.length())
imagesPaths.push_back (Glib::build_filename(argv0, Glib::build_filename("images", iSet)));
iSet.clear();
if (keyFile.has_key ("General", "FallbackIconset"))
iSet = keyFile.get_string ("General", "FallbackIconset");
if (iSet.length())
imagesPaths.push_back (Glib::build_filename(argv0, Glib::build_filename("images", iSet)));
}
// The images/ folder is the second fallback solution
imagesPaths.push_back (Glib::build_filename(argv0, "images"));
}

35
rtgui/rtimage.h Normal file
View File

@@ -0,0 +1,35 @@
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* RawTherapee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _RTIMAGE_
#define _RTIMAGE_
#include <gtkmm.h>
#include <options.h>
class RTImage : public Gtk::Image {
public:
RTImage(Glib::ustring fileName, Glib::ustring rtlFileName = "");
~RTImage();
static void setPaths(Options &opt);
static void updateImages();
void changeImage(Glib::ustring &newImage);
static Glib::ustring findIconAbsolutePath(const Glib::ustring &iconFName);
};
#endif

View File

@@ -20,6 +20,7 @@
#include <options.h>
#include <preferences.h>
#include <cursormanager.h>
#include <rtimage.h>
RTWindow::RTWindow ()
:fpanel(NULL)
@@ -30,12 +31,15 @@ RTWindow::RTWindow ()
cacheMgr->init ();
Glib::ustring fName = "logoicon16.png";
Glib::ustring fullPath = RTImage::findIconAbsolutePath(fName);
#ifdef GLIBMM_EXCEPTIONS_ENABLED
try { set_default_icon_from_file (argv0+"/images/logoicon16.png");
try { set_default_icon_from_file (fullPath);
} catch(Glib::Exception& ex) { printf ("%s\n", ex.what().c_str()); }
#else
{ std::auto_ptr<Glib::Error> error;
set_default_icon_from_file (argv0+"/images/logoicon16.png", error);
set_default_icon_from_file (fullPath, error);
}
#endif //GLIBMM_EXCEPTIONS_ENABLED
@@ -114,7 +118,7 @@ RTWindow::RTWindow ()
// decorate tab
if (options.mainNBVertical) {
Gtk::VBox* vbe = Gtk::manage (new Gtk::VBox ());
vbe->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/logoicon16.png")));
vbe->pack_start (*Gtk::manage (new RTImage ("logoicon16.png")));
Gtk::Label* l=Gtk::manage (new Gtk::Label( Glib::ustring(" ") + M("MAIN_FRAME_EDITOR") ));
//l->set_markup(Glib::ustring("<b>Editor</b>")); Bold difficult to read
l->set_angle (90);
@@ -126,8 +130,8 @@ RTWindow::RTWindow ()
mainNB->append_page (*epanel, *vbe);
} else {
Gtk::HBox* hbe = Gtk::manage (new Gtk::HBox ());
hbe->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/logoicon16.png")));
hbe->pack_start (*Gtk::manage (new Gtk::Label(M("MAIN_FRAME_EDITOR"))));
hbe->pack_start (*Gtk::manage (new RTImage ("logoicon16.png")));
hbe->pack_start (*Gtk::manage (new Gtk::Label( Glib::ustring(" ") + M("MAIN_FRAME_EDITOR") )));
hbe->set_spacing (2);
hbe->set_tooltip_markup (M("MAIN_FRAME_EDITOR_TOOLTIP"));
hbe->show_all ();
@@ -143,8 +147,8 @@ RTWindow::RTWindow ()
mainBox->pack_start (*mainNB);
// filling bottom box
iFullscreen = new Gtk::Image(argv0+"/images/fullscreen.png");
iFullscreen_exit = new Gtk::Image(argv0+"/images/fullscreen_exit.png");
iFullscreen = new RTImage ("fullscreen.png");
iFullscreen_exit = new RTImage ("fullscreen_exit.png");
Gtk::LinkButton* rtWeb = Gtk::manage (new Gtk::LinkButton ("http://rawtherapee.com"));
//Gtk::Button* preferences = Gtk::manage (new Gtk::Button (M("MAIN_BUTTON_PREFERENCES")+"..."));

View File

@@ -28,7 +28,7 @@ extern Glib::ustring versionString;
SplashImage::SplashImage () {
pixbuf = safe_create_from_file (argv0+"/images/splash.png");
pixbuf = safe_create_from_file ("splash.png");
set_size_request (pixbuf->get_width(), pixbuf->get_height());
}

View File

@@ -18,13 +18,14 @@
*/
#include "toolbar.h"
#include <multilangmgr.h>
#include <rtimage.h>
extern Glib::ustring argv0;
ToolBar::ToolBar () : listener (NULL) {
handTool = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* handimg = Gtk::manage (new Gtk::Image (argv0+"/images/openhand_gray22.png"));
Gtk::Image* handimg = Gtk::manage (new RTImage ("openhand_gray22.png"));
handTool->add (*handimg);
handimg->show ();
handTool->set_relief(Gtk::RELIEF_NONE);
@@ -33,7 +34,7 @@ ToolBar::ToolBar () : listener (NULL) {
pack_start (*handTool);
wbTool = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* wbimg = Gtk::manage (new Gtk::Image (argv0+"/images/wbpicker22.png"));
Gtk::Image* wbimg = Gtk::manage (new RTImage ("wbpicker22.png"));
wbTool->add (*wbimg);
wbimg->show ();
wbTool->set_relief(Gtk::RELIEF_NONE);
@@ -42,7 +43,7 @@ ToolBar::ToolBar () : listener (NULL) {
pack_start (*wbTool);
cropTool = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* cropimg = Gtk::manage (new Gtk::Image (argv0+"/images/crop22.png"));
Gtk::Image* cropimg = Gtk::manage (new RTImage ("crop22.png"));
cropTool->add (*cropimg);
cropimg->show ();
cropTool->set_relief(Gtk::RELIEF_NONE);
@@ -51,7 +52,7 @@ ToolBar::ToolBar () : listener (NULL) {
pack_start (*cropTool);
straTool = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Image* straimg = Gtk::manage (new Gtk::Image (argv0+"/images/straighten22.png"));
Gtk::Image* straimg = Gtk::manage (new RTImage ("straighten22.png"));
straTool->add (*straimg);
straimg->show ();
straTool->set_relief(Gtk::RELIEF_NONE);

View File

@@ -27,6 +27,7 @@
#include <procevents.h>
#include <refreshmap.h>
#include <guiutils.h>
#include <rtimage.h>
using namespace rtengine::procparams;
@@ -122,7 +123,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
// load panel endings
for (int i=0; i<5; i++) {
vbPanelEnd[i] = Gtk::manage (new Gtk::VBox ());
imgPanelEnd[i] = Gtk::manage (new Gtk::Image (argv0+"/images/PanelEnding_01.png"));
imgPanelEnd[i] = Gtk::manage (new RTImage("PanelEnding_01.png"));
imgPanelEnd[i]->show ();
vbPanelEnd[i]->pack_start (*imgPanelEnd[i],Gtk::PACK_SHRINK);
vbPanelEnd[i]->show_all();
@@ -150,12 +151,12 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc(NULL) {
TOITypes type = options.UseIconNoText ? TOI_ICON : TOI_TEXT;
toiE = Gtk::manage (new TextOrIcon (argv0+"/images/exposure-24.png" , M("MAIN_TAB_EXPOSURE") , M("MAIN_TAB_EXPOSURE_TOOLTIP") , type));
toiD = Gtk::manage (new TextOrIcon (argv0+"/images/detail-24.png" , M("MAIN_TAB_DETAIL") , M("MAIN_TAB_DETAIL_TOOLTIP") , type));
toiC = Gtk::manage (new TextOrIcon (argv0+"/images/colour-24.png" , M("MAIN_TAB_COLOR") , M("MAIN_TAB_COLOR_TOOLTIP") , type));
toiT = Gtk::manage (new TextOrIcon (argv0+"/images/transform-24.png", M("MAIN_TAB_TRANSFORM"), M("MAIN_TAB_TRANSFORM_TOOLTIP"), type));
toiR = Gtk::manage (new TextOrIcon (argv0+"/images/raw-24.png" , M("MAIN_TAB_RAW") , M("MAIN_TAB_RAW_TOOLTIP") , type));
toiM = Gtk::manage (new TextOrIcon (argv0+"/images/exif-24.png" , M("MAIN_TAB_METADATA") , M("MAIN_TAB_METADATA_TOOLTIP") , type));
toiE = Gtk::manage (new TextOrIcon ("exposure-24.png" , M("MAIN_TAB_EXPOSURE") , M("MAIN_TAB_EXPOSURE_TOOLTIP") , type));
toiD = Gtk::manage (new TextOrIcon ("detail-24.png" , M("MAIN_TAB_DETAIL") , M("MAIN_TAB_DETAIL_TOOLTIP") , type));
toiC = Gtk::manage (new TextOrIcon ("colour-24.png" , M("MAIN_TAB_COLOR") , M("MAIN_TAB_COLOR_TOOLTIP") , type));
toiT = Gtk::manage (new TextOrIcon ("transform-24.png", M("MAIN_TAB_TRANSFORM"), M("MAIN_TAB_TRANSFORM_TOOLTIP"), type));
toiR = Gtk::manage (new TextOrIcon ("raw-24.png" , M("MAIN_TAB_RAW") , M("MAIN_TAB_RAW_TOOLTIP") , type));
toiM = Gtk::manage (new TextOrIcon ("exif-24.png" , M("MAIN_TAB_METADATA") , M("MAIN_TAB_METADATA_TOOLTIP") , type));
toolPanelNotebook->append_page (*exposurePanelSW, *toiE);
toolPanelNotebook->append_page (*detailsPanelSW, *toiD);

View File

@@ -18,6 +18,7 @@
*/
#include <whitebalance.h>
#include <iomanip>
#include <rtimage.h>
#include <options.h>
#define MINTEMP 1200
@@ -51,7 +52,7 @@ WhiteBalance::WhiteBalance () : Gtk::VBox(), FoldableToolPanel(this), wbp(NULL),
spotbox->show ();
spotbutton = Gtk::manage (new Gtk::Button (M("TP_WBALANCE_SPOTWB")));
Gtk::Image* spotimg = Gtk::manage (new Gtk::Image (argv0+"/images/wbpicker16.png"));
Gtk::Image* spotimg = Gtk::manage (new RTImage ("wbpicker16.png"));
spotimg->show ();
spotbutton->set_image (*spotimg);
spotbutton->show ();

View File

@@ -19,18 +19,19 @@
#include <zoompanel.h>
#include <multilangmgr.h>
#include <imagearea.h>
#include <rtimage.h>
ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
set_border_width (0);
Gtk::Image* imageOut = Gtk::manage (new Gtk::Image (Gtk::StockID ("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
Gtk::Image* imageOut = Gtk::manage (new RTImage ("gtk-zoom-out.png"));
imageOut->set_padding(0,0);
Gtk::Image* imageIn = Gtk::manage (new Gtk::Image (Gtk::StockID ("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
Gtk::Image* imageIn = Gtk::manage (new RTImage ("gtk-zoom-in.png"));
imageIn->set_padding(0,0);
Gtk::Image* image11 =Gtk::manage ( new Gtk::Image (Gtk::StockID ("gtk-zoom-100"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
Gtk::Image* image11 =Gtk::manage ( new RTImage ("gtk-zoom-100.png"));
image11->set_padding(0,0);
Gtk::Image* imageFit = Gtk::manage (new Gtk::Image (Gtk::StockID ("gtk-zoom-fit"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
Gtk::Image* imageFit = Gtk::manage (new RTImage ("gtk-zoom-fit.png"));
imageFit->set_padding(0,0);
zoomOut = Gtk::manage (new Gtk::Button());
@@ -54,7 +55,7 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
zoomLabel = Gtk::manage (new Gtk::Label ());
pack_start (*zoomLabel, Gtk::PACK_SHRINK, 4);
Gtk::Image* imageCrop = Gtk::manage (new Gtk::Image (Gtk::StockID ("gtk-add"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
Gtk::Image* imageCrop = Gtk::manage (new RTImage ("add.png"));
imageCrop->set_padding(0,0);
newCrop = Gtk::manage (new Gtk::Button());
newCrop->add (*imageCrop);

202
tools/CurveType-Dark.svg Normal file
View File

@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.0 r9654"
version="1.0"
sodipodi:docname="CurveType-Dark.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="F:\Developpement\WorkspaceCPP\rawtherapee-Default\rtdata\images\Dark\curveType-NURBS.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<defs
id="defs4">
<linearGradient
id="linearGradient3205">
<stop
style="stop-color:#000000;stop-opacity:0.19512194;"
offset="0"
id="stop3207" />
<stop
style="stop-color:#ffffff;stop-opacity:0.19607843;"
offset="1"
id="stop3209" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3211"
x1="12"
y1="24"
x2="12"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,119.47826,-40.521739)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3176"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,79.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3180"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,39.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3184"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,159.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#212121"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.0081833"
inkscape:cx="45.00794"
inkscape:cy="-2.6296205"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="1440"
inkscape:window-height="814"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Background"
style="display:none">
<rect
style="fill:#313131;fill-opacity:0.81742739;fill-rule:evenodd;stroke:none;display:inline"
id="rect3190"
width="434.22333"
height="249.9772"
x="-147.64589"
y="-96.719643" />
</g>
<g
inkscape:label="Foreground"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
d="M -80.07192,24.660312 C -77.08189,16.699566 -67.81793,4.622125 -55.54721,0.242516"
id="path3159"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#969696;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="M 1.27126,22.542893 4.43049,6.364908 23.17098,0.797204"
id="path3167"
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3181"
d="M 0.42808,24.472812 C 3.41811,16.512066 12.49457,4.372125 24.76529,-0.007484"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3183"
d="M -119.97874,24.105393 -95.70402,-0.265296"
style="fill:none;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none;stroke-dashoffset:0"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3195"
d="M -39.65403,24.205807 C -36.664,16.245061 -27.98138,4.462353 -15.71066,0.082744"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
d="m -28,20 8,0"
id="path3197"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3199"
d="m -28,17 8,0"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3201"
d="m -28,14 8,0"
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
transform="matrix(2.7600806,0,0,2.7600806,-11.87113,-22.689217)"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
sodipodi:ry="1.1711456"
sodipodi:rx="1.1711456"
sodipodi:cy="10.497826"
sodipodi:cx="5.8999224"
id="path3373"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3155"
sodipodi:cx="5.8999224"
sodipodi:cy="10.497826"
sodipodi:rx="1.1711456"
sodipodi:ry="1.1711456"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
transform="matrix(2.7600806,0,0,2.7600806,-90.62243,-14.600829)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

161
tools/CurveType-Light.svg Normal file
View File

@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.0 r9654"
version="1.0"
sodipodi:docname="CurveType-Light.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="F:\Developpement\WorkspaceCPP\rawtherapee-Default\rtdata\images\Light\curveType-NURBS.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<defs
id="defs4">
<linearGradient
id="linearGradient3205">
<stop
style="stop-color:#000000;stop-opacity:0.19512194;"
offset="0"
id="stop3207" />
<stop
style="stop-color:#ffffff;stop-opacity:0.19607843;"
offset="1"
id="stop3209" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#212121"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="36.222565"
inkscape:cy="2.1307775"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1440"
inkscape:window-height="814"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Background"
style="display:none">
<rect
style="fill:#d1d1d1;fill-opacity:0.81742739;fill-rule:evenodd;stroke:none;display:inline"
id="rect3190"
width="434.22333"
height="249.9772"
x="-156.8582"
y="-95.225754" />
</g>
<g
inkscape:label="Foreground"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
d="M -80.07192,24.660312 C -77.08189,16.699566 -67.81793,4.622125 -55.54721,0.242516"
id="path3159"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.58823529;stroke-dasharray:none;stroke-dashoffset:0"
d="M 1.27126,22.542893 4.43049,6.364908 23.17098,0.797204"
id="path3167"
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3181"
d="M 0.42808,24.472812 C 3.41811,16.512066 12.49457,4.372125 24.76529,-0.007484"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3183"
d="M -119.97874,24.105393 -95.70402,-0.265296"
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none;stroke-dashoffset:0"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3195"
d="M -39.65403,24.205807 C -36.664,16.245061 -27.98138,4.462353 -15.71066,0.082744"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
d="m -28,20 8,0"
id="path3197"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3199"
d="m -28,17 8,0"
style="opacity:0.7;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3201"
d="m -28,14 8,0"
style="opacity:0.7;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<path
transform="matrix(2.7600806,0,0,2.7600806,-11.87113,-22.689217)"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
sodipodi:ry="1.1711456"
sodipodi:rx="1.1711456"
sodipodi:cy="10.497826"
sodipodi:cx="5.8999224"
id="path3373"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3155"
sodipodi:cx="5.8999224"
sodipodi:cy="10.497826"
sodipodi:rx="1.1711456"
sodipodi:ry="1.1711456"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
transform="matrix(2.7600806,0,0,2.7600806,-90.62243,-14.600829)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -0,0 +1,177 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.0 r9654"
version="1.0"
sodipodi:docname="FlatCurveType-Dark.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="F:\Developpement\WorkspaceCPP\rawtherapee-Default\rtdata\images\Dark\curveType-flatLinear.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<defs
id="defs4">
<linearGradient
id="linearGradient3205">
<stop
style="stop-color:#000000;stop-opacity:0.19512194;"
offset="0"
id="stop3207" />
<stop
style="stop-color:#ffffff;stop-opacity:0.19607843;"
offset="1"
id="stop3209" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3211"
x1="12"
y1="24"
x2="12"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,119.47826,-40.521739)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3176"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,79.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3180"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,39.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3184"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,159.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#212121"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="4"
inkscape:cx="-0.50677297"
inkscape:cy="17.397147"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:window-width="1440"
inkscape:window-height="814"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Background"
style="display:none">
<rect
style="opacity:0.7;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="rect2392"
width="208.66199"
height="137.54977"
x="-75.361946"
y="-60.003071" />
</g>
<g
inkscape:label="Foreground"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:nodetypes="cc"
id="path3279"
d="m 40.79395,4.7393358 12.702754,0"
style="fill:none;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.58823529;stroke-dasharray:none;stroke-dashoffset:0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#ffffff;stroke-width:1.50000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.58823529;stroke-dasharray:none;stroke-dashoffset:0"
d="m 51.878553,17.486282 14.533546,0"
id="path3167"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
d="M 38.970662,14.45208 C 44.449378,0.01449422 51.372085,4.2483768 52.654577,10.859506 c 1.217464,6.27591 8.751381,10.619881 12.708155,1.707582"
id="path3159"
sodipodi:nodetypes="csc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3183"
d="m 0.75,12.033931 22.499998,-0.06786"
style="fill:none;stroke:#ffffff;stroke-width:1.49999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none;stroke-dashoffset:0"
inkscape:connector-curvature="0" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3155"
sodipodi:cx="5.8999224"
sodipodi:cy="10.497826"
sodipodi:rx="1.1711456"
sodipodi:ry="1.1711456"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
transform="matrix(2.7600806,0,0,2.7600806,42.861066,-11.488563)" />
<path
transform="matrix(2.7600806,0,0,2.7600806,30.861066,-24.235509)"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
sodipodi:ry="1.1711456"
sodipodi:rx="1.1711456"
sodipodi:cy="10.497826"
sodipodi:cx="5.8999224"
id="path3247"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
sodipodi:type="arc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.0 r9654"
version="1.0"
sodipodi:docname="FlatCurveType-Light.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="F:\Developpement\WorkspaceCPP\rawtherapee-Default\rtdata\images\Light\curveType-controlPoints.png"
inkscape:export-xdpi="67.5"
inkscape:export-ydpi="67.5">
<defs
id="defs4">
<linearGradient
id="linearGradient3205">
<stop
style="stop-color:#000000;stop-opacity:0.19512194;"
offset="0"
id="stop3207" />
<stop
style="stop-color:#ffffff;stop-opacity:0.19607843;"
offset="1"
id="stop3209" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3211"
x1="12"
y1="24"
x2="12"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,119.47826,-40.521739)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3176"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,79.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3180"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,39.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3205"
id="linearGradient3184"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0434783,0,0,1.0434783,159.47826,-40.521739)"
x1="12"
y1="24"
x2="12"
y2="0" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#212121"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="5.68"
inkscape:cx="24.265074"
inkscape:cy="-11.683043"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1440"
inkscape:window-height="878"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<path
sodipodi:nodetypes="cc"
id="path3279"
d="m 0.79395,4.7393358 12.702754,0"
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.58823529;stroke-dasharray:none;stroke-dashoffset:0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1.50000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.58823529;stroke-dasharray:none;stroke-dashoffset:0"
d="m 11.878553,17.486282 14.533546,0"
id="path3167"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none"
d="M -1.029338,14.45208 C 4.449378,0.01449422 11.372085,4.2483768 12.654577,10.859506 c 1.217464,6.27591 8.751381,10.619881 12.708155,1.707582"
id="path3159"
sodipodi:nodetypes="csc"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cc"
id="path3183"
d="m -39.25,12.033931 22.499998,-0.06786"
style="fill:none;stroke:#000000;stroke-width:1.49999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.78431373;stroke-dasharray:none;stroke-dashoffset:0"
inkscape:connector-curvature="0" />
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3155"
sodipodi:cx="5.8999224"
sodipodi:cy="10.497826"
sodipodi:rx="1.1711456"
sodipodi:ry="1.1711456"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
transform="matrix(2.7600806,0,0,2.7600806,2.861066,-11.488563)" />
<path
transform="matrix(2.7600806,0,0,2.7600806,-9.138934,-24.235509)"
d="m 7.0710679,10.497826 a 1.1711456,1.1711456 0 1 1 -2.3422911,0 1.1711456,1.1711456 0 1 1 2.3422911,0 z"
sodipodi:ry="1.1711456"
sodipodi:rx="1.1711456"
sodipodi:cy="10.497826"
sodipodi:cx="5.8999224"
id="path3247"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
sodipodi:type="arc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB