Package ghidra.app.decompiler.component
Class ClangLayoutController
- java.lang.Object
 - 
- ghidra.app.decompiler.component.ClangLayoutController
 
 
- 
- All Implemented Interfaces:
 LayoutModel,LayoutModelListener
public class ClangLayoutController extends java.lang.Object implements LayoutModel, LayoutModelListener
Control the GUI layout for displaying tokenized C code 
- 
- 
Constructor Summary
Constructors Constructor Description ClangLayoutController(DecompileOptions opt, DecompilerPanel decompilerPanel, java.awt.FontMetrics met, HighlightFactory hlFactory) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddLayoutModelListener(LayoutModelListener listener)Adds a LayoutModelListener to be notified when changes occur.voidbuildLayouts(Function function, ClangTokenGroup doc, java.lang.String errmsg, boolean display)booleanchangePending()voiddataChanged(java.math.BigInteger start, java.math.BigInteger end)Called when the data at an index or range of indexes changes.SearchLocationfindNextTokenForSearch(java.lang.String searchString, FieldLocation currentLocation, boolean forwardSearch)SearchLocationfindNextTokenForSearchRegex(java.lang.String searchString, FieldLocation currentLocation, boolean forwardSearch)voidflushChanges()Returns true if the model knows about changes that haven't yet been told to the LayoutModelListeners.HighFunctiongetHighFunction(int i)java.math.BigIntegergetIndexAfter(java.math.BigInteger index)Returns the closest larger index in the model that has a non-null layout.intgetIndexBefore(int index)java.math.BigIntegergetIndexBefore(java.math.BigInteger index)Returns the closest smaller index in the model that has a non-null layout.LayoutgetLayout(java.math.BigInteger index)Returns a layout for the given index.java.util.ArrayList<ClangLine>getLines()java.math.BigIntegergetNumIndexes()Returns the total number of indexes.java.awt.DimensiongetPreferredViewSize()Returns the width of the largest possible layout.ClangTokenGroupgetRoot()booleanisUniform()Returns true if every index returns a non-null layout and all the layouts are the same height.voidlayoutChanged()voidlocationChanged(FieldLocation loc, Field field, java.awt.Color locationColor, java.awt.Color parenColor)voidmodelChanged()voidmodelSizeChanged(IndexMapper mapper)Called whenever the number of indexes changedvoidremoveLayoutModelListener(LayoutModelListener listener)Removes a LayoutModelListener to be notified when changes occur.- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface docking.widgets.fieldpanel.LayoutModel
iterator, iterator 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
ClangLayoutController
public ClangLayoutController(DecompileOptions opt, DecompilerPanel decompilerPanel, java.awt.FontMetrics met, HighlightFactory hlFactory)
 
 - 
 
- 
Method Detail
- 
getLines
public java.util.ArrayList<ClangLine> getLines()
 
- 
isUniform
public boolean isUniform()
Description copied from interface:LayoutModelReturns true if every index returns a non-null layout and all the layouts are the same height.- Specified by:
 isUniformin interfaceLayoutModel
 
- 
getPreferredViewSize
public java.awt.Dimension getPreferredViewSize()
Description copied from interface:LayoutModelReturns the width of the largest possible layout.- Specified by:
 getPreferredViewSizein interfaceLayoutModel
 
- 
getNumIndexes
public java.math.BigInteger getNumIndexes()
Description copied from interface:LayoutModelReturns the total number of indexes.- Specified by:
 getNumIndexesin interfaceLayoutModel
 
- 
getLayout
public Layout getLayout(java.math.BigInteger index)
Description copied from interface:LayoutModelReturns a layout for the given index.- Specified by:
 getLayoutin interfaceLayoutModel- Parameters:
 index- the index of the layout to retrieve.
 
- 
addLayoutModelListener
public void addLayoutModelListener(LayoutModelListener listener)
Description copied from interface:LayoutModelAdds a LayoutModelListener to be notified when changes occur.- Specified by:
 addLayoutModelListenerin interfaceLayoutModel- Parameters:
 listener- the LayoutModelListener to add.
 
- 
removeLayoutModelListener
public void removeLayoutModelListener(LayoutModelListener listener)
Description copied from interface:LayoutModelRemoves a LayoutModelListener to be notified when changes occur.- Specified by:
 removeLayoutModelListenerin interfaceLayoutModel- Parameters:
 listener- the LayoutModelListener to remove.
 
- 
modelSizeChanged
public void modelSizeChanged(IndexMapper mapper)
Description copied from interface:LayoutModelListenerCalled whenever the number of indexes changed- Specified by:
 modelSizeChangedin interfaceLayoutModelListener- Parameters:
 mapper- Maps indexes from before the model size change to indexes after the model size changed.
 
- 
modelChanged
public void modelChanged()
 
- 
dataChanged
public void dataChanged(java.math.BigInteger start, java.math.BigInteger end)Description copied from interface:LayoutModelListenerCalled when the data at an index or range of indexes changes.- Specified by:
 dataChangedin interfaceLayoutModelListener- Parameters:
 start- the starting index for the region of data changes.end- the ending index (inclusive) for the region of data changes.
 
- 
layoutChanged
public void layoutChanged()
 
- 
getIndexAfter
public java.math.BigInteger getIndexAfter(java.math.BigInteger index)
Description copied from interface:LayoutModelReturns the closest larger index in the model that has a non-null layout.- Specified by:
 getIndexAfterin interfaceLayoutModel- Parameters:
 index- for which to find the next index with a non-null layout.- Returns:
 - returns the closest larger index in the model that has a non-null layout.
 
 
- 
getIndexBefore
public java.math.BigInteger getIndexBefore(java.math.BigInteger index)
Description copied from interface:LayoutModelReturns the closest smaller index in the model that has a non-null layout.- Specified by:
 getIndexBeforein interfaceLayoutModel- Parameters:
 index- for which to find the previous index with a non-null layout.- Returns:
 - returns the closest smaller index in the model that has a non-null layout.
 
 
- 
getIndexBefore
public int getIndexBefore(int index)
 
- 
getRoot
public ClangTokenGroup getRoot()
 
- 
buildLayouts
public void buildLayouts(Function function, ClangTokenGroup doc, java.lang.String errmsg, boolean display)
 
- 
getHighFunction
public HighFunction getHighFunction(int i)
 
- 
findNextTokenForSearchRegex
public SearchLocation findNextTokenForSearchRegex(java.lang.String searchString, FieldLocation currentLocation, boolean forwardSearch)
 
- 
findNextTokenForSearch
public SearchLocation findNextTokenForSearch(java.lang.String searchString, FieldLocation currentLocation, boolean forwardSearch)
 
- 
locationChanged
public void locationChanged(FieldLocation loc, Field field, java.awt.Color locationColor, java.awt.Color parenColor)
 
- 
changePending
public boolean changePending()
 
- 
flushChanges
public void flushChanges()
Description copied from interface:LayoutModelReturns true if the model knows about changes that haven't yet been told to the LayoutModelListeners.- Specified by:
 flushChangesin interfaceLayoutModel
 
 - 
 
 -