index 2c041864f0940fc441578ea31db0120a4783854d..f6dd6cb2826c0fe58d67a4b6fc2d8418b57ada23 100644 (file)
-/*
- * A simple dialog for setting the parameters for autotracing a
- * bitmap <image> into an svg <path>
- *
- * Authors:
+/** @file
+ * @brief Bitmap tracing settings dialog - implementation
+ */
+/* Authors:
* Bob Jamison <rjamison@titan.com>
* Stéphane Gimenez <dev@gim.name>
* Other dudes from The Inkscape Organization
#include <gtk/gtkdialog.h> //for GTK_RESPONSE* types
#include <glibmm/i18n.h>
-
+#include "desktop.h"
#include "tracedialog.h"
#include "trace/potrace/inkscape-potrace.h"
//#### Credits
- Gtk::Frame potraceCreditsFrame;
Gtk::VBox potraceCreditsVBox;
Gtk::Label potraceCreditsLabel;
*/
void TraceDialogImpl::potraceProcess(bool do_i_trace)
{
+ SPDesktop *desktop = SP_ACTIVE_DESKTOP;
+ if (desktop)
+ desktop->setWaitingCursor();
+
//##### Get the tracer and engine
Inkscape::Trace::Potrace::PotraceTracingEngine pte;
mainOkButton->set_sensitive(true);
}
+ if (desktop)
+ desktop->clearWaitingCursor();
}
*/
void TraceDialogImpl::abort()
{
- //### Do some GUI thing
+ SPDesktop *desktop = SP_ACTIVE_DESKTOP;
+ if (desktop)
+ desktop->setWaitingCursor();
+
+ if (mainCancelButton)
+ mainCancelButton->set_sensitive(false);
+ if (mainOkButton)
+ mainOkButton->set_sensitive(true);
//### Make the abort() call to the tracer
tracer.abort();
-
}
/**
* Constructor
*/
-TraceDialogImpl::TraceDialogImpl()
+TraceDialogImpl::TraceDialogImpl() :
+ TraceDialog()
{
- Gtk::VBox *mainVBox = get_vbox();
+ Gtk::Box *contents = _getContents();
#define MARGIN 2
//#### begin left panel
_("Trace by a given brightness level"));
modeBrightnessSpinner.set_digits(3);
- modeBrightnessSpinner.set_increments(0.01, 0.1);
+ modeBrightnessSpinner.set_increments(0.01, 0);
modeBrightnessSpinner.set_range(0.0, 1.0);
modeBrightnessSpinner.set_value(0.45);
modeBrightnessBox.pack_end(modeBrightnessSpinner, false, false, MARGIN);
modeCannyLoSpinnerLabel.set_label(_("Low"));
modeCannyBox.pack_start(modeCannyLoSpinnerLabel);
modeCannyLoSpinner.set_digits(5);
- modeCannyLoSpinner.set_increments(0.01, 0.1);
+ modeCannyLoSpinner.set_increments(0.01, 0);
modeCannyLoSpinner.set_range(0.0, 1.0);
modeCannyLoSpinner.set_value(0.1);
modeCannyBox.pack_start(modeCannyLoSpinner);
*/
modeCannyHiSpinner.set_digits(3);
- modeCannyHiSpinner.set_increments(0.01, 0.1);
+ modeCannyHiSpinner.set_increments(0.01, 0);
modeCannyHiSpinner.set_range(0.0, 1.0);
modeCannyHiSpinner.set_value(0.65);
modeCannyBox.pack_end(modeCannyHiSpinner, false, false, MARGIN);
_("Trace along the boundaries of reduced colors"));
modeQuantNrColorSpinner.set_digits(0);
- modeQuantNrColorSpinner.set_increments(1.0, 4.0);
+ modeQuantNrColorSpinner.set_increments(1.0, 0);
modeQuantNrColorSpinner.set_range(2.0, 64.0);
modeQuantNrColorSpinner.set_value(8.0);
modeQuantBox.pack_end(modeQuantNrColorSpinner, false, false, MARGIN);
_("Trace the given number of brightness levels"));
modeMultiScanNrColorSpinner.set_digits(0);
- modeMultiScanNrColorSpinner.set_increments(1.0, 4.0);
+ modeMultiScanNrColorSpinner.set_increments(1.0, 0);
modeMultiScanNrColorSpinner.set_range(2.0, 256.0);
modeMultiScanNrColorSpinner.set_value(8.0);
modeMultiScanHBox1.pack_end(modeMultiScanNrColorSpinner, false, false, MARGIN);
optionsSpecklesButton.set_active(true);
optionsSpecklesBox.pack_start(optionsSpecklesButton, false, false, MARGIN);
optionsSpecklesSizeSpinner.set_digits(0);
- optionsSpecklesSizeSpinner.set_increments(1, 10);
+ optionsSpecklesSizeSpinner.set_increments(1, 0);
optionsSpecklesSizeSpinner.set_range(0, 1000);
optionsSpecklesSizeSpinner.set_value(2);
tips.set_tip(optionsSpecklesSizeSpinner,
optionsCornersButton.set_active(true);
optionsCornersBox.pack_start(optionsCornersButton, false, false, MARGIN);
optionsCornersThresholdSpinner.set_digits(2);
- optionsCornersThresholdSpinner.set_increments(0.01, 0.1);
+ optionsCornersThresholdSpinner.set_increments(0.01, 0);
optionsCornersThresholdSpinner.set_range(0.0, 1.34);
optionsCornersThresholdSpinner.set_value(1.0);
optionsCornersBox.pack_end(optionsCornersThresholdSpinner, false, false, MARGIN);
_("Try to optimize paths by joining adjacent Bezier curve segments"));
optionsOptimBox.pack_start(optionsOptimButton, false, false, MARGIN);
optionsOptimToleranceSpinner.set_digits(2);
- optionsOptimToleranceSpinner.set_increments(0.05, 0.25);
+ optionsOptimToleranceSpinner.set_increments(0.05, 0);
optionsOptimToleranceSpinner.set_range(0.0, 5.0);
optionsOptimToleranceSpinner.set_value(0.2);
optionsOptimBox.pack_end(optionsOptimToleranceSpinner, false, false, MARGIN);
notebook.append_page(optionsPageBox, _("Options"));
- //### end notebook
-
- leftVBox.pack_start(notebook, true, true, MARGIN);
-
//### credits
- potraceCreditsLabel.set_text(_("Thanks to Peter Selinger, http://potrace.sourceforge.net"));
+ potraceCreditsLabel.set_text(_("Inkscape bitmap tracing\nis based on Potrace,\ncreated by Peter Selinger\n\nhttp://potrace.sourceforge.net"));
potraceCreditsVBox.pack_start(potraceCreditsLabel, false, false, MARGIN);
- potraceCreditsFrame.set_label(_("Credits"));
- potraceCreditsFrame.set_shadow_type(Gtk::SHADOW_NONE);
- potraceCreditsFrame.add(potraceCreditsVBox);
- leftVBox.pack_start(potraceCreditsFrame, false, false, 0);
+ notebook.append_page(potraceCreditsVBox, _("Credits"));
+
+ //### end notebook
+
+ leftVBox.pack_start(notebook, true, true, MARGIN);
//#### end left panel
//#### Global stuff
- mainVBox->pack_start(mainHBox);
+ contents->pack_start(mainHBox);
//## The OK button
- mainCancelButton = add_button(Gtk::Stock::STOP, GTK_RESPONSE_CANCEL);
- if (mainCancelButton)
- {
- tips.set_tip((*mainCancelButton), _("Abort a trace in progress"));
- mainCancelButton->set_sensitive(false);
- }
- mainOkButton = add_button(Gtk::Stock::OK, GTK_RESPONSE_OK);
+ mainCancelButton = addResponseButton(Gtk::Stock::STOP, GTK_RESPONSE_CANCEL);
+ if (mainCancelButton) {
+ tips.set_tip((*mainCancelButton), _("Abort a trace in progress"));
+ mainCancelButton->set_sensitive(false);
+ }
+ mainOkButton = addResponseButton(Gtk::Stock::OK, GTK_RESPONSE_OK);
tips.set_tip((*mainOkButton), _("Execute the trace"));
show_all_children();
//## Connect the signal
- signal_response().connect(
- sigc::mem_fun(*this, &TraceDialogImpl::responseCallback) );
+ signalResponse().connect(
+ sigc::mem_fun(*this, &TraceDialogImpl::responseCallback));
}
/**
* Factory method. Use this to create a new TraceDialog
*/
-TraceDialog *TraceDialog::create()
+TraceDialog &TraceDialog::getInstance()
{
TraceDialog *dialog = new TraceDialogImpl();
- return dialog;
+ return *dialog;
}