/*
 * Copyright (c) 2013-2014 Minkyu Lee. All rights reserved.
 *
 * NOTICE:  All information contained herein is, and remains the
 * property of Minkyu Lee. The intellectual and technical concepts
 * contained herein are proprietary to Minkyu Lee and may be covered
 * by Republic of Korea and Foreign Patents, patents in process,
 * and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Minkyu Lee (niklaus.lee@gmail.com).
 *
 */

@ui-icon-url: url('../icons/icons-light.png');
@icon-width: 16px;
@icon-height: 16px;

._icon-base (@xpos, @ypos, @offset: 0px) {
    background-image: @ui-icon-url !important;
    background-repeat: no-repeat;
    background-position: (@icon-width * @xpos * -1 + @offset) (@icon-height * @ypos * -1 + @offset);
    width: @icon-width;
    height: @icon-height;
    background-clip: content-box;
}

// UML Icons

// Annotations & Etc.
._icon-Project                      { ._icon-base(5, 0); }
._icon-Tag                          { ._icon-base(13, 13); }
._icon-Lock                         { ._icon-base(0, 13); }
._icon-Rectangle                    { ._icon-base(6, 12); }
._icon-RoundedRectangle             { ._icon-base(7, 12); }
._icon-Ellipse                      { ._icon-base(4, 11); }
._icon-UMLNote                      { ._icon-base(2, 0); }
._icon-UMLNoteLink                  { ._icon-base(3, 0); }
._icon-UMLText                      { ._icon-base(4, 0); }
._icon-UMLConstraint                { ._icon-base(11, 3); }
// Diagrams
._icon-UMLClassDiagram              { ._icon-base(7, 6); }
._icon-UMLObjectDiagram             { ._icon-base(10, 6); }
._icon-UMLPackageDiagram            { ._icon-base(12, 6); }
._icon-UMLUseCaseDiagram            { ._icon-base(8, 6); }
._icon-UMLSequenceDiagram           { ._icon-base(9, 6); }
._icon-UMLCommunicationDiagram      { ._icon-base(11, 6); }
._icon-UMLStatechartDiagram         { ._icon-base(13, 6); }
._icon-UMLActivityDiagram           { ._icon-base(0, 7); }
._icon-UMLComponentDiagram          { ._icon-base(1, 7); }
._icon-UMLDeploymentDiagram         { ._icon-base(2, 7); }
._icon-UMLCompositeStructureDiagram { ._icon-base(11, 12); }
._icon-UMLProfileDiagram            { ._icon-base(0, 10); }
// Backbone
._icon-UMLAttribute                 { ._icon-base(4, 3); }
._icon-UMLOperation                 { ._icon-base(8, 3); }
._icon-UMLParameter                 { ._icon-base(12, 3); }
._icon-UMLTemplateParameter         { ._icon-base(13, 3); }
._icon-UMLFrame                     { ._icon-base(13, 11); }
// Packages
._icon-UMLPackage                   { ._icon-base(13, 0); }
._icon-UMLModel                     { ._icon-base(7, 0); }
._icon-UMLSubsystem                 { ._icon-base(10, 0); }
._icon-UMLProfile                   { ._icon-base(10, 0); }
// Classes
._icon-UMLClass                     { ._icon-base(2, 1); }
._icon-UMLInterface                 { ._icon-base(3, 1); }
._icon-UMLSignal                    { ._icon-base(5, 1); }
._icon-UMLDataType                  { ._icon-base(5, 3); }
._icon-UMLPrimitiveType             { ._icon-base(6, 3); }
._icon-UMLEnumerationLiteral        { ._icon-base(0, 4); }
._icon-UMLEnumeration               { ._icon-base(4, 1); }
._icon-UMLStereotype                { ._icon-base(2, 1); }
._icon-UMLDependency                { ._icon-base(4, 5); }
._icon-UMLGeneralization            { ._icon-base(7, 5); }
._icon-UMLInterfaceRealization      { ._icon-base(6, 6); }
._icon-UMLComponentRealization      { ._icon-base(6, 6); }
._icon-UMLAssociationEnd            { ._icon-base(10, 5); }
._icon-UMLAssociation               { ._icon-base(5, 5); }
._icon-UMLDirectedAssociation       { ._icon-base(0, 11); }
._icon-UMLAggregation               { ._icon-base(1, 11); }
._icon-UMLComposition               { ._icon-base(2, 11); }
._icon-UMLAssociationClassLink      { ._icon-base(6, 5); }
._icon-UMLContainment               { ._icon-base(1, 13); }
// Instances
._icon-UMLSlot                      { ._icon-base(10, 13); }
._icon-UMLObject                    { ._icon-base(3, 5); }
._icon-UMLArtifactInstance          { ._icon-base(2, 13); }
._icon-UMLComponentInstance         { ._icon-base(8, 1); }
._icon-UMLNodeInstance              { ._icon-base(10, 1); }
._icon-UMLLinkEnd                   { ._icon-base(10, 5); }
._icon-UMLLink                      { ._icon-base(8, 5); }
._icon-UMLDirectedLink              { ._icon-base(11, 5); }
// Composite Structures
._icon-UMLPort                      { ._icon-base(5, 12); }
._icon-UMLPart                      { ._icon-base(4, 12); }
._icon-UMLConnectorEnd              { ._icon-base(10, 5); }
._icon-UMLConnector                 { ._icon-base(10, 11); }
._icon-UMLSelfConnector             { ._icon-base(11, 11); }
._icon-UMLCollaboration             { ._icon-base(2, 2); }
._icon-UMLCollaborationUse          { ._icon-base(3, 2); }
// Components
._icon-UMLArtifact                  { ._icon-base(8, 12); }
._icon-UMLComponent                 { ._icon-base(7, 1); }
// Deployments
._icon-UMLNode                      { ._icon-base(9, 1); }
._icon-UMLDeployment                { ._icon-base(4, 5); } // Temporally ref to Dependency Icon
._icon-UMLCommunicationPath         { ._icon-base(5, 5); }
// Use Cases
._icon-UMLExtensionPoint            { ._icon-base(9, 12); }
._icon-UMLUseCase                   { ._icon-base(11, 1); }
._icon-UMLActor                     { ._icon-base(12, 1); }
._icon-UMLInclude                   { ._icon-base(4, 6); }
._icon-UMLExtend                    { ._icon-base(5, 6); }
._icon-UMLUseCaseSubject            { ._icon-base(8, 11); }
// State Machines
._icon-UMLStateMachine              { ._icon-base(0, 2); }
._icon-UMLRegion                    { ._icon-base(0, 1); }
._icon-UMLInitialState              { ._icon-base(9, 2); }
._icon-UMLJunction                  { ._icon-base(11, 2); }
._icon-UMLChoice                    { ._icon-base(8, 2); }
._icon-UMLShallowHistory            { ._icon-base(13, 2); }
._icon-UMLDeepHistory               { ._icon-base(0, 3); }
._icon-UMLJoin                      { ._icon-base(10, 2); }
._icon-UMLFork                      { ._icon-base(11, 0); }
._icon-UMLEntryPoint                { ._icon-base(12, 2); }
._icon-UMLExitPoint                 { ._icon-base(12, 11); }
._icon-UMLTerminate                 { ._icon-base(12, 0); }
._icon-UMLState                     { ._icon-base(1, 2); }
._icon-UMLOrthogonalState           { ._icon-base(1, 1); }
._icon-UMLSubmachineState           { ._icon-base(3, 3); }
._icon-UMLFinalState                { ._icon-base(1, 3); }
._icon-UMLTransition                { ._icon-base(1, 4); }
._icon-UMLSelfTransition            { ._icon-base(2, 4); }
._icon-UMLEffect                    { ._icon-base(8, 4); }
._icon-UMLEntryActivity             { ._icon-base(9, 4); }
._icon-UMLDoActivity                { ._icon-base(10, 4); }
._icon-UMLExitActivity              { ._icon-base(11, 4); }
._icon-UMLEvent                     { ._icon-base(12, 4); }
._icon-UMLOpaqueBehavior            { ._icon-base(6, 1); }
._icon-UMLConnectionPointReference  { ._icon-base(11, 13); }
// Activity Graphs
._icon-UMLActivity                  { ._icon-base(13, 1); }
._icon-UMLInputPin                  { ._icon-base(7, 2); }
._icon-UMLOutputPin                 { ._icon-base(7, 3); }
._icon-UMLAction                    { ._icon-base(6, 2); }
._icon-UMLObjectNode                { ._icon-base(3, 12); }
._icon-UMLInitialNode               { ._icon-base(9, 2); }
._icon-UMLActivityFinalNode         { ._icon-base(1, 3); }
._icon-UMLFlowFinalNode             { ._icon-base(12, 11); }
._icon-UMLForkNode                  { ._icon-base(11, 0); }
._icon-UMLJoinNode                  { ._icon-base(10, 2); }
._icon-UMLMergeNode                 { ._icon-base(8, 0); }
._icon-UMLDecisionNode              { ._icon-base(9, 0); }
._icon-UMLControlFlow               { ._icon-base(1, 4); }
._icon-UMLObjectFlow                { ._icon-base(6, 0); }
._icon-UMLSwimlaneVert              { ._icon-base(2, 3); }
._icon-UMLSwimlaneHorz              { ._icon-base(7, 11); }
._icon-UMLSendSignal                { ._icon-base(6, 11); }
._icon-UMLAcceptSignal              { ._icon-base(5, 11); }
// Interactions
._icon-UMLLifeline                  { ._icon-base(2, 5); }
._icon-UMLInteraction               { ._icon-base(4, 2); }
._icon-UMLStateInvariant            { ._icon-base(8, 13); }
._icon-UMLContinuation              { ._icon-base(9, 13); }
._icon-UMLInteractionOperand        { ._icon-base(1, 12); }
._icon-UMLCombinedFragment          { ._icon-base(9, 11); }
._icon-UMLInteractionUse            { ._icon-base(5, 13); }
._icon-UMLEndpoint                  { ._icon-base(6, 13); }
._icon-UMLGate                      { ._icon-base(7, 13); }
._icon-UMLSelfLink                  { ._icon-base(9, 5); }
._icon-UMLMessage                   { ._icon-base(1, 6); }
._icon-UMLSelfMessage               { ._icon-base(0, 6); }
._icon-UMLLostMessage               { ._icon-base(3, 13); }
._icon-UMLFoundMessage              { ._icon-base(4, 13); }
._icon-UMLForwardMessage            { ._icon-base(12, 5); }
._icon-UMLReverseMessage            { ._icon-base(13, 5); }
// Profiles
._icon-UMLProfile                   { ._icon-base(12, 13); }
._icon-UMLMetaClass                 { ._icon-base(12, 9); }
._icon-UMLImage                     { ._icon-base(0, 12); }
._icon-UMLStereotype                { ._icon-base(13, 9); }
._icon-UMLExtension                 { ._icon-base(11, 9); }
// Robustness
._icon-UMLBoundary                  { ._icon-base(0, 9); }
._icon-UMLEntity                    { ._icon-base(1, 9); }
._icon-UMLControl                   { ._icon-base(2, 9); }

