package org.openntf.domino.nsfdata.structs.cd; import java.util.EnumSet; import java.util.Set; import org.openntf.domino.nsfdata.structs.COLOR_VALUE; import org.openntf.domino.nsfdata.structs.FONTID; import org.openntf.domino.nsfdata.structs.RepeatType; import org.openntf.domino.nsfdata.structs.SIG; import org.openntf.domino.nsfdata.structs.WSIG; /** * This CD Record defines the attributes of an embedded outline. It is preceded by a CDHOTSPOTBEGIN and a CDPLACEHOLDER. The CD record, * CDPLACEHOLDER, further defines the CDEMBEDDEDOUTLINE. (editods.h) * * @since Lotus Notes/Domino 5.0 * */ public class CDEMBEDDEDOUTLINE extends CDRecord { /** * (editods.h) * * @since Lotus Notes/Domino 5.0 * */ public static enum Flag { /** Embedded outline is displayed horizontally. */ DISPLAYHORZ(0x00000001), /** Embedded outline is a background image. */ HASIMAGELABEL(0x00000002), /** Embedded outline is a tile image. */ TITLEIMAGE(0x00000004), /** Embedded outline use applet in browser. */ USEAPPLET_INBROWSER(0x00000008), /** Embedded outline is a title. */ TYPE_TITLE(0x00000010), /** Embedded outline show twistie. */ SHOWTWISTIE(0x00000020), /** Embedded outline title is fixed. */ TITLEFIXED(0x00000040), /** Embedded outline top level is fixed. */ TOPLEVELFIXED(0x00000080), /** Embedded outline sub level is fixed. */ SUBLEVELFIXED(0x00000100), /** Embedded outline is tree style. */ TREE_STYLE(0x00000200), /** Embedded outline has name. */ HASNAME(0x00000400), /** Embedded outline has target frame. */ HASTARGETFRAME(0x00000800), /** Embedded outline is all the same. */ ALLTHESAME(0x00001000), /** Embedded outline back is all the same. */ BACK_ALLTHESAME(0x00002000), /** Embedded outline expand data. */ EXPAND_DATA(0x00004000), /** Embedded outline expand all. */ EXPAND_ALL(0x00008000), /** Embedded outline expand first. */ EXPAND_FIRST(0x00010000), /** Embedded outline expand save. */ EXPAND_SAVED(0x00020000), /** Embedded outline expand none. */ EXPAND_NONE(0x00040000), /** Embedded outline has root name. */ HASROOTNAME(0x00080000), /** Embedded outline has right to left reading order. */ RTLREADING(0x00100000), /** Embedded outline has twistie image. */ TWISTIEIMAGE(0x00200000), /** Embedded outline displays unread count in folder. */ HANDLEFOLDERUNREAD(0x00400000), /** Embedded outline has an OS style twistie. */ NEWSTYLE_TWISTIE(0x00800000), /** Embedded outline maintains the folder's unread marks. */ MAINTAINFOLDERUNREAD(0x01000000), /** Use JavaScript (Dojo) control in the browser. */ USEJSCTLINBROWSER(0x02000000), /** Use custom JavasScript control in the browser */ USECUSTOMJSINBROWSER(0x04000000); private final int value_; private Flag(final int value) { value_ = value; } public int getValue() { return value_; } public static Set<Flag> valuesOf(final int flags) { Set<Flag> result = EnumSet.noneOf(Flag.class); for (Flag flag : values()) { if ((flag.getValue() & flags) > 0) { result.add(flag); } } return result; } } public static enum ImageAlign { TOPLEFT, TOPCENTER, TOPRIGHT, MIDDLELEFT, MIDDLECENTER, MIDDLERIGHT, BOTTOMLEFT, BOTTOMCENTER, BOTTOMRIGHT } public static enum TitleStyle { HIDE, SIMPLE, HIERARCHICAL } public final WSIG Header = inner(new WSIG()); /** * Use getFlags for access. */ @Deprecated public final Unsigned32 Flags = new Unsigned32(); public final Unsigned32[] Unused = array(new Unsigned32[3]); public final Unsigned16 Align = new Unsigned16(); public final Unsigned16 SpaceBetweenEntries = new Unsigned16(); public final Unsigned16 LabelLength = new Unsigned16(); public final Enum16<TitleStyle> Style = new Enum16<TitleStyle>(TitleStyle.values()); public final Unsigned16 Title_VOffset = new Unsigned16(); public final Unsigned16 Title_HOffset = new Unsigned16(); public final Unsigned16 Title_Height = new Unsigned16(); public final Unsigned16 TopLevel_VOffset = new Unsigned16(); public final Unsigned16 TopLevel_HOffset = new Unsigned16(); public final Unsigned16 TopLevel_Height = new Unsigned16(); public final Unsigned16 SubLevel_VOffset = new Unsigned16(); public final Unsigned16 SubLevel_HOffset = new Unsigned16(); public final Unsigned16 SubLevel_Height = new Unsigned16(); public final Unsigned16 NameLength = new Unsigned16(); public final Unsigned16 TargetFrameLength = new Unsigned16(); public final FONTID[] SelectFontID = array(new FONTID[3]); public final FONTID[] MouseFontID = array(new FONTID[3]); public final Unsigned16[] Font_VOffset = array(new Unsigned16[3]); public final Unsigned16[] Font_HOffset = array(new Unsigned16[3]); public final Enum16<ImageAlign> Align1 = new Enum16<ImageAlign>(ImageAlign.values()); public final Enum16<ImageAlign> Align2 = new Enum16<ImageAlign>(ImageAlign.values()); public final Enum16<ImageAlign> Align3 = new Enum16<ImageAlign>(ImageAlign.values()); public final COLOR_VALUE Control_BackColor = inner(new COLOR_VALUE()); public final COLOR_VALUE[] BackColor = array(new COLOR_VALUE[9]); public final COLOR_VALUE[] SelectBackColor = array(new COLOR_VALUE[3]); public final Enum16<RepeatType> Repeat1 = new Enum16<RepeatType>(RepeatType.values()); public final Enum16<RepeatType> Repeat2 = new Enum16<RepeatType>(RepeatType.values()); public final Enum16<RepeatType> Repeat3 = new Enum16<RepeatType>(RepeatType.values()); public final Enum16<RepeatType> Repeat4 = new Enum16<RepeatType>(RepeatType.values()); public final Enum16<ImageAlign> Background_Align1 = new Enum16<ImageAlign>(ImageAlign.values()); public final Enum16<ImageAlign> Background_Align2 = new Enum16<ImageAlign>(ImageAlign.values()); public final Enum16<ImageAlign> Background_Align3 = new Enum16<ImageAlign>(ImageAlign.values()); public final Enum16<ImageAlign> Background_Align4 = new Enum16<ImageAlign>(ImageAlign.values()); public final Unsigned16[] Background_VOffset = array(new Unsigned16[4]); public final Unsigned16[] Background_HOffset = array(new Unsigned16[4]); public final Unsigned16[] wBackground_Image = array(new Unsigned16[4]); public final COLOR_VALUE[] NormalFontColor = array(new COLOR_VALUE[3]); public final COLOR_VALUE[] MouseFontColor = array(new COLOR_VALUE[3]); public final Unsigned16 RootLength = new Unsigned16(); public final Unsigned16 TopLevel_PixelHeight = new Unsigned16(); public final Unsigned16 wColWidth = new Unsigned16(); public final Unsigned16 SpareWord = new Unsigned16(); public final Unsigned32[] Spare = array(new Unsigned32[4]); @Override public SIG getHeader() { return Header; } public Set<Flag> getFlags() { return Flag.valuesOf((int) Flags.get()); } }