/* ****************************************************************************** * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ package org.xmind.ui.mindmap; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.PaletteData; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Display; import org.xmind.core.ITopic; public interface IMindMapImages { abstract class CursorFactory { private String id; public CursorFactory(String id) { this.id = id; } public String getId() { return id; } public abstract Cursor createCursor(IMindMapImages images); } String PATH = "icons/"; //$NON-NLS-1$ String PATH_E = PATH + "e/"; //$NON-NLS-1$ String PATH_D = PATH + "d/"; //$NON-NLS-1$ String PATH_POINTERS = PATH + "pointers/"; //$NON-NLS-1$ String PATH_WIZ = PATH + "wizban/"; //$NON-NLS-1$ String PATH_PROP = PATH + "prop/"; //$NON-NLS-1$ String XMIND_ICON = PATH + "xmind.16.png"; //$NON-NLS-1$ String XMIND_FILE_ICON = PATH + "xmind_file.16.png"; //$NON-NLS-1$ String ACTUAL_SIZE = "actualsize.png"; //$NON-NLS-1$ String ACTUAL_SIZE_SMALL = "actualsize_small.png"; //$NON-NLS-1$ String ADD = "add.png"; //$NON-NLS-1$ String ADD_COLUMN = "add_column.gif"; //$NON-NLS-1$ String ADD_MARKER = "add_marker.gif"; //$NON-NLS-1$ String ADD_THEME = "add_theme.gif"; //$NON-NLS-1$ String ATTACHMENT = "attachment.gif"; //$NON-NLS-1$ String BOUNDARY = "boundary.png"; //$NON-NLS-1$ String CENTRAL = "central.png"; //$NON-NLS-1$ String DELETE = "remove.png"; //$NON-NLS-1$ String DONE = "step_done.gif"; //$NON-NLS-1$ String DOWN_TRIANGLE = "down_triangle.gif"; //$NON-NLS-1$ String DRILL_UP = "drill_up.png"; //$NON-NLS-1$ String DRILL_DOWN = "drill_down.png"; //$NON-NLS-1$ String FILTER = "filter.gif"; //$NON-NLS-1$ String FIT_SELECTION = "fitselection.png"; //$NON-NLS-1$ String FIT_SIZE = "fitsize.png"; //$NON-NLS-1$ String FLOATING = "floating.png"; //$NON-NLS-1$ String HELP = "inspector.png"; //$NON-NLS-1$ String HYPERLINK = "hyperlink.png"; //$NON-NLS-1$ String INSERT_AFTER = "insertafter.png"; //$NON-NLS-1$ String INSERT_BEFORE = "insertbefore.png"; //$NON-NLS-1$ String INSERT_FLOATING_CENTRAL = "insertfloating_central.png"; //$NON-NLS-1$ String INSERT_FLOATING_MAIN = "insertfloating_main.png"; //$NON-NLS-1$ String INSERT_IMAGE = "insertimage.png"; //$NON-NLS-1$ String INSERT_PARENT = "insertparent.png"; //$NON-NLS-1$ String INSERT_SUB = "insertsub.png"; //$NON-NLS-1$ String LABEL = "label.png"; //$NON-NLS-1$ String LEGEND = "legend.gif"; //$NON-NLS-1$ String LEGEND_RESET = "legend_reset.gif"; //$NON-NLS-1$ String LINK = "link.gif"; //$NON-NLS-1$ String LOCK = "lock.gif"; //$NON-NLS-1$ String MAIN = "main.png"; //$NON-NLS-1$ String CALLOUT = "callout.png"; //$NON-NLS-1$ String MAP = "map.png"; //$NON-NLS-1$ String MARKERS = "markers.gif"; //$NON-NLS-1$ String MARKER_SHORTCUT = "marker_shortcut.png"; //$NON-NLS-1$ String NEW = "new.gif"; //$NON-NLS-1$ String NEW_DIALOG = "new_dialog.gif"; //$NON-NLS-1$ String NEW_SHEET_AS = "new_sheet_as.gif"; //$NON-NLS-1$ String NEWMAP = "newmap.gif"; //$NON-NLS-1$ String NEW_SHEET_FROM_TEMPLATE = "new_sheet_from_template.gif"; //$NON-NLS-1$ String NEWMAP_DIALOG = "newmap_dialog.png"; //$NON-NLS-1$ String NOTES = "notes.png"; //$NON-NLS-1$ String OPEN = "fldr_obj.gif"; //$NON-NLS-1$ // String PROPERTIES = "prop_ps.gif"; //$NON-NLS-1$ // String REGISTER = "prop_ps.gif"; //$NON-NLS-1$ String REMOVE = "trash.png"; //$NON-NLS-1$ String RELATIONSHIP = "relationship.gif"; //$NON-NLS-1$ String SHEET = "sheet.png"; //$NON-NLS-1$ String SHOWALL = "showall.png"; //$NON-NLS-1$ String SHOWOTHER = "showother.png"; //$NON-NLS-1$ String SMART_MODE = "smartmode_co.gif"; //$NON-NLS-1$ String STOP = "nav_stop.gif"; //$NON-NLS-1$ String STRIKETHROUGH = "strikethrough.gif"; //$NON-NLS-1$ String STYLES = "javaassist_co.gif"; //$NON-NLS-1$ String SUMMARY = "summary.gif"; //$NON-NLS-1$ String SUMMARY_TOPIC = "summary_topic.png"; //$NON-NLS-1$ String SYNCED = "synced.gif"; //$NON-NLS-1$ String ZOOMOUT = "zoomout.png"; //$NON-NLS-1$ String ZOOMIN = "zoomin.png"; //$NON-NLS-1$ String ZOOMOUT_SMALL = "zoomout_small.png"; //$NON-NLS-1$ String ZOOMIN_SMALL = "zoomin_small.png"; //$NON-NLS-1$ String TEMPLATE = "template.gif"; //$NON-NLS-1$ String THEME = "theme.gif"; //$NON-NLS-1$ String TOPIC = "topic.png"; //$NON-NLS-1$ String WORKBOOK = "workbook.png"; //$NON-NLS-1$ String URL = "link_obj.gif"; //$NON-NLS-1$ String ALPHA = "alpha.gif"; //$NON-NLS-1$ String UNLOCK = "unlock.gif"; //$NON-NLS-1$ String NUMBERING_INHERIT = "inherited.gif"; //$NON-NLS-1$ String ALIGN_CENTER = "align_center.png"; //$NON-NLS-1$ String ALIGN_LEFT = "align_left.png"; //$NON-NLS-1$ String ALIGN_RIGHT = "align_right.png"; //$NON-NLS-1$ String FONT = "text_font.png"; //$NON-NLS-1$ String TEXT_BACKGROUND = "text_background.gif"; //$NON-NLS-1$ String TEXT_FOREGROUND = "text_foreground.gif"; //$NON-NLS-1$ String TEXT_BOLD = "text_bold.png"; //$NON-NLS-1$ String TEXT_FONT = "text_font.png"; //$NON-NLS-1$ String TEXT_ITALIC = "text_italic.png"; //$NON-NLS-1$ String TEXT_STRIKEOUT = "text_strikeout.png"; //$NON-NLS-1$ String TEXT_UNDERLINE = "text_underline.png"; //$NON-NLS-1$ String LINE_INDENT = "text_indent.png"; //$NON-NLS-1$ String LINE_OUTDENT = "text_outdent.png"; //$NON-NLS-1$ String TEXT_MANUAL = "text_manual.png"; //$NON-NLS-1$ String TEXT_LOWERCASE = "text_lowercase.png"; //$NON-NLS-1$ String TEXT_UPPERCASE = "text_uppercase.png"; //$NON-NLS-1$ String TEXT_CAPITALIZE = "text_capitalize.png"; //$NON-NLS-1$ String UNDO = "undo.gif"; //$NON-NLS-1$ String REDO = "redo.gif"; //$NON-NLS-1$ String DEFAULT_THEME = "defaultTheme.gif"; //$NON-NLS-1$ String STAR = "star.png"; //$NON-NLS-1$ String PIN = "pin.png"; //$NON-NLS-1$ String THUMBNAIL_LOST = "thumbnail.png"; //$NON-NLS-1$ String SELECT = "select.png"; //$NON-NLS-1$ // String BRAINY = "brainy.16.gif"; //$NON-NLS-1$ // String BRAINY_FILE = "xmap_file.gif"; //$NON-NLS-1$ // String ABOUT = "about2.png"; //$NON-NLS-1$ String IMPORT = "import_wiz.gif"; //$NON-NLS-1$ String EXPORT = "export_wiz.gif"; //$NON-NLS-1$ String WIZ_NEW = "new_wiz.png"; //$NON-NLS-1$ String WIZ_IMPORT = "import_wiz.png"; //$NON-NLS-1$ String WIZ_EXPORT = "export_wiz.png"; //$NON-NLS-1$ String WIZ_REGISTER = "extstr_wiz.png"; //$NON-NLS-1$ // String WIZ_WELCOME = "new_wiz.png"; //$NON-NLS-1$ String WIZ_EXTRACTTEMP = "product_wiz.png"; //$NON-NLS-1$ String WIZ_SELECTMAP = "saveas_wiz.png"; //$NON-NLS-1$ String OPAQUE = PATH_PROP + "opaque.gif"; //$NON-NLS-1$ String LINE_NONE = PATH_PROP + "ic_none.png";////$NON-NLS-1$ String LINE_THINNEST = PATH_PROP + "line_thinnest.png"; //$NON-NLS-1$ String LINE_THIN = PATH_PROP + "line_thin.png"; //$NON-NLS-1$ String LINE_MEDIUM = PATH_PROP + "line_medium.png"; //$NON-NLS-1$ String LINE_FAT = PATH_PROP + "line_fat.png"; //$NON-NLS-1$ String LINE_FATTEST = PATH_PROP + "line_fattest.png"; //$NON-NLS-1$ String PATTERN_SOLID = PATH_PROP + "pattern_solid.png"; //$NON-NLS-1$ String PATTERN_DOT = PATH_PROP + "pattern_dot.png"; //$NON-NLS-1$ String PATTERN_DASH = PATH_PROP + "pattern_dash.png"; //$NON-NLS-1$ String PATTERN_DASHDOT = PATH_PROP + "pattern_dashdot.png"; //$NON-NLS-1$ String PATTERN_DASHDOTDOT = PATH_PROP + "pattern_dashdotdot.png"; //$NON-NLS-1$ String DIRECTORY = PATH + "misc/directory.gif"; //$NON-NLS-1$ String RIGHT = PATH + "misc/complete_status.gif"; //$NON-NLS-1$ String WRONG = PATH + "misc/close_view.gif"; //$NON-NLS-1$ String BLANK = PATH + "misc/blank.gif"; //$NON-NLS-1$ String ENCRYPTED_THUMBNAIL = PATH + "misc/encrypted_thumbnail.png"; //$NON-NLS-1$ String DEFAULT_THUMBNAIL = PATH + "misc/default_thumbnail.jpg"; //$NON-NLS-1$ String MISSING_IMAGE = PATH + "misc/missing_image.png"; //$NON-NLS-1$ String UNKNOWN_FILE = "unknownfile.gif"; //$NON-NLS-1$ String ITEM = "item.png"; //$NON-NLS-1$ String ITEM_2 = "item_2.png"; //$NON-NLS-1$ String DUPLICATE = "duplicate.png"; //$NON-NLS-1$ String INSERT_CALLOUT = "insertcallout.png"; //$NON-NLS-1$ String XMIND_WATERMARK = PATH + "xmind_watermark.png"; //$NON-NLS-1$ String WARNING_ICON = PATH + "misc/warning.png"; //$NON-NLS-1$ CursorFactory CURSOR_ADD = new CursorFactory("add") { //$NON-NLS-1$ public Cursor createCursor(IMindMapImages images) { return images.createCursor(getId(), 4, 3); } }; CursorFactory CURSOR_BROWSE = new CursorFactory("browse") { //$NON-NLS-1$ public Cursor createCursor(IMindMapImages images) { return images.createCursor(getId(), 11, 9); } }; CursorFactory CURSOR_FORBID = new CursorFactory("forbid") { //$NON-NLS-1$ public Cursor createCursor(IMindMapImages images) { return images.createCursor(getId(), 6, 3); } }; CursorFactory CURSOR_MOVE = new CursorFactory("move") { //$NON-NLS-1$ public Cursor createCursor(IMindMapImages images) { return images.createCursor(getId(), 9, 8); } }; CursorFactory CURSOR_RELATIONSHIP = new CursorFactory("relationship") { //$NON-NLS-1$ public Cursor createCursor(IMindMapImages images) { return images.createCursor(getId(), 6, 3); } }; CursorFactory CURSOR_EMPTY = new CursorFactory("empty") { //$NON-NLS-1$ public Cursor createCursor(IMindMapImages images) { int w = 16; int h = 16; Display display = Display.getCurrent(); if (display != null) { Point[] sizes = display.getCursorSizes(); if (sizes != null && sizes.length > 0) { Point size = sizes[0]; w = size.x; h = size.y; } } ImageData source = new ImageData(w, h, 16, new PaletteData(0xff0000, 0xff00, 0xff)); for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { source.setPixel(x, y, 0xffffff); } } ImageData mask = new ImageData(w, h, 16, new PaletteData(0xff0000, 0xff00, 0xff)); return new Cursor(display, source, mask, w / 2, h / 2); } }; ImageDescriptor get(String fullPath); ImageDescriptor get(String fileName, String parentPath); ImageDescriptor get(String fileName, boolean enabled); ImageDescriptor getElementIcon(Object element, boolean enabled); ImageDescriptor getTopicIcon(ITopic topic, boolean enabled); ImageDescriptor getWizBan(String fileName); ImageDescriptor getFileIcon(String adaptedPath); ImageDescriptor getFileIcon(String adaptedPath, boolean returnNullIfUnidentifiable); Cursor getCursor(CursorFactory factory); Cursor createCursor(String name, int hotX, int hotY); }