// ColorPicker Icons
.tool-icon-font-color { ._icon-base(0, 8); }
.tool-icon-line-color { ._icon-base(1, 8); }
.tool-icon-fill-color { ._icon-base(2, 8); }
// .tool-icon-font-color { ._icon-base(0, 8, 3px); }
// .tool-icon-line-color { ._icon-base(1, 8, 3px); }
// .tool-icon-fill-color { ._icon-base(2, 8, 3px); }


// Toolbar Icons
.tool-icon-select { ._icon-base(0, 0); }
.tool-icon-zoom-in { ._icon-base(7, 9); }
.tool-icon-zoom-out { ._icon-base(8, 9); }
.tool-icon-stereotype-display { ._icon-base(13, 10); }
.tool-icon-line-style { ._icon-base(3, 8); }
.tool-icon-auto-resize { ._icon-base(12, 10); }
.tool-icon-show-namespace { ._icon-base(7, 8); }
.tool-icon-show-properties { ._icon-base(3, 11); }
.tool-icon-suppress-attributes { ._icon-base(4, 8); }
.tool-icon-suppress-operations { ._icon-base(5, 8); }
.tool-icon-suppress-literals { ._icon-base(6, 8); }
.tool-icon-show-operation-signature { ._icon-base(8, 8); }
.tool-icon-show-compartment-visibility { ._icon-base(9, 8); }
.tool-icon-show-compartment-stereotype { ._icon-base(10, 8); }
.tool-icon-undo { ._icon-base(11, 7); }
.tool-icon-redo { ._icon-base(12, 7); }
.tool-icon-copy { ._icon-base(8, 7); }
.tool-icon-cut { ._icon-base(7, 7); }
.tool-icon-paste { ._icon-base(9, 7); }
.tool-icon-delete { ._icon-base(10, 7); }

