1/* 2 * Copyright 2006, Haiku. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Stephan A��mus <superstippi@gmx.de> 7 */ 8 9#include "AssignStyleCommand.h" 10 11#include <Catalog.h> 12#include <Locale.h> 13 14#include "PathSourceShape.h" 15#include "Shape.h" 16#include "Style.h" 17 18 19#undef B_TRANSLATION_CONTEXT 20#define B_TRANSLATION_CONTEXT "Icon-O-Matic-AssignStyleCmd" 21 22 23// constructor 24AssignStyleCommand::AssignStyleCommand(PathSourceShape* shape, 25 Style* style) 26 : Command(), 27 fShape(shape), 28 fOldStyle(shape ? shape->Style() : NULL), 29 fNewStyle(style) 30{ 31 if (fOldStyle) 32 fOldStyle->AcquireReference(); 33 if (fNewStyle) 34 fNewStyle->AcquireReference(); 35} 36 37// destructor 38AssignStyleCommand::~AssignStyleCommand() 39{ 40 if (fOldStyle) 41 fOldStyle->ReleaseReference(); 42 if (fNewStyle) 43 fNewStyle->ReleaseReference(); 44} 45 46// InitCheck 47status_t 48AssignStyleCommand::InitCheck() 49{ 50 return fShape && fNewStyle ? B_OK : B_NO_INIT; 51} 52 53// Perform 54status_t 55AssignStyleCommand::Perform() 56{ 57 fShape->SetStyle(fNewStyle); 58 59 return B_OK; 60} 61 62// Undo 63status_t 64AssignStyleCommand::Undo() 65{ 66 fShape->SetStyle(fOldStyle); 67 68 return B_OK; 69} 70 71// GetName 72void 73AssignStyleCommand::GetName(BString& name) 74{ 75 name << B_TRANSLATE("Assign style"); 76 if (fNewStyle) 77 name << " \"" << fNewStyle->Name() << "\""; 78} 79 80