macros.h revision 377ff4742f6ad20c6594696e36cad31a395001c6
551N/A#ifndef SEEN_MACROS_H
943N/A#define SEEN_MACROS_H
551N/A
551N/A/**
919N/A * Useful macros for inkscape
919N/A *
919N/A * Author:
919N/A * Lauris Kaplinski <lauris@kaplinski.com>
919N/A *
551N/A * Copyright (C) 2002 Lauris Kaplinski
919N/A *
919N/A * Released under GNU GPL
919N/A */
551N/A
919N/A// I'm of the opinion that this file should be removed, so I will in the future take the necessary steps to wipe it out.
919N/A// Macros are not in general bad, but these particular ones are rather ugly. Especially that sp_round one. --Liam
919N/A
919N/A#ifdef SP_MACROS_SILENT
919N/A#define SP_PRINT_MATRIX(s,m)
919N/A#define SP_PRINT_TRANSFORM(s,t)
919N/A#define SP_PRINT_DRECT(s,r)
551N/A#define SP_PRINT_DRECT_WH(s,r)
551N/A#define SP_PRINT_IRECT(s,r)
551N/A#define SP_PRINT_IRECT_WH(s,r)
551N/A#else
551N/A#define SP_PRINT_MATRIX(s,m) g_print("%s (%g %g %g %g %g %g)\n", (s), (m)->c[0], (m)->c[1], (m)->c[2], (m)->c[3], (m)->c[4], (m)->c[5])
551N/A#define SP_PRINT_TRANSFORM(s,t) g_print("%s (%g %g %g %g %g %g)\n", (s), (t)[0], (t)[1], (t)[2], (t)[3], (t)[4], (t)[5])
551N/A#define SP_PRINT_DRECT(s,r) g_print("%s (%g %g %g %g)\n", (s), (r)->x0, (r)->y0, (r)->x1, (r)->y1)
551N/A#define SP_PRINT_DRECT_WH(s,r) g_print("%s (%g %g %g %g)\n", (s), (r)->x0, (r)->y0, (r)->x1 - (r)->x0, (r)->y1 - (r)->y0)
551N/A#define SP_PRINT_IRECT(s,r) g_print("%s (%d %d %d %d)\n", (s), (r)->x0, (r)->y0, (r)->x1, (r)->y1)
551N/A#define SP_PRINT_IRECT_WH(s,r) g_print("%s (%d %d %d %d)\n", (s), (r)->x0, (r)->y0, (r)->x1 - (r)->x0, (r)->y1 - (r)->y0)
551N/A#endif
551N/A
551N/A#define sp_signal_disconnect_by_data(o,d) g_signal_handlers_disconnect_matched(o, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, d)
551N/A
551N/A#define sp_round(v,m) (((v) < 0.0) ? ((ceil((v) / (m) - 0.5)) * (m)) : ((floor((v) / (m) + 0.5)) * (m)))
551N/A
551N/A#endif
551N/A
551N/A// keyboard modifiers in an event
551N/A#define MOD__SHIFT(event) ((event)->key.state & GDK_SHIFT_MASK)
551N/A#define MOD__CTRL(event) ((event)->key.state & GDK_CONTROL_MASK)
551N/A#define MOD__ALT(event) ((event)->key.state & GDK_MOD1_MASK)
551N/A#define MOD__SHIFT_ONLY(event) (((event)->key.state & GDK_SHIFT_MASK) && !((event)->key.state & GDK_CONTROL_MASK) && !((event)->key.state & GDK_MOD1_MASK))
551N/A#define MOD__CTRL_ONLY(event) (!((event)->key.state & GDK_SHIFT_MASK) && ((event)->key.state & GDK_CONTROL_MASK) && !((event)->key.state & GDK_MOD1_MASK))
551N/A#define MOD__ALT_ONLY(event) (!((event)->key.state & GDK_SHIFT_MASK) && !((event)->key.state & GDK_CONTROL_MASK) && ((event)->key.state & GDK_MOD1_MASK))
551N/A
551N/A/*
551N/A Local Variables:
551N/A mode:c++
551N/A c-file-style:"stroustrup"
551N/A c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
551N/A indent-tabs-mode:nil
551N/A fill-column:99
551N/A End:
551N/A*/
551N/A// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8 :
551N/A