.tool-icon-bringtofront { ._icon-base(11, 8); }
.tool-icon-sendtoback   { ._icon-base(12, 8); }

.tool-icon-moveup   { ._icon-base(1, 10); }
.tool-icon-movedown { ._icon-base(2, 10); }
.tool-icon-add      { ._icon-base(3, 10); }
.tool-icon-delete   { ._icon-base(4, 10); }
.tool-icon-edit     { ._icon-base(5, 10); }

// Quick Dialog Icons
.quick-edit-icon-public    { ._icon-base(8, 10); }
.quick-edit-icon-protected { ._icon-base(9, 10); }
.quick-edit-icon-private   { ._icon-base(10, 10); }
.quick-edit-icon-package   { ._icon-base(11, 10); }

.quick-edit-icon-attribute { ._icon-base(4, 3); }
.quick-edit-icon-operation { ._icon-base(8, 3); }
.quick-edit-icon-literal   { ._icon-base(0, 4); }

.quick-edit-icon-moveup    { ._icon-base(1, 10); }
.quick-edit-icon-movedown  { ._icon-base(2, 10); }
.quick-edit-icon-add       { ._icon-base(3, 10); }
.quick-edit-icon-delete    { ._icon-base(4, 10); }

.quick-edit-icon-associate { ._icon-base(5, 5); }
.quick-edit-icon-shared    { ._icon-base(1, 11); }
.quick-edit-icon-composite { ._icon-base(2, 11); }

.quick-edit-icon-navigable    { ._icon-base(9, 12); }
.quick-edit-icon-notnavigable { ._icon-base(10, 12); }

.quick-edit-icon-select-type { ._icon-base(2, 6); }
.quick-edit-icon-create-type { ._icon-base(3, 6); }

.quick-edit-icon-select-operation { ._icon-base(9, 3); }
.quick-edit-icon-create-operation { ._icon-base(10, 3); }

.quick-edit-icon-select-signal { ._icon-base(0, 5); }
.quick-edit-icon-create-signal { ._icon-base(1, 5); }


// Others

.validation-error {
    background: url(icons/warning.svg) no-repeat;
}

.validation-ok {
    background: url(icons/okay.svg) no-repeat;
}
