GGRLib v1.05

This document assumes you have a decent working knowledge of programming in a .NET language (and uses C# notation).  It also assumes you have moderate experience in ROM hacking.

GGRLib contains several custom controls and a few helper classes.  Any members or methods not covered here are for internal use.  Some of this code was obtained from publicly available websites (that I have long since forgotten).

Flat Controls

FlatButton, FlatCombo, FlatSpin, and FlatText are a series of custom controls drawn to simulate the flat look of Visual Studio.  All are fairly self-contained, but the FlatSpin control has a custom constructor to set drawing height.  Normal NumericUpDowns (which were called spin controls in earlier windows APIs) have a locked height which cannot be adjusted.

HighPrecision Class

The HighPrecision class contains two static helper methods with a high precision clock.  Useful for timing functions that require higher precision than the normal .NET date and time provide.  These functions are imported from Kernel32 and appear in Microsoft's documentation.

Messages Enum

In the Win32 codefile, Messages contains an enumeration of several windows message values.  Useful if you want to plunge the depths of the windows messaging system for fine control of window behaviors.

MyDataGrid Class

Extends the DataGrid class to add row/cell finding methods.

Plugins Class

Provides a generic function for reading plugins.

TreeNodeExt Class

The TreeNodeExt class is designed to extend the TreeNode class by replacing its Tag member with more data.  Extending the TreeNode class in this manner allows it to be used by a TreeView.

TreeViewMS Class

The TreeViewMS class allows for a TreeView that can select multiple items.  This version requires the use of the TreeNodeExt class.  A bug I have never been able to eliminate is that sometimes a node will still be painted as selected even after its not.