~ubuntu-branches/debian/experimental/inkscape/experimental

« back to all changes in this revision

Viewing changes to src/knotholder.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Thomas Viehmann
  • Date: 2008-09-09 23:29:02 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20080909232902-c50iujhk1w79u8e7
Tags: 0.46-2.1
* Non-maintainer upload.
* Add upstream patch fixing a crash in the open dialog
  in the zh_CN.utf8 locale. Closes: #487623.
  Thanks to Luca Bruno for the patch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#include "knot.h"
21
21
#include "knotholder.h"
22
22
#include "knot-holder-entity.h"
 
23
#include "rect-context.h"
 
24
#include "sp-rect.h"
 
25
#include "arc-context.h"
 
26
#include "sp-ellipse.h"
 
27
#include "star-context.h"
 
28
#include "sp-star.h"
 
29
#include "spiral-context.h"
 
30
#include "sp-spiral.h"
 
31
#include "sp-offset.h"
 
32
#include "box3d.h"
 
33
 
23
34
#include <libnr/nr-matrix-div.h>
 
35
#include <glibmm/i18n.h>
24
36
 
25
37
class SPDesktop;
26
38
 
183
195
 * \param p In desktop coordinates.
184
196
 */
185
197
 
186
 
static void knotholder_update_knots(SPKnotHolder *knot_holder, SPItem *item)
 
198
//static
 
199
void knotholder_update_knots(SPKnotHolder *knot_holder, SPItem *item)
187
200
{
188
201
    NR::Matrix const i2d(sp_item_i2d_affine(item));
189
202
 
221
234
    knotholder_update_knots(knot_holder, item);
222
235
    g_object_unref(knot_holder);
223
236
 
 
237
    unsigned int object_verb = SP_VERB_NONE;
 
238
 
 
239
    if (SP_IS_RECT(item))
 
240
        object_verb = SP_VERB_CONTEXT_RECT;
 
241
    else if (SP_IS_BOX3D(item))
 
242
        object_verb = SP_VERB_CONTEXT_3DBOX;
 
243
    else if (SP_IS_GENERICELLIPSE(item))
 
244
        object_verb = SP_VERB_CONTEXT_ARC;
 
245
    else if (SP_IS_STAR(item))
 
246
        object_verb = SP_VERB_CONTEXT_STAR;
 
247
    else if (SP_IS_SPIRAL(item))
 
248
        object_verb = SP_VERB_CONTEXT_SPIRAL;
 
249
    else if (SP_IS_OFFSET(item)) {
 
250
        if (SP_OFFSET(item)->sourceHref)
 
251
            object_verb = SP_VERB_SELECTION_LINKED_OFFSET;
 
252
        else
 
253
            object_verb = SP_VERB_SELECTION_DYNAMIC_OFFSET;
 
254
    }
 
255
 
224
256
    // for drag, this is done by ungrabbed_handler, but for click we must do it here
225
 
    sp_document_done(SP_OBJECT_DOCUMENT(knot_holder->item));
 
257
    sp_document_done(SP_OBJECT_DOCUMENT(knot_holder->item), object_verb, 
 
258
                     _("Change handle"));
226
259
}
227
260
 
228
261
static void knot_moved_handler(SPKnot *knot, NR::Point const *p, guint state, gpointer data)
248
281
    knotholder_update_knots(knot_holder, item);
249
282
}
250
283
 
251
 
static void knot_ungrabbed_handler(SPKnot *knot, unsigned int state, SPKnotHolder *kh)
 
284
static void knot_ungrabbed_handler(SPKnot */*knot*/, unsigned int /*state*/, SPKnotHolder *kh)
252
285
{
253
286
    if (kh->released) {
254
287
        kh->released(kh->item);
255
288
    } else {
256
289
        SPObject *object = (SPObject *) kh->item;
257
290
        object->updateRepr(object->repr, SP_OBJECT_WRITE_EXT);
258
 
        sp_document_done(SP_OBJECT_DOCUMENT (object));
 
291
 
 
292
        unsigned int object_verb = SP_VERB_NONE;
 
293
 
 
294
        if (SP_IS_RECT(object))
 
295
            object_verb = SP_VERB_CONTEXT_RECT;
 
296
        else if (SP_IS_BOX3D(object))
 
297
            object_verb = SP_VERB_CONTEXT_3DBOX;
 
298
        else if (SP_IS_GENERICELLIPSE(object))
 
299
            object_verb = SP_VERB_CONTEXT_ARC;
 
300
        else if (SP_IS_STAR(object))
 
301
            object_verb = SP_VERB_CONTEXT_STAR;
 
302
        else if (SP_IS_SPIRAL(object))
 
303
            object_verb = SP_VERB_CONTEXT_SPIRAL;
 
304
        else if (SP_IS_OFFSET(object)) {
 
305
            if (SP_OFFSET(object)->sourceHref)
 
306
                object_verb = SP_VERB_SELECTION_LINKED_OFFSET;
 
307
            else
 
308
                object_verb = SP_VERB_SELECTION_DYNAMIC_OFFSET;
 
309
        }
 
310
        
 
311
        sp_document_done(SP_OBJECT_DOCUMENT (object), object_verb,
 
312
                         _("Move handle"));
259
313
    }
260
314
}
261
315