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.SIG;
import org.openntf.domino.nsfdata.structs.WSIG;
/**
* A CDPLACEHOLDER record stores additional information about various embedded type CD records, such as CDEMBEDDEDCTL, CDEMBEDDEDOUTLINE and
* other embedded CD record types defined in HOTSPOTREC_TYPE_xxx. (editods.h)
*
* @since Lotus Notes/Domino 5.0
*
*/
public class CDPLACEHOLDER extends CDRecord {
public static enum Flag {
/** Fit to window */
FITTOWINDOW(0x00000001),
/** Draw background */
DRAWBACKGROUND(0x00000002),
/** Use percentage */
USEPERCENTAGE(0x00000004),
/** Scrollbars */
SCROLLBARS(0x00000008),
/** Contents only */
CONTENTSONLY(0x00000010),
/** Align center */
ALIGNCENTER(0x00000020),
/** Align right */
ALIGNRIGHT(0x00000040),
/** Fit to window height */
FITTOWINDOWHEIGHT(0x00000080),
/** Tile image */
TILEIMAGE(0x00000100),
/** Display horizontally */
DISPLAYHORZ(0x00000200),
/** Don't expand selections */
DONTEXPANDSELECTIONS(0x00000400),
/** Expand current */
EXPANDCURRENT(0x00000800),
/** Fit contents width */
FITCONTENTSWIDTH(0x00001000),
/** Fixed width */
FIXEDWIDTH(0x00002000),
/** Fixed height */
FIXEDHEIGHT(0x00004000),
/** Fit contents */
FITCONTENTS(0x00008000),
/** Proportional width */
PROP_WIDTH(0x00010000),
/** Proportional width and height */
PROP_BOTH(0x00020000),
/** Scrollers */
SCROLLERS(0x00040000);
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;
}
}
/**
* @since Lotus Notes/Domino 5.0
*/
public static enum Alignment {
LEFT, CENTER, RIGHT
}
public final WSIG Header = inner(new WSIG());
public final Enum16<CDHOTSPOTBEGIN.HotspotType> Type = new Enum16<CDHOTSPOTBEGIN.HotspotType>(CDHOTSPOTBEGIN.HotspotType.values());
/**
* Use getFlags for access.
*/
@Deprecated
public final Unsigned32 Flags = new Unsigned32();
public final Unsigned16 Width = new Unsigned16();
public final Unsigned16 Height = new Unsigned16();
public final FONTID FontID = inner(new FONTID());
public final Unsigned16 Characters = new Unsigned16();
public final Unsigned16 SpaceBetween = new Unsigned16();
public final Enum16<Alignment> TextAlignment = new Enum16<Alignment>(Alignment.values());
public final Unsigned16 SpaceWord = new Unsigned16();
public final FONTID[] SubFontID = array(new FONTID[2]);
public final Unsigned16 DataLength = new Unsigned16();
public final COLOR_VALUE BackgroundColor = inner(new COLOR_VALUE());
public final COLOR_VALUE ColorRGB = inner(new COLOR_VALUE());
public final Unsigned16 SpareWord = new Unsigned16();
public final Unsigned32[] Spare = array(new Unsigned32[3]);
@Override
public SIG getHeader() {
return Header;
}
public Set<Flag> getFlags() {
return Flag.valuesOf((int) Flags.get());
}
}