/**
 * Copyright (c) 2016, 2018 Obeo.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors: Obeo - initial API and implementation
 */
package org.eclipse.eef.ext.widgets.reference.eefextwidgetsreference;

import org.eclipse.eef.EEFWidgetStyle;

/**
 * <!-- begin-user-doc --> A representation of the model object '<em><b>EEF Ext Reference Widget Style</b></em>'. <!--
 * end-user-doc -->
 *
 * <!-- begin-model-doc --> The style of the reference widget <!-- end-model-doc -->
 *
 *
 * @see org.eclipse.eef.ext.widgets.reference.eefextwidgetsreference.EefExtWidgetsReferencePackage#getEEFExtReferenceWidgetStyle()
 * @model
 * @generated
 */
public interface EEFExtReferenceWidgetStyle extends EEFWidgetStyle {
} // EEFExtReferenceWidgetStyle
