#include <synfig/mutex.h>
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
canvas(canvas_interface->get_canvas()),
scrollx_adjustment(0,-4,4,0.01,0.1),
scrolly_adjustment(0,-4,4,0.01,0.1),
- w(128),
- h(128),
+ w(TILE_SIZE),
+ h(TILE_SIZE),
last_event_time(0),
progresscallback(0),
dragging(DRAG_NONE),
show_grid(false),
- tile_w(128),
- tile_h(128),
+ tile_w(TILE_SIZE),
+ tile_h(TILE_SIZE),
timecode_width(0),
timecode_height(0)
{
// GDK mouse scrolling events
else if(event->any.type==GDK_SCROLL)
{
- // GDK information needed to properly interprete mouse
+ // GDK information needed to properly interpret mouse
// scrolling events are: scroll.state, scroll.x/scroll.y, and
// scroll.direction. The value of scroll.direction will be
// obtained later.
if(get_selected_ducks().size()<=1)
duck->signal_user_click(2)();
else
- {
canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MULTIPLE_DUCKS_CLICKED,BUTTON_RIGHT,mouse_pos,pressure,modifier));
- }
return true;
}
- else
- if(bezier)
+ else if(bezier)
{
bezier->signal_user_click(2)(bezier_click_pos);
return true;
}
- else
- if(layer)
+ else if (layer)
{
if(canvas_view->get_smach().process_event(EventLayerClick(layer,BUTTON_RIGHT,mouse_pos))==Smach::RESULT_OK)
return false;
signal_cursor_moved_();
- // Guide/Duck hilights on hover
+ // Guide/Duck highlights on hover
if(dragging==DRAG_NONE)
{
GuideList::iterator iter;
drawing_area->queue_draw();
}
+
if(dragging==DRAG_BOX)
{
curr_point=mouse_pos;
drawing_area->queue_draw();
}
+
if(dragging==DRAG_GUIDE)
{
if(curr_guide_is_x)
*curr_guide=mouse_pos[1];
drawing_area->queue_draw();
}
+
if(dragging!=DRAG_WINDOW)
{ // Update those triangle things on the rulers
const synfig::Point point(mouse_pos);
hruler->property_position()=Distance(point[0],Distance::SYSTEM_UNITS).get(App::distance_system,get_canvas()->rend_desc());
vruler->property_position()=Distance(point[1],Distance::SYSTEM_UNITS).get(App::distance_system,get_canvas()->rend_desc());
}
- if(dragging==DRAG_WINDOW)
- {
- set_focus_point(get_focus_point()+mouse_pos-drag_point);
- }
- else
- if(event->motion.state&GDK_BUTTON1_MASK && canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_BUTTON_DRAG,BUTTON_LEFT,mouse_pos,pressure,modifier))==Smach::RESULT_ACCEPT)
+
+ if(dragging == DRAG_WINDOW)
+ set_focus_point(get_focus_point() + mouse_pos-drag_point);
+ else if (event->motion.state & GDK_BUTTON1_MASK &&
+ canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_BUTTON_DRAG, BUTTON_LEFT,
+ mouse_pos,pressure,modifier)) == Smach::RESULT_ACCEPT)
return true;
- else
- if(event->motion.state&GDK_BUTTON2_MASK && canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_BUTTON_DRAG,BUTTON_MIDDLE,mouse_pos,pressure,modifier))==Smach::RESULT_ACCEPT)
+ else if (event->motion.state & GDK_BUTTON2_MASK &&
+ canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_BUTTON_DRAG, BUTTON_MIDDLE,
+ mouse_pos, pressure, modifier)) == Smach::RESULT_ACCEPT)
return true;
- else
- if(event->motion.state&GDK_BUTTON3_MASK && canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_BUTTON_DRAG,BUTTON_RIGHT,mouse_pos,pressure,modifier))==Smach::RESULT_ACCEPT)
+ else if (event->motion.state & GDK_BUTTON3_MASK &&
+ canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_BUTTON_DRAG, BUTTON_RIGHT,
+ mouse_pos, pressure, modifier)) == Smach::RESULT_ACCEPT)
return true;
- else
- if(canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_MOTION,BUTTON_NONE,mouse_pos,pressure,modifier))==Smach::RESULT_ACCEPT)
+ else if(canvas_view->get_smach().process_event(EventMouse(EVENT_WORKAREA_MOUSE_MOTION, BUTTON_NONE,
+ mouse_pos, pressure,modifier)) == Smach::RESULT_ACCEPT)
return true;
break;
+
case GDK_BUTTON_RELEASE:
{
bool ret(false);
switch(event->type)
{
case GDK_BUTTON_PRESS:
- DEBUGPOINT();
if(dragging==DRAG_NONE)
{
- DEBUGPOINT();
dragging=DRAG_GUIDE;
curr_guide=get_guide_list_x().insert(get_guide_list_x().begin());
curr_guide_is_x=true;
return true;
break;
case GDK_BUTTON_RELEASE:
- DEBUGPOINT();
if(dragging==DRAG_GUIDE && curr_guide_is_x==true)
{
- DEBUGPOINT();
dragging=DRAG_NONE;
get_guide_list_x().erase(curr_guide);
}
// Create the render target
handle<Target> target;
- if(w*h>(low_resolution?480*270:480*270/2))
+ // if we have lots of pixels to render and the tile renderer isn't disabled, use it
+ if(w*h>(low_resolution?480*270:480*270/2) &&
+ !getenv("SYNFIG_DISABLE_TILE_RENDER"))
{
+ // do a tile render
handle<WorkAreaTarget> trgt(new class WorkAreaTarget(this,w,h));
trgt->set_rend_desc(&desc);
}
else
{
+ // do a scanline render
handle<WorkAreaTarget_Full> trgt(new class WorkAreaTarget_Full(this,w,h));
trgt->set_rend_desc(&desc);
synfig::ProgressCallback *cb=get_canvas_view()->get_ui_interface().get();
rendering=true;
- cb->task("Rendering...");
+ cb->task(_("Rendering..."));
rendering=true;
return true;
{
dirty=false;
//queued=false;
- cb->task("Idle");
+ cb->task(_("Idle"));
}
else
{
dirty=true;
- cb->task("Render Failed");
+ cb->task(_("Render Failed"));
}
//get_canvas_view()->reset_cancel_status();
done_rendering();
target->set_avoid_time_sync(true);
if(cb)
- cb->task(strprintf("Rendering canvas %s...",get_canvas()->get_name().c_str()));
+ cb->task(strprintf(_("Rendering canvas %s..."),get_canvas()->get_name().c_str()));
bool ret = target->render(cb);
if(cb)
{
if(ret)
- cb->task("Idle");
+ cb->task(_("Idle"));
else
- cb->task("Render Failed");
+ cb->task(_("Render Failed"));
cb->amount_complete(0,1);
}
}
void
-studio::WorkArea::async_render_preview(Time time)
+studio::WorkArea::async_render_preview(synfig::Time time)
{
cur_time=time;
//tile_book.clear();
}
bool
-studio::WorkArea::sync_render_preview(Time time)
+studio::WorkArea::sync_render_preview(synfig::Time time)
{
cur_time=time;
//tile_book.clear();