CachePrefObserver(SPCanvasArena *arena) : Inkscape::Preferences::Observer("/options/renderingcache") , _arena(arena) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); std::vector<Inkscape::Preferences::Entry> v = prefs->getAllEntries(observed_path); for (unsigned i=0; i<v.size(); ++i) { notify(v[i]); } prefs->addObserver(*this); }
ControlManagerImpl::ControlManagerImpl(ControlManager &manager) : _manager(manager), _sizeChangedSignal(), _prefHook(*this), _size(3), _resize(3), _itemList(), _sizeTable() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->addObserver(_prefHook); _size = prefs->getIntLimited("/options/grabsize/value", 3, 1, 7); _typeTable[CTRL_TYPE_UNKNOWN] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_ADJ_HANDLE] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_ANCHOR] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_INVISIPOINT] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_NODE_AUTO] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_NODE_CUSP] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_NODE_SMOOTH] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_NODE_SYMETRICAL] = SP_TYPE_CTRL; _typeTable[CTRL_TYPE_LINE] = SP_TYPE_CTRLLINE; // ------- _ctrlToShape[CTRL_TYPE_UNKNOWN] = SP_CTRL_SHAPE_DIAMOND; _ctrlToShape[CTRL_TYPE_NODE_CUSP] = SP_CTRL_SHAPE_DIAMOND; _ctrlToShape[CTRL_TYPE_NODE_SMOOTH] = SP_CTRL_SHAPE_SQUARE; _ctrlToShape[CTRL_TYPE_NODE_AUTO] = SP_CTRL_SHAPE_CIRCLE; _ctrlToShape[CTRL_TYPE_NODE_SYMETRICAL] = SP_CTRL_SHAPE_SQUARE; _ctrlToShape[CTRL_TYPE_ADJ_HANDLE] = SP_CTRL_SHAPE_CIRCLE; _ctrlToShape[CTRL_TYPE_INVISIPOINT] = SP_CTRL_SHAPE_SQUARE; // ------- _resizeOnSelect.insert(CTRL_TYPE_NODE_AUTO); _resizeOnSelect.insert(CTRL_TYPE_NODE_CUSP); _resizeOnSelect.insert(CTRL_TYPE_NODE_SMOOTH); _resizeOnSelect.insert(CTRL_TYPE_NODE_SYMETRICAL); // ------- { int sizes[] = {8, 8, 8, 8, 8, 8, 8}; _sizeTable[CTRL_TYPE_UNKNOWN] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } { int sizes[] = {2, 4, 6, 8, 10, 12, 14}; _sizeTable[CTRL_TYPE_ANCHOR] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } { int sizes[] = {2, 4, 7, 8, 9, 10, 12}; _sizeTable[CTRL_TYPE_ADJ_HANDLE] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } { int sizes[] = {4, 6, 8, 10, 12, 14, 16}; _sizeTable[CTRL_TYPE_POINT] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); _sizeTable[CTRL_TYPE_ROTATE] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); _sizeTable[CTRL_TYPE_SIZER] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); _sizeTable[CTRL_TYPE_SHAPER] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } { int sizes[] = {5, 7, 9, 10, 11, 12, 13}; _sizeTable[CTRL_TYPE_NODE_AUTO] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); _sizeTable[CTRL_TYPE_NODE_CUSP] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } { int sizes[] = {3, 5, 7, 8, 9, 10, 11}; _sizeTable[CTRL_TYPE_NODE_SMOOTH] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); _sizeTable[CTRL_TYPE_NODE_SYMETRICAL] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } { int sizes[] = {1, 1, 1, 1, 1, 1, 1}; _sizeTable[CTRL_TYPE_INVISIPOINT] = std::vector<int>(sizes, sizes + (sizeof(sizes) / sizeof(sizes[0]))); } }