SlideAtompublic class SlideAtom extends RecordAtom A Slide Atom (type 1007). Holds information on the parent Slide, what
Master Slide it uses, what Notes is attached to it, that sort of thing.
It also has a SSlideLayoutAtom embeded in it, but without the Atom header |
Fields Summary |
---|
private byte[] | _header | private static long | _type | public static final int | MASTER_SLIDE_ID | public static final int | USES_MASTER_SLIDE_ID | private int | masterID | private int | notesID | private boolean | followMasterObjects | private boolean | followMasterScheme | private boolean | followMasterBackground | private SSlideLayoutAtom | layoutAtom | private byte[] | reserved |
Constructors Summary |
---|
protected SlideAtom(byte[] source, int start, int len)For the Slide Atom
// Sanity Checking
if(len < 30) { len = 30; }
// Get the header
_header = new byte[8];
System.arraycopy(source,start,_header,0,8);
// Grab the 12 bytes that is "SSlideLayoutAtom"
byte[] SSlideLayoutAtomData = new byte[12];
System.arraycopy(source,start+8,SSlideLayoutAtomData,0,12);
// Use them to build up the SSlideLayoutAtom
layoutAtom = new SSlideLayoutAtom(SSlideLayoutAtomData);
// Get the IDs of the master and notes
masterID = (int)LittleEndian.getInt(source,start+12+8);
notesID = (int)LittleEndian.getInt(source,start+16+8);
// Grok the flags, stored as bits
int flags = LittleEndian.getUShort(source,start+20+8);
if((flags&4) == 4) {
followMasterBackground = true;
} else {
followMasterBackground = false;
}
if((flags&2) == 2) {
followMasterScheme = true;
} else {
followMasterScheme = false;
}
if((flags&1) == 1) {
followMasterObjects = true;
} else {
followMasterObjects = false;
}
// If there's any other bits of data, keep them about
// 8 bytes header + 20 bytes to flags + 2 bytes flags = 30 bytes
reserved = new byte[len-30];
System.arraycopy(source,start+30,reserved,0,reserved.length);
| public SlideAtom()Create a new SlideAtom, to go with a new Slide
_header = new byte[8];
LittleEndian.putUShort(_header, 0, 2);
LittleEndian.putUShort(_header, 2, (int)_type);
LittleEndian.putInt(_header, 4, 24);
byte[] ssdate = new byte[12];
layoutAtom = new SSlideLayoutAtom(ssdate);
layoutAtom.setGeometryType(SSlideLayoutAtom.BLANK_SLIDE);
followMasterObjects = true;
followMasterScheme = true;
followMasterBackground = true;
masterID = -2147483648;
notesID = 0;
reserved = new byte[2];
|
Methods Summary |
---|
public boolean | getFollowMasterBackground() return followMasterBackground;
| public boolean | getFollowMasterObjects() return followMasterObjects;
| public boolean | getFollowMasterScheme() return followMasterScheme;
| public int | getMasterID()Get the ID of the master slide used. 0 if this is a master slide, otherwise -2147483648
return masterID;
| public int | getNotesID()Get the ID of the notes for this slide. 0 if doesn't have one return notesID;
| public long | getRecordType()We are of type 1007 return _type;
| public org.apache.poi.hslf.record.SlideAtom$SSlideLayoutAtom | getSSlideLayoutAtom()Get the embeded SSlideLayoutAtom return layoutAtom;
| public void | setFollowMasterBackground(boolean flag) followMasterBackground = flag;
| public void | setFollowMasterObjects(boolean flag) followMasterObjects = flag;
| public void | setFollowMasterScheme(boolean flag) followMasterScheme = flag;
| public void | setMasterID(int id)Change slide master. masterID = id;
| public void | setNotesID(int id)Change the ID of the notes for this slide. 0 if it no longer has one notesID = id;
| public void | writeOut(java.io.OutputStream out)Write the contents of the record back, so it can be written
to disk
// Header
out.write(_header);
// SSSlideLayoutAtom stuff
layoutAtom.writeOut(out);
// IDs
writeLittleEndian(masterID,out);
writeLittleEndian(notesID,out);
// Flags
short flags = 0;
if(followMasterObjects) { flags += 1; }
if(followMasterScheme) { flags += 2; }
if(followMasterBackground) { flags += 4; }
writeLittleEndian(flags,out);
// Reserved data
out.write(reserved);
|